註冊 登入



打印

我的象棋程式新模式:超級快增強模式

我的象棋程式新模式:超級快增強模式 E-mail 此主題給朋友

[隱藏]
先來分享對局,是我的象棋程式超級快增強模式。
限時 20 分鐘/ 40 着。

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

1:傌八進九
2:象3進5
3:相三進五
4:馬2進4
5:仕六進五
6:車1平3
7:傌二進三
8:砲8平6
9:俥一平三
10:馬8進9

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

11:兵三進一
12:車9平8
13:傌三進四
14:卒9進1
15:俥九進一
16:士6進5
17:兵九進一
18:車8進5
19:俥九平六
20:砲2平4

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

21:傌九進八
22:卒7進1
23:傌八進九
24:卒7進1
25:俥三進四
26:車8平7
27:相五進三
28:馬9進8
29:傌四進三
30:馬8進9

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

31:傌三退一
32:馬9進7
33:炮八平五
34:馬7退5
35:炮二進七
36:砲6退2
37:炮二退七
38:砲6進2
39:俥六進二
40:馬5進7

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

41:炮二進七
42:士5退6
43:傌一進三
44:砲6平8
45:仕五進四
46:砲8進7
47:仕四後進五
48:砲4平1
49:傌三進五
50:馬7進6

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

51:帥五平四
52:將5進1
53:傌五退七
54:砲1平5
55:俥六進五
56:將5退1
57:傌七進五
58:士4進5
59:傌五進三

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

(紅勝)



精選樓盤
引用:
原帖由 xianrenb 於 2018-10-27 02:58 PM 發表

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

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

1:傌八進 ...
試過超級快模式的方式後,我就在想如何可以把等效分支減到盡。
最終就想到超級快增強模式出來。
後來,又發現原來我的算法,在現有參數配置/記憶體限制下,並不能有效發揮威力。
所以又改良了這兩種算法,使現有/較差的設定下,都可以走出良好的效果。

然而,又發現了時限短的話,走出的棋或會出問題。
要發揮威力的話,看來要用到每着約 30 秒級的設定。
或許有較多記憶體的話,可以用較好的設定,時限就不必這樣長也可以有好的表現。

不論如何,每着 30 秒級就是走出 1 樓的效果。
我看如果說當中有走差棋的話,也算是無好棋可走,逼着亂走而成的了。



引用:
原帖由 xianrenb 於 2018-10-27 03:12 PM 發表



試過超級快模式的方式後,我就在想如何可以把等效分支減到盡。
最終就想到超級快增強模式出來。
後來,又發現原來我的算法,在現有參數配置/記憶體限制下,並不能有效發揮威力。
所以又改良了這兩種算法,使現有/較差的設定下,都可以走出良好的效果。

然而,又發現了時限短的話,走出的棋或會出問題。
要發揮威力的話,看來要用到每着約 30 秒級的設定。
或許有較多記憶體的話,可以用較好的 ...
經過測試,發現改良後的兩種算法/模式,變成已能解一般殘局。
只是不如正常模式那樣好。
這兩種模式,看來已夠全面了。



回覆 引用 TOP

閣下不覺得啲車 躲在死角睡覺嗎?
頭卅回合,離奇貪食兵
其實要另外加運算計法:
以前這版有提及過黑白棋的思考模式,
其中一點就是令自己的選擇去到最多!而且令對手的選擇減到最少!
相部車且上仕,極不通順的睡覺。
橫車長期宅相田,不上河頭,也是怪異!

舉個例:
31: 俥六進三 補相兼高頭車
就不會進炮將軍完,又退回原位
甚至思考棄炮,馬食中象跳槽入殺!

一直強調,對局是找出對方的價值觀漏洞,再將它擴大化成局。



[隱藏]
引用:
原帖由 catjoke 於 2018-10-28 02:21 PM 發表

閣下不覺得啲車 躲在死角睡覺嗎?
頭卅回合,離奇貪食兵
其實要另外加運算計法:
以前這版有提及過黑白棋的思考模式,
其中一點就是令自己的選擇去到最多!而且令對手的選擇減到最少!
相部車且上仕,極不通順的睡覺。
橫車長期宅相田,不上河頭,也是怪異!

舉個例:
31: 俥六進三 補相兼高頭車
就不會進炮將軍完,又退回原位
甚至思考棄炮,馬食中象跳槽入殺!

一直強調,對局是 ...
這次電腦對電腦,或許對於有經驗的棋手來說走得不太好。
但是我可以解釋,為何我覺得這個算法,其實已做得相當不錯。

首先,程式的 NPS 值大約是 50,000 ~ 100,000 。
因為用的電腦語言/環境會間中進行所謂的(記憶體)垃圾收集。
不知何故,誇張時可用大約一半時間,甚至更多來進行這件事。
算起來, 30 秒的時間,只可分析約 30 * 50,000 = 1,500,000 個局面左右。
這個數字,其實對比用 C/C++ 寫的象棋引擎來說,可能只是一兩秒的事。

我的程式的超級快增強模式,大約等效分支數是 2 。
即是前面數字,大約最多做到 log(1,500,000)/log(2) ~= 20.5 級/層 。
但同時這種級數,最差/最短的分支,只可以做到 4 層左右。
而且,因為設定/記憶體的限制,這個最壞情況,看來很容易發生。

所以,這個程式的表現也就可以說是,會確保 4 着內的變化是不敗的、保本的。
當然同時,對於會加深的分支,會找最佳變化。
而且也並不差:最深有約 20 層效果。

說回棋局,第 31 着的選擇不走車六進三,就是說這個分支沒有特別加深,甚至可能得最差的 3 、 4 層分析。
所以算出的變化/分數,不如馬三退一去卒保相那樣直接簡單。



回覆 引用 TOP

[按此隱藏 Google 建議的相符內容]






重要聲明:本討論區是以即時上載留言的方式運作,香港討論區對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意 見,並非本網站之立場,讀者及用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,讀者及用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者及用戶發現有留言出現問題,請聯絡我們。香港討論區有權刪除任何留言及拒絕任何人士上載留言 (刪除前或不會作事先警告及通知 ), 同時亦有不刪除留言的權利,如有任何爭議,管理員擁有最終的詮釋權 。用戶切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。


Copyright©2003- Discuss.com.hk Limited. All Right Reserved.
版權所有,不得轉載。