本來這題只需要五個字(策梅洛定理)就可以解決,參見此答案圍棋有沒有必勝策略? - 知乎。
但是這類問題在知乎上反復出現,我有必要針對題主的問題說明添加一些補充。
題主的疑問是,圍棋雙方每一步棋都有幾百種合法的選擇,一盤棋又有幾百個回合,排列組合一下以後是天文數碼。一個必勝策略,能夠包含這些天文數碼嗎?
1、「搶三十」
我們先來看一個小學生都能理解的遊戲: (來源:資優網)
小聰與小明在搶30。兩個人從1 開始,輪流往下報數, 每次至少報一個數,至多報三個數 ,誰報到30 就勝了。「1,2」,小聰開始報數。「3,4,5」,小明接著往下報。「6」。「7,8」。結果,小聰報到30,小明輸了。接連報了幾次,總是小聰勝。「怎麽老輸?我的運氣真不好。」「這不是運氣。勝有勝的道理,垐有輸的原因。換個玩法,你就明白了。」小聰取出一副撲克,說:「我們輪流取牌,每次至少取一張,至多取三張。這回取最後一張的算輸。」
玩了幾次,還是小明輸。
「老是你贏,把訣竅告訴我吧。」
「訣竅很簡單,把問題倒過來想。假設是你報30,那麽,在這之前的一次,你應當報到多少呢?」
「不能報到29,也不能報到28 或者27。要是我報到27,28,29,你就可以報30。所以,我應該報到26。要是我報到26,那麽,不管你怎麽報,我都能報到30 了。」
「對。要搶30,先搶26。那要搶26,先搶什麽呢?」
「先搶22。」
「對。這樣,我們就得到了一串取勝的數——30,26,22,18,14,10,6,2。這樣,第一個人應當報到2,他就可以陸續報到6,10,14,18,22,26,30。」
「這麽說來,總是第一個報數的人勝了。」
「是這樣的。不過,要是他不知道訣竅,讓第二個人搶去一個取勝的數,勝利就可能易手了。」
這個問題,我想對於在座各位都是很清楚的。「搶三十」,先手方有必勝策略,而且可以精確地描述:先手方先報1,2;之後,若後手方報n個數(n=1,2或3),則先手方立即回以4-n個數。最終,先手方總能搶到30.
這個具體的必勝策略,包含了多少種不同的變化呢?後手方每次有3種選擇,先手方每次只有一種回應。6個回合之後,先手方就能搶到30. 因此,總變化數是3^6=729種。
那麽,如果小明和小聰搶的不是三十,而是每次可以報1-299個數碼,報出1,000,000者為勝呢?類似於剛才的分析,我們照樣可以為先手方找到必勝策略:先手方只需先報100。然後,若後手方報n個數(n=1,2,...,299),先手方立即回以300-n個數。先手方總能搶到100,400,700,1000,...999700,1000000這一串數,從而獲勝。
我們來看這一套必勝策略包含的變化。後手方每次有299種選擇,先手方每次也只有一種回應。3330個回合之後,先手方就能獲勝。因此,總變化數是299^3330, 不管這數多大,反正肯定比圍棋的總變化數(遊戲樹復雜度,限定棋局在400手以內完成)要多。然而,這個數碼終究是有限的. 因此,這個無聊的遊戲,就算是上帝來跟我玩,只要我先手,我穩操勝券。相信各位能夠理解其中的邏輯。
2、有限遊戲
由此,我們引出策梅洛定理(維基百科)
定理表示在二人的 有限 遊戲中,如果雙方皆擁有完全的資訊,並且運氣因素並不牽涉在遊戲中,那先行或後行者當一必有一方有必勝/必不敗的策略。這條定理雖然是用自然語言描述,但其中的概念都很直觀,沒有定義上的爭議。重點在於「有限」二字。上面講的「搶一百萬」遊戲,雖然變化巨多,但終究有限。在2002版(最新)中國圍棋規則的限定條件下,圍棋也是有限遊戲。
中國圍棋競賽規則(2002年版)第一章 總則
第6條 禁止全域同形
著子後不得使對方重復面臨曾出現過的局面。
這一條防止了一盤圍棋無限進行下去。 需要說明的是(盡管我已經說明了N次,若我不再重復,一定會有人挑刺。請了解禁全同規則的朋友原諒我的啰嗦。),「三劫迴圈」、「長生」等特殊棋型,在中國規則下嚴格說不構成迴圈,參見陳祖源老師的研究。現在部份比賽中將三劫迴圈判和棋/無勝負,是一種權宜之計,或者對局雙方對規則不了解的情況下達成的協定,或者采用的是日本/南韓規則。
綜上所述,圍棋是個有限遊戲。因此,取決於貼先數(貼子、貼目)的不同,黑方或白方之一必然有必勝/不敗的策略。
圍棋盡管變化繁多,但實際變化總數仍然不敵「搶一百萬」這個無腦遊戲。因此,圍棋有一個包羅萬象的必勝策略並不是什麽奇怪的事。
(註:行文簡潔起見,下文可能出現「黑/白方必勝(不敗)」等表述,其含義為,在此局面下,黑/白方有一個必勝(不敗)策略。)
3、非構造性證明
也許有些思維活躍的讀者還有疑問。「搶一百萬」這個遊戲變化雖多,但掌握規律以後沒有任何難度,因為我們有一個簡單易行的必勝策略。但是圍棋呢?你找得出一個具體的必勝策略嗎?吳清源不能,柯潔不能,甚至AlphaGo也不能。就算是棋藝已臻化境的AlphaGo,距離圍棋之神還遠得很。你找不出具體的必勝策略,怎麽敢打包票說要麽先手必勝,要麽後手必勝?
數學上,能夠證明存在,而構造不出一個具體例子的概念,海了去了。我們把這樣的證明叫作「非構造性證明」。
我們還是以遊戲舉例(來自維基百科)
A、B兩人進行這樣一個數學遊戲:在黑板上輪流寫下1到2000中的任意一個整數(含邊界,A先寫),但不能寫下任何黑板上已存在的數的因子。問:誰有必勝策略?證明:
考慮一種新的遊戲:A'、B'在黑板上輪流寫下2到2000中的任意一個整數(含邊界,A'先寫),但不能寫下任何黑板上已存在的數的因子。在這個遊戲中誰有必勝策略?
如果A'有必勝策略,那麽A在原遊戲中也采用這個策略。註意,1在以後的過程中再也不能寫上了(因為它是任何數的因子)。由於在新遊戲中A'有必勝策略,所以在原遊戲中,A有必勝策略。
如果B'有必勝策略,那麽A在原遊戲中先寫上1。這就相當於構建了上述新遊戲,B是新遊戲中的A',A是新遊戲中的B'。由於在新遊戲中B'有必勝策略,所以在原遊戲中,A有必勝策略。
綜上所述,A有必勝策略。
上述證明過程中並沒有找出具體的必勝策略,但是仍然證明了A有必勝策略。
這個遊戲沒有剛才的「搶一百萬」那麽無腦,找出一個具體的必勝策略很有難度。但是,我們透過邏輯推理,仍然能夠證明先手方必勝,不必找一個具體的策略。
同理,我們可以證明,圍棋在 貼先為零 的情況下,執黑一方有必不敗策略。
預備知識:
中國圍棋競賽規則(2002年版)第一章 總則
第7條 終局
1、棋局下到雙方一致確認著子完畢時,為終局。
2、對局中有一方中途認輸時,為終局。
3、雙方連續使用虛著,為終局。
第9條 計算勝負
著子完畢的棋局,采用數子法計算勝負。將雙方死子清理出盤外後,對任意一方的活棋和活棋圍住的點以子為單位進行計數。
雙方活棋之間的空點各得一半。
棋盤總點數的一半180.5點為歸本數。一方總得點數超過此數為勝,等於此數為和,小於此數為負。
證明:假設白方有必勝策略,將此策略記為S。則黑方可以在第一手選擇虛手(即停一招)。現在棋盤為空枰,輪白方落子,相當於雙方交換了先手。即白方變為先手方,黑方變為後手方。若白方在棋盤任意位置落子,則黑方可以模仿前文假設後手方存在的必勝策略S,獲得勝利,黑勝。若白方同樣選擇虛手,則雙方連續虛著。按照規則第7條第3款,棋局終止,計算勝負。按規則第9條,雙方各得空枰的一半,平局。綜上,白方不存在必勝策略,因此黑方不敗。
註意:這不是模仿棋。
如果你認為黑先模仿棋必勝,你對圍棋的認識還有欠缺。請來 知乎 Live - 全新的即時問答 學習圍棋基礎知識。全套僅售299哦~
4、有貼先的圍棋
當然,無貼先的圍棋並不公平,只在歷史上存在。現行中國規則,黑棋須貼先3.75子,以平衡先手優勢。小數部份是0.75的貼先杜絕了和棋的可能。在排除和棋之後,黑白雙方有且只有一方存在 必勝 策略。AlphaGo最新公布的自戰50局,白方贏得其中38局,勝率76%。現行圍棋的合理貼目 - 知乎專欄 @濕貓 一文中,提到3.75子的貼先規則下,職業棋手的對局,白方勝率約為53%。由此,我們可以認為,現行中國規則,對於職業棋手,白方稍優。雖然不能下確定的結論,我們也可以認為,白方必勝的可能性大於黑方必勝。因此,中國規則或許有必要引入收後還子、細化貼先,以便允許貼先數等同於日本南韓規則的6.5目。若此問題得到解決,中國規則可以說接近完美,圍棋規則統一指日可待。
以圍棋變化之多,我們已經了解的,誠為滄海一粟。必勝策略客觀存在,卻又是人力不能所及。人類千年探尋圍棋之道,又引入高科技手段造出Alpha狗,仍不終極真理的百分之一。然而,我們不會放棄繼續探索。這是圍棋的魅力。