人與電腦下西洋棋,隨著計算機效能的提公升,電腦最終會不可戰勝嗎?

時間 2021-05-29 23:18:13

1樓:Andy Denker

是不可戰勝的。但不等於會必然輸。如果雙方都下出最佳著法,守和和爭勝下法不同,風險也不同。

卡爾森對鱈魚7,贏棋可能性1%都不到,但守和還是有一些希望的。慢棋,估計好好下,卡爾森執白能有40%和棋率,執黑能有10%的和棋率。

即便有一台算準所有可能性的電腦,你仍然有一些套路可以力爭守和。尤其是執白,還有一點希望。

所以,即使電腦算準了所有變化,也不是萬事大吉。電腦水平還是提公升空間,它還需要尋找繼續提高勝率的辦法,在多種選擇中,選擇一些下法,導向對手不擅長的局面。

2樓:忍冬青

到頭來還是人和人的博弈,我認為在既定博弈規則的前提下,人機博弈,人還是有劣勢的。當人或是機器「全勝」時,對雙方其實都是巨大的進步。

3樓:焦糖布丁

現在手機上也有一些西洋棋遊戲,我對這個水平僅僅停留在喜歡玩這個檔次,不過當我把難度調整到只有Ⅰ~Ⅱ級的時候,經常會出現我用「馬」同時將對方的「王」和「車」,甚至連「後」也同時將的情況……當然我也在考慮,兩台「步伐完美」的電腦同時下棋足夠多的次數會不會出現勝負……

4樓:henix

我覺得樓主是想問西洋棋是否存在必勝策略。也就是說電腦能否找到必不輸的走法。

簡單地說,根據策梅洛定理,西洋棋存在必勝策略,只不過以人類目前的計算能力來說還找不到。也許等量子計算機普及之後利用量子演算法就能找到了 > <

參見:中國象棋的走法是有限的嗎?如果有限,有沒有先走或者後走的人必贏的可能? - 數學

Solving chess

5樓:美杜莎

偽命題,問題的關鍵明顯在於演算法!也就是軟體。硬體上計算能力早已經完勝人類,但是讓電腦和大師們多對局幾次,被找到破綻後電腦就完全沒勝算了!

沒有完美的演算法!現在的情況就是數個程式設計師加上電腦一起對局象棋大師而已,修改比賽規則人類立刻就能完勝。

6樓:

確實,現在象棋和西洋棋方面,電腦一般是要強於人的,但我認為必勝法是不存在的,或者無法求得。那些大師們與電腦對弈,電腦也從未能保證每戰皆勝,即使是10勝1負,也說明電腦無法徹底打敗人類。更何況,圍棋早已被證明了是個NPC問題。

窮舉?等出了量子計算機的話試試吧。

7樓:獵球

電腦的智慧型識別完善程度遠非乙個人可以超越的,程式會選擇最近的解決方法。人類如果不給電腦更新下棋新的技巧程式,那麼電腦將會很難贏人類,但如果不停得更新,其實等於全世界的高手融合成乙個人再去跟乙個下棋高手去下棋,你說誰贏?

8樓:

這個問題貌似應該請數學達人來回答啊,圍棋比較遙遠,但是以現在的水準論,中國象棋只是有沒有人做的問題,戰勝人類不是什麼難題。

計算機下棋的原理是把各種下一步棋的每一種可能性都羅列出來,然後進行最優篩選,對於規則簡單,棋盤更大的圍棋而言,運算量和象棋西洋棋的運算量的差距和沙灘與沙子的區別差不多,但是隨著電腦計算能力的增長成為不可戰勝的圍棋高手也不是不可能的事情。

9樓:

讓兩台電腦對著下,如果電腦下西洋棋的演算法中不存在隨機因素的話,那麼按理說每次下棋的套路都是一樣的。觀察結果,如果只有和棋,那沒辦法了,估計西洋棋的規則所限,在雙方都按照「最優策略」下的情況下得到的只有和棋;如果一方贏一方輸,那太好了,把贏棋的電腦那一方的棋譜記錄下來,然後讓人就按照這個棋譜跟電腦下,把把贏!~~如果電腦下西洋棋的演算法中有隨機因素的話,這個就會比較麻煩,但是可以從數學上證明西洋棋的不同的棋局數目是可數的,另外我不太了解西洋棋的規則是否有足夠嚴格的限制所謂的「磨棋」,如果限制足夠嚴格的話,那麼不同的能夠分出勝負和的棋局數目將會是有限的,儘管這個數字會很大。

在預設不同的棋局數目是有限的情況下,我們考慮把一盤西洋棋的走法排成一棵(假想的)樹,樹的最底層的節點是所有的分出了勝負和的棋局。現在我們逆向考慮,先考慮「殘局」,同時做出乙個斷言(或者也可以稱之為定義)在進入「殘局」時,必有一方存在必勝策略(或者不輸策略)

(這個斷言應該可以完全轉化成用純圖論的語言來描述)。然後我們理論上就可以用純數學的手段去分析這棵(假想的)樹,找到進入「殘局」的結點等等,然後我們就會發現電腦是否會變的不可戰勝本質上只與西洋棋的規則有關,與「計算機效能的提公升」與否無關。

10樓:文刀叉點

電腦的話是乙個尋找最優解的過程,與其說是它在思考怎麼和你下棋,倒不如說它在引誘你下棋

它走的每一步,都是它認為最容易達到最優解的步驟而這個最優解,則取決於資料庫裡的資料

而且電腦走棋最大的乙個問題在於它是嚴格的,也就是其實是乙個閉式解的問題,而人類走棋則不一樣,比方說走到了同樣乙個棋局,電腦接下來的走法可能每次都是相同的,但是人類則可以走出不同的走法。

但是歸根結底,人類和電腦下棋等同於乙個已經知道每道題答案的老師在看著學生作答一樣,如果學生只是老老實實答題,那麼答案全在老師預料之中。如果學生突然一下發散思維了,老師可能就會預料不及了

11樓:李寧

電腦是否會超越人腦並終結人腦一直是乙個繞有興致但又令人擔心的問題。最近的乙個事件表明,電腦在戰勝人腦的程序中又向前跨出了一步。

12樓:

圍棋的複雜度y與路數x是個鐘形曲線,中間高,兩頭低。

我簡單的科普說法,非嚴格證明:棋盤遠大於19路時,角對邊,邊對中腹的影響力都越來越弱化,一顆子在邊、中腹的存活難度大大低於19路。整盤棋會裂成為區域性戰鬥,而和全域性脫離。

另外,出土過歷史上的多於19的棋盤,後來剩下了19路。

致匿名id:

回覆匿名使用者(作者):是你主張就是你舉證好不好? 你既然先給圍棋下了這個結論,那你對圍棋了解多少?你的圍棋棋力如何? 你就有必要給出個相應的答案。

13樓:

這樣的電腦在可以預見的將來應該不存在。

我可以舉乙個例子,西洋棋中的殘局

這是西洋棋中著名的馬象殺單王局面。這是乙個白棋必勝局面。但是如果黑棋防守得當的話,白棋需要48步才能殺死黑王

而西洋棋中有一條規則是:雙方50步不吃子、不走兵即為和棋。所以說如果黑棋不下錯,白棋下錯一步,很可能就贏不了了

去年國象全國女子賽上就有棋手因為在馬象殺單王中失誤導致沒能贏棋

我曾經把這個局面扔給Fritz13算過。算了乙個多小時,深度才到38,也就是離終局至少差10步。後來我實在沒耐心算了,因為從30步開始,深度每加深1時間都要長很多很多。

搞不好一天都算不出來。

這樣乙個簡單的局面都難以窮盡,可想而知要達到題主所說的,儲存所有局面有多難。

西洋棋中,第一步棋的合法棋步有20種(8個兵向前走1到2步,兩個馬分布有2種走法)。隨著棋局的發展,可以走動的棋子會比初始狀態更多

(比如白方在走了第一步王前兵之後,下一步合法棋步增加到30種:7個兵向前走1到2步,王前兵向前走一步,白格象走1到5步,皇后走1到4步,王走一步,王翼馬三種走法,后翼馬兩種走法)

一局棋,絕大多數情況不會低於20回合(雙方各走20步)。事實上20回合就結束算是非常非常非常短的對局,感覺40~60回合比較常見,不久前我還在乙個比賽中看到了90回合以上的對局。

要計算題主所提到的「每一種走法後可能出現的各種情況」,我們可以樂觀地估計一下:每步棋都是20種變化,並且雙方下棋不超過20回合。這樣得到的棋局種類是,大約是

現在普通人使用的電腦每秒的計算速度差不多是這樣的級別。一年有不到秒。即使你有一台比普通電腦快上一億倍的超級電腦,這些變化還要算年。

要知道宇宙的年齡也只有130億年,也就是這個數量級。所以說,西洋棋的變化是無法像你說的那樣算完的。計算機的速度很快,但是遠沒有快到那個程度。

但是我們又注意到,如排名第一的答案所說,現在計算機的西洋棋水平非常高。我的老師曾經這樣和我形容(大意):讓世界冠軍和最高水平的電腦下一盤棋,可能稍微有一點贏棋的機會。

但是多下幾盤總成績基本上是不可能佔優的。所以說,計算機下棋並不是盲目地暴力計算的。它的設計方法某種程度上借鑑了人類下棋時的思考方式。

我們知道,水平再高的棋手也無法在只下幾手的情況下預見到終局的局面。剛開始學棋的時候,老師總是會說要「算三步」「算五步」。AI下棋也是如此。

減少計算的深度,可以有效控制計算量。往往五步之後局面好的一方,獲勝的概率也高。比如你白賺了乙個皇后,一般來說只要以後不犯低階錯誤就能贏棋。

另外,告訴計算機怎樣判斷局勢,也是減少計算量的必需手段。說乙個最簡單的方法:統計雙方子力,後算9分,車算5分,馬和象算3分,兵算一分。哪方的分多就認為哪方局勢好。

如果計算機按這樣判斷局勢,大概就可以達到初學者的水平。在此基礎上可以加上一些更細緻的分析,比如根據哪方的子力更活躍(能下的地方多),兵的形狀和高低,對敵方王城的威脅程度等等來加分或減分。

知道了這些,就可以讓電腦來比較好地下棋了。當然,一些搜尋演算法和優化手段也是必要的,像alpha-beta剪枝,A*演算法之類。如果你用過Fritz這樣的西洋棋軟體,也會看到它在下棋的時候會動態給出對局面的評分。

這個評分很多時候比職業棋手的判斷更為精準。搜尋深度根據局面的複雜程度,從六七步到二三十步不等。

此外在西洋棋的AI中,開局庫的使用也有很重要的作用。對於計算機來說,離棋局結束越近,也就越容易判斷局勢。相比之下,開局由於局勢尚不明確,不太適合各類搜尋方法。

而且在一些高手對決中,開局下得不好後面很難彌補。所以各類國象軟體都會有自己的開局庫,裡面存放了大量職業高手的對局,用這樣的手段來彌補開局水平的不足。

大概就說這些,想到了什麼再補上。希望可以幫到你。

Edit:

今天看到乙個很好的答案,其實說得比我更專業,推薦:

象棋和西洋棋的電腦程式是如何設計的?

中yunor的回答。

14樓:

樓上們雖然說得都是對的,但全都是答非所問嘛……

題主的核心問題在這裡:

我們知道,在西洋棋中第一步只能走馬或者兵,然後下一步能走的棋子和棋子可以走的位置也是有限的,那也就是說每走一步後對手能走的方案也是有限的。那麼如果有一台電腦效能非常之強大,它計算並儲存了對手每一種走法後可能出現的各種情況,並且知道最後的輸贏(當然這需要非常巨大的計算量,我也沒法算出來有多少)。那麼我們可以不可以說,隨著電腦效能的發展,有一天,我們將無法在西洋棋上戰勝電腦,因為電腦已經知道了西洋棋的所有可能性

所以題主是在問暴力打表啊你們扯DeepLearning做什麼!

在直接回答題主問題之前,首先給題主介紹另一種分析思路。

題主是通過開始狀態唯一(顯然)、狀態轉移有限(每次最多16個子可以動,每個子最多能動到63個地方,所以每次決策的集合大小不會超過16*63,這上界給得也太喪心病狂了)、有限步後終止(感謝長將和、逼和和三次重複局面大大簡化了這裡的論述……)這三個條件推出總狀態數有限的。這是對的。但還有另外的思路:

直接考慮棋盤上可能出現的狀態。

我們考慮任意在棋盤上擺棋子,成為一種棋盤「狀態」,而不要顧及這狀態是通過什麼走法走出來、以及乙個智商正常的人可不可能走出這棋局的。考慮到你所設想的那台「知道所有可能性」的電腦是「知道所有可能性」的,顯然每一種擺法我們都應當考慮(中西洋棋下得不好,一下子想不出來有沒有狀態是無法走出的,除了沒王),包括白方十六子俱全,黑方只剩乙個光頭王了這種狀態。正常人肯定下不出來,但是要考慮不正常的人,不能讓程式這時候茫然無措了呀。

另外這個狀態對於該黑方走和對於該白方走肯定是不一樣的。

然後我們的電腦將把這些狀態全部存起來,並且開始提前做一些運算:計算每個狀態(布子情況+落子方)是對於黑方必勝,白方必勝,還是必和,同時把對於落子方而言的最優決策記下來。

怎麼計算?

從終態倒推。先把顯然可以區分勝負(將死,和棋)的狀態標記好,然後對於每乙個狀態(方便陳述,假設此時由黑方落子):

如果不管怎麼落子,之後形成的每乙個的狀態都已經被標記好勝負態,那麼:

如果這些狀態每乙個都是白方必勝,那麼當前狀態也只能是白方必勝,走到這兒黑方就可以滾粗了;

如果這些狀態中有至少乙個是和棋,剩下都是白方必勝,那麼記下來此時黑方應該走那步能走到和棋狀態的,並把當前狀態標記成和棋;

如果這些狀態中至少有乙個是黑方必勝,那麼記下來此時黑方應該走那步能走到黑方必勝狀態的,並把當前狀態標記為黑方必勝。

如果有一步落子之後,形成乙個我還不知道它勝負態的狀態,那麼先不管它,以後再說。

容易知道,這樣倒推大概也是可以把所有狀態都標記好的(重複局面的和棋比較複雜,我覺得特殊處理應該能搞,等大神糾正)。如果我們通過這樣的提前運算,能知道對於所有的狀態的勝負態和最優決策,這遊戲確實就不用玩了,計算機必贏無疑,至少是和。

另外這裡還有個小推論:如果真的可以得到這個表,那麼最開始的局面:布子剛剛完成,其實最後的結局已經定了。因為開局也是乙個狀態,也有其必勝、必負、必和態。

但我們能不能拿到這個表呢?

現在我要開始算,所有的狀態數有多少。

首先從白方的16子中,選出在場上的棋子。王肯定在。所以,白方有x子存活,這x子不同組合的方案是(C代表組合數):

顯然黑子也是一樣,為了方便理解換個變數名

然後把這個子放到棋盤上,顯然就是個排列數:

統計所有的x和y,所以最後總的狀態數:

這個狀態數大概是個什麼水平?

用斯特林漸近公式(感興趣自己查吧~)大約可以搞出乙個精確近似?

不過我比較懶,暴力給個不精確下界,就算忽略兩個組合數當成1,只考慮排列數,而且只考慮最後一項

這個數就大約是以上了。

再乘上前面的組合數,然後對每一項求和……

我物理學得很爛,但我猜,就算我們以乙個原子作為儲存單元,打碎月球來做我們的硬碟都不太夠……

所以,你所說的那個方案,思路是對的,現實是不可能的。現在的電腦玩西洋棋,還是要用Machine Learning,Monte-Carlo,或者暴力alpha-beta之類的搜尋演算法和調引數技巧來解決。

出現不可戰勝的電腦?人幾乎不可戰勝的電腦,現在已經遍地是了。但這些「戰無不勝」的電腦,和電腦下,還能是「不可戰勝」的嘛?

理論上戰無一敗的電腦,要等到上面說的那個暴力打表建立起來才行。

我學電腦科學與技術需要自己買電腦嗎?

LFD 需要的,大一也有程式設計上機課,一般兩節課時間不太夠,還要課下再寫,雖然學校一般有機房,但肯定是不如自己帶電腦方便,而且學校的電腦又慢版本又老不方便,用自己電腦你可以除了完成作業之外進行更加深入的學習,自學一些別的東西比如別的語言Python之類的,我同學大一就有跟著學長參加比賽的,肯定要自...

學電腦科學與技術專業配置什麼樣的電腦?

隼翼 是這樣的,如果僅僅是普通專案的開發和研究,那麼普通的5 6千的膝上型電腦就夠了,又攜帶方便,滿足你的正常使用。但是如果你打算進行前端圖形建模渲染的研究,就需要配置好一點的顯示卡和記憶體配置,可能需要自己配置乙個大概8 9千左右的台式電腦電腦才行。 Cian 不知道你的情況怎樣。作為乙個計算機專...

準備選電腦科學與技術專業,什麼時候買電腦,買什麼電腦呢(mac還是win,win推薦哪一款)?

法斯特咱有 看你自己的情況了,大學買什麼電腦和專業沒有任何關係 大學生財經類的在蘋果macbookpor i5 10代和MacBook M1 之間徘徊,或有推薦麼? 首先,cs專業課程並不限於哪種OS,無論mac,win還是各種Linux發行版都能滿足你的需要。如果現在大學cs專業還開設類似 計算機...