網游練習總結(3)


廢話不多說了,看基本算法:

關於博弈:

對於博弈,謝識予在《經濟博弈論》中給出過一個非技術性的定義:博弈即一些個人、隊組或其他組織,在面對一定的環境條件,在一定規則下,一次或多次,同時或先后,從各自允許選擇的行動或策略中進行選擇並加以實施,各自取得相應結果的過程。一個簡單的定義就是在優先在預測勝率前做出的決策就是博弈。

博弈的要素:1.博弈方,2.決策,3.收益,4.博弈的次數與先后次序,5.博弈與信息。

博弈的分類:

(從博弈人數)[單人博弈][兩人博弈(零和博弈)(非零和博弈)][多人博弈(結盟)(不結盟)];

(從博弈次數)[一次博弈(靜態博弈)][多次博弈(動態博弈)(重復博弈)];

(從信息分類)[完全信息博弈(靜態博弈)(動態博弈)][不完全信息博弈(靜態博弈)(動態博弈)];

零和博弈:

零和博弈指參與博弈的各方在嚴格競爭下一方的收益必然意味着另一方的損失,博弈各方的收益和損失相加總和永遠等於零。

有鞍點的零和博弈:

在矩陣中,一個數在所在的行是最大值,在所在的列中是最小值,或者在所在的列是最大值,在所在的行使最小值,則這個數就被稱為鞍點。在零和博弈中,這個數就是一方的最大收益同時又是另一方的最小收益。零和博弈有鞍點的情形並不是很常見,大部分零和博弈是沒有鞍點的。

博弈的解:

博弈的解就是雙方在使自己收益最大化的情況下不得不接受的一對均衡策略。有鞍點的零和博弈的解就是一個策略對,是由博弈局勢所決定的,在對方的限制條件下,雙方最后不得不接受的結局所對應的一對策略。

有鞍點的零和博弈求解方法:

在博弈矩陣中每一行選出最小的數,在這些最小數中再選出最大的數;列中選出最大的數,在這些最大數中再選出最小的數,如果行與列選出的數值相等,則這個數就是博弈的值,而對應的行與列的策略就是這個問題的解。

零和博弈的Von.Neumann與Mogenstern最大最小或最小最大策略解的一般描述:

博弈方為甲方I與乙方II,甲方的策略為I1到In,乙方的策略為II1到IIm,收益矩陣:

設甲在最大最小策略下所能得到的最小值為:

乙在最小最大策略下准許甲能得到的最大值為:

則可以證明:

則稱其為最大最小或最小最大准則下博弈的值,記為v,此時的策略對為最大最小策略或最小最大策略的解。

其實,有鞍點的博弈不是經常會有的。但是對於象棋接下來的算法有一點輔助性理解就行了。

接下來直接看中國象棋常用算法Alpha-Beta剪枝算法:

Alpha-Beta算法是對minimax算法的一種優化,它在搜索過程中,在當前已經有最優結果以后是否決定繼續深度搜索下去。Alpha-Beta算法只能使用遞歸來實現,在遞歸運算時,分別傳入Alpha和Beta值,alpha為搜索到的最好值,任何比alpha小的值直接被剪切掉;Beta是對於對手來說是最壞的值,因此,這個值也是對手所能接受的最壞值得底線,根據策略來說,如果在搜索過程中返回的是一個比Beta更好的值,對於我們走棋方來說就沒有這個機會了,我們應該直接返回最壞的值,但出於對方的局勢,他也總會找到一個比Beta更好的值。

 

中國象棋的算法生成:由於中國象棋每個局面的平均走法為2060,相對而言相當復雜,平均每個局面為40個走法;

中國象棋價值評估:中國象棋不可能從一個局面直接進行搜索並計算出輸贏,只能進行有限的搜索進行局面的優劣。

(1)棋子價值:一方棋子總價值等於該方所有棋子乘以相應棋子的價值的總和。簡而言之,也就是說此局面該方有棋子的基本情況;

(2)位置價值:由於不同棋子在不同位置各自發揮的作用不同,因此,每個棋子在每個局面相對應的位置都會有不同的價值值;

(3)關系價值:棋子之間的關系,也是評估雙方優劣的重要因素;

在博弈樹中,比如黑方勝棋局面是一個極大值,那么紅方為極小值,和棋則為0. 那么,黑方就會讓局面的分值一直拉大,而紅方只能將局面分值減小。因此,黑方會選擇分值更大的節點,而紅方就會選擇能夠接受范圍內的最小的分值節點。

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com