探索圍棋官子最優解(二):棋盤的溫度
前文見 不會功夫的潘達:探索圍棋官子最優解(一):卡片圍棋
{本文雖然是最後寫的,按照邏輯順序應為本系列第二篇,望讀者諒解。}
(本文暫時謝絕一切轉載)
傳統圍棋教科書上的官子理論自成體系,但構成其根基的一對概念「先手」、「後手」並無精確定義。無論是理論還是實踐,整個理論體系都因此產生了巨大的問題。本節我們將藉助卡片圍棋,給先後手以精確的定義【注1】。
出入計目法
「出入」一詞源自日本大正時代,本意為會計中的收入與支出。傳統圍棋教科書上普遍採用出入計目法(Deire Counting)評估官子的價值。請看以下兩例:
例1:後手官子
本例中,局部黑白無論誰先動手都可以吃掉對方的子,從而有所收穫。若黑先,則黑吃白二子,黑方得4目,記為+4;若白先,白吃黑一子,白方得2目,記為-2。兩者相減即得到出入值,為4-(-2)=6目,即本官子價值6目。由於局部無後續,此處為雙方後手官子,因此官子價值記作後手6目。
例2:單方先手官子
本例與上例有所不同。此局部,白先則可在a位吃,局部白棋得5目,記作 -5。而黑先在a位吃以後,白棋須在b位補一手,否則下一步黑棋就可以在b位全殲白角。按照黑a白b計算,局部黑棋4目,白棋2目,凈目數是+2。由此我們得到本局部的出入值是+2-(-5)=7目。我們把黑先的a處官子稱作先手7目,白先的a處官子稱作逆收(逆先)7目。
先後手是全局概念
按照傳統理論,先手即對方須立即回應的著手,而後手則是對方不須回應的著手。這立即造成了疑問:什麼情況下需要立即回應?上面例2中,黑a之後,若白b不走則角部會被黑棋殺死,因此白棋需要立即回應。但是,殺角價值區區後手17目;如果棋盤上其它地方有價值更大的著手,白棋不必立即回應,先手就變成了後手。
由此可見,僅考慮一個局部,我們無法判斷一步棋到底是先手還是後手。換句話說,先後手取決於全局的狀況。從全局考慮問題總是很麻煩,我們希望能將全局問題轉化為局部問題,而卡片圍棋就給我們提供了這樣一個途徑。
定義溫度
江芮夫婦玩的卡片圍棋中的卡片從20,19.5直至0.5目共40張。現在假設棋盤上只有例1中的一個官子局部,以及取了一部分的卡片摞,還剩下3目至0.5目的六張卡片,黑先,請問現在應該走官子還是拿卡片?答案是沒有區別!若收官子,黑方得棋盤上的4目+2.5+1.5+0.5=8.5目;白方得3+2+1=6目,黑勝2.5目;若拿卡片,黑方得3+2.5+1.5+0.5=7.5目,白方得棋盤上的2目+2+1=5目,也是黑勝2.5目。換句話說,例1中的官子與一張3目的卡片等價。
有些官子相當複雜(如上節引言中的例子),0.5目的卡片不足以精確描述其價值。如果不考慮遊戲性,僅從理論研究出發,我們可以加厚卡片摞,比如0.001目,0.002目,...以千分之一目為公差遞增直至100目的十萬張卡片。假設棋盤上剩下一個局部,以及一摞十萬張卡片餘下的一部分,最高值卡片為X。為了避免人類失誤的干擾,我們可以做一個思想實驗,讓決不犯錯的圍棋上帝做選擇。如果圍棋上帝認為拿X目的卡片和走這個官子沒有區別,我們就定義這個局部的溫度【注2】(temperature)為X。所謂溫度,就是熱的地方更緊要,冷的地方可以先放一放。
由溫度定義先後手
定義了溫度之後,先後手的嚴格定義也呼之欲出。如果一步棋令局部溫度上升,我們就說這步棋是先手(sente【注3】);若其令局部溫度下降,則這步棋是後手(gote)。
比如例2中的局部,溫度是7目。黑走a之後,餘下局部溫度是8.5目,有所上升,因此黑a是先手。白走a之後,餘下局部溫度是0目,因此白a是後手。
一個全局的例子
上圖脫胎於江芮夫婦卡片圍棋對抗的第二局,各個局部的溫度已經標出(紅色代表白棋行棋的位置,藍色代表黑棋行棋的位置,紫色代表雙方行棋位置重合)。現在輪到黑棋,全局最熱的地方在左下角,溫度是5/3目,因此黑棋走左下的扳。全局的溫度即所有局部溫度的最大值,這是溫度的基本性質。黑扳以後,左下溫度下降至1/3目,全局溫度最高的點變為中央J7位的粘。白粘之後,G5位的溫度急劇上升至約3目,意味著白粘是先手,黑必須在G5應一手。接下來白棋走N7,溫度為25/24的局部。
白4提令右邊的溫度下降至11/12目,是後手。接著E5提和F13扳溫度都是1目。黑走E5提,白走G13位扳,令局部溫度上升,是先手。黑H13回應的打吃也是先手,而白F13接令局部溫度下降至0,最終是後手。餘下棋盤上最熱的點在左上和右下之間搖擺,雙方依次收官直至終局。
見合計目法
我們不是圍棋上帝,如何得知某個局部的溫度呢?好在傳統的出入計目法遠非一無是處,將其稍加改造為見合計目法(Miai Counting)即可兼容。對於相對簡單的局面,我們可以先採用出入計目法的結果,記作D; 然後對黑先結果與白先結果下雙方所花步數做差,記作步數差T。不難發現,如果是雙方後手官子,則T=2;如果是黑方單方先手官子,則黑先時黑棋不用多下,白先時白棋多下一步,步數差是1,因此T=1;逆收官子同理,也是1. 則見合目數M可以用以下公式:M=D/T計算。
例1是雙方後手官子,D=6,T=2,因而M=6/2=3,見合價值是3目,即局部溫度。例2是黑方先手官子,D=7,T=1,從而M=7/1=7,見合價值是7目。如果有雙先官子,則T=0,局部溫度是無窮大。此所謂「雙先官子無窮大」,搶到雙先官子就是白賺【注4】。
見合數目法與傳統理論兼容於「單先、逆收官子價值相當於兩倍大小的後手官子」,不過見合數目法的表述更簡潔,也方便了不同官子之間直接做加減法。對於複雜的官子,我們可以循遊戲樹將其化歸為簡單局面,然後遞歸求解。
既非先手也非後手
似乎一切關於官子問題都可以得到解答,只差一個程序員了。如果讀者這麼想,就低估了圍棋官子的難度。按照前文先後手的嚴格定義,我們尚遺漏了一種溫度既不上升也不下降的情況。這樣的棋既不是先手也不是後手,大大增加了問題的複雜度。為了分析這一類著手,我們將在下節引入新的數學工具。
後文見 探索圍棋官子最優解(三):組合博弈論
探索圍棋官子最優解(四):最後一目
- 本文部分內容引自埃爾文教授2006年在加州大學伯克利分校教授俱樂部的演講。
- 在組合博弈論中,溫度的嚴格定義如下:若G={G^L|G^R}是一個賽局,且 {G^L-t |G^R-t} 與一個數字最多只相差一個無窮小量,則稱t是賽局G的溫度。正文中的定義與數學定義實質相同。
- 大部分英文圍棋術語來自日語的羅馬字,如先手 (sente)、後手 (gote)。
- 首屆中日圍棋擂台賽,聶衛平對小林光一,黑115大緩手,被小林搶到右邊的雙先官子,凈損4目,棋局瞬間逆轉。
推薦閱讀: