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

點格棋計算機博弈系統的設計與實現

2021-11-04 11:01:06倪錦園張建勛
現代信息科技 2021年9期

倪錦園 張建勛

DOI:10.19850/j.cnki.2096-4706.2021.09.021

摘? 要:計算機博弈是當前人工智能領域的主要研究方向。在點格棋計算機博弈的過程中,搜索引擎在開局階段會花費大量的時間,搜索出來的節點不夠優秀,由此造成整體棋力不夠強。為了解決此問題,該文設計了一種結合開局庫策略的MiniMax算法,并將此算法作為整顆博弈樹的搜索引擎,以強化計算機的算力,提高程序的整體效率。實驗結果表明,該文提出的搜索引擎具有更高的準確率和更好的魯棒性。

關鍵詞:計算機博弈;蒙特卡洛;開局庫;MiniMax

中圖分類號:TP311.5 文獻標識碼:A 文章編號:2096-4706(2021)09-0078-05

Design and Implementation of Dots and Boxes Computer Gaming System

NI Jinyuan,ZHANG Jianxun

(School of Computer Science and Engineering,Chongqing University of Technology,Chongqing? 400054,China)

Abstract:Computer gaming is the main research direction in the field of artificial intelligence at present. In the process of dots and boxes computer gaming,the search engine will spend a lot of time in the opening stage,and the searched nodes are not good enough,resulting in the overall chess power is not strong enough. In order to solve this problem,this paper designs a MiniMax algorithm combined with opening library strategies,and uses this algorithm as the search engine of the whole gaming tree,so as to strengthen the computing power of the computer and improve the overall efficiency of the program. Experimental results show that the proposed search engine in this paper has higher accuracy and better robustness.

Keywords:computer gaming;Monte Carlo;opening library;MiniMax

0? 引? 言

計算機博弈是一個充滿著智慧和無限挑戰的科學領域[1-3],它主要研究的是讓機器模擬人類思考的過程,并通過更加強大的計算能力來獲得更好的運算結果。筆者曾參加全國大學生計算機博弈大賽,獨立設計并開發了點格棋計算機博弈系統,并于比賽中取得二等獎的成績。在計算機博弈領域中,點格棋屬于零和完全信息博弈[4],由11×11大小的棋盤組成。對于計算機的搜索計算量,這個數據量非常龐大,構造一顆完整的博弈樹,則需要1111數量級的空間大小,這對計算機的空間要求是十分高的。因此在點格棋博弈項目上探索一種好的搜索引擎是非常困難的。目前對于點格棋博弈研究主要用蒙特卡洛算法配合估值函數作為搜索引擎,但由于在前中期搜索節點會花費大量的時間,且搜索出來的節點不是很好,導致點格棋的棋力難以得到較大提升[5-7]

針對以上問題,該文設計了一種結合開局庫策略的MiniMax算法作為搜索引擎,通過不同的開局庫策略讓己方棋子在博弈開局階段處于優勢地位,在中期階段通過MiniMax算法和經驗搜索布局來進行落子,在博弈雙方進入終局階段后,如果雙方的棋局進入我方終局必贏策略,此時程序將直接調用終局庫,勝率會達到100%。

1? 點格棋計算機博弈規則

點格棋計算機博弈系統的規則是根據全國大學生計算機博弈大賽的規則制定的,詳細的規則為:

(1)雙方輪流將兩個相鄰的點連接成一條邊,不可以超越兩個臨近點,不可以填充重復的邊,不可以連接一個格子的對角線。

(2)邊屬于雙方共有,只討論格子的所屬。

(3)當某一個格子的四條邊都被連成線時,占領最后一條邊的玩家擁有這個格子。

(4)占領格子后有一個獎勵邊,該玩家必須再下一步。

(5)格子全部圍成后,博弈結束,占領格子較多的一方為獲勝方。

一個11×11點格棋棋盤如圖1所示。

2? 算法介紹

2.1? MiniMax算法設計

對于很多十分復雜的棋局,有一個好的搜索算法和一個完善的估值函數可以很大程度上搜索到當前局面的最佳走步。MiniMax算法就是一種可以找出最優解的算法,屬于零和博弈的一種。目的是讓己方以優勢最大的方式去落子,讓對方以優勢最小的方式去落子,其總和為0,如同此消彼長的能量守恒。更進一步解釋,博弈樹的層次也分為奇偶層,對于落子的一方來說,其中的最優走步就是在他下一層節點的最優來選擇,如果這個估值的選擇上我方可以得到最大的收益的話,這個搜索就為“Max搜索”,同時這個估值對于對方來說是最小收益的話,這個搜索就是“Min搜索”[8]

對于不同局面時,都能夠以當前局面作為根節點,然后以該根節點建立一顆深度固定的博弈搜索樹,博弈樹出度為0的位置作為葉子節點,葉子節點的位置也就是當前落子的位置,但由于計算機內存硬件有限,在博弈前中期搜索過程中很難搜索到葉子節點,一般通過人為設置每步落子的搜索時間或者博弈樹迭代深度來控制落子。

極大極小算法的偽代碼示例程序為:

01 maxmin(player, cur_node)

02? ? ?if depth = 0 or node is a terminal node

03? ? ? ? ?return the heuristic value of nod

04? ? ?if maxPlayer

05? ? ? ? ?bestValue := -∞

06? ? ? ? ?for each child of node

07? ? ? ? ? ? ?v := minimax(child, depth - 1, FALSE)

08? ? ? ? ? ? ?bestValue := max(bestValue, v)

09? ? ? ? ?return bestValue

10? ? ?else miniPlayer

11? ? ? ? ?bestValue := +∞

12? ? ? ? ?for each child of node

13? ? ? ? ? ? ?v := minimax(child, depth - 1, TRUE)

14? ? ? ? ? ? ?bestValue := min(bestValue, v)

15? ? ? ? ?return bestValue

在棋盤大小為11×11的點格棋博弈過程中,由于需要1111數量級的空間大小,一般計算機難以達到這個量級的搜索量,所以通過限制搜索層數或者限制搜索時間,利用MiniMax算法搜索得出最佳的落子,因此無論是時間上還是空間上,此方法都是可行的。

2.2? MiniMax類設計

該文設計的MiniMax類如表1所示。

MiniMax類中的部分屬性如表2所示。

MiniMax類中的部分方法如表3所示。

2.3? MiniMax搜索流程圖

整顆博弈樹通過MiniMax配合估值函數進行搜索,MiniMax算法是一種找到對己方最有利的走步,同時也是對對方最不利的走步。MiniMax搜索算法主要是用遞歸實現的,遞歸是程序里面一個重要的思考策略[9,10],通過深度優先模擬出更深層次的節點。MiniMax算法是在雙方博弈過程中,盡量讓己方的優勢最大,讓對方優勢最小,其輸贏的總和為0。

該文提出的MiniMax搜索步驟主要分為:初始搜索樹、是否為葉子節點,是否時間結束,遞歸搜索等。MiniMax搜索流程圖如圖2所示。

MiniMax搜索主要通過以下三個步驟:

(1)初始搜索樹,首先在一顆空樹上創建根節點,然后在其子節點上創建可以走步的節點,接下來可以設置每一步搜索模擬時間,目的是為了防止比賽時間超時,然后用一個變量保持棋盤的信息,后面的模擬過程全部都在這個變量上進行演練。

(2)是否為葉子節點,初始化樹后會直接進入遞歸搜索的階段,進入遞歸搜索模擬之前會判斷該節點是否是葉子節點,如果是葉子節點會直接返回葉子節點,如果不是葉子節點會進入下一步判斷。

(3)時間是否結束,進入循環模擬時,會一直遞歸向下搜索節點,直到搜索到一個最佳節點為止,但由于時間限制,大部分情況是搜索不到葉子節點的,會在時間結束時返回一個當前的節點。

3? 開局庫策略

一個好的開局往往是贏得比賽的基礎,在開局階段通過設計開局庫來節約前期搜索節點的時間,同時也可以讓局面在前期保持一定的優勢,因此需要一個良好的開局庫來讓程序在整個對局中處于強勢地位。要設計一個良好的開局庫需要通過大量的測試并且通過觀察高手之間的對局情況,然后經過不斷地模擬,抽象出一套自己系統可以使用的開局庫。

基本上所有優秀的棋類博弈系統都有自己特殊的開局庫,如果不采用開局庫,而在開局階段就直接通過MiniMax搜索出的走步,這樣有可能會出現一些很不好的落子,所有我們需要在開局的時候加入一些經驗算法規劃,這是十分關鍵的。如果使用了開局庫,在前期可以通過對手的情況來改變自己的本局的開局策略,可以避免對手進行針對性落子,總體來說開局庫模塊對于整個系統來說,都是必不可少的一環。

3.1? 常規開局庫策略

開局庫就是把一些基于經驗的固定走步存在數據庫里,然后在開局階段從數據庫中調用這些數據從而在開局階段擁有好的收益。常規開局庫圖如圖3所示,在該文常規開局庫的設定是先占領圖內置的邊,再通過占領外置邊達到開局庫的作用,由于博弈雙方下的邊是共有的,所以在落子后并未在交互界面用不同顏色加以區分。

3.2? 鏡像開局庫策略

鏡像開局策略可以模擬對方的落子情況,通過鏡像的方式,重現對方的開局,當面對實力比較強的對手時,通過該策略避免在前中期開局不利的情況,也可以學習對方的開局從而增加自己的開局庫信息。鏡像開局效果圖如圖4所示,在前22步都啟動鏡像開局策略來模擬對方開局。

4? 搜索引擎架構

整個搜索模塊是點格棋博弈系統最核心的部分,是決定整個系統棋力強弱與否最關鍵的環節。其中一些主要功能為:

(1)判斷落子功能:在這個模塊里,程序可以自動識別玩家或者電腦落子是否規范,并且可以判斷整個游戲是否結束。

(2)搜索節點功能:整個搜索模塊主要是尋找最佳走步,在建立的博弈樹上進行搜索,只有具備完善的搜索節點功能,整個系統的棋力才能得到質的提升。而在開局階段主要采用開局庫策略和經驗算法策略進行搜索得出最優點,后期采用極大極小值算法策略得到最佳落子節點。

(3)信息保存功能:在程序下棋的過程中會把每一步的信息按打譜軟件格式全部記錄下來,方便以后的測試和修改。

(4)搜索時間功能:由于比賽時限的原因,可以限制每次落子的搜索時間來保證整局游戲不超過比賽的總時長。

在點格棋博弈系統整體架構中,把整個棋局分為前中后三個階段。首先在開局時,使用上一小節提到的開局庫搜索,在此階段,主要是以開局庫經驗策略為主,在中盤階段,優先調用依賴經驗設計的函數構建布局,然后通過MiniMax算法搜索落子,最后是終局階段,進入這個階段說明游戲即將結束,如果在終局階段進入終局庫里面,系統會自動調用終局必贏算法,此時勝率將達到100%。

在開始階段通過電腦落子可以判斷開局庫的使用是否成功,大概在22步之前都使用開局庫策略,然后通過MiniMax算法搜索,得出最佳節點。搜索引擎流程圖如圖5所示。

5? 實驗結果和分析

為了驗證該文提出的結合開局庫策略的MiniMax算法有效性,將該策略與蒙特卡洛算法進行博弈對局測試,棋盤大小11×11,單方用時不超過15分鐘。該實驗環境包括:GPU型號為NVIDIA GeForce RTX 2060(6 GB),CPU型號為Intel Core i7-10700F。如表4、表5、表6所示。

由表4、表5、表6可以得出,該文提出的模型在先手時的勝率明顯更高,雖然在后手時勝率難以得到保證,但仍然在50%以上,隨著單步限時的增長,該文提出的模型勝率也更高。

6? 結? 論

在如今快速發展的人工智能領域中,計算機博弈研究是十分值得的。計算機博弈過程中節點的搜索都是在博弈樹上進行的,幾乎都是通過深度優先算法同時加上估值函數來對整個局面進行判斷,然后進行評估落子,其中常用的就是MiniMax算法、UCT算法等。未來改進該系統時可以加入置換表,把訓練搜索到的節點情況存入哈希表中,這樣在博弈比賽時遇到類似的搜索情況,便可直接調用哈希表中的值來節約搜索時間。

參考文獻:

[1] 呂征宇.基于深度強化學習的棋類博弈研究 [D].北京:中央民族大學,2020.

[2] 姬波,尤惠彬,盧紅星,等.一種自對弈棋局學習樣例質量評價方法 [J].小型微型計算機系統,2021,42(3):467-471.

[3] 劉成,李飛,孫玉霞,等.貫穿式案例教學法在機器博弈課程中的實踐 [J].計算機教育,2019(8):174-178.

[4] 閆俊名.雙人零和博弈問題中策略搜索算法的研究 [D].大連:大連理工大學,2020.

[5] 王允臣.基于點格棋的博弈算法研究與改進 [D].徐州:中國礦業大學,2017.

[6] 張利群,曹楊,李廈.點格棋計算機博弈平臺通信接口 [J].計算機與現代化,2016(3):96-99+126.

[7] 丁濛,張亦鵬,李淑琴.棋盤局面數據標定方法研究 [J].計算機應用研究,2020,37(2):470-472.

[8] 申培萍,陳曉.一類Minimax分式規劃問題的迭代算法 [J].河南師范大學學報(自然科學版),2018,46(1):16-22+2.

[9] 倪錦園,張建勛.遞歸算法的應用與分析 [J].現代信息科技,2020,4(20):146-148+152.

[10] 楊嬌.遞歸思想及其算法設計的探討 [J].數字通信世界,2018(11):109+204.

作者簡介:倪錦園(1996—),男,漢族,重慶九龍坡人,碩士在讀,研究方向:數字圖像處理與分析;張建勛(1971—)男,漢族,四川樂山人,教授,碩士生導師,CCF會員,博士,研究方向:數字圖像處理與分析、實時計算機圖形學。

收稿日期:2021-04-06

基金項目:重慶市教委科技研究重點項目(KJZD-K201801901)

主站蜘蛛池模板: 国产在线精品网址你懂的| 操美女免费网站| 香蕉视频国产精品人| 黄片一区二区三区| 黄色网站在线观看无码| 永久免费AⅤ无码网站在线观看| 亚洲欧美成人综合| 久久亚洲黄色视频| 亚洲九九视频| 精品视频免费在线| 国产精品分类视频分类一区| 亚洲综合九九| 九九热在线视频| 日韩人妻少妇一区二区| 看国产毛片| 国产精品欧美日本韩免费一区二区三区不卡 | 亚洲无码视频一区二区三区| 亚洲欧美精品日韩欧美| 毛片一级在线| 影音先锋亚洲无码| 最新国产成人剧情在线播放| 亚洲成人在线网| 99久久国产综合精品2020| 日本在线国产| 欧美国产在线一区| 成人国产免费| A级毛片高清免费视频就| 日韩国产综合精选| 四虎AV麻豆| 国产精品免费电影| 乱人伦视频中文字幕在线| 国产第八页| 精品少妇人妻一区二区| 重口调教一区二区视频| 亚洲女同一区二区| 中文字幕无码av专区久久| 亚洲三级影院| 欧美成人日韩| 波多野结衣二区| 国内视频精品| 欧美性爱精品一区二区三区| 精品成人免费自拍视频| AV不卡在线永久免费观看| 国产成人永久免费视频| 天堂网亚洲系列亚洲系列| 成人亚洲视频| 久久夜色精品国产嚕嚕亚洲av| 中文字幕 欧美日韩| 国产精品尤物在线| 亚洲色图欧美| 91在线高清视频| 日韩欧美中文字幕在线韩免费| 99精品免费在线| 无码高清专区| 欧美有码在线| 国产一级一级毛片永久| 欧美三级日韩三级| 老司机久久精品视频| 亚洲AV无码不卡无码| 久久久久久久蜜桃| 国产激爽大片高清在线观看| 中文无码精品a∨在线观看| 亚洲中文字幕在线观看| 在线视频亚洲色图| 一级毛片视频免费| 蜜臀AV在线播放| 中日韩欧亚无码视频| 亚洲精品中文字幕午夜| 在线看片免费人成视久网下载| 91免费观看视频| 久久特级毛片| 国产一级做美女做受视频| 国产va在线观看免费| 在线毛片免费| 毛片在线看网站| 国产精品无码一区二区桃花视频| 91年精品国产福利线观看久久 | 永久毛片在线播| 在线观看亚洲精品福利片| 激情综合婷婷丁香五月尤物| 国产精品香蕉在线| 色噜噜在线观看|