理論上,象棋的所有可能情況是一個有限值還是一個無限值?
我的直觀感受覺得可能是有限的,但是如果這個結論成立,那麼我假設有兩台能計算出所有可能性的計算機互相對弈,那麼是不是就意味著在確定先後順序後,整盤棋走勢和輸贏就已經確定了?
據計算機專業的人介紹,象棋變化理論上應該是可以窮盡的,比賽也是這種在挑戰對手和挑戰自我的狀態之下的過程。至於是否兩台計算機對弈勝負已定的問題,通過目前棋手和計算機的驗證,先走方的效率價值不足以獲勝,大家更認同後走方可以抗衡的說法。
在網上看到這樣的說法:
一盤國際象棋的變化總數達到10^123(這已經遠遠超過了目前所看到的宇宙中所有的原子總數),而一盤中國象棋的變化數量比這還要多得多,可達10^144以上。不知真假。但是我的直觀感受也是覺得是有限的。但是由於數量級太大,現有的計算水平是完全達不到的。鑒於此,我覺得可以嘗試粗略的估計一下:
首先要知道每步有多少種選擇:
最開始,每方棋手有5個卒,車馬炮相士各2,將1卒過河的話,每步有3種可能,不過河有1種,考慮過河的幾率比較低,算0.2吧,那麼(0.2*3+0.8*1)*5=7;如果橫豎都沒有阻礙,車有9*9*2=162,假設阻礙導致車橫豎只有5格可走,那麼是5*5*2=50炮類似,50馬有8*2=16種士與相均是有3、1兩種可能,1的可能性更大,大致取1.5*4=6;將取2吧。這樣的話,每步的可能性為7+50+50+16+6+2=131。若一盤棋的期望步數是每人各下50步,那麼總的可能性為131^100。但是隨著棋局的進行,棋子會越來越少,因此每步的可能性會越來越少。因此,開頭說的10^144的總可能性應該是靠譜的。
現在的最高性能超級計算機的計算速度是一萬萬億次每秒,即10^17/s,約3*10^24/year,那麼用這台計算機計算這些總可能性的話,需要10^120年。這是目前宇宙年齡的10^100倍以上。
即使把世界上所有的計算機都用上,也不會把這個數值降低多少。因此總結如下:1、可能性是有限的;2、這個可能性的總量太大,因此至少短時間內不能實現窮舉所有布局情況是有限值但是整個棋局包含一個棋盤布局的鏈表,這種情況考慮到無意義走棋可以是無限的(直觀的說就是和局可以導致無限情況)但是從勝負的角度來說只要考慮有限狀態就可以了
我只是補充一下上面段楠的計算。
首先其中循環局面和對稱局面未能剔除,其次很多顯然不可能的走法(比如第一步走帥五進一,車一進一,兵五進一等都是很明顯不能走的著法),還有一些是有悖棋理的冷僻招法(比如開局走相三進一或者兵九進一),這些都除去的話一個局面一般也就二十多種可能。比如開局第一步,可能的走法有:
兵三進一,炮二平五,炮二平四,馬二進三,相三進五(高手對戰中比較常見的走法)炮二平三,炮二平六,炮二平七,炮二退一,馬二進一,仕四進五,相三進一,兵九進一(高手幾乎不用的冷僻走法。)一共只有十三種走法。後面有些局面選擇也很少,比如紅方走炮二平五,黑方正常的選擇只有炮2平5,炮8平5,馬2進3,馬8進7,勉強算上象3進5和象7進5,只有六種走法,其他走法都是嚴重不和棋理的,根本不用考慮。但如果紅方採用如飛相開局的話,黑方的選擇就會多起來了。另外一方面是殘局由於子力少,走法就會增多起來,馬有八面威風都能走到,車炮也基本上橫豎兩條線都可以走,走法大大增加,有時可能會有四五十種走法。但殘局的好處是有很多情況是不用再推演了的,比如走到車兵對士象全,那麼無論黑方怎樣抵抗,只要紅方不出大漏著都是有辦法獲勝的了,推演可以到此截至。又比如單車對士象全的官和局面,只要幾步之內不丟子,也無需再推演,如何守和有固定的走法。另外還有一些象棋理論認為很容易獲勝的:比如殘局時一方多一大子兩兵以上,或者中局多兩大子以上,只要幾步之內不被將死、捉死、抽吃,也都認為是很容易獲勝的局面,這些也可以不必再推演了。所以平均一下一步應該是按二十種走法算足夠了。按照以上的簡化總步數也應該能減小一些,四十步就夠了20^80 大概是 1.2*10^104左右,不過這依然是個很龐大的數字,以可預見的未來的計算能力不可能窮舉。有限。
如果使用窮舉的辦法,理論上是一個有限值,但是對於人類來講,太大的有限值也相當於無限值。計算機在很早就已經戰勝人類的象棋選手了,靠的並不是無腦的窮舉,而是一種Alpha-beta演算法。這種演算法的本質是一種二分搜索樹(通俗來講就是列出所有可能的步驟),但是會根據一些條件,刪除掉不必要的分支。這樣,使得計算機能在可接受的步驟內得到最優解。由於圍棋的變化太大,Alpha-beta演算法無法很好的使用,這也是為什麼圍棋是人類最後被計算機戰勝的棋類遊戲。而Alpha go 使用的是機器學習的方法。
有的時候數學上「解存在」和「你解得出來」是兩個概念,就好比實係數多項式函數當最高項為奇次時至少有一個實根,但是求根公式你推不出來。傳統意義上的棋類在規則完善的條件下「所有可能情況」都是有限的,這裡以國際象棋為例,從過程和狀態兩個角度進行分析:1.過程每一步每個棋手可走的棋步數是有限的:王不超過8種、後不超過27種……或者按照最極(sheng)端(shi)的方式考慮,步數少於棋子數16*棋盤格數64,這是一個有限值,而國際象棋規定,連續50回合沒有吃子判和,也就是說最多持續不會超過30個50回合(除了王都吃光了),那麼國際象棋的總可能數小於(16*64)^(50*2*30),而這個數是有限大的。由於我們之前所有的數字都是取極端並且做了很大的放大,實際上的值遠遠小於這個數。2.狀態下面從另一個角度考慮,一盤國際象棋,如果雙方在「磨棋」,那麼上一個回合和下一個回合局勢重複(重複次數多了會造成三次重複和),而這種重複在實際比賽中是沒有任何意義的。所以我們考慮所有棋子擺在棋盤上共有多少種可能。還是簡單粗暴地算一下:一共有64個格子,每個格子上的棋子有不超過12種可能(白黑雙方的車、馬、象、王、後、兵),所以狀態數小於12^64種,這個數字還是有限大的,事實上這些狀態中甚至包含了64個白王之類的這種極端情況,實際的狀態數還是會遠小於這個數。同理可證,中國象棋的「所有可能情況」也是有限的。再加上正規比賽中,雙方有時間限制,而走棋是需要時間的,所以總步數一定會受到這個限制。然而這個數值太過龐大,計算機hold不住,所以不要考慮用暴力窮舉的方式能夠遍歷所有可能。
任何體育運動都是無極限的,不可能出現兩場一樣的比賽,棋類也是一樣。正如世界上不會有兩個一模一樣的東西,可以從哲學意義上來考慮。
推薦閱讀:
※象棋中的卧槽馬為什麼叫「卧槽」馬?
※象棋為何不能按兵不動?
※路邊下象棋的人為什麼常勝?
※許銀川和胡榮華巔峰誰厲害?個人傾向許。?
※象棋和軍棋,請說明哪個更好玩以及理由?