簡而言之,調整國際象棋引擎參數的標準方法是:
- 定義參數
- 給出參數標稱(起始)值
- 運行引擎以查看其性能
- 調整參數值以嘗試改善其性能
ol> 然後重複步驟3和4,直到完成達到您的性能目標。
通常的做法是建立一個實驗室,讓引擎在比賽中與對手對抗。引擎使用兩種顏色進行多種遊戲。感興趣的主要比賽涉及運行參數值為A的引擎與參數值為B的引擎。
您可能會猜到,這種方法的結果很大程度上取決於:
- 選擇的參數
- 如何指定參數
- 在整個測試過程中如何改變參數值
- 發動機如何運行(有限的層深度,有限的時間,靈敏度等)
這種方法還消耗了很多時間。
和創新方法)是研究人員在2010年使用遺傳算法技術開發的,用於:a)指定參數,b)調整參數值。研究人員首先針對一組一組大師遊戲運行了一個帶有一組初始參數值的發動機,以查看它是否可以有效地選擇“最佳舉動”。 “最佳舉動”定義為大師級舉動*。記錄失敗的地方。然後,嘗試另一個參數值集,並確定相對性能與先前運行的對比。
然後,嘗試使用“優勝劣汰”生存的遺傳算法原理來組合參數值的程序化方法。在這裡,“最適合”是指產生最接近理想值的輸出的那個。 (這也恰好是對“最小二乘擬合”回歸的統計技術的一種雙關,該技術用於判斷近似值的質量。)
只有在發現可以模仿通用汽車在實際的發動機比賽階段開始得相當好。在這個階段,不同的參數值集再次相互抵觸,這一次是直接。遺傳算法改進技術被應用來連續產生更好的發動機。
在此研究項目中,使用了36個參數,包括零件的所有材料價值以及許多更常見的戰略評估條件,例如向後的棋子,弱方格,主教對等。但是,研究人員添加了一些新參數,例如每種工件的“國王壓力”,“機動性”值,在與國王相鄰的文件上滾動,在半開放文件上滾動,在箭頭上攻擊國王。 -/ b- / g- / h-文件,經過的棋子與後衛國王之間的分隔等等。
不幸的是,研究人員並未詳細說明如何提出這組參數,以及他們可能測試並拒絕了哪些替代參數。可以合理地假設它們以更大的集合開始,並(通過反複試驗)確定哪些對性能有最大的影響,哪些無關緊要或微不足道,因此可以刪除。
如果這聽起來可能有用,則可以在 此處 找到研究。
*關於研究人員使用的方法的一個階段的警告是有序的。約翰·納恩(John Nunn)在他的理解棋步移動簡介中,選擇了“ ...強大的宗師之間的艱苦比賽...”來說明他的主題。然後,他補充說:
讀者可能會很驚訝地發現,裝飾本書中游戲的問號數量眾多。當然,您可能會認為,只有30款遊戲可供選擇,所以找到一些有聲遊戲應該很容易。但是,我可以向您保證不是。 ...幾乎可以在任何復雜的,艱苦的比賽中發現錯誤...我從來沒有覺得自己的比賽完全準確,所以我個人並不覺得這些啟示令人困擾。但是,有些人可能會發現很難承認人類下象棋的準確性不像以前想像的那樣。
Nunn博士提出的觀點表明,研究人員設置國際象棋的最初方法是要求他們模仿大師級動作的引擎參數可能會存在缺陷,因為人為遊戲存在缺陷。實際上,眾所周知,引擎的性能已經比人類好。
因此,設置初始參數的更好方法可能是將新引擎與匹配現有的高級引擎。