查看完整版本 : [雜談] 再說局面價值計算法

rhwlam 2018-9-3 08:34 PM

[雜談] 再說局面價值計算法

一年前, 小弟轉載了黃少龍提出的一種"局面價值計算法"([url=https://www.discuss.com.hk/viewthread.php?tid=26904041]https://www.discuss.com.hk/viewthread.php?tid=26904041[/url]).
另外, 小弟也在另一帖([url=https://www.discuss.com.hk/viewthread.php?tid=27643968]https://www.discuss.com.hk/viewthread.php?tid=27643968[/url])提出局面價值計算的重要性.

近來, 小弟花了點功夫修改了黃少龍的計算法. 大概的做法是先定立局面計算公式, 但當中的一些常數/參數還沒固定. 而把這些數值固定的方法, 是透過一百個已知優勢(大於+2分), 均勢, 或劣勢(小於-2分)的經典局面透過最優法擬合出來. 現將結果分享如下(當中的計算只應用於輪到我方走的局面).

[color=#ff0000][b]局面價值[/b][b] = 局面固有能 + 局面動能 + 局面控制勢能 + 局面威懾勢能[/b][/color]
[color=#ff0000][b]註:[/b] 這個新的計算方法對於人對象棋理解有相對高的聯繫, 而且計算比黃少龍的方法更簡單(當中的乘除數更方便心算), 甚至可以不用計算機大概估算出來. 對於一般愛好者在審局時(尤其是在看不棋局關鍵焦點時)有一定參考性.[/color]

[b]1. 棋子的固有能[/b][b]:[/b]
兵、卒= 1 分,   仕/相、士/象 = 2 分,   馬、炮= 4 分,   車 = 8 分
這個是根據擬合出來的數值取其四捨五入的整數. 很神奇, 這跟黃少龍提出的數值一致!
[u]局面的固有能為:  我方的[/u][u]現存強子總[/u][u]固有能 - 對方的[/u][u]現存強子總[/u][u]固有能[/u]

[b]2. 動能[/b][b]:[/b]
黃少龍提出的計算法是考慮車, 馬和炮的最大動能都是一樣(=1).
但是小弟將這個最大值改成一個未知數後, 發覺車和馬的動能最大值大概為2, 而炮的動能最大值大概為1. 一個比較方便的計算方式如下: [b][color=#ff0000]**[/color][/b]
車 = 可走步數 x 0.1 (10分之一),
馬 = 可走步數 x 0.25 (4分之一),
炮 = 可走步數 x 0.05 (20分之一)
[u]局面的動能為:  我方的現存強子總動能 - 對方的[/u][u]現存強子總[/u][u]動能[/u]
[color=#ff0000]**[/color] [b]補註:[/b] 若改為只考慮"[b]有效動能[/b]" (請看以下帖#10和#11), 車 = 可走步數 x 0.2, 馬 = 可走步數 x 0.5, 炮 = 可走步數 x 0.1

[b]3.[/b] [b]控制勢能[/b][b]:[/b]
這裡的改動比較大.
[attach]8728760[/attach]
我方棋子每點的控制 -- 對方九宮 = 0.5 分, 其他每個在對方藍框位置 = 0.1 分, 黃色範圍內的四個點 = 1 分
對方棋子每點的控制 -- 黃色範圍 = 0.5 分, 綠色範圍的四個點 = 0.5 分
[u]局面的控制能為:  我方的所有控制點的總分 [/u][u]- 對方的[/u][u]所有控制點的總分[/u]
(多子對於同一點的控制只算作一點的分數)

[b]4. 威懾勢能[/b][b]:[/b]
這裡的改動也比較大.
4a. 我方:
若現在局面我方可有吃子/兌子的著法, 因為我方有選擇權, 我們只考慮對我方有利的交換.
每一著法計算方法為"力子交換後我方所得的棋子固有能".
4b. 對方:
雖然現在的我方走棋, 但我們假想是變成對方走棋, 因為對方有選擇權, 對們只考慮對對方有利的交換.
每一著法計算方法為"力子交換後對方所得的棋子固有能".
[u]局面的威懾勢能為:  我方的所有交換著法的總分 x 1[/u][u] - 對方的[/u][u]所有[/u][u]交換著法的總分 x 0.5 [/u][b][color=#ff0000]***[/color][/b]
(因為對方不能立即走棋, 所以對方的權重參數(=0.5)比我方的數值(=1)要少.)

[b][color=#ff0000]***[/color][/b] [b]補註:[/b] 若是用作評價一著棋的價值, 應改為: [u]局面的威懾勢能為:  我方的所有交換著法的總分 x 0.5 - 對方的所有交換著法的總分 x 1[/u] (解釋請看帖#05和帖#09)

[[i] 本帖最後由 rhwlam 於 2018-9-29 08:18 AM 編輯 [/i]]

rhwlam 2018-9-4 10:23 AM

帖#01所提出的局面價值計算法可以對於[b][u]約80%[/u][/b]的局面優劣作出正確的判斷. 另外, 這個計算方法在將軍和單純捉子的狀態不適用; 比較合適的局面應該是相對靜態的中局.
所以說這只可以當作一個參考數值.

到底如何應用呢?
試舉一例, 若首著紅走炮二進七吃馬, 黑車9平8必然.
那麼當中局面價值變化應如何呢?
紅失一炮(-4分)及其動能(-0.6分), 而紅七路炮多了平一和平二兩著(+0.1分), 黑8路炮能多一格走法(-0.05分). 而黑方失去一馬(+4分)和其動能(+0.5分).
因此, 這樣的一個回合交換局面價值變化為-0.05分, 紅方沒有便宜.

另外, 首回合炮二平五 炮8平5的價值變化為0.6分(0.5分來自對捉中兵, 0.1分來自黑中卒前的控制), 而炮二平五 馬8進7的價值變化會是0分.
總的來說, [u]這個計算方法可以看出首著紅炮二平五比炮二進七要好.[/u]

[[i] 本帖最後由 rhwlam 於 2018-9-6 08:32 AM 編輯 [/i]]

xianrenb 2018-9-4 01:01 PM

[quote]原帖由 [i]rhwlam[/i] 於 2018-9-3 08:34 PM 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=486721324&ptid=27689944][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]
一年前, 小弟轉載了黃少龍提出的一種"局面價值計算法"([url=https://www.discuss.com.hk/viewthread.php?tid=26904041]https://www.discuss.com.hk/viewthread.php?tid=26904041[/url]).
另外, 小弟也在另一帖([url=https://www.discuss.com.hk/viewthread.php?tid=27643968]https://www.discuss.com.hk/viewthread.php?tid=27643968[/url])提出局面價值計算的重要性.

近來, 小弟花了點功夫修改了黃少龍的計算法. 大概的做法是先 ... [/quote]

其實局面價值計算很難說某一種方法較好。
每一種方法,都總有一些根據。
某程度上可以說,可以定下某些分數計法,但分值由人工神經網絡因應訓練資料調節就不錯。
不過這種做法,一來複雜,二來要做大量訓練,所以我從未試過按這個方向研究過。

至於 rhwlam 兄列出的(固定分值)計算方法,看上去應該不錯。
不過對於過河兵卒的固有能未有特別處理,可能考慮上有所不足。
另一方面,計算上亦頗多步驟。
我看就算用程式來算,效能上或許會不夠理想。
以我理解,象棋小巫師在這方面是把分數計算減少至加減幾個數值就可變換局面(分數)。
相對來說,效能應會理想很多。

rhwlam 2018-9-4 02:09 PM

[quote]原帖由 [i]xianrenb[/i] 於 2018-9-4 13:01 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=486752208&ptid=27689944][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]
某程度上可以說,可以定下某些分數計法,但分值由人工神經網絡因應訓練資料調節就不錯。[/quote]
在這裡, 小弟是以100個經典局面在為參數的調節/訓練. 只是當中的數學模型並不是神經網絡, 而是另一個局面價值函數.

[quote]原帖由 [i]xianrenb[/i] 於 2018-9-4 13:01 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=486752208&ptid=27689944][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]
不過對於過河兵卒的固有能未有特別處理,可能考慮上有所不足。[/quote]
其實是有考慮到的. 兵卒過河在這裡不會影響固有能, 而是控制勢能增加了.

[quote]原帖由 [i]xianrenb[/i] 於 2018-9-4 13:01 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=486752208&ptid=27689944][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]
另一方面,計算上亦頗多步驟。[/quote]
對的...
若編程的話, 這個計算法也不太耗時(都只是加減乘除數), 但若是純人審局的話這個計算始終複雜.

rhwlam 2018-9-4 10:57 PM

帖#02提出的一個應用方法是基於不同著法在若干回合後的局面價值變化, 從而比較出一個較好的著法.
以紅方走子時, 以一個回合的推演來說, 可以看成以下步驟:
[b]當前紅方局面(價值) --> 紅方走子 --> 黑方走子 --> 預測紅方局面(價值)[/b]
但是, 當紅方走子後, 黑方走子前的時候會有局面價值呢? 此時, 輸到黑方走子, 所以局面價值應以黑方為"我方", 而對應的價值若是正數, 則為黑優 (所以我會要將這個數值乘以-1, 以方便比較). 如下:
[b]當前紅方局面(價值) --> 紅方走子 [/b][b]--> [u]預測黑方局面(價值) x -1[/u] [/b][b]--> 黑方走子 --> 預測紅方局面(價值)[/b]
這樣的話, 我們便可估計出紅方走了一著後的局面價值變化, 而不甪考慮黑方不同的應著. 即:
[b]當前紅方局面(價值) --> 紅方走子 [/b][b]--> [u]預測黑方局面(價值) x -1[/u][/b]
這種考慮方法很合理, 但是以純人計算的話, 仍會是很繁瑣, 難以以心算計算正確.

現在, 我們為了計算方便, 放棄了某程度的局面價值估計的準確性, 作出以下修攺:
[b]當前紅方局面(價值) --> 紅方走子 [/b][b]--> [u]預測黑方局面(價值), 但仍以紅方為"我方"[/u][/b]
當紅方下了一個著法後, 若我們仍以紅方為"我方"估計出走子後的局面價值, 那麼計算便會簡單一點了.

那麼我們便可以估計出一著棋的價值, 即:
[b]一著棋的價值 = 預測黑方局面價值(紅方為"我方") - 當前紅方局面價值[/b]

[b]注意:[/b] 這裡, 我們不用考慮整個局面的價值, 而是所走的一著棋對於局面價值的影響. 這樣的話心算會簡單一點.

另外, 因為這終歸是一個估算, 計算的時候我們可以只考慮比較重要的價值影響.
例如:
1. 如首著紅炮二平五, 威懾黑中卒(+1分), 再控制卒前的一格(+0.1分), 所以首炮二平五的價值為1.1分. 若黑應炮8平5, 這著對捉中兵可算有-0.5分的價值.
2. 如首回合炮二進七 車9平8, 大概是單純子力交換, 所以這個回合的價值大概是0分. (另外, 黑多了一著"有效著法", 所以其實是紅吃虧.)
3. 又如首回合炮二平五(+1.1分) 馬8進7, 當中的黑馬守中卒(-1分)同時也給出以後黑車9平8的可能(-0.1分), 所以這個著進馬大概也是-1.1分.

總的來說, 以這方式估計一著棋的價值, 其功用主要是讓像小弟這種不太懂棋的人能夠在對奕時的每個局面能夠選出一些較有"價值"的著法, 再加以思考, 從而選出當中最有把握的一著.

[[i] 本帖最後由 rhwlam 於 2018-9-6 08:33 AM 編輯 [/i]]

xianrenb 2018-9-5 07:53 PM

[quote]原帖由 [i]rhwlam[/i] 於 2018-9-4 10:57 PM 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=486781079&ptid=27689944][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]
帖#02提出的一個應用方法是基於不同著法在若干回合後的局面價值變化, 從而比較出一個較好的著法.
以紅方走子時, 以一個回合的推演來說, 可以看成以下步驟:
當前紅方局面(價值) --> 紅方走子 --> 黑方走子 --> 預測紅方局面(價值)
但是, 當紅方走子後, 黑方走子前的時候會有局面價值呢? 此時, 輸到黑方走子, 所以局面價值應以黑方為"我方", 而對應的價值若是正數, 則為黑優 ... [/quote]

以我的理解,按前面解說,首着若炮二平五的話,計法有點不同。

首先看固有能,因為無吃子,所以不變。
然後看動能,本來炮在二路,然後變為五路,看來右炮少了 4 個目的地可選,左炮則少了 3 個目的地可選。
己方變化為 0.05 * (-4 - 3) = -0.35 。
黑砲則多了 1 個目的地可選。
對方變化為 0.05 * (1) = 0.05 。
跟着是控制勢能,多了 5 路卒前的一格。
己方變化為 0.1 * 1 = 0.1 。
對方變化為 0 。
最後是威懾勢能,原本紅二路炮可吃黑 8 路馬,然後變為可吃 5 路卒。
即是權重 * 己方變化,為 1 * (-4 + 1) = -3 。
而對方黑 8 路砲本來可吃紅二路馬,然後變為吃不到。
即是權重 * 對方變化,為 0.5 * (-4) = -2
總分變化 = -0.35 - (0.05) + 0.1 - (0) - 3 - (-2) =  -1.3 。

[[i] 本帖最後由 xianrenb 於 2018-9-5 08:19 PM 編輯 [/i]]

xianrenb 2018-9-5 09:00 PM

[quote]原帖由 [i]xianrenb[/i] 於 2018-9-5 07:53 PM 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=486830209&ptid=27689944][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]


以我的理解,按前面解說,首着若炮二平五的話,計法有點不同。

首先看固有能,因為無吃子,所以不變。
然後看動能,本來炮在二路,然後變為五路,看來右炮少了 4 個目的地可選,左炮則少了 3 個目的地可選。
己方變化為 0.05 * (-4 - 3) = -0.35 。
黑砲則多了 1 個目的地可選。
對方變化為 0.05 * (1) = 0.05 。
跟着是控制勢能,多了 5 ... [/quote]

再想清楚些,發現 6 樓的分數變化算法還是出現問題/算錯了。
這是因為控制勢能及威懾勢能的算法,按前面所述,正常不是同一局面紅黑調轉(即轉換誰下下一着棋)就只乘一個正負號,而是用另一種算法或用不同的權重。

平心而論,這樣算的話,單算一着變化,普通人或我已感到困難了,如果實用上要算 4 、 5 着之後的變化,恐怕分數計算比正常棋路思考還要難很多。

rhwlam 2018-9-5 10:03 PM

[quote]原帖由 [i]xianrenb[/i] 於 2018-9-5 21:00 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=486834172&ptid=27689944][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]
平心而論,這樣算的話,單算一着變化,普通人或我已感到困難了,如果實用上要算 4 、 5 着之後的變化,恐怕分數計算比正常棋路思考還要難很多。[/quote]
感謝xianrenb兄細心閱讀這個計算.
是的, 如果老老實實人手完整計算的話, 的確很繁瑣.
(但若是電腦計算的話, 運算時間其實很短, 我已寫了個程式用作找出帖#01提出的所有數值, 所以這個我是肯定的.)
所以, 如果要應用於下棋的話, 只能如之前的簡化方法估計了.

rhwlam 2018-9-6 01:00 PM

現在延續帖#05的討論.

之前我們提到一個簡化計算一著棋的價值為:
[b]一著棋的價值 = 預測黑方局面價值(紅方為"我方") - 當前紅方局面價值[/b]

依同一簡化的思路, 我們也可提出另一種簡化方法(以黑方為"我方"), 即:
[b]紅方當前可選的一著棋的價值 = 預測黑方局面價值(黑方為"我方") - 當前局面價值[/b][b](黑方為"我方")[/b]

為其麼要提出這另一個簡化想法呢?
原因是當紅方真的走子後, 接著的走子方是黑方; 所以當紅方選了一著捉黑方一子後, 對於黑方而言, 黑方可以立即反應. 那麼黑方威懾勢能的權重應為1.0較合理, 而不是0.5.
但是, 另一方面, 若以控制勢能來看的話, 以紅方為"我方"計算的話可以引導紅方的棋子往黑方九宮靠進.

因此, 小弟其實想提出的著法價值計算其實是:
如帖#05一樣計算, 而唯一不同的是, 雙方威懾勢能的權重(1.0和0.5)應對調.

[color=#ff0000][b]註:[/b] 以上這個調整已在帖#01補上.[/color]

[[i] 本帖最後由 rhwlam 於 2018-9-6 01:04 PM 編輯 [/i]]

rhwlam 2018-9-7 12:16 AM

[b]以"著法價值"思考的一局[/b]

這裡, 小弟試以之前說的"著法價值"的方式跟象棋巫師業餘級(計算深度約6層)下一局.
當中每個回合, 我們嘗試只以最少的推演(最多推演一個著法往後的一至兩個回合)而選出"最有價值"的一著.
以下是對局(巫師執紅, 小弟執黑).

1. 炮八平五
[attach]8740361[/attach]
小弟會在以下每個回合列出一些可能的著法, 以及其估計"著法價值". 而最終選擇會以底線標出. 如下:
炮2平5(0.6), [u]馬2進3(1.1)[/u], 馬8進7(1.0), 炮8平5(0.6), 炮2平3(0.35), 車1進1(0.8)*...
* 車1進1的價值在下一回合有所討論.
1. ........ 馬2進3    2. 兵七進一
[attach]8740362[/attach]
卒7進1(0.1), 車1進1(0.2), 炮8平7(0.35), 炮2進2(0.6) [u]炮8平5(0.6)[/u]...
車1進1這一著可以多討論一下. 雖然車1進1後, 可以多橫移8格, 但時有意義的位置只有平4和平6兩個位置.
2. ........ 炮8平5    3. 馬八進七
[attach]8740363[/attach]
炮2進2(0.55), [u]馬8進7(0.35)[/u]*, 車1進1(0.2)...
馬8進7提供了以後車9平8的一著, 以後8路車的動能會提升(有增加~0.15分的可能); 另外馬8進7後也可考慮卒7進1增加馬2格的動能(+0.5分). 相對於炮2進2, 馬8進7是比較有"潛力"的, 長期對於局勢發展也比較好. 但是, 在這裡要看到馬8進7的好處, 我門至少要有一點點的推演能力(至少有一著的深度).
3. ........ 馬8進7    4. 馬二進三
[attach]8740364[/attach]
車9平8(0.15), [u]卒7進1(0.6)[/u]...
4. ........ 卒7進1    5. 炮二進四
[u]車9平8(1.75)[/u]
5. ........ 車9平8    6. 車一平二
[attach]8740365[/attach]
[u]馬7進6(0.85)[/u], 炮2進4(0.6)...
6. ........ 馬7進6    7. 車九進一
[attach]8740366[/attach]
[u]馬6進7(1.25)[/u], 車1進1(0.3), 炮2進4(0.35)...
7. ........ 馬6進7    8. 車九平八
[attach]8740367[/attach]
車1進1(0.3)*, 馬6進7(-1.5), 卒7進1(0.1), [u]炮2平1(0.25)[/u]...
*這裡我們若多考車1進1後, 紅可能炮二平七, 變成一個不平穩局面, 黑若接車8進9, 紅炮七進三 士4進5, 馬二退三, 紅得象(-2分). 所以這著雖然[b]表面價值[/b]為0.3分, 但[b]潛在價值[/b]郤是負分...
8. ........ 炮2平1    9. 炮二進一
[u]馬3退5(2)[/u]...
9. ........ 馬3退5   10. 炮二平九
其實, 此時是一個不平穩局面, 這裡不多討論了.
10. ...... 車8進9   11. 馬三退二
[attach]8740368[/attach]
初想一下, 車1進2(4.2), 象3進1(3.9)*...
另外, 馬7進5後是不平穩局面, 若紅接相三進五, 黑方會失去7路馬的動能(-1.5分)而紅炮的勢能也沒了(+1分), 但是下一著吃炮有所補償(+4分).
* 再想一下, 若車1進2或象3進1後, 紅當然炮五進四, 那麼之後黑中炮馬被牽不能動, 其實黑會再多損失馬和炮的所有動能和勢能(共約-1分)...
[b]調整後的價值估計:[/b] [u]馬7進5(3.5)[/u], 車1進2(3.2), 象3進1(2.9)
11. ...... 馬7進5   12. 相三進五
[u]車1進2(4.2)[/u]...
12. ...... 車1進2   13. 仕六進五
[u]馬5進7(0.75)[/u]...
13. ...... 馬5進7   14. 車八進四
[u]象7進9(1)[/u]...
14. ...... 象7進9   15. 馬二進三
[u]車1平4(2)[/u]...
15. ...... 車1平4   16. 馬三進四
[u]車4進6(0.1)[/u], 卒9進1(0.1)...
16. ...... 車4進6   17. 馬四進三
[attach]8740426[/attach]
[u]士6進5(0)[/u], 車4退2(0), 車4平3(0.4)*...
* 車4平3後只要多想一著, 便看見馬七進六, 詳細不多說了.
17. ...... 士6進5   18. 車八進四
[u]車4平3(0.4)[/u]...
18. ...... 車4平3   19. 車八平七
車3退1(4), [u]象9退7(4)[/u]...
19. ...... 象9退7   20. 馬七進六
[u]炮5進4(0.4)[/u]...
20. ...... 炮5進4   21. 帥五平六
[attach]8740427[/attach]
[b]表面價值:[/b] [u]炮5平8(0.35)[/u], 車3平2(0.4)...
但是, 只要我們在車3平2後多想一著, 便會看見黑有馬四進六的一著, 所以我們要選炮5平8.
21. ...... 炮5平8   22. 仕五進四
車3平6(1.6)*, [u]炮8進3[/u](會形成不平穩局面)...
* 若車3平6後我們多想一著, 我們便會看見仕四進五困車. 所以其實車3平6是吃虧的.
22. ...... 炮8進3   23. 仕四進五
[u]車3退2(0.5)[/u]...
23. ...... 車3退2   24. 車七退二
[u]車3平4[/u](不平穩), 若要算清其[b]潛在價值[/b], 應算紅接帥六平五 車4退1的價值變化, 即應該是約1.5+3.7分.
24. ...... 車3平4   25. 帥六平五
[attach]8740513[/attach]
老實說, 到現在黑落於劣勢, 所以說單純只有"著法價值"和一兩著的推演能力是頂不住"巫師業餘級"的這個棋力的...
除了之前看見的車4退1(~2.7)*, 現在可多看到[u]馬7退6[/u]的一著(2.75)...
* 車4退1後紅車七平三捉象, 不合算.
25. ...... 馬7退6   26. 馬六進五
粗略看車4退3是~3分(捉馬和守卒), 但紅可接馬三進四, 黑車和馬原來的動能和威懾能也差不多沒有了. 所以, 這著其實是約負-1.3分.
另外: [u]車4平9(-0.9)[/u], 馬6進5(-2)...
26. ...... 車4平9   27. 馬五進四
[attach]8740467[/attach]
這裡是"特別"的情況. 要思考得稍為"隱秘"一點.
這裡存在[u]車9進3[/u]一個手段. 這裡我們可引入"[b]潛在價值[/b]"的概念, 紅若"不走棋", 以後黑有炮8平3使局不平穩, 紅若仕五退四 炮3平6, 這之前的車9進3便是價值很大的一著了!
27. ...... 車9進3   28. 馬三進五
在這種局面, 已經到了被攻的狀態, 這情況"局面價值"的方法已不適用了, 只能依靠個人殺法的演算能力了. 所以只列出往後著法.
28. ─────  士5進4   29. 車七進二 將5進1   30. 車七退一 馬6進4   
31. 馬五退三 炮8平7   32. 馬三退五 炮7退3   33. 仕五退四 炮7平5
34. 相五退三 車9平8   35. 馬四退三 炮5平3   36. 相七進五 車8退4
37. 馬五進四 象7進5   38. 馬三退五 車8平6   39. 仕四進五 卒3進1
40. 車七平八 卒3進1   41. 相五進七 炮3平6   42. 馬五退四 車6進1
43. 馬四退五 車6平1   44. 馬五進七 將5退1   45. 車八平六 象5退7
46. 車六退一 車1進3   47. 車六退七 車1平4   48. 帥五平六
和.

[[i] 本帖最後由 rhwlam 於 2018-9-7 08:43 PM 編輯 [/i]]

rhwlam 2018-9-29 12:03 AM

從以上帖#10的一個局例, 可以看出"著法價值"的一些應用要點:

1. 比較好地考慮一個子的動能應該不是那個子能走多著法的總數, 而是一著子"有意義"的著法的總數.
(這樣的話, 我們應否可加大對應考慮"有效動能"的權重因子, 例如: 車由2改為4, 馬為2改為4, 炮由1改為2?)
[u]請看上帖註解:[/u] 第1和第2回合考慮的車1進1.

2. 在不平穩的局勢下(例如將軍或是被捉子), 著法價值的概念絶不適用.

3. 我們應用著法的"潛在價值", 即數個可預見的有限回合以後達至平穩局勢的價值變化(因為人的計算力有限, 有時我們不得不忽略一些變化). 很多時候當然局面走了一著棋後的"表面價值"是不可靠的.
[u]請看上帖註解:[/u] 第3回合考慮的馬8進7, 第7回合考慮的車1進1. 第24回合考慮的車3平4.

4. 棋子被牽制時的動能變化.
[u]請看上帖註解: [/u]第11回合考慮的象3進1.

有空的話, 小弟以後會繼續探討...

rhwlam 2018-11-27 07:40 PM

近來有點忙.
以後才貼上新帖. 現在先回覆一下, 以防此帖自動關閉.
謝謝理解.

rhwlam 2018-11-30 02:30 PM

[quote]原帖由 [i]rhwlam[/i] 於 2018-9-4 10:23 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=486744564&ptid=27689944][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]
帖#01所提出的局面價值計算法可以對於約80%的局面優劣作出正確的判斷. 另外, 這個計算方法在將軍和單純捉子的狀態不適用; 比較合適的局面應該是相對靜態的中局.
所以說這只可以當作一個參考數值. [/quote]
這裡, 我希望多描述一點.
這是基於+2.0分的優勢和-2.0分是劣勢, 這個"局面價值計算法"所估計的誤差的標準差(standard deviation)為~0.8. 所以"局面價值計算法"不是絶對準確的.

現在, 若我們考慮一個局面只有五個選擇(A, B, C, D和E), 若我們已知A是當前局面的最高價值的選擇, 那麼A為最佳著法的機率為:
A比B佳的機率 x A比C佳的機率 x A比D佳的機率 x A比E佳的機率
若果以上每一對若法的比較我們都有90%的把握, A為最佳著法的機率亦只有0.9^4 = 0.66%.
所以說, 單純以"局面價值計算法"作比較而不作著法推演的話, 仍是很難可以可靠找出最佳著法的.

rhwlam 2018-11-30 05:53 PM

接著上一帖的話題, 現在描述一下如何能夠透過推演一個選擇往後的變化而得出更有把握地選出"最佳著法".
我試過以統計學的角度考慮推演棋路的一些要點. 這裡, 抱歉我沒有將推論寫上來, 畢竟這裡不是數學板.
無論如何, 當中導出的一個思考次序如下:
1. 在當前的局面, 我們可能對當前局面/著法價值選出數個可能是最佳著法的選擇.
2. 若一著棋明顯比另一著棋優, 我們沒必要再深入考慮較差的一著, 因為這不會有效幫助縮減價值估計的"標準差"和"最佳著法"的估計把握(真確性的機率).
3. 首先應先推演"當前認為的"最佳著法, 接著再推演"當前認為的"第二皆著法, 如此類推.
4. 當推演一個著法的往後變化時, 應推演那些比較"有價值"的分枝, 而省去那些明顯的劣著. 推演後我們可考慮更新那一著棋的價值.
5. 當所有在最初選出的著法都考慮及更新後, 我們就選出當前局面"最佳"的一著.

xianrenb 2018-12-6 01:42 PM

[quote]原帖由 [i]rhwlam[/i] 於 2018-11-30 02:30 PM 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=491298340&ptid=27689944][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]

這裡, 我希望多描述一點.
這是基於+2.0分的優勢和-2.0分是劣勢, 這個"局面價值計算法"所估計的誤差的標準差(standard deviation)為~0.8. 所以"局面價值計算法"不是絶對準確的.

現在, 若我們考慮一個局面只有五個選擇(A, B, C, D和E), 若我們已知A是當前局面的最高價值的選擇, 那麼A為最佳著法的機率為:
A比B佳的機率 x A比C佳的機率  ... [/quote]

13 樓提到的機會率說法看來有點問題。
例如說,假設有五個選擇(A ~ E),每個其實都是完全隨機的,沒有一個特別好棋的話。
最佳是 A 的機會率應是 1/5 。
但 A 比 B 佳的機會率是 1/2 。
A 比 C 佳的機會也是 1/2 。
如此類推。
但 1/5 <> 1/2 * 1/2 * 1/2 * 1/2 。
後者是 1/16 ,算出來的,大約是 1/5 的 1/3 ,小了很多。

所以我估計,如果每個比較有 90% 把握的話, A 是最佳的機會率應該遠高於 66% 。

rhwlam 2018-12-6 04:01 PM

[quote]原帖由 [i]xianrenb[/i] 於 2018-12-6 13:42 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=491585251&ptid=27689944][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]
13 樓提到的機會率說法看來有點問題。
例如說,假設有五個選擇(A ~ E),每個其實都是完全隨機的,沒有一個特別好棋的話。
最佳是 A 的機會率應是 1/5 。
但 A 比 B 佳的機會率是 1/2 。
A 比 C 佳的機會也是 1/2 。
如此類推。
但 1/5 <> 1/2 * 1/2 * 1/2 * 1/2 。
後者是 1/16 ,算出來的,大約是 1/5 的 1/3 ... [/quote]
謝謝回覆.
是的, 之前我舉的例子已經是說A是價值最高的一著. 這只是一個隨便的舉例, 而且計算也粗糙且不精確. 希望理解.

現在看師兄舉的例子:
假設有五個選擇(A ~ E),每個其實都是完全隨機的,沒有一個特別好棋的話。
最佳是 A 的機會率應是 1/5 , 沒有問題。
A 比 B 佳的機會率是 1/2 , 也沒有問題。
但是, 已知比B大的A, 再比C大的機率會是2/3, 因為是三個可能中考慮兩個可能, 即底間的情況: [u]A比C大但C比B大[/u] 或 [u]B比C大[/u] 或 C比A大.
如此類推, 即是1/2*2/3*3/4*4/5 = 1/5. 會同樣得出"最佳是A的機會率應是1/5".

說回來, 師兄的說法有理, 如果粗糙的計算的話, 假設有五個選擇(A-E), 最佳是A的機會率不應是1/2*1/2*1/2*1/2. 這是錯誤的, 所以我之前說的計法是錯誤的. (但這種估算簡單得多.)
所以師兄說"如果每個比較有 90% 把握的話, A 是最佳的機會率應該遠高於 66% 。"是正確的.

無論如何, 其實我是想引導出#14的思考次序, 因為這才能幫助我們找出如何才能更有效思考出最佳著法. (其實真正的機率多少意思不大, 而是以何種方式令估算準碓的機率提高才有意義.)

謝謝指正, 也謝謝理解.

rhwlam 2018-12-6 07:20 PM

[quote]原帖由 [i]xianrenb[/i] 於 2018-12-6 13:42 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=491585251&ptid=27689944][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]
13 樓提到的機會率說法看來有點問題。
例如說,假設有五個選擇(A ~ E),每個其實都是完全隨機的,沒有一個特別好棋的話。
最佳是 A 的機會率應是 1/5 。
但 A 比 B 佳的機會率是 1/2 。
A 比 C 佳的機會也是 1/2 。
如此類推。
但 1/5 <> 1/2 * 1/2 * 1/2 * 1/2 。
後者是 1/16 ,算出來的,大約是 1/5 的 1/3 ... [/quote]
對於#13的例子確切的機率, 可以計算如下:

現在, 若我們考慮一個局面只有五個選擇(A, B, C, D和E), 若我們已知A是當前局面的最高價值的選擇, 若果A比每一對其他著法的比較我們都有90%的把握, 即A比B佳的機率 = A比C佳的機率 = A比D佳的機率 = A比E佳的機率 = 90%

我們可考慮A有9個機率單位, 而B, C, D和E各有1個機率單位. 那麼A為最佳著法的機率為:
9 / (9 + 1 + 1 + 1 + 1) = 69 %

rhwlam 2019-1-8 05:55 PM

另外, 作為一個簡單的想法.
若我們都是以著法的價值去選出每一著的話, 那麼尤其是在開局的大概十著, 每走出的一著的價值差距不會很大.
在開局很難能下出一著是比兩著更要好的、更有價值的.
所以, 我們尤其在開局要注意有多少著"有效"/有價值著法.
以有限棋力的我們, 最好是令自己每一著都是"有效"的. 以這心態把握開局, 想法便會較為簡明.

rhwlam 2019-1-8 05:56 PM

另外, 作為一個簡單的想法.
若我們都是以著法的價值去選出每一著的話, 那麼尤其是在開局的大概十著, 每走出的一著的價值差距不會很大.
在開局很難能下出一著是比兩著更要好的、更有價值的.
所以, 我們尤其在開局要注意有多少著"有效"/有價值著法.
以有限棋力的我們, 最好是令自己每一著都是"有效"的. 以這心態把握開局, 想法便會較為簡明.

簡單象棋 2019-1-12 11:29 PM

睇落好複雜:smile_42:
頁: [1]
查看完整版本: [雜談] 再說局面價值計算法