999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

UCT算法在不圍棋博弈中的實現(xiàn)

2015-07-25 08:26:37梁國軍謝垂益胡伶俐李景炤
韶關(guān)學(xué)院學(xué)報 2015年8期
關(guān)鍵詞:人工智能

梁國軍,謝垂益,胡伶俐,林  昊,李景炤

(韶關(guān)學(xué)院 數(shù)學(xué)與統(tǒng)計學(xué)院,廣東 韶關(guān)5120051)

UCT算法在不圍棋博弈中的實現(xiàn)

梁國軍,謝垂益*,胡伶俐,林昊,李景炤

(韶關(guān)學(xué)院 數(shù)學(xué)與統(tǒng)計學(xué)院,廣東 韶關(guān)5120051)

摘要:計算機(jī)博弈是人工智能領(lǐng)域的挑戰(zhàn)性課題,它利用計算機(jī)進(jìn)行分析、判斷和推理,從而得到理性的決策.不圍棋是近年來計算機(jī)博弈競賽的一個棋種,屬于圍棋的變體,其規(guī)則是先吃子或棋子自殺的一方為負(fù).通過分析不圍棋博弈模型的特點,提出了對上限信心界樹搜索(UCT)算法的一個優(yōu)化方法,在算法的啟動過程優(yōu)先選擇評分較高的盤面進(jìn)行模擬博弈,以便得到更好的落子選擇.在與著名的OASE-NoGo軟件的試驗對弈中,以該算法為核心設(shè)計的不圍棋軟件取得了90%以上的勝率,證明是可行、有效的.

關(guān)鍵詞:人工智能;計算機(jī)博弈;不圍棋;UCT算法

棋類游戲是計算機(jī)博弈領(lǐng)域的重要研究課題,這些研究工作有助于加深對人工智能與計算機(jī)科學(xué)的認(rèn)識,促進(jìn)對人類認(rèn)知過程的理解.不圍棋是十多年前開始出現(xiàn)的一種雙人博弈游戲,屬于圍棋的變體,如果一方落子后吃掉了對方的棋子、或者令已方棋子自殺,則落子一方判負(fù)[1].2011年起,由國際計算機(jī)博弈協(xié)會(International Computer Games Association,ICGA)組織的計算機(jī)奧林匹克(Computer Olynpiad)大賽增加了不圍棋項目.2012年起,由中國人工智能學(xué)會舉辦的中國機(jī)器博弈錦標(biāo)賽也將不圍棋列入比賽項目.在這些高級別賽事的推動下,不圍棋正在為人們認(rèn)識并開始進(jìn)行研究.

筆者總結(jié)了不圍棋的研究現(xiàn)狀,分析了不圍棋的博弈模型,給出上限信心界樹搜索 (UCT,UCB for Tree Search)中的UCB1子算法的一個修正,使其能更早地選擇優(yōu)勢盤面,并據(jù)此設(shè)計了一個不圍棋博弈軟件,通過與對照軟件的對弈實驗來驗證算法的有效性.

1  研究現(xiàn)狀

早些年,計算機(jī)博弈對于棋類游戲的研究集中在基于模式識別和專家系統(tǒng)的方法上(最典型的是基于靜態(tài)評估函數(shù)的α-β博弈樹方法),并在國際象棋、中國象棋等項目中獲得了成功.但是對于圍棋類的項目,由于搜索空間巨大只能訪問博弈樹的一小部分、無法進(jìn)行準(zhǔn)確的靜態(tài)盤面評估,因此傳統(tǒng)的方法一直無法取得滿意的結(jié)果,在2000年前后,世界上最高水平的計算機(jī)圍棋軟件的棋力還比不上人類的業(yè)余初段.2006年,Levente Kocsis和Csaba Szepesvári將蒙特卡洛樹搜索(Monte-Carlo Tree Search,MCTS)方法與UCB公式[2]結(jié)合,提出上限信心界樹搜索(UCT,UCB for Tree Search)算法[3],顯著地提高了搜索效率. UCT算法的出現(xiàn)開創(chuàng)了計算機(jī)博弈研究的新局面.此后人們圍繞MCTS方法進(jìn)行研究和改進(jìn),推動圍棋軟件的棋力不斷提高.2013年3月,圍棋軟件CrazyStone在受讓四子的情況下,戰(zhàn)勝日本棋手石田芳夫九段,其棋力已達(dá)到業(yè)余五、六段的水平.

首次對不圍棋的研究報道出現(xiàn)在2011年,文獻(xiàn)[4]介紹了MCTS算法在不圍棋中的實現(xiàn).通過對比測試發(fā)現(xiàn),在圍棋中常用的快速動作值估計(Rapid Action-Value Estimates,RAVE)、節(jié)點慢速創(chuàng)建、布局模板、UCT等方法和算法,在不圍棋中同樣有效;文獻(xiàn)[5]提出一個結(jié)合本體、進(jìn)化計算、模糊邏輯、模糊標(biāo)記語言的遺傳算法,根據(jù)收集的棋局模式和預(yù)構(gòu)建的不圍棋模糊本體,用基于模糊推理機(jī)制的遺傳模糊標(biāo)記語言分析當(dāng)前棋局,得到下一個最好的棋步,并應(yīng)用了遺傳學(xué)習(xí)機(jī)制,可在與參照棋局的對壘中不斷提高棋力;文獻(xiàn)[6-7]分析了棋局模板的分類和格式定義,在對弈過程中優(yōu)先使用模板進(jìn)行棋步的選擇,當(dāng)出現(xiàn)模板中沒有的棋局時再使用MCTS算法;文獻(xiàn)[8]提出在對弈過程中進(jìn)行UCT樹的重用,可以增加5%~30%的搜索深度;文獻(xiàn)[9]通過啟發(fā)式、暴力搜索、參數(shù)調(diào)整等方式,提高UCT算法的搜索成功率;文獻(xiàn)[10]提出在MCTS算法中增加靜態(tài)估計方法,根據(jù)周圍棋子的類型標(biāo)記出允許自由落子的點和禁止落子的點,加快博弈樹搜索速度.

由于不圍棋是新的棋類,相關(guān)的研究成果較少.目前對不圍棋的主要研究方法是參考棋類尤其是圍棋的相關(guān)理論和技術(shù),根據(jù)其博弈規(guī)則進(jìn)行改造和拓展.但由于博弈規(guī)則不同,博弈模型的建立、盤面優(yōu)勢評估、博弈樹搜索等過程相較其他棋類有很大的區(qū)別.對于不圍棋博弈的研究,大多內(nèi)容都將會是創(chuàng)新性的工作.

2  不圍棋的博弈模型

一個不圍棋的博弈模型包括對弈規(guī)則[9]、博弈樹的生成、盤面評估、博弈搜索算法等內(nèi)容.

2.1博弈樹的生成

9路不圍棋的盤面有9行9列,總共81個點.在雙人對弈過程中,先手方要考慮的落子點依次為81、79、77、……、3、1個,后手方要考慮的落子點依次為80、78、76、……、4、2個.對于選手在第i步(先手時1≤i≤41,后手時1≤i≤40)時,若考慮連續(xù)的d步落子(從本步算起),則可供選擇的盤面數(shù)R為:

根據(jù)式(1),表1列出選手在盤中下完第20步后,考慮第21步開始的連續(xù)2、5、10步落子時需要檢查的盤面數(shù).

表1  盤中第21步起的盤面數(shù)

以當(dāng)前的盤面作為根結(jié)點,后續(xù)d步的可選盤面構(gòu)成子樹結(jié)點,形成一個d+1層的博弈樹.計算機(jī)通過搜索該博弈樹得到下一步落子的最優(yōu)選擇.

從下棋的經(jīng)驗中知道,能夠預(yù)估的后續(xù)落子步數(shù)(d)越多,棋手的棋力就越強,獲勝的概率越高,計算機(jī)博弈也是如此.但當(dāng)考慮過多的后續(xù)步(例如5步以上)時,博弈樹中的結(jié)點數(shù)量過于龐大、呈指數(shù)級增長,對于普通計算機(jī)來說,需要較多的計算時間和存儲空間,容易出現(xiàn)落子過慢、內(nèi)存不足的情況.

2.2盤面評估

下面先給出氣、眼、虎口、禁入點等基本術(shù)語的定義.

定義1:氣指與棋子/棋塊相鄰的空白點.

定義2:眼指同種顏色的棋子圍成的一個空白點,相當(dāng)于棋塊內(nèi)的“氣”.對方如果在該眼位落子,則該棋子的氣為0,形成一種自殺行為.

定義3:虎口指這樣的一個空白點,落在該點的棋子的氣為1.虎口是最接近完成眼之前的一個狀態(tài).定義4:禁入點指能使對方的棋子或棋塊無氣的一個未落子的點.若在禁入點落子,將殺死對方的棋子或棋塊,本方直接判負(fù).

在對弈過程中,每走一步棋,應(yīng)使己方的合法落子點盡量多、對方的合法落子點盡量少,這樣就越有機(jī)會接近勝利.根據(jù)不圍棋的對弈規(guī)則,對弈過程中應(yīng)使已方盤面中的眼和虎口的數(shù)量盡量多、禁入點的數(shù)量盡量少.因此,定義盤面N的評估函數(shù)S(N)為:

式(2)中,n1為盤面N中眼的個數(shù),s1為每個眼的分值,n2為虎口的個數(shù),s2為每個虎口的分值,n3為禁入點的個數(shù),s3為每個禁入點的分值.S(N)的值越大表明盤面越有利,否則盤面狀態(tài)越不理想.

2.3博弈搜索算法

在不圍棋博弈中,假設(shè)雙方總是采用最佳的落子策略.最佳的落子策略是指選手在任意給定的盤面中,如果存在致勝的走法,則選手就會選擇致勝的走法落子.給定任意的盤面狀態(tài),總是可以構(gòu)建、遍歷博弈樹,然后總能找到最佳落子點,使該選手取得勝利,所以不圍棋是可解的.

由于不圍棋博弈樹的規(guī)模非常大,即使模擬數(shù)百萬次的對局,也僅僅能夠覆蓋博弈樹很小的一部分.如果隨機(jī)地選擇博弈樹的子節(jié)點,則會花費非常多的搜索空間和時間,使得搜索的效率低下.建議在子節(jié)點的隨機(jī)模擬過程中加入不圍棋知識的各種策略,進(jìn)而得到更高的搜索效率和更準(zhǔn)確的結(jié)果.

博弈搜索算法的基本思路是:給定一個任意盤面和某一選手的棋子顏色,建立博弈樹,進(jìn)行搜索、評估和剪枝,返回評估分值最好的一條路線.

3 UCT算法的設(shè)計

UCT算法是UCB算法與蒙特卡洛方法的結(jié)合.筆者提出對UCB算法的一個修正,據(jù)此對UCT算法進(jìn)行優(yōu)化設(shè)計.

3.1蒙特卡洛方法

蒙特卡洛方法的主要理論基礎(chǔ)是大數(shù)定律,在隨機(jī)取樣的情況下,可以獲得有誤差的評估值,取樣的數(shù)量越多,誤差將越小,評估值將越準(zhǔn)確.運用蒙特卡洛方法模擬不圍棋中隨機(jī)落子的步驟是:保存當(dāng)前棋盤狀態(tài),生成下一步所有可落子點,選一可落子點落一子,接著按對應(yīng)黑白子落子的順序,黑子和白子輪流隨機(jī)落子,直至分出勝負(fù).記錄勝負(fù)和模擬次數(shù),恢復(fù)棋盤至之前保存狀態(tài).重復(fù)多次模擬以提高準(zhǔn)確性,直至模擬到時間結(jié)束或者到達(dá)規(guī)定的模擬次數(shù)為止,選擇勝率最大的可落子點,該點為最佳落子點.蒙特卡洛方法算法的偽碼為:

MonteCarlo(棋盤狀態(tài)){

根據(jù)棋盤狀態(tài)生成下一步所有可落子點;while(模擬時間未到或者未達(dá)到模擬次數(shù)){黑子和白子輪流隨機(jī)落子,直至分出勝負(fù);記錄勝負(fù)和模擬次數(shù);

更新相關(guān)節(jié)點的方向次數(shù)和獲勝的次數(shù)信息值;}返回勝率最大的可落子點;}.

3.2 UCB算法的修正

UCB算法來源于多臂匪徒模型,它采用在線的機(jī)器學(xué)習(xí)策略,既對當(dāng)前已有知識進(jìn)行利用,又有對未了解的知識進(jìn)行探索.這當(dāng)中最著名的是UCB1算法[2],其核心是信心上界索引計算公式(UCB1公式):

式中N為博弈樹中的給定節(jié)點,Ni為N的子節(jié)點,I(Ni)為Ni的信心上界索引,t(N)為對N的模擬次數(shù),t (Ni)為Ni在模擬中被選中的次數(shù),X(Ni)為Ni的收益平均值.C為加權(quán)系數(shù),如果C比較小則表明當(dāng)前的搜索偏重于利用;C比較大則說明當(dāng)前搜索偏重于探索.

UCB1算法采取隨機(jī)的方式開始第一步的選擇.但是對于棋類博弈的情形,當(dāng)處于盤中某一個對弈盤面時,可以根據(jù)對盤面的評估,優(yōu)先選擇往有利方向發(fā)展的落子.因此,本文提出對UCB1算法的修正思路:對于博弈樹中的子結(jié)點Ni(對應(yīng)一個可能的盤面),先按式(2)進(jìn)行盤面評估,評估結(jié)果作為Ni的收益初始值X1(Ni.由于在棋類博弈中Ni的收益平均值往往取為該節(jié)點對應(yīng)盤面的勝率,是一個不大于1的數(shù)字,因此可事先設(shè)定一個極大值常數(shù)M,使得S(Ni)/M小于1.經(jīng)過修正的UCB算法偽碼為:

UCB_modify(棋局盤面N){//得到盤面N的下一步可落子點if(N無孩子結(jié)點){//創(chuàng)建下一層博弈樹

下一步的所有可落子點Ni作為N的孩子結(jié)點;

<--盤面評估值S(Ni)/M;}

Else{//訪問下一層博弈樹

循環(huán):遍歷訪問N的所有下一步可落子點Ni,用公式(3)計算;}

返回值最大的子節(jié)點Ni;}.

3.3優(yōu)化的UCT算法

通過蒙特卡洛方法可以解決不圍棋落子搜索的問題,但是因為蒙特卡洛方法是隨機(jī)模擬的,而且沒有先驗知識的指導(dǎo),使得博弈樹的可擴(kuò)展層數(shù)較少,很難得到最優(yōu)解.UCT算法的基本思想是將UCB算法應(yīng)用到蒙特卡洛規(guī)劃過程中,通過計算UCB值來選擇落子點,不再是隨機(jī)選擇,有利于更早得到最優(yōu)解.但是UCB算法的初始階段還是通過隨機(jī)選擇落子點啟動模擬對弈過程,沒有考慮盤面的差異對勝負(fù)趨勢的影響.本文根據(jù)修正的UCB算法實現(xiàn)對UCT算法的優(yōu)化,使得盤面局勢影響落子位置,盤面評估得分較高的位置落子的機(jī)會更大,而盤面評估結(jié)果較差的落子位置也會有機(jī)會被選中、只是優(yōu)先級比較低.該UCT算法偽碼為:

UCT(棋局盤面root){//根據(jù)棋盤狀態(tài)返回一個落子點

建第一層博弈樹,以下一步的所有可落子點作為root的孩子結(jié)點;

node[0]<--root;

while(模擬時間未用完或者未達(dá)到模擬次數(shù)){

i<--0;

while(node[i]不是終局盤面){//向下擴(kuò)展,創(chuàng)建或訪問多層博弈樹

i++;

node[i]<--UCB_modify(node[i-1]);//選出下一步可落子點

}

value<--對node[i]的評判結(jié)果(取勝為1、負(fù)為0);

若i為偶數(shù),value<---value;//偶數(shù)次是對方的落子,相應(yīng)獲勝數(shù)取負(fù)值以便區(qū)分

for(j=i-1;j>0;j--){//向上更新父節(jié)點的獲勝數(shù)和模擬次數(shù)

value<---value;

node[j]的獲勝數(shù)增加value、模擬次數(shù)增加1;}

}pos<--勝率(獲勝數(shù)/模擬次數(shù))最高的可落子點(root的某個孩子結(jié)點);

刪除以root為根的博弈樹;

返回pos;}.

4  實驗結(jié)果

根據(jù)上述的UCT算法,實現(xiàn)了一個不圍棋博弈軟件,并通過與著名的臺灣大學(xué)不圍棋軟件OASE-No-Go V1.1進(jìn)行對弈測試實現(xiàn)效果.

與OASE-NoGo V1.1的初級棋的對弈結(jié)果見圖1,與OASE-NoGo V1.1的高級棋的對弈結(jié)果見圖2.

圖1初級對弈結(jié)果 

圖2高級對弈結(jié)果

表2為與OASE-NoGo V1.1初級和高級對弈的結(jié)果記錄,可以看出,本文實現(xiàn)的不圍棋博弈軟件有較強的棋力,在與對照軟件的對弈中,取得了90%以上的勝率.

表2  對弈結(jié)果記錄表

5  結(jié)論

針對不圍棋博弈模型的特點,對UCT算法中的UCB子算法進(jìn)行了修正,將盤面評估結(jié)果作為算法啟動時的初始值,優(yōu)先選擇較優(yōu)的盤面進(jìn)行模擬對弈,以便更快得到較好的棋步.所有的盤面都有機(jī)會被選中,只是較差的盤面被選中的概率較低而已.UCT算法的“利用已知、探索未知”的特性仍然得以保留.在與著名的不圍棋軟件OASE-NoGo V1.1的多次對弈實驗中,以上述算法為核心實現(xiàn)的不圍棋博弈軟件取得了90%以上的勝率,結(jié)果證明該算法可行、有效.

參考文獻(xiàn):

[1]Denim S.Anti Atari Go[EB/OL].(2011-12-07)[2014-8-30].http://senseis.xmp.net/?AntiAtariGo.

[2]Auer P,Cesa-Bianchi N,F(xiàn)ischer P.Finite-time Analysis of the Multiarmed Bandit Problem[J].Machine Learning,2002,47(2-3):235-256.

[3]Kocsis L,Szepesvári C.Bandit based monte-carlo planning[C].//Proceedings of the 17th European conference on Machine Learning, Berlin in Germany:Springer-Verlag,2006:282-293.

[4]CHOU C W,Teytaud O,and YEN S J.Revisiting Monte-Carlo tree search on a normal form game:NoGo[C].//Proceedings of the 2011 international conference on Applications of Evolutionary Computation,Torino in Italy:Springer-Verlag,2011:73-82.

[5]LEE C S,WANG M H,CHEN Y J,et al..Genetic fuzzy markup language for game of NoGo[J].Knowledge-Based Systems,2012(34): 64-80.

[6]SUN Y X,LIU C,and QIU H K.The research on patterns and UCT algorithm in NoGo game[C].//25th Chinese Control and Decision Conference,Guiyang:IEEE,2013:1178-1182.

[7]SUN Y X,WANG Y J,and LI F.Pattern matching and Monte-Carlo simulation mechanism for the game of NoGo[C].//Proceedings of IEEE CCIS2012,Hangzhou:IEEE,2012:61-64.

[8]LI R,WU Y Q,ZHANG A D,et al.Technique analysis and designing of program with UCT algorithm for NoGo[C].//25th Chinese Control and Decision Conference,Guiyang:IEEE,2013:923-928.

[9]佘博玄,禁圍棋程式設(shè)計與研究[D].臺灣新竹:交通大學(xué),2013.

[10]SUN Y X,RAO G J,SUN H M,et al.Research on static evaluation method for computer game of NoGo[C].//26th Chinese Control and Decision Conference,Changsha:IEEE,2014:3455-3459.

(責(zé)任編輯:歐愷)

中圖分類號:TP312

文獻(xiàn)標(biāo)識碼:A

文章編號:1007-5348(2015)08-0017-04

[收稿日期]2015-05-15

[基金項目]國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(201410576018);廣東省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(201410576060);韶關(guān)學(xué)院科研項目(2012-16).

[作者簡介]梁國軍(1992-),男,廣東清遠(yuǎn)人,韶關(guān)學(xué)院數(shù)學(xué)與統(tǒng)計學(xué)院本科生;研究方向:計算機(jī)算法.*通訊作者.

An Implementation of UCT Algorithm for NoGo Game

LIANG Guo-jun,XIE Chui-yi,HU Ling-li,LIN Hao,LI Jing-zhao
(School of Mathematics and Statistics,Shaoguan University,Shaoguan 512005,Guangdong,China)

Abstract:Computer game is a challenging task in the field of artificial intelligence,which makes use of com

puter to analyze,judge and reason,so as to get the rational decision.In recent years,NoGo game is a kind of computer game competitions,similar to the game of Go,with the rules of no capture or suicide which is allowed. According to the characteristics of NoGo game model,an optimized UCT(UCB for Tree Search)algorithm is pro

posed to compute the better move by choosing certain chess layout with high score preferentially.A NoGo game software is designed mainly relies on the above-mentioned algorithm and proved to be feasible and efficient by the result of achieving more than 90%of winning with the famous OASE-NoGo.

Key words:artificial intelligence;computer game;NoGo;UCT algorithm

猜你喜歡
人工智能
我校新增“人工智能”本科專業(yè)
用“小AI”解決人工智能的“大”煩惱
汽車零部件(2020年3期)2020-03-27 05:30:20
當(dāng)人工智能遇見再制造
2019:人工智能
商界(2019年12期)2019-01-03 06:59:05
AI人工智能解疑答問
人工智能與就業(yè)
基于人工智能的電力系統(tǒng)自動化控制
人工智能,來了
數(shù)讀人工智能
小康(2017年16期)2017-06-07 09:00:59
人工智能來了
主站蜘蛛池模板: 亚洲天堂精品在线| 91免费片| 美女潮喷出白浆在线观看视频| 欧美精品亚洲精品日韩专区| 亚洲乱码视频| 国产91视频免费| 免费A级毛片无码免费视频| 青草精品视频| 日韩精品一区二区深田咏美| 亚洲色成人www在线观看| 日韩精品亚洲精品第一页| 免费人成视频在线观看网站| 国产产在线精品亚洲aavv| 午夜少妇精品视频小电影| 色妞www精品视频一级下载| 四虎成人在线视频| 国产高清毛片| 日韩欧美中文在线| 日韩av手机在线| 国产丝袜无码一区二区视频| 欧美劲爆第一页| 国产精品自在自线免费观看| 国产久草视频| 国产美女无遮挡免费视频| h视频在线播放| 亚洲嫩模喷白浆| 国产亚洲视频免费播放| 国产午夜无码片在线观看网站| 一本一道波多野结衣一区二区| 亚洲午夜福利精品无码不卡| 日韩欧美在线观看| 波多野结衣久久高清免费| 亚洲欧洲免费视频| 成年人免费国产视频| 国产精品久久久久久影院| 国产天天射| 日本午夜视频在线观看| 国产精品嫩草影院av| 国产特级毛片aaaaaaa高清| 人妻中文久热无码丝袜| 日韩久久精品无码aV| 亚洲va在线∨a天堂va欧美va| 亚洲av成人无码网站在线观看| 欧美国产成人在线| 欧美激情视频一区二区三区免费| 日韩二区三区| 亚洲国产精品日韩欧美一区| 亚洲欧美色中文字幕| 波多野结衣在线一区二区| 国产成人精品亚洲日本对白优播| 国产网站免费观看| 亚洲精品午夜天堂网页| 97超爽成人免费视频在线播放| 在线观看国产精品第一区免费| 国产久草视频| a亚洲视频| 天堂网亚洲系列亚洲系列| 亚洲天堂777| 先锋资源久久| 91久久大香线蕉| 黄色网页在线观看| 国产激情无码一区二区APP| 婷婷丁香色| 久久不卡精品| 国产免费久久精品99re丫丫一| 日本道综合一本久久久88| 狠狠色噜噜狠狠狠狠奇米777| 亚洲精品在线观看91| 真实国产乱子伦高清| 精品五夜婷香蕉国产线看观看| 午夜毛片福利| 国产精品女在线观看| 又黄又湿又爽的视频| 72种姿势欧美久久久久大黄蕉| 黄色国产在线| 国产乱人免费视频| 好吊妞欧美视频免费| 在线精品自拍| 久久久精品国产SM调教网站| 亚洲欧美日韩高清综合678| 欧美成人一级| 亚洲午夜综合网|