深度(層數)是什麼?上層速度代表棋力嗎?
對目前的強引擎來說,深度(層數)已經不是真實的「深度」,深度(層數)和算幾步棋已經幾乎沒有關聯,因為現在的剪枝延伸策略讓不同著法的搜尋深度很不平衡。
現在顯示的深度(層數)只代表搜尋按照搜尋步驟完整迭代了幾次,有的著法深度會超過這個數字,大多著法深度會低於這個數字。如果絕殺或者循環或者逼近自然限招,由於計算量低,迭代得會很快,所以可能經常出現 245 層。
只是由於歷史遺留,深度這個詞被保留了下來。
所以,n 層不代表在 n 步內最優,雙方几乎沒關聯,即使說搜尋最多算到了幾十步開外,但極端局面也有可能算不到幾步殺。
上層速度不代表棋力。棋力的唯一指標是科學的測試資料。 本質都是計算時間越久越強。
不同局面的上層速度可能不同,不同執行緒的情況下上層速度可能不同,甚至運氣導致上層速度不同。相同所謂「深度」的情況下,執行緒越多一般越強,而不是說相同深度相同引擎的時候大家的棋力都一樣(只有 1 執行緒的情況下會如此)。
多執行緒的情況下,主要提升搜尋樹寬度,所謂上層速度可以視為附帶產物,甚至有的時候所謂上層速度可能不如更少的執行緒。片面地去看上層速度是錯誤的。
相同的引擎無論什麼指令集,即使在不同機器上無論是否超執行緒,只要能影響引擎搜尋路徑的設定相同(例如雜湊表大小、棋規設定、multipv 等相同)、雜湊表被清空的情況下,那麼 1 執行緒每層的分析結果都是相同的,只有 nps 和時間不同(而多執行緒有隨機性)。因此單執行緒深度大確實可以反映棋力強弱,因為深度大了說明搜尋的時間更長;但到了多執行緒,這種「深度」就無法再用於比較引擎棋力,多執行緒既不能互相比較,也不能與單執行緒比較。
對一般人來說,如果上層速度和棋局前面比起來明顯變慢,可能代表算到了一些關鍵變化導致剪枝變少所以更慢,或者後續局面優勢太大導致分數沒有明顯的區分。除此之外,大部分意義在於看著舒服。
