橋牌和圍棋的 AI 哪個更難設計?

本人對圍棋不了解,但最近很熱的阿爾法狗接連擊敗李世石,可以說,人工智慧算是征服了圍棋領域。那麼問題來了,現在的情況是,三大智力運動中的兩個(國際象棋、圍棋)都被AI征服,剩下的橋牌還能支撐多久?

目前的新睿橋牌的AI算是不錯了,但是和高手差的太多了,更別談和那些頂尖牌手相比。

個人認為,橋牌AI設計中最難的是叫牌部分,需要考慮多種情況,如弱開叫,14點的1NT、對於牌型點的計算等等。另外在打牌中,比如坐莊時如何識別對面的假信號、防守時信號如何選擇等等。

補充:看了幾個答案。覺得有的答案把橋牌AI設計難度低估了,設計難點不在於計算的深度、複雜度,而在於要設計出「一個真正像人一樣思考」的AI,會綜合考慮心理、環境等各方面因素,會根據對方的出牌來推測出對方持牌,這也是難點。(這麼一想,橋牌AI里有各種難點啊,具體看幾個答主的回答。。)


bridge的AI一直有人在做,而且處於非常微妙的形勢,每年冠軍基本上是jack(收費軟體,功能強大)和wbridge(免費軟體,看UI就想刪)單挑,然後輪流坐莊,有種勇者斗惡龍的感覺

ACBL/WBF World Computer-Bridge Championship

這裡有全部比賽記錄,看幾個就知道,bridge這遊戲,AI打得是有毛病的...以我和jack上千盤的對抗經驗來看,它充其量就和我五五開(在我的機器上),剛剛又玩了16副:

我和3個AI打4個AI,打法比較激進,所以丟了倆大的,贏了幾個超墩,合計只有4IMP的差距,然而我的牌技就是個菜雞,只是比較了解他而已.有記載的jack可以和大師過幾招,但應該不是我能買到的這個版本,即使這樣能打敗它的人還是很多Computer bridge

牌類AI的框架是蒙特卡洛(在框架里加什麼神經網路那是內容的事,不表.),和alphago/zen那套玩意差不多.最直白的解釋,比如電腦坐莊,每次輪到它出牌,就對防家所有可能的手牌分配進行採樣,然後每個樣本進行一次四明手計算(電腦算四明手速度超快,毫秒級),看看這種情況下自己的每個出牌選擇能獲得什麼結果(比如有的是4S= 620,另一些是4S-1 -100),然後挑得分最高的牌來出.

看起來是非常樸素的做法.四明手分析寫起來比象棋都簡單,然而在這個答案里,提到bridge比RTS都難,先不和RTS比,就和圍棋比較一下,就知道橋牌複雜在哪.

圍棋能看見整個棋盤,然而橋牌並不能,叫牌只能看到自己,打牌只能看到兩家,所以想玩好這個遊戲,必須學會從別家的行動判斷別家的手牌(圍棋並不用,因為你看得見對面的落子),這樣才能對前述"所有可能的手牌分配"有一個準確的把握,如果這點上不準,採樣就會跑偏,然後就會打出莫名其妙的牌來,當然直接送墩這種事不會有,但錯過時效之類的失誤到現在都會有.

對面的行動有很多種可能,單是一個叫牌序列包含的信息量就極大,遠遠蓋過約定卡上寫明的那些東西.開叫阻擊2H,可能是7張破套,可能是HAKQJT帶一堆邊花電話號碼,也可能就是普通的6張...然後第二家爭2NT,也代表了一堆事情,而且爭叫人有沒有pass過還影響很大...首攻個7,可能是7帶一個小,可能就單張7,也可能是長4,如果是長4,這還會進一步推斷出它手上沒有其它合適首攻的東西(比如某一門KQJ)...類似或者不類似的判斷要做很多很多,要找個辦法教會電腦這些,比讓它看棋譜學圍棋難多了,譜上的落子是實實在在的東西,你可以各種統計或者局部匹配,但這種純概念的推導,要怎麼辦?

橋牌另外一點比RTS更難的部分在於,AI必須會換位思考才行,僅僅見招拆招是不夠的,星際爭霸的話,看到爆狗就刷叉,看到飛龍碼導彈塔,你不用管碼了導彈塔對面飛龍會去哪,然而橋牌並不能這樣暴力,舉一個最簡單的例子,莊家手上出小,明手AQ,AI手上K8,這時候按照那個樸素的框架,出K還是8並沒有什麼區別,都是一墩都拿不到,所以AI就撲上了K,但莊家可能本來也沒打算飛這個,只是下橋而已,看到AI主動送K肯定莫名其妙.

問題在於這個框架本身,它本質上假定了其它兩家看得到自己的牌,所以僅僅是雙明手的結果並不能完全說明問題,它還需要做出類似這樣的判斷:

"到了這個局面,莊家不會打這個33,他會去按概率雙飛KQ然後下掉"

"我沒顯示過缺門,防家不知道我手上最後一張邊花是啥,我放在最後一張打,他們信號不好我就能偷到雞"

也就是不但要猜看不到的牌,還要猜對面拿著這些看不到牌會怎麼打...這太扯了,世界上還沒有類似的東西出現過(jack等有弱化版實現).但是要打好牌這是最基本的,雖然你防到一半知道這鐵牌莊家已經註定3NT+1了,但是莊家自己不知道,有可能打的不對,你總不能幫他吧.

說了這麼多,其實橋牌AI某種意義上並不弱,打到一半牌型明朗之後各種複雜緊逼投入都是手到擒來,問題是它經常做一些很蠢的叫牌或者首攻,所以根本輪不到和人比這些了...另外新睿那個AI雖然不太聰明,但那也不能冤枉他.比如他有時候會基於自己的統計引一些沒有理由的牌,會出現兩種結果,一是白送一墩,二是奇妙地打宕定約,然而在某些牌手的眼裡,他們管前者叫AI弱智,後者叫AI四明手.


圍棋是計算量太大的完全信息博弈, 難點在於如何減少計算量, 這點AlphaGo解決得非常好.

橋牌是計算量相對不是很大的不完全信息博弈. 機器是完全可以超越人類的. 但是因為這種遊戲和運氣有很大的關係, 只要雙方的水平高到一定程度, 哪怕有一方實際實力高得多, 最後的勝率可能都是55開. 這種情況下價值網路可能很難做得出來, 因為雜訊比實力更有可能決定勝負.


橋牌攤開了4明手打,計算的深度遠不及圍棋。軟體可以做到完美,人類高手其實也差不多。圍棋因為變化無法窮盡,我們在計算力無法達到的情況下,會以「大局觀」、「厚薄」、「味道」這樣抽象的概念來提煉總結。但橋牌做莊的打法,都是有具體的原因的,誰要是敢說「大局觀」,只能被認為是個笑話。所以說人工智慧在圍棋上的突破,其意義很可能要大於橋牌。

橋牌相比圍棋,難度在於信息的交流與獲取方面。就叫牌而言,假如選一套世界級高手的體系,把它非常細緻得編成程序,在需要判斷的時候通過海量的牌來模擬,我相信效果和真人來叫基本是一樣的,但這對於人工智慧來說沒太大的意義,只不過說明這個體系比較厲害罷了。

一個更有意思的想法是,讓人工智慧自己去嘗試設計一套體系。如果真的可以做到,並且證明這個體系叫牌的準確程度優於現有的體系的話,這就有意義了。不過這件事吸引眼球的程度,恐怕不如這次的人機對弈事件。

要知道,把人工智慧應用於智力運動,本身就有炫技的成分。這次大家如此關注人機對弈,但知乎上提出來的問題,大多數連圍棋常識都沒有,可見主要是關注人工智慧,而不是關注圍棋。


同樣的難度。假如遊戲A是10X10X10的難度。另外一個遊戲B是1000的難度。同樣總難度都是1000,但B比A難學很多。

這就是電腦的弱點。電腦不怕複雜。但怕繁雜。橋牌要考慮的東西很多很多。但它每個東西都考慮的簡單。所以有些人覺得簡單。而實際,對人簡單的東西對電腦來說可能比登天還難。

原理很簡單。假如你先學數學再學語文。學兩天。你學習效率會很高。因為不會覺得無聊。而學一天數學再學一天語文。則效率會很低。人在思考不同層面的東西時,會更合理地分配精力。而對電腦而言。這些都是一樣的。所以看起來,橋牌很好計算,很好掌握云云。

實際上,橋牌對AI是非常可怕的項目。橋牌AI最多只能達到高級牌手的水準。而難以在比賽中有成績。單項PK賽,只要超過5輪。被人類找到弱點後很容易被攻克。

因此,以阿法狗現有的方式是無法攻克橋牌的。

關於圍棋我順便說一點。

其實圍棋並未被暴力攻克。深度學習和之前國象的暴力攻克還是有點區別的。圍棋死在新技術下,不虧。

假如量子計算機技術真的普及 了。我覺得橋牌被攻克是遲早的事。


毫無疑問,根本不成比例,圍棋是完整信息,橋牌是非完整信息,圍棋的AI設計難度根本無法跟橋牌比。

過去有一種說法:象棋是數學遊戲,圍棋是哲學遊戲,橋牌是人的遊戲。

破解了圍棋,只能說達到了弱人工智慧(簡稱弱智),破解了橋牌,才算真正進入人的思維世界,至少達到中智。

在阿法狗破解了圍棋之後,可以這麼說,圍棋曾經是個哲學遊戲(因為人的算力不夠),現在已被降格為一個數學遊戲(因為算力+深度學習,足夠了)。

象棋通過暴力窮舉,硬算,圍棋通過深度學習,但是橋牌,目前沒有突破性進展,主要是因為,「怎麼玩好橋牌」,本身是個很玄乎的問題。

怎樣玩好象棋、圍棋?基本功是背殘局、定式、布局,總之是有譜的,象棋軟體就是大量輸入棋譜庫,在象棋軟體早年開發時期,由於電腦硬體較弱,一旦出現棋譜庫中沒有的招法,軟體就容易崩潰亂來,因此那時候破機器人象棋的慣用套路是走不尋常布局,讓軟體自己去瞎走,但今天硬體太強大,所有的棋譜幾乎一網打盡,基本不存在這個問題。

至於圍棋,出現深度學習後,它每次自學的最優解路線、局面,就是它的譜庫。

問題是,橋牌沒法這麼玩!橋牌沒有牌譜庫!沒有辦法深度學習!

每一副牌,你都是在解決一個問題,這副牌玩完了以後,所有的舊問題就已經過去了,下一副是全新的問題!

橋牌不存在絕對正確答案,這是它最玄乎的地方。人類為了打好橋牌,幾十年來高手們總結了很多經驗教條(比如二手低三手高,八飛九敲之類),有的得到數學驗證,有的沒有,純粹就是經驗之談,即「高手的感覺」,即是感覺,那就是玄乎的、虛無縹緲的東西。

更糟糕的是,這些虛幻的經驗教條,每一條都有例外的時候,而每條例外還有「例外的例外」的時候!

每一條都有例外,你讓機器怎麼學?

打個最簡單的比方:

同伴首攻長4,你第三手持QJ10,根據教條「三手高,打連張中最小」,所以該出10?

No!這裡是個經典的例外,因為出10同伴很難確定Q在哪裡,所以這裡是個特例,要出J,反正沒有損失。

可是,如果我不希望同伴繼攻該花,強烈希望換攻呢?那現在就是例外的例外,我必須打Q,否認持J10,斷絕同伴在該花上的念想!

所以你沒有辦法像象棋、圍棋那樣,輸入已定型的最優局面,只能採用類似暴力窮舉的辦法,發大量的牌,先四明手運算,然後從所有解中取一個期望值,作為橋牌機器人的選擇。

換句話說,目前的橋牌AI,永遠是在猜的,它無法像人那樣思考」同伴若持QJ,此處該出J,因為同伴打了Q,所以否認持J「,它能做的,只有硬算後取期望值結論,」概率上這裡可能不太像持J「。

但是這無論如何不是好的橋牌。

橋牌另一大難,因為它是人的遊戲,怎麼贏是看人的。

同一副牌,對手是倆消磨時間的老太太、還是倆初哥、還是倆懂一點又愛嘰嘰喳喳的中級、還是一職業搭一個客戶、還是倆專家大師......處理是完全不一樣的。

最典型的,比如阻擊叫。

對老太太,可能你永不需要阻擊,因為她可能只會拔蘿蔔,禮儀上你是來陪她消磨時間的。

對初哥,」正常阻擊「即可,因為他們肯定不知道怎麼應付,自己會亂的。

對中級,可能就要設點陷阱,比如超叫或低叫。

對專家大師,對來拿大師分的客戶......現在是純競技牌,你就要考慮那桌可能出現的局面,再結合本方此刻形勢(是落後還是領先,幅度如何),決定是否正常地來,是預計那桌可能的結果然後盡量保持同步,還是發大招」出擊「。

這些是」贏分的橋牌「,但未必是理論上最好的橋牌。

這次阿法狗的策略,已經有很多人看出來了,即「90%的概率贏半目,70%的概率贏10目,永遠取前者「,贏比」贏多少「重要,換句話說,阿法狗是防守足球1比0,不考慮藝術足球。

這不就是橋牌雙人賽策略嗎?winnng frequency比winning size重要。

但橋牌的比賽形式花樣繁多,KO IMP(長程隊式淘汰賽),Swiss IMP(瑞士制短程隊賽),MP(雙人賽),IMP pairs(IMP雙人賽),BAM(每副比),BAM team(隊式每副比)......

每種比賽形式,贏分策略都不一樣,這是它第三難。

目前阿法狗僅僅表現出橋牌雙人賽策略,棋牌不同之處,在於棋類只有、也只需要一種策略,就是贏,但橋牌需要調多種,在不同比賽形式下,70%概率贏10目,比90%概率贏半目重要。

未來如果有阿法牌,檢驗的形式,很可能就不是像深藍對老卡、狗對李世石那樣,單挑,雖然從形式上說,挑選人類最優秀的4名牌手,與4個阿法狗打128副起步的長程隊賽,可能是第一步,但阿法牌要真正進入橋牌世界,真正像人那樣思考,還要把它放在不同比賽形式、不同水平對手的場地中。

因為完全有可能,阿法牌幹掉了4個最優秀的人類牌手,卻在某種形式下干不過老太太!


讓麻將情何以堪。。。


為先生答。世界上變化最多的智力運動就是圍棋。首先說一下智力運動,世界五大智力運動包括圍棋、橋牌、國象、國跳和中象,這些都是進入智力運動會的項目。說它們是運動最有力的證明可能是北京體育大學(好像是我國體育最高學府)開設了智力運動專項(體育類的專業叫專項),另有很多所高校也都開設此類課程,但是未成系統。

扯遠了

圍棋千變萬化,至今還沒有能完全戰勝人類的軟體,Alpha go雖然很強大,但是也在人機大戰第四局輸給了李世石,輸了並不代表什麼,關鍵是李世在比賽進程中阿爾法狗顯然出現了重大錯誤,有幾手錯棋,這錯棋並不是說是那種下的不好的棋,而是完全沒有價值的亂下,可見阿爾法狗再強也不能算透變化。另外,阿爾法狗是一款可以自主學習的軟體,能夠儲存無數棋譜,所以它的段位現在應該排在世界第一(如果人類不介意的話),但是學習是一個過程,即代表不完美。

再說一下橋牌,先生現在用的橋牌軟體是新睿橋牌,在我看來這已經是一款近乎完美的橋牌軟體了,有叫牌提示,還有人機或者人人pk可供選擇,每一副牌打完都可以看到自己在所有打相同牌的牌手中的排名和其他人的定約和結果,並且可以看別人的叫牌、打牌過程。橋牌的變化並不多(相比於圍棋),畢竟只有52張牌,我剛剛打新睿的時候飛牌永遠飛不中,我出J下家必出Q,出K必出A,以為是敵方小機器人換牌,但是打完牌看出牌進程(四明手),發現機器人沒有換牌,可見其叫牌出牌合理。

中國現在絕對有人在自主研發圍棋智能,但是我認為要將最簡單但又最複雜的遊戲程序化,還需要很長的路要走。


從圍棋的結果可以看出,問題不在於「這個問題有多難」,而是在於「這個問題有沒有人研究」。圍棋作為世界公認最難攻克的難題,吸引的研究資源肯定更多。假如有朝一日橋牌也能吸引谷歌大牛,那AI飛升之日也就不遠了。


我承認圍棋比橋牌需要更多計算量,但那是人的,和ai沒有關係。

最常見的橋牌是8人博弈,信息不對稱,資訊完全;圍棋是2人博弈,信息對稱,資訊完全,即使不算上運氣因素和選手風格問題,從演算法編寫的角度來看,前邊3點,尤其是第一點,已經使得橋牌ai無論是計算量,還是編寫難度都甩開圍棋多個數量級。


我感覺設計打橋牌的AI(類似AlphaGo級別的)應該是非常有意義的。

主要不是在打牌方面。光打牌,因為計算量少,出牌的概率普通橋牌選手都能輕易做到,結合不同的計分方式,是否採用安全打法,策略都是比較固定的。橋牌跟棋類不一樣,如果只打一兩副,我等隨便4個業餘的臨時湊起來,贏國際大師也並非不可能。

如果橋牌AI要與人類比賽的話,需要2個或4個獨立的程序拷貝在那運行,參加雙人賽或者隊式賽。計算機不會疲勞,不存在情緒波動,發揮極端穩定,因此如果打的副數非常多,AI穩贏;如果按通常比賽的副數,人類顯然也能夠贏,輸贏都非常正常。所以光打牌,我看設計AI的挑戰性不大。

我覺得有意義是在叫牌法。不光AI要把所有將遇到的叫牌法都以演算法形式進行理解,還需要在叫牌過程中經常與人類牌手互動、解釋,讓人類理解、同時理解人類選手的叫牌解釋。實際上,很多搭檔都有適合自己的修改過的叫牌法。假如認死一種標準叫牌法,那麼這個AI就沒有意義。這跟走棋的完全不同。

我想,開發完整的橋牌AI,幾乎是不可能的。(也許不是不可能,而是這個AI顯然聯繫到了橋牌之外的、更宏大的AI分支,如此,針對橋牌來設計這種AI又有什麼意義呢?)


感覺圍棋AI只需計算機算再計算,這一次阿法狗多了個所謂價值判斷,無非就是自己刷了無數棋譜,計算不出來時就選個經驗上的最優解,這實際上還沒有真正智能起來。橋牌你單靠計算沒用的,即使是機器人最擅長的坐莊問題,估計在兩明手下,都干不過人類,更不要說叫牌防守部分了。


圍棋只要懂得比對手多想得比對手遠就行了,橋牌難多了,一次打牌的時候坐我旁邊的先生在決定怎麼打的時候是仔細看了看我的表情,結果我裝得很懵懂一臉的無知,他就打錯了,這個可是設計不出來呢。


難點在不同的地方。

圍棋的難點是在極大量搜索空間中找到最優點。

橋牌的難點是如何通過信息傳遞叫到最優的叫品。


幾乎所有的回答都在強調信息不對稱,難弄,但我不是太同意。解決不對稱貝葉斯公式就行了。k8出個k是不是單k,電腦搞不懂,可人也暈啊。對橋牌來說,電腦只需要學習k8出k的概率就行了。

而圍棋信息對稱所以死算能搞定的說法也不準確。深度學習之前需要提取特徵值,棋的厚,薄,子能不能棄,需要轉換成數值評價,然後才能學習。沒有適當的特徵值一定會跪在圍棋的複雜度之上的。

到底是棋的厚薄好評價,還是設定一些條件估計k8出k的概率容易,我覺得肯定是後者。

至於為什麼沒人做Ai來碾壓人類,我覺得是因為橋牌有運氣成分,ai強不一定能贏。以及橋牌比圍棋簡單,人類高手已經很接近最優解。 然後叫牌體系。電腦需要理解對手的叫牌,才能參與叫牌。這個十點牌可以開叫,另一個不能,電腦難以理解。但反過來說,這是人類的密約。你寫在約定卡上的是12點開叫,視情況輕開叫,可到底可以多輕,到底是個什麼習慣,只有經常和你搭檔的同伴才知道。

所謂ai比不過人類,其實是因為橋牌規則本身定義上有曖昧之處。為了和電腦公平比賽,可能得玩規定的十分死的橋牌,或者玩不限制詐叫,任意密約的橋牌。

而複雜圍棋,勝負定義明確,人類也研究了千年,看起來離最優解還很遠。。。


謝邀。但我既不會圍棋也不會智能設計,但我覺著肯定是圍棋AI更難設計吧,因為橋牌中在雙明情況下AI早就可以計算出完美打法的,只要解決了信息傳遞問題,橋牌AI明顯是強於或至少不弱於人類高手的。叫牌體系可能是設計難點吧。。。畢竟作為一個人類打了這麼多年橋牌,叫牌也沒完全理解透徹。


圍棋是棋與棋斗,你可以完全不管對方心裡在想什麼。橋牌是人與人斗,你可以完全不管自己手上拿的是什麼牌,就像真心話大冒險。


我覺得根本無法相比,橋牌AI要做好也許實現難度會更大。圍棋要做的也許只是我最好的方式應該怎麼下,但是橋牌的問題要考慮太多了。前面輸太多,我這次要摸一把。開室的兩個傢伙叫牌比較進取,我已經優勢了盡量保持叫牌同步。叫牌對概率的影響,打牌速度快慢對牌分布的判斷......我很難想像這些AI怎麼搞。。。當然以後肯定會有橋牌AI出現的


推薦閱讀:

戰勝李世石的第二局比賽中 AlphaGo 的表現如何?
如何評價柯潔人機大戰後二十連勝?
世界圍棋九段棋士中,你最喜歡哪一個人的名字?
古力與李世石的十番棋,目前古力2:4落後,是否說明李世石問鼎的可能性更大?李目前還稱得上世界第一人么?
對於alphago這樣的人工智慧來說,是dota,lol這類電子競技遊戲難還是棋類難?

TAG:人工智慧 | 演算法 | 圍棋 | 計算機科學 | 橋牌 |