查看完整版本 : 耐人尋味

xianrenb 2018-10-29 07:59 PM

耐人尋味

先來分享棋局,後補說明。
第一局是我的象棋程式超級快增強模式對局,限時 5 分鐘/ 40 着。

車馬象士將士象馬車 紅 黑
|+++++++|    
|砲+/+\+砲| 帥 將
卒+卒+卒+卒+卒 仕 士
+-------+ 相 象
+-------+ 傌 馬
兵+兵+兵+兵+兵 俥 車
|炮+\+/+炮| 炮 砲
|+++++++| 兵 卒
俥傌相仕帥仕相傌俥    

1:炮二平五
2:馬2進3
3:傌八進九
4:象3進5
5:兵九進一
6:車1平3
7:兵九進一
8:卒1進1
9:炮八平七
10:車3平2

+車-士將士象馬車 紅 黑
|+++++++|    
|砲馬/象\+砲| 帥 將
#+卒+卒+卒+卒 仕 士
卒-------+ 相 象
+-------+ 傌 馬
#+兵+兵+兵+兵 俥 車
傌#炮\炮/+#| 炮 砲
|+++++++| 兵 卒
俥-相仕帥仕相傌俥    

11:傌九進八
12:車9進2
13:傌八進七
14:卒1進1
15:傌七進九
16:車2進1
17:俥九進四
18:車2平4
19:兵七進一
20:車4進6

+--士將士象馬+ 紅 黑
|+++++++|    
傌砲馬/象\+砲車 帥 將
#+#+卒+卒+卒 仕 士
+-------+ 相 象
俥-兵-----+ 傌 馬
#+#+兵+兵+兵 俥 車
|#炮車炮/+#| 炮 砲
|+++++++| 兵 卒
+-相仕帥仕相傌俥    

21:炮七平九
22:士6進5
23:兵三進一
24:車4平3
25:傌二進三
26:砲2進7
27:傌三進四
28:車3進2
29:傌九進七
30:將5平6

+--士-將象馬+ 紅 黑
|+傌+士+++|    
|#馬/象\+砲車 帥 將
#+#+卒+卒+卒 仕 士
+-------+ 相 象
俥-兵--傌兵-+ 傌 馬
#+#+兵+#+兵 俥 車
炮#+\炮/+#| 炮 砲
|+++++++| 兵 卒
+砲車仕帥仕相-俥    

31:炮五平四
32:砲8平6
33:傌四進三
34:砲6進7
35:傌三退四
36:車9平6
37:帥五平四
38:車3退4
39:帥四進一
40:車3平1

+--士-將象馬+ 紅 黑
|+傌+士+++|    
|#馬/象車+#| 帥 將
#+#+卒+#+卒 仕 士
+-------+ 相 象
車----傌兵-+ 傌 馬
#+#+兵+#+兵 俥 車
炮#+\+炮+#| 炮 砲
|++++帥++| 兵 卒
+砲-仕-\相-俥    

41:炮四進五
42:士5進6
43:炮九平五
44:車1平6
45:帥四平五
46:車6平7
47:炮五平四
48:車7平6
49:炮四平九
50:士6退5

+--士-將象馬+ 紅 黑
|+傌+士+++|    
|#馬/象\+#| 帥 將
#+#+卒+#+卒 仕 士
+-------+ 相 象
+----車--+ 傌 馬
#+#+兵+#+兵 俥 車
炮#+\+/+#| 炮 砲
|+++帥+++| 兵 卒
+砲-仕-\相-俥    

51:炮九進七
52:象5退3
53:俥一平二
54:馬8進9
55:俥二進七
56:馬3進4
57:傌七退六
58:車6進3
59:帥五進一
60:馬4進3

炮-象士-將象-+ 紅 黑
|+++士+++|    
|#+/+\+俥馬 帥 將
#+#傌卒+#+卒 仕 士
+-------+ 相 象
+-------+ 傌 馬
#+馬+兵+#+兵 俥 車
|#+\帥/+#| 炮 砲
|++++車++| 兵 卒
+砲-仕-\相-+    

61:帥五平六
62:車6平4

炮-象士-將象-+ 紅 黑
|+++士+++|    
|#+/+\+俥馬 帥 將
#+#傌卒+#+卒 仕 士
+-------+ 相 象
+-------+ 傌 馬
#+馬+兵+#+兵 俥 車
|#+帥+/+#| 炮 砲
|++車++++| 兵 卒
+砲-仕-\相-+    

(黑勝)

xianrenb 2018-10-29 08:07 PM

第二局是我的象棋程式超級快增強模式對局,限時 20 分鐘/ 40 着。

車馬象士將士象馬車 紅 黑
|+++++++|    
|砲+/+\+砲| 帥 將
卒+卒+卒+卒+卒 仕 士
+-------+ 相 象
+-------+ 傌 馬
兵+兵+兵+兵+兵 俥 車
|炮+\+/+炮| 炮 砲
|+++++++| 兵 卒
俥傌相仕帥仕相傌俥    

1:炮八平五
2:砲2平5
3:傌二進三
4:馬2進3
5:兵三進一
6:馬8進7
7:傌三進四
8:車1平2
9:傌四進六
10:車2進8

+-象士將士象-車 紅 黑
|+++++++|    
|#馬/砲\馬砲| 帥 將
卒+卒+卒+卒+卒 仕 士
+--傌----+ 相 象
+-----兵-+ 傌 馬
兵+兵+兵+#+兵 俥 車
|#+\炮/+炮| 炮 砲
|車++++++| 兵 卒
俥傌相仕帥仕相-俥    

11:炮二平四
12:車9平8
13:仕六進五
14:馬3退5
15:炮四退一
16:車2退4
17:炮四平二
18:砲8平9
19:傌六進五
20:象3進5

+--士將士象車+ 紅 黑
|+++馬+++|    
|#+/象\馬#砲 帥 將
卒+卒+卒+卒+卒 仕 士
+車------+ 相 象
+-----兵-+ 傌 馬
兵+兵+兵+#+兵 俥 車
|#+\炮/+#| 炮 砲
|+++仕++炮| 兵 卒
俥傌相/帥仕相-俥    

21:傌八進七
22:車8進8
23:俥九進一
24:車2平6
25:兵七進一
26:馬5退3
27:俥一進二
28:士6進5
29:傌七進八
30:車8平7

+-馬士將/象-+ 紅 黑
|+++士+++|    
|#+/象\馬#砲 帥 將
卒+卒+卒+卒+卒 仕 士
+----車--+ 相 象
+傌兵---兵-+ 傌 馬
兵+#+兵+#+兵 俥 車
|#+\炮/+#俥 炮 砲
俥+++仕+車+| 兵 卒
+-相/帥仕相-+    

31:傌八進七
32:車7退3
33:俥九平七
34:車6進4
35:兵七進一
36:卒7進1
37:俥一平四
38:車6退1
39:仕五進四
40:車7進4

+-馬士將/象-+ 紅 黑
|+++士+++|    
|#+/象\馬#砲 帥 將
卒+傌+卒+#+卒 仕 士
+-兵---卒-+ 相 象
+-------+ 傌 馬
兵+#+兵+#+兵 俥 車
|#+\炮仕+#| 炮 砲
|+俥+++++| 兵 卒
+-相/帥仕車-+    

41:兵五進一
42:卒7進1
43:仕四前退五
44:砲9進4
45:兵九進一
46:砲9進3
47:炮五平二
48:車7退1
49:炮二退二
50:馬3進4

+--士將/象-+ 紅 黑
|+++士+++|    
|#+馬象\馬#| 帥 將
卒+傌+卒+#+卒 仕 士
+-兵-----+ 相 象
兵---兵-卒-+ 傌 馬
#+#+#+#+# 俥 車
|#+\+/+#| 炮 砲
|+俥+仕+車+| 兵 卒
+-相/帥仕-炮砲    

51:兵七平六
52:砲9平6
53:兵九進一
54:卒1進1
55:傌七退九
56:砲6平7
57:相七進五
58:車7平8
59:炮二平一
60:車8平9

+--士將/象-+ 紅 黑
|+++士+++|    
|#+馬象\馬#| 帥 將
#+#+卒+#+卒 仕 士
傌--兵----+ 相 象
+---兵-卒-+ 傌 馬
#+#+#+#+# 俥 車
|#+\相/+#| 炮 砲
|+俥+仕+++車 兵 卒
+--/帥\砲-炮    

61:炮一平二
62:車9進1
63:炮二進七
64:砲7退2
65:仕五退四
66:車9平8
67:炮二退六
68:卒9進1
69:兵六進一
70:馬4進2

+--士將/象-+ 紅 黑
|+++士+++|    
|#+/象\馬#| 帥 將
#馬#兵卒+#+# 仕 士
傌-------卒 相 象
+---兵-卒-+ 傌 馬
#+#+#+#+# 俥 車
|#+\相/砲#| 炮 砲
|+俥++++炮| 兵 卒
+--/帥仕-車+    

71:俥七平三
72:卒7進1
73:兵六平五
74:馬7進5
75:兵五進一
76:馬5進3
77:俥三平六
78:卒9進1
79:炮二平五
80:將5平6

+--士-將象-+ 紅 黑
|+++士+++|    
|#+/象\+#| 帥 將
#馬#+#+#+# 仕 士
傌-馬-兵---+ 相 象
+-------卒 傌 馬
#+#+#+卒+# 俥 車
|#+\相/砲#| 炮 砲
|++俥炮+++| 兵 卒
+--/帥仕-車+    

81:炮五平四
82:砲7進2
83:帥五進一
84:砲7退1
85:炮四進四
86:砲7平4
87:帥五平六
88:馬3進4
89:兵五進一
90:車8平6

+--士-將象-+ 紅 黑
|+++士+++|    
|#+/象\+#| 帥 將
#馬#+兵+#+# 仕 士
傌----炮--+ 相 象
+-------卒 傌 馬
#+#馬#+卒+# 俥 車
|#+\相/+#| 炮 砲
|++帥++++| 兵 卒
+--/-車--+    

91:炮四平二
92:馬4進2
93:帥六平五
94:車6退1
95:帥五退一
96:車6平4
97:炮二進四
98:將6進1
99:兵五進一
100:馬2後進1

+--士-/象炮+ 紅 黑
|+++士將++|    
|#+/兵\+#| 帥 將
#+#+#+#+# 仕 士
傌-------+ 相 象
馬-------卒 傌 馬
#+#+#+卒+# 俥 車
|馬+\相/+#| 炮 砲
|++車++++| 兵 卒
+--/帥\--+    

101:傌九進八
102:馬2進3
103:兵五進一
104:將6平5
105:帥五平四
106:馬1進3
107:相五進七
108:車4進1
109:帥四進一
110:馬3前退4

+--士-/象炮+ 紅 黑
|+++將+++|    
|傌+/+\+#| 帥 將
#+#+#+#+# 仕 士
+-------+ 相 象
+-相-----卒 傌 馬
#+馬+#+卒+# 俥 車
|#+馬+/+#| 炮 砲
|++++帥++| 兵 卒
+--車-\--+    

111:相七退五
112:車4退1
113:帥四退一
114:馬3進5
115:帥四平五
116:車4平6

+--士-/象炮+ 紅 黑
|+++將+++|    
|傌+/+\+#| 帥 將
#+#+#+#+# 仕 士
+-------+ 相 象
+-------卒 傌 馬
#+#+#+卒+# 俥 車
|#+馬馬/+#| 炮 砲
|++++車++| 兵 卒
+--/帥\--+    

(黑勝)

xianrenb 2018-10-29 08:44 PM

雖然先前我的程式的超級快及超級快增強模式已算不錯。
但總是覺得要 30 秒左右才走得比較好(保本、無走錯棋)的話,就稱不上超級快了。
於是着手改良,改良後就試了前面兩局對局。
現在是 7.5 秒級一着也 ok 了。

老實說,我看自己未夠棋力評定有無走錯棋的情況。
但是看來程式的表現,是一類蝕住走,先讓對手獲利,然後再吃回一筆的手段。
程式算得到的深度,的確很大。

如第一局開首,紅似是想棄一馬,以換取黑一象及讓紅方多一過河兵、紅得一沉底炮等等機會。
所以也不知這是否真的對紅方有利。
不過按分數看的話,類似走法也有相當理由。

第二局,初看在第 21 着,紅方無端端馬八進七,棄右方一炮。
但想想如果紅移車保炮,黑進 7 路卒,無論是卒過河,或兌兵後黑車平 7 路,紅方看來都很難守。
因為右方黑早已有一車一馬一砲,再加一卒或一車,攻擊力很強。
看來是電腦算出紅方不利的路徑,才立刻棄炮上馬。
不過,我自己還是看不清。

所以說,這兩局棋,是耐人尋味。

xianrenb 2018-11-5 09:23 AM

[quote]原帖由 [i]xianrenb[/i] 於 2018-10-29 08:44 PM 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=489718622&ptid=27815048][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]
雖然先前我的程式的超級快及超級快增強模式已算不錯。
但總是覺得要 30 秒左右才走得比較好(保本、無走錯棋)的話,就稱不上超級快了。
於是着手改良,改良後就試了前面兩局對局。
現在是 7.5 秒級一着也 ok 了。

老實說,我看自己未夠棋力評定有無走錯棋的情況。
但是看來程式的表現,是一類蝕住走,先讓對手獲利,然後再吃回一筆的手段。
程式算得到的深度,的確很大。

如第一局開首 ... [/quote]

其實現在無論是超級快還是超級快增強模式,在約 7.5 秒的時限內,也可說是給出了約 40 個合理答案然後選最佳的。
如果 100 分為滿分,每個答案代表的分數平均分佈,那麼最近的兩個分數差應為 100/40 = 2.5 。
40 個答案,最佳的選擇代表的分數中位數應為 100 - 2.5/2 = 98.75 分。

換另一個角度看,如果說一般象棋局面可以容許選擇的走法最多只是約 40 種,那麼就算亂選,也有 40 分之 1 機會會選到最佳的走法。
如果選 2 次,比較之後才選,假如無重復,應該有不少於 39 分之 1 機會選到最佳走法。
所以有 40 次比較後選擇的話,理應保證已找到最佳的。
分別只是答案首着可以有重復。
但另一方面,每個答案是合理的選擇而非亂選的。

從以上的分析可見,雖然我的程式這兩個模式不必是最佳最強的象棋程式,但是基本保證了走出來的棋已經非常接近完美。
原因沒有其他,只是因為它出答案出得夠多夠快。

xianrenb 2018-12-9 04:17 PM

[quote]原帖由 [i]xianrenb[/i] 於 2018-11-5 09:23 AM 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=490048742&ptid=27815048][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]


其實現在無論是超級快還是超級快增強模式,在約 7.5 秒的時限內,也可說是給出了約 40 個合理答案然後選最佳的。
如果 100 分為滿分,每個答案代表的分數平均分佈,那麼最近的兩個分數差應為 100/40 = 2.5 。
40 個答案,最佳的選擇代表的分數中位數應為 100 - 2.5/2 = 98.75 分。

換另一個角度看,如果說一般象棋局面可以容許選擇的走法最多只是約 4 ... [/quote]

最近發現,原來我 4 樓的說明中弄錯了數字。
能每次給出約 40 個合理答案的,其實是 30 秒級的超級快模式。
7.5 秒級的,只能每次在時限內輸出約 30 個合理答案。
不過,這應該已算相當快了。
頁: [1]
查看完整版本: 耐人尋味