伊莉討論區
標題:
中國象棋局面價值計算法
[打印本頁]
作者:
blazesboy
時間:
2019-3-22 09:01 PM
標題:
中國象棋局面價值計算法
近來, 小弟花了點功夫修改了黃少龍的計算法. 大概的做法是先定立局面計算公式, 但當中的一些常數/參數還沒固定. 而把這些數值固定的方法, 是透過一百個已知優勢(大於+2分), 均勢, 或劣勢(小於-2分)的經典局面透過最優法擬合出來. 現將結果分享如下(當中的計算只應用於輪到我方走的局面).
局面價值 = 局面固有能 + 局面動能 + 局面控制勢能 + 局面威懾勢能
註: 這個新的計算方法對於人對象棋理解有相對高的聯繫, 而且計算比黃少龍的方法更簡單(當中的乘除數更方便心算), 甚至可以不用計算機大概估算出來. 對於一般愛好者在審局時(尤其是在看不棋局關鍵焦點時)有一定參考性.
1. 棋子的固有能:
兵、卒= 1 分, 仕/相、士/象 = 2 分, 馬、炮= 4 分, 車 = 8 分
這個是根據擬合出來的數值取其四捨五入的整數. 很神奇, 這跟黃少龍提出的數值一致!
局面的固有能為: 我方的現存強子總固有能 - 對方的現存強子總固有能
2. 動能:
黃少龍提出的計算法是考慮車, 馬和炮的最大動能都是一樣(=1).
但是小弟將這個最大值改成一個未知數後, 發覺車和馬的動能最大值大概為2, 而炮的動能最大值大概為1. 一個比較方便的計算方式如下: **
車 = 可走步數 x 0.1 (10分之一),
馬 = 可走步數 x 0.25 (4分之一),
炮 = 可走步數 x 0.05 (20分之一)
局面的動能為: 我方的現存強子總動能 - 對方的現存強子總動能
** 補註: 若改為只考慮"有效動能" (請看以下帖#10和#11), 車 = 可走步數 x 0.2, 馬 = 可走步數 x 0.5, 炮 = 可走步數 x 0.1
3. 控制勢能:
這裡的改動比較大.
我方棋子每點的控制 -- 對方九宮 = 0.5 分, 其他每個在對方藍框位置 = 0.1 分, 黃色範圍內的四個點 = 1 分
對方棋子每點的控制 -- 黃色範圍 = 0.5 分, 綠色範圍的四個點 = 0.5 分
局面的控制能為: 我方的所有控制點的總分 - 對方的所有控制點的總分
(多子對於同一點的控制只算作一點的分數)
4. 威懾勢能:
這裡的改動也比較大.
4a. 我方:
若現在局面我方可有吃子/兌子的著法, 因為我方有選擇權, 我們只考慮對我方有利的交換.
每一著法計算方法為"力子交換後我方所得的棋子固有能".
4b. 對方:
雖然現在的我方走棋, 但我們假想是變成對方走棋, 因為對方有選擇權, 對們只考慮對對方有利的交換.
每一著法計算方法為"力子交換後對方所得的棋子固有能".
局面的威懾勢能為: 我方的所有交換著法的總分 x 1 - 對方的所有交換著法的總分 x 0.5 ***
(因為對方不能立即走棋, 所以對方的權重參數(=0.5)比我方的數值(=1)要少.)
*** 補註: 若是用作評價一著棋的價值, 應改為: 局面的威懾勢能為: 我方的所有交換著法的總分 x 0.5 - 對方的所有交換著法的總分 x 1 (解釋請看帖#05和帖#09)
作者:
whlam888
時間:
2019-5-19 01:29 PM
還是第一次看到將象棋字力用這些數據進行分析, 不知道是否有用和科學
作者:
DaCar
時間:
2019-10-15 09:10 AM
不是很瞭解原理,先保留參考看看,謝謝分享。
作者:
blazesboy
時間:
2019-12-1 07:10 AM
電腦已幫忙自我計算棋面得分,換句話說可實時反映棋局優劣壯況
作者:
wuchongxian
時間:
2020-1-14 05:58 AM
先保留參考看看,謝謝分享
作者:
blazingpeon
時間:
2020-1-30 03:36 PM
感謝分享~
作者:
nbvnbv0022
時間:
2020-3-5 08:02 PM
Is this a article for software engineer? I think it is differcult to calculator it when you playing chess.
歡迎光臨 伊莉討論區 (http://tast.eyny.com/)
Powered by Discuz!