国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SOPC的人機博弈系統(tǒng)設計與實現(xiàn)

2017-12-26 02:28:11鄭歡
東方教育 2017年20期
關鍵詞:五子棋

鄭歡

摘要:本文基于實際作品,采用SOPC技術和Nios II處理器,描述了具有人工智能的人機博弈系統(tǒng)的設計原理和實現(xiàn)方法。該系統(tǒng)的硬件以DE0-CV開發(fā)板為核心,使用 LTM觸摸屏作為人機交互設備,實現(xiàn)了三子棋和五子棋游戲,使用Verilog語言實現(xiàn)了包括觸摸屏的顯示驅動在內的所有硬件的驅動功能在集成開發(fā)環(huán)境中用C++語言實現(xiàn)了人機博弈的軟件算法。核心算法在實現(xiàn)棋局識別和策略優(yōu)化的基礎上加入了深度搜索算法,提高了系統(tǒng)的全局思考能力。

關鍵詞:SOPC;人機搏弈;五子棋;深度搜索

1、引言

機器博弈是人工智能領域中一個重要且具有挑戰(zhàn)性的研究方向之一。它是人工智能的一塊試金石,而棋類游戲又是博弈的一個標準型問題,其研究成果中的各種搜索算法、模式識別為人工智能帶來了很多重要的方法理論。嵌入式系統(tǒng)已經廣泛應用到國民經濟的各個方面。基于NiosII軟核處理器的SOPC技術憑借其設計方式靈活、開發(fā)周期短、可反復重構等特點,日益廣泛應用到嵌入式系統(tǒng)開發(fā)中。

基于以上的背景,采用SOPC技術來實現(xiàn)人機博弈在嵌入式領域的應用這種設計思想應運而生。本系統(tǒng)選擇以五子棋的人機博弈作為設計重點,來闡明基于SOPC的人機博弈系統(tǒng)的設計與開發(fā)過程。本設計采用SOPC技術和Nios II處理器實現(xiàn)了機器博弈在嵌入式系統(tǒng)中的應用,這套硬件系統(tǒng)滿足游戲的音效和視覺效果,并具備博弈智能。

2、整體設計

2.1本系統(tǒng)實現(xiàn)了以下功能:

1. LCD屏圖像顯示;

2. 觸摸控制功能;

3. Tictactoe和五子棋兩種棋的人機博弈;

4. 對弈有雙人和人機兩種模式可選;

5 對弈難度有初級難度和高級難度兩種模式可選;

6. 紅外控制提示音輸出;

2.2系統(tǒng)總體結構

如圖2.1所示,系統(tǒng)總體分為三大模塊:FPGA開發(fā)板(DE0-CV)、紅外語音模塊、LTM觸摸屏模塊,其中:

1.DE0-CV開發(fā)板以Altera CycloneV 5CEBA4F23C7N FPGA為核心,使用Verilog語言設計CPU,觸摸屏、GPIO及語音紅外接口的驅動以及觸摸屏的顯示內容,CPU上運行軟件算法程序并實現(xiàn)對于LTM觸摸屏和音頻模塊的控制

2. LTM觸摸屏模塊:用來提供人機交互界面,控制整個系統(tǒng)的操作,協(xié)調各部分的功能,是人工博弈系統(tǒng)的核心控制單元。 。

3.語音播放模塊:實現(xiàn)系統(tǒng)語音提示功能。

3、硬件設計

3.1 DE0-CV 開發(fā)板

DE0 FPGA開發(fā)板是臺灣友晶公司開發(fā)的一套輕薄型的SOPC開發(fā)平臺, DE0搭載了Altera CycloneV 5CEBA4F23C7N FPGA,可提供15,408 LEs(邏輯單元)以及346 I/O,并搭配了豐富的外部接口。

3.2 主控模塊

本設計使用Altera Cyclone III EP3C16F484C6N FPGA芯片作為硬件系統(tǒng)的功能平臺,在該FPGA上面實現(xiàn)Nios II 軟核CPU配置、觸摸屏的驅動模塊、觸摸屏顯示設計、紅外發(fā)射模塊和計時器模塊的設計等功能。在SOPC Builder中構建的Nios II軟核CPU是整個硬件系統(tǒng)的控制核心,它實現(xiàn)了控制系統(tǒng)運轉, 計時器開閉,紅外發(fā)射器控制,觸摸屏 顯示和外部輸入信息獲取等功能。

3.3軟件部分

由人機博弈算法流程圖 4.1可以看出,五子棋機器博弈的核心就是機器走棋的算法,本節(jié)將對本系統(tǒng)實現(xiàn)的五子棋機器走棋算法分層介紹,本系統(tǒng)實現(xiàn)的五子棋機器走棋的算法主要包括棋盤表示、局面估值、搜索算法、生成走法、界面控制這幾個部分。

1.棋盤顯示和界面控制

其中棋盤表示和界面控制即交互界面,在LTM觸摸屏上實現(xiàn),介于五子棋盤的特點,程序中的棋盤表示是采用15*15二維數組來表示的。白子,黑子,空位分別用不同的編碼來記錄,并加以區(qū)分。

2.局面估值、搜索算法、走法生成

由于五子棋機器博弈每一步下棋的過程中,局面估分、搜索算法、走法生成這些過程都是柔和在一起,而不是獨立分開的過程,所以本程序也將走法生成、局面估值、搜索算法嵌在一起,構成了機器走棋函數。本系統(tǒng)的對弈設計了兩種難度的選擇,由兩種走棋函數來實現(xiàn)機器不同等級的智能。

初級難度的機器走棋函數只是讓機器對目前盤面進行分析,選擇最優(yōu)的位置落子。經過對五子棋知識深入的研究,以及不斷的下棋來積累經驗,使本設計能夠將五子棋機器博弈程序對各種棋型的估分做得很完善,使它能夠從盤面“看”出哪一點有利,哪一點不利,并權衡利、弊的大小,從而選擇出最優(yōu)的落子點 。本文實現(xiàn)的估值函數比較完善,所以本系統(tǒng)初級難度的機器走棋函數的效果比較理想。這讓初級難度的機器博弈算法對棋型的判斷和比較比一般的博弈程序更為出色。本算法實現(xiàn)的高級難度的機器走棋函數讓博弈程序在具有正確評估局面能力的基礎上,還能夠像人一樣進行深層次的思考,推導目前盤面N回合博弈之后的局面,從而及早做出合理的進攻和防守策略。

極大-負極大值算法是通過極大-極小值算法[6]變換過來,二者是等價的。極大-極小值算法是考慮雙方對弈若干步之后, 從可能的走法中選一步相對好的來走。若最大(Max)節(jié)點為甲方下的棋,此時選擇估值最大的點走。 最?。?Min )節(jié)點為乙方下的棋, 此時選擇估值最小的點行走。因此 Min節(jié)點的父節(jié)點( Max節(jié)點)所賦的倒推值等于端節(jié)點估值中的最大值。另一方面, Max節(jié)點的父節(jié)點( Min節(jié)點) 所賦的倒推值等于端節(jié)點估值中的最小值。這樣一級一級地計算倒推值,直至起始節(jié)點的后繼節(jié)點也被賦以倒推值為止,即從下往上逐層交替使用極小極大的選值方法。這種算法在搜索時將任何機器的弈棋水平都假設為最高,這樣的搜索質量很高,得到的走法也比較合理。極大-負極大值算法則是將原本取Min節(jié)點對應的負值取反,就變成了正值,所以原本Min節(jié)點是取負的最小值,現(xiàn)在則取正的最大值,這就叫極大-負極大值算法。

本算法的估值函數在對黑子和紅子估值時,對黑子得到的是正值,對白子為負值。

本算法中實現(xiàn)極大-負極大算法過程如下:

1.先對黑子(機器)估值,對初一組N個極大的值,存為根節(jié)點

2.將這層以上的所有走法的棋子依次下入虛擬棋盤后對白子(玩家)估值,每次取出N個節(jié)點

3.不斷重復1和2 ,直到達到預定搜索深度。

以上過程如下圖所示:

圖4.2中搜索廣度N=3,搜索的深度為3。其中第一層為黑子落子的最好的兩個點,即取其估分值最大的兩個點。第二層為在第一層的基礎上,第一層每個點落子之后,白子最佳的兩個落子點。第三層為在前兩層的基礎上,第二層中每個白子落子之后對應黑子的兩個最佳的走法。

搜索廣度和深度越大,計算越耗時,但經實驗表明機器的博弈智能越高。本系統(tǒng)選取搜索深度為5,廣度為3,經大量的實驗表明,在不耗費很長的計算時間開銷的情況下,博弈算法達到了比較好的智能,較成功的平衡了搜索算法與智能水平之間的矛盾,本文實現(xiàn)的估值函數比較完善,使得該博弈程序能在沒有深度搜索的情況下識別出更多的棋型,這種算法顯著增強了對搜索的質量,在實現(xiàn)同種智能的情況下大大降低了硬件要求,跟有利于機器博弈算發(fā)在嵌入式系統(tǒng)中的應用。這也使得本機在沒有深度搜索的情況下,相對于其他的五子棋博弈程序,本系統(tǒng)實現(xiàn)的算法表現(xiàn)更為出色。

參考文獻:

[1]Tictactoe[OL].http://en.wikipedia.org/wiki/Tic-tac-toe

[2]五子棋[OL]. http://baike.baidu.com/view/2697.htm

[3]張志剛.FPGA與SOPC設計教程—DE2實踐.西安電子科技大學出版社[M].2007.4

[4]觸摸屏[OL].http://baike.baidu.com/view/10658.htm

[5]TRDB_LTM_UserGuide_v1.23[OL].http://www.terasic.com

[6]張明亮.一種新的博弈樹搜索算法及其研究應用[D].學位論文.2007.10

[7]史上最聰明的五子棋[OL].http://www.4399.com/flash/ 30402.htm

[8]皇冠五子棋[OL].http://www.xiaoyouxi.cn/down/soft/ 730/ 22701.htm

[9]蔣鵬,雷貽祥,陳圓圓.C/C++ 中國象棋程序入門與提高[M].電子工業(yè)出版社.2009.5

猜你喜歡
五子棋
我是小“棋士”
我和爸爸拼棋藝
下五子棋
滑稽五子棋
學與玩(2021年6期)2021-07-30 21:03:48
Sim Sim
我學會下五子棋了
我學會下五子棋了
學下五子棋
90后羅運生:五子棋是我生命的一部分
金色年華(2016年8期)2016-02-28 01:40:31
財政部長吳波的“五子棋局”
德惠市| 遵化市| 英吉沙县| 婺源县| 沙湾县| 汽车| 河东区| 从江县| 焦作市| 临清市| 怀安县| 德兴市| 克什克腾旗| 鹿泉市| 壶关县| 南昌市| 汉寿县| 信宜市| 成武县| 新丰县| 康定县| 铜川市| 宣汉县| 宝丰县| 甘孜县| 将乐县| 晋州市| 灵宝市| 呼和浩特市| 乐东| 鱼台县| 海兴县| 都兰县| 自治县| 广灵县| 黄石市| 昌平区| 大安市| 政和县| 昌图县| 图木舒克市|