領先不到十分,跟擲硬幣一樣
棋下到一半,你想知道的是手上多出來的子力有沒有意義。答案取決於差距多大,而跟下到第幾回合的關係,比你以為的小得多。
多一顆卒或一匹馬等於沒有。領先不到十分的一方,第 10 回合贏 52%,第 40 回合贏 59%:就是擲硬幣,握多久都不會變好。領先一顆中等的子,也就是十到十九分,早盤大約 70%,後盤 81%。要到四十分,一個將,或一車加兩顆中等的子,棋才真的結束:第 20 回合 95%,而第 30 回合領先到這個幅度的 56 盤,一盤都沒輸。所以第 30 回合領先兩顆卒不算領先,你只是平盤多了幾顆子。
五回合就定了,不然就是五十回合都定不了
每一盤棋都有一個時刻,是子力領先最後一次易手。在那之前,兩邊還在互換;在那之後,一方領先並且一路領先下去。下面這張圖就是這個時刻落在 168 盤分出勝負的棋局的第幾回合。
它不是繞著第 16 回合中位數的常態分布。有 43 盤,最後一次易手發生在前五回合以內:有人贏下一次早期的交換,然後再也沒被追上。另有 36 盤發生在第 46 回合之後,一場長仗的尾聲。中間落下的不多,而全部 200 盤裡有五分之一從頭到尾沒換過領先方。要擔心的是早的那一群。第 5 回合時大半棋盤還蓋著,所以那些棋是被前面幾次翻子、以及棋手怎麼處理它們決定的。照西洋棋那套覆盤,這會被算成實力。完局覆盤把每一次翻子拆成決定和棋子,就是為了這件事。
先失將,就輸了這盤棋
200 盤裡有 188 盤有將倒下,中位數的棋局在第 24 回合。有將被吃且分出勝負的 167 盤裡,先失將的一方輸了 146 盤:87%,上下三個百分點。原因是一步棋就有三十分易手。
示例棋局,這批棋的第 1183 號種子:72 回合,領先就在這裡最後一次易手。
沒有別的子能讓分數這樣一次翻過去,而將也是唯一沒辦法靠大小順序保護的子。棋盤上最小的那顆子吃得掉它。
先翻沒有價值
先手在 168 盤分出勝負的棋局裡贏了 89 盤,53%,上下四個百分點;把和棋算半分則是 52.5%。第一翻給的顏色沒有差別(拿紅 80 盤贏 45,拿黑 88 盤贏 44),第一顆子的大小也一樣,至少 200 盤看不出來:切成七種之後每種只剩十幾二十盤,誤差範圍把差異都吞掉了。200 盤能排除先手有大優勢,排除不了小優勢,所以對棋桌上那個最老的爭論,答案是:先翻就算有用,也比這個幅度更小。
一般的預期剛好相反。先翻的那一下,把一顆子攤給對手看、讓他來應,在你對棋盤一無所知的時候就定死你的顏色,還把你自己的一顆子丟在外面沒人保護。這 200 盤看不出這個代價,而它們也是最不適合用來找這個代價的地方:每一顆蓋著的子都是一個機率節點,第一手就有三十二顆,所以引擎的搜尋正好在問題所在的地方最淺。人,或是學出來的評估函數,可以不用窮舉就想清楚那一袋子大概長什麼樣。如果先翻真的是吃虧,這會是我預期強的開局棋手最先推翻的一個數字。
每六盤有一盤和棋
32 盤和棋,其中 31 盤是 40 步無進展計數判和,一盤下到 150 回合被中止。沒有一盤重複同一局面三次。先把這 16% 當成關於 MistyBanqi 的事實:其中 17 盤曾經走到一方領先四十分的局面,也就是上面那張表說已經穩了的幅度,而那正是這個引擎出了名的盲點,因為它的評估函數裡沒有任何一項獎勵把贏棋收官、而不是守著手上的子力。和棋也都是長棋,88 回合對 71 回合。能把這個引擎磨掉的優勢兌現的棋手,和棋會更少。
引擎對局沒說的事
一個引擎自我對弈 200 盤,量到的是這個引擎,不是公園裡的暗棋。先手和第一顆子的數字來自發子和規則,應該可以照搬;其餘的沒那麼能照搬。人會被一千萬節點的搜尋不會踩的陷阱吃掉將,人會把這個引擎磨掉的贏棋收下來,實力不對等的兩個人也比同一個程式的兩份複本更早分出勝負。同一個引擎在本站跟人下過五十二盤,人這邊 14 勝 33 負 5 和。公園規則也會改變這些數字:連吃、車直衝、砲翻山跳到空格,每一條都會動到上面的結果,而本站一條都不採用。
同一批棋裡的二十盤之一,存成一份研究。用箭頭一步步看;沒人翻過的子保持蓋著。
常見問題
- 暗棋領先多少才算安全?
- 比大多數人下棋時以為的要多。200 盤引擎對局裡,用引擎的分值算(將 30、車 14、砲 12、士和象 10、馬 8、卒 4),第 30 回合領先不到十分的一方贏 59%,領先十到十九分贏 81%,而第 30 回合領先四十分以上的,一盤都沒輸。
- 暗棋一盤棋什麼時候就定了?
- 同時有兩種答案。168 盤分出勝負的引擎對局裡,有 43 盤贏家在第 5 回合就取得不再改變的領先;另外 36 盤,領先到第 46 回合之後還在易手。中位數是 71 回合棋局裡的第 16 回合。
- 將在暗棋裡有多重要?
- 200 盤引擎對局裡有 94% 有將被吃,而先失將的一方在分出勝負的棋局中輸了 87%。引擎給將 30 分,給下一級的車 14 分,而卒,棋盤上最小的子,是少數吃得掉它的其中一個。
- 暗棋先手有優勢嗎?
- 沒有大到 200 盤引擎對局量得出來的優勢。先手在分出勝負的棋局贏了 53%,離擲硬幣不到四個百分點,而第一翻給的顏色沒有差別。
- 暗棋多常和棋?
- 這個引擎自我對弈是每六盤一盤,而且全部來自 40 步無進展的規則,不是重複局面。這個比率講的既是這個引擎不擅長把贏棋收下來,也是這個遊戲本身;人的對局和棋應該會更少。
來下暗棋
這些棋局裡的引擎,你一打開棋盤它就坐到對面;每一盤下完的棋都有一份覆盤,把你的決定和你翻到的子分開。