1. 程式人生 > >並行實現有自學習能力的五子棋AI

並行實現有自學習能力的五子棋AI

表2

搜尋深度

測試結果

並行PVS+歷史啟發

0.030.211.96128.86

的P(L/A)均為1,而贏者在Depth步走法內的P(W/A)均為1。而倒數Depth次以外的步數有沒有可能導致必輸呢(比如最後階段通過多個衝四,可以在AI預測步數之外產生必勝局面)?答案是可能的。可以把倒數第Depth局面定為目標局面,從倒數第Depth+1步開始進行層數加深的迭代預測,直到該步局面不會一定匯出這個目標局面為止,而在這步以後的局面都是必輸局面。規定Pre(A)=A的前次走法,PrePre(A)=A局面的前次走法的前次走法(等於悔棋一步)。進行復盤的虛擬碼如下:

if(倒數第Depth步該輸者走)CM=倒數第Depth步的局面;else

CM=倒數第Depth-1步的局面;for(;;){

對PrePre(CM)這個局面進行深度為2的PVS搜尋;

PVS0.060.459.365294.581

PVS+歷史啟發

0.040.2312.02531.553

2345

(注:硬體環境為P4(HP)2.8GHz,記憶體768M)

處理,AI勝返回最大,AI輸返回最小,但事實上即使對於必勝和必輸局面,層數也應該影響返回值。因為下棋時如果能2步獲勝,下棋者不會選擇4步獲勝的走法。對於必輸局面層數就更重要,AI必須選擇層數多的必輸走法,因為有可能使用者並沒有看出必殺的走法,而浪費了機會,這樣就會使AI化險為夷。所以在返回極值時,要把層數考慮進去,像:

ReturnValue=9999-weight*Depth;(AI勝)ReturnValue=-9999+weight*Depth;(AI輸)

Depth越大,表示越靠近根節點。這樣當AI勝利時,對於越靠

近根節點的局面,就返回越大值,反之亦然(weight可以由具體評估函式確定)。

if(得到的預測最佳走法不等於CM)break;else{

P(L/PrePre(CM))=1;P(W/Pre(CM))=1;CM=PrePre(CM);}}

4.2等好局面的隨機走法

由於AI總是選擇評估值最好的走法走,這樣導致在相同

的佈局,AI總走出相同的下一步。而事實上,除了必殺招或者必防招,一個局面很多時候沒有絕對最好的走法,而是有一些都近似不錯的走法,那麼可以把這些評估值差距在一定範圍內的走法彙集起來,然後隨機選擇它們中的一種走法,避免AI的走法的固定模式。

對於上面的虛擬碼,可以將BestResult[執行緒序號]改為一個走法佇列,裡面存放最好的N(一般N小於5)個走法,然後在所有執行緒結束時,從所有的BestResult走法中得到最好的走法,然後把評估值與最好走法的評估值之差在一定範圍Range內的走法都選進來,從中隨機選一個走法。Range值的確定要參考具體的評估函式。

這樣在每次下完後電腦覆盤,更新最後若干走法的導致勝利或失敗的概率。等下次對弈時,AI自動把這些資料加到評估函式中去,對於高概率影響AI獲勝的走法返回極大值,高概率導致AI輸的返回極小值。AI如果發現當前佈局的這種走法在以前輸過棋,那麼它不會選擇這個走法,從而達到自學習的效果。

5結束語

隨著IntelHP(超執行緒技術)的實現和將來多處理器PC機

的普及,對於資料計算量大的人機對弈問題必然要求應用並行的思想去處理。超快搜索速度和必要的覆盤必然帶給下“反思”棋AI更多智慧。(收稿日期:2005年12月)

4.3自學習能力

上面的並行PVS搜尋演算法還沒有自學習的能力,這樣AI

在下棋時會重複以前出現過的所以需要在每盤棋結束“昏招”。時,對輸方(尤其當AI輸時)進行一定步數的覆盤。而這個步數一定要大於搜尋的Depth(因為輸方在Depth深度預測中並沒有預見到它的不利)。因此如果用P(L/A)表示在A走法下導致輸棋的概率,而P(W/A)表示A走法下導致獲勝的概率,那麼最後輸者在Depth步走法(叫為輸者的最後一個必輸局面)內

參考文獻

1.陸汝鈐.人工智慧[M].北京:科學出版社,1995

2.NilsJNilsson.鄭扣根,莊越挺譯.ArtificialIntelligenceANewSyn-thesis[M].北京:機械工業出版社,2000

3.FDLaramée.ChessProgramming[M].WroxPressLtd,19994.DNLLevy.ComputerChessCompendium[M].Springer-Verlag,1988

(上接22頁)

製造系統—CIMS,2003;9(5):384 ̄389

4.EmmelhainzM,EmmelhainzL,StockJ.Consumerresponsetoretailstock-outs[J].JournalofRetailing,1991;67(2):138 ̄147

5.WangCX,BenarochM.SupplychaincoordinationinbuyercentricB2Belectronicmarkets[J].InternationalJournalProductionEconomics,2004;92(2):113 ̄124

6.SunD.Inventorymanagementine-business.Workingpaper,Pennsyl-vaniaStateUniversity,USA,2001

2.AberdeenGroup.Makinge-sourcingstrategic:fromtacticaltechnologytocorebusinessstrategy[R].TechnicalReport,AberdeenGroupInc,2002

3.CampoK,GijsbrechtsE,NisolP.Towardsunderstandingconsumerre-sponsetostock-outs[J].JournalofRetailing,2000;76(2):219 ̄242

計算機工程與應用2006.3047