本發(fā)明涉及計(jì)算機(jī)博弈領(lǐng)域,具體涉及一種基于博弈算法的黑白棋博弈方法及系統(tǒng)。
背景技術(shù):
計(jì)算機(jī)博弈使機(jī)器能像人類一樣進(jìn)行判斷和推理,參與到棋牌類競(jìng)技當(dāng)中。計(jì)算機(jī)博弈是人工智能領(lǐng)域的重要研究分支,是智能決策系統(tǒng)、兵棋推演、機(jī)器智能等研究領(lǐng)域的重要科研基礎(chǔ),被認(rèn)為是人工智能最具挑戰(zhàn)性的研究方向之一。對(duì)于計(jì)算機(jī)博弈而言,博弈的最終目標(biāo)是取勝,而取勝時(shí)的狀態(tài)就如同狀態(tài)空間法中的目標(biāo)狀態(tài)。計(jì)算機(jī)博弈既可以是計(jì)算機(jī)與人之間的博弈,也可以是計(jì)算機(jī)與計(jì)算機(jī)之間的博弈。
黑白棋的博弈樹搜索主要由兩部分組成,一是局面評(píng)估,這種評(píng)估方式涉及到許多方面,主要有棋位的評(píng)估、行動(dòng)力的評(píng)估、穩(wěn)定子的評(píng)估、邊緣子的評(píng)估等等,這些因素常常通過線性組合的方式產(chǎn)生最終估值;二是搜索方法,通常由alpha-beta等博弈樹搜索方法組成,主要作用是根據(jù)搜索算法對(duì)經(jīng)過估值后的局面進(jìn)行搜索,得到最優(yōu)解。
在經(jīng)典的黑白棋局面評(píng)估中,傳統(tǒng)的對(duì)于棋位價(jià)值的估值方法是應(yīng)用一個(gè)不變的棋位價(jià)值表來進(jìn)行估值,棋位估值是與其他因素的估值相區(qū)分開的。這樣就會(huì)遇到一定的麻煩:當(dāng)某些棋子已經(jīng)確定為穩(wěn)定子后,它們的估值仍然很低。此外,傳統(tǒng)的搜索算法往往沒有根據(jù)局面形勢(shì)變化改變博弈樹搜索層數(shù),這樣導(dǎo)致在局面占有優(yōu)勢(shì)的情況下進(jìn)行過多的搜索,增加了搜索時(shí)間,影響算法效率。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述問題,本發(fā)明提出一種基于博弈算法的黑白棋博弈方法和系統(tǒng),提出一種新的動(dòng)態(tài)估值算法,運(yùn)用動(dòng)態(tài)估值法來進(jìn)行局面的評(píng)估,并通過將主變量搜索、局面評(píng)估、附加搜索相結(jié)合的博弈搜索算法進(jìn)行博弈樹搜索,明顯提高了博弈樹搜索的效率。
本發(fā)明是通過以下方案實(shí)現(xiàn)的:
本發(fā)明涉及一種基于博弈算法的黑白棋博弈方法,在設(shè)計(jì)的過程中,將改進(jìn)傳統(tǒng)的估值算法與搜索算法,采用動(dòng)態(tài)估值與附加搜索相結(jié)合的方式,極大地提高AI性能。
本發(fā)明具體步驟如下:
步驟1,構(gòu)造黑白棋局面動(dòng)態(tài)評(píng)估方法,包括:行動(dòng)力的評(píng)估、棋位價(jià)值的動(dòng)態(tài)評(píng)估、前期局勢(shì)的評(píng)估、中期局勢(shì)的評(píng)估、后期局勢(shì)的評(píng)估。具體如下:
步驟1.1,進(jìn)行行動(dòng)力的評(píng)估。比較雙方可以選擇的決策位置來評(píng)估雙方的行動(dòng)力。
步驟1.2,動(dòng)態(tài)評(píng)估棋位價(jià)值。棋位價(jià)值的動(dòng)態(tài)評(píng)估包括棋位的評(píng)估、穩(wěn)定子的評(píng)估和內(nèi)部子的評(píng)估,玩家下得每一步,棋位價(jià)值都會(huì)不同。
步驟1.3,根據(jù)棋局所處的不同狀態(tài),對(duì)其進(jìn)行局勢(shì)的評(píng)估。局勢(shì)的評(píng)估又分為三類:前期局勢(shì)的評(píng)估、中期局勢(shì)的評(píng)估、后期局勢(shì)的評(píng)估。前期局勢(shì)的評(píng)估是基于行動(dòng)力和雙方的子數(shù)來對(duì)局面進(jìn)行評(píng)估;中期局勢(shì)的評(píng)估基于棋位價(jià)值表,結(jié)合內(nèi)部子、行動(dòng)力等因素對(duì)局面進(jìn)行動(dòng)態(tài)評(píng)估;后期基于雙方的棋子數(shù)量對(duì)局面進(jìn)行評(píng)估。
步驟2,構(gòu)造黑白棋博弈樹搜索算法,包括:主搜索算法的實(shí)現(xiàn),附加搜索算法的實(shí)現(xiàn),具體如下:
步驟2.1,實(shí)現(xiàn)附加搜索方法。假設(shè)采取目標(biāo)走法,檢測(cè)局面是否會(huì)向己方不利的情況發(fā)展。
步驟2.2,實(shí)現(xiàn)主搜索算法。首先進(jìn)行一定層次的主變量搜索,如果搜索結(jié)果顯示己方優(yōu)勢(shì)比較大時(shí),調(diào)用附加搜索函數(shù)進(jìn)行附加搜索,如果附加搜索函數(shù)顯示局面不會(huì)對(duì)向自己不利的情況發(fā)展,則選用當(dāng)前搜索到的最優(yōu)走法;如果附加搜索函數(shù)顯示局面可能會(huì)對(duì)向自己不利的情況發(fā)展,則運(yùn)用搜索引擎進(jìn)行更深層次的搜索,并選取搜索到的最優(yōu)走法為自己的決策。
步驟3,實(shí)現(xiàn)黑白棋博弈系統(tǒng)。黑白棋博弈系統(tǒng)主要由五個(gè)模塊構(gòu)成:數(shù)據(jù)表示模塊、用戶界面模塊、搜索引擎模塊、估值核心模塊、控制函數(shù)模塊。具體如下:
步驟3.1,實(shí)現(xiàn)數(shù)據(jù)表示模塊,定義在程序中需要用到的枚舉類型、結(jié)構(gòu)體、變量等,為其它模塊的正常運(yùn)行提供支撐作用;
步驟3.2,實(shí)現(xiàn)用戶界面模塊,設(shè)計(jì)并實(shí)現(xiàn)用戶界面,將用戶的輸入傳遞給控制函數(shù)模塊,根據(jù)控制函數(shù)反饋的信息做出相應(yīng)的響應(yīng),并將計(jì)算機(jī)的決策顯示給用戶。
步驟3.3,實(shí)現(xiàn)搜索引擎模塊,利用搜索引擎評(píng)估節(jié)點(diǎn)、調(diào)用估值核心模塊對(duì)葉子節(jié)點(diǎn)進(jìn)行估值,選擇最優(yōu)決策并將決策結(jié)果反饋給計(jì)算機(jī)。
步驟3.4,實(shí)現(xiàn)估值核心模塊,利用評(píng)估函數(shù)對(duì)局面進(jìn)行評(píng)估,并將結(jié)果反饋給搜索引擎模塊。
步驟3.5,實(shí)現(xiàn)控制函數(shù)模塊,根據(jù)用戶界面模塊傳遞來的用戶輸入信息進(jìn)行相應(yīng)的計(jì)算與檢測(cè),并將結(jié)果反饋給用戶界面模塊。
通過以上內(nèi)容可知,本申請(qǐng)?zhí)峁┑氖且环N基于博弈算法的黑白棋博弈方法及系統(tǒng),首先構(gòu)造黑白棋博弈樹搜索算法,包括主搜索算法的實(shí)現(xiàn)和附加搜索算法的實(shí)現(xiàn),然后構(gòu)造黑白棋局面動(dòng)態(tài)評(píng)估方法,包括行動(dòng)力的評(píng)估、棋位價(jià)值的動(dòng)態(tài)評(píng)估、前期局勢(shì)的評(píng)估、中期局勢(shì)的評(píng)估、后期局勢(shì)的評(píng)估,最后實(shí)現(xiàn)了數(shù)據(jù)表示模塊、用戶界面模塊、搜索引擎模塊、估值核心模塊、控制函數(shù)模塊等五個(gè)模塊,完成了黑白棋博弈系統(tǒng)的實(shí)現(xiàn)。本申請(qǐng)通過局面的動(dòng)態(tài)評(píng)估算法,避免了經(jīng)典估值算法不能根據(jù)局勢(shì)變化動(dòng)態(tài)估值的缺點(diǎn),提高了估值的精度;通過主變量搜索與附加搜索相結(jié)合的方法,提高了博弈樹搜索的效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本申請(qǐng)博弈樹主搜索算法的流程圖。
圖2為本申請(qǐng)黑白棋博弈系統(tǒng)模塊示意圖。
具體實(shí)施方式
下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
實(shí)施例1
如圖1所示,本實(shí)施例包括以下步驟:
步驟1,進(jìn)行一定層次的主變量搜索:
選用主變量搜索為博弈樹主搜素引擎,根據(jù)可能出現(xiàn)的局面狀況,進(jìn)行一定層次的搜索,得到一個(gè)最佳走法;
步驟2,進(jìn)行局勢(shì)評(píng)估:
步驟2.1,計(jì)算步驟1得到得到最佳走法中己方優(yōu)勢(shì)是否比較大,其中,局勢(shì)的評(píng)估根據(jù)棋局所處的不同狀態(tài),又分為前期局勢(shì)的評(píng)估、中期局勢(shì)的評(píng)估、后期局勢(shì)的評(píng)估三類。前期局勢(shì)的評(píng)估是基于行動(dòng)力和雙方的子數(shù)來對(duì)局面進(jìn)行評(píng)估;中期局勢(shì)的評(píng)估基于棋位價(jià)值表,結(jié)合內(nèi)部子、行動(dòng)力等因素對(duì)局面進(jìn)行動(dòng)態(tài)評(píng)估;后期基于雙方的棋子數(shù)量對(duì)局面進(jìn)行評(píng)估。
步驟2.2,根據(jù)步驟2.1得到的結(jié)果選擇是否進(jìn)行附加搜索。如果局面評(píng)估結(jié)果顯示己方優(yōu)勢(shì)比較大,則調(diào)用附加搜索算法對(duì)局面繼續(xù)進(jìn)行搜索;如果局面評(píng)估結(jié)果顯示己方優(yōu)勢(shì)不夠大,則使用主變量搜索進(jìn)行更深層次的搜索,并將找到最優(yōu)走法作為最終決策。
步驟3,進(jìn)行附加搜索:
步驟3.1,利用主變量搜索引擎,對(duì)步驟1搜索到的最優(yōu)走法對(duì)應(yīng)的局面繼續(xù)進(jìn)行一定層次的附加搜索,并對(duì)搜索到的最優(yōu)走法局面進(jìn)行評(píng)估,判斷局面是否可能會(huì)對(duì)向己方不利的情況發(fā)展。
步驟3.2,根據(jù)步驟3.1得到的結(jié)果選擇是否進(jìn)行更深層次的搜索。如果局面評(píng)估結(jié)果顯示局面可能會(huì)向?qū)悍讲焕那闆r發(fā)展,則進(jìn)行更深層次的搜索,并將找到最優(yōu)走法作為最終決策;如果局面評(píng)估結(jié)果顯示局面不會(huì)向?qū)悍讲焕那闆r發(fā)展,則將步驟1得到的最優(yōu)走法作為最終的決策。