如果計算機能夠在比賽結束之前評估每一局比賽,評估將永遠不會改變。確實,對每一步的評價都是“勝利”,“失敗”或“平局”。這基本上就是殘局表庫中發生的事情。 * sup>如果計算機可以針對每個位置執行此操作,則與計算機進行的每場比賽都將由計算機組成,要么辭職不動,要么在初始階段提供平局職位或對您沒有辭職或接受抽籤要約感到惱火。
但是,計算機無法評估那麼長的距離,因為它可能花費的時間太長,這兩者都是因為遊戲可能會很長(在遊戲中可能發生數百次動作)。原則),因為每次行動都有很多可能性。因此,計算機必須採取許多捷徑。這包括嘗試快速找出最重要的候選動作是什麼(採取未受保護的棋子可能是個好舉子;懸掛女王可能是一個糟糕的舉子; ...),還包括在幾步動作後停止搜索並使用一些啟發式方法而不是進行更多搜索以試圖找出最終位置是否不錯。
問題是這些快捷方式可能會出錯。當計算機實際上是天才的犧牲時,計算機可能會認為懸掛一塊是不好的。它可能會決定某個位置確實已經穩定,但實際上尚未穩定。它可能沒有足夠的力量去看到足夠長的未來,以了解特定舉動的真正意義。
這是一個簡單的示例,儘管它不再是很現實的。假設您將要與我成為伴侶,但我可以做一系列的十項檢查來拖延您的時間。如果我只看十步,那我想我做的還好:也許我什至是一個棋子,所以我的評價是“經過十步,我仍然是棋子,所以我很好得分+1”,我打了我的第一張支票,你回答,現在我發現它已經十分相配了,然後辭職了。這就是所謂的“水平效應”,現代程序試圖避免這種現象(例如,通過沿具有很多強制移動的線更深地看),但它說明了一般原理。
如果引擎能夠看到,比如說未來有十步之遙,那麼隨著每一步的步伐,它在遊戲中的步伐就會越來越遠。在初始位置,它可以看到棋盤在第10步時的樣子;一動之後,它可以看到移動了11,以此類推。 (同樣,這是一種簡化,因為如今計算機在未來並沒有固定的距離,但這給了您大致的想法。)
您給出的示例僅僅是一個例子。我給出的示例的不太生動的版本。隨著做出更多的動作,計算機可以更深入地了解遊戲,因此可以給出更準確的評估。另一種看待這種情況的方式是在信息方面:隨著演奏更多動作,計算機將獲得更多信息。過去一直在猜測您對1.e4的反應是什麼,但現在知道您在玩西西里語,依此類推。
* sup>這裡有些細微的差別,您實際上需要計算獲勝的移動次數,以避免重複排名。例如,考慮一下KQ vs K的殘局。每一個不會僵持或屈服於女王的舉動都會獲勝,因此您需要一種機制來朝著將死的方向前進,而不是隨便說說:“哇,我要全力以赴贏得這一勝利–幾乎每一個舉動都會勝利!”