如何科學地測試引擎?
科學的引擎測試,要讓引擎處於相同的機器下,用一個測試工具、雙方測試條件和設定一致、用數量足夠多的多樣化開局局面、並確保是純引擎計算出招(部分引擎對主流局面可能有內建開局庫),每個局面進行分先測試,最好不要開後臺思考,並儘量排除可能的後臺程式干擾、排除引擎之間的棋規分歧棋譜與介面和引擎之間的棋規分歧棋譜。
而且偶爾可以看看棋譜,可以看出是否存在一些問題,比如棋規設定不對、時間設定不對、設定了限定棋力等等。
最好不用超執行緒,除非只開一桌而非多開。並且排除可能的多路 CPU 排程問題。
並且測試數量要足夠多,避免誤差,例如幾千局,最好使用統計學工具。如果差距過小甚至要至少幾萬局。(假設 a 對 b,a 能勝 10%,其他和棋。那麼連續 10 局全和棋的機率依然超過三分之一,不能因為這 10 局就斷定他們相同。)
另外,建議採用局時加秒制測試,引擎會根據局面複雜度等資訊自行分配思考時間,可以減少不必要的思考,相同用時下的棋力也更強,除非引擎的時間管理太差。
測試的作用是放大引擎之間的棋力差異,所以如果引擎棋力接近,一般採用優勢局面分先測試,優勢局面分先更能放大棋力的差異、減少通過誤差所需的時間。
