URTP申请正文基于UCT搜索算法的亚马逊棋人机博弈软件解读.docx

上传人:b****5 文档编号:6187872 上传时间:2023-01-04 格式:DOCX 页数:11 大小:80.15KB
下载 相关 举报
URTP申请正文基于UCT搜索算法的亚马逊棋人机博弈软件解读.docx_第1页
第1页 / 共11页
URTP申请正文基于UCT搜索算法的亚马逊棋人机博弈软件解读.docx_第2页
第2页 / 共11页
URTP申请正文基于UCT搜索算法的亚马逊棋人机博弈软件解读.docx_第3页
第3页 / 共11页
URTP申请正文基于UCT搜索算法的亚马逊棋人机博弈软件解读.docx_第4页
第4页 / 共11页
URTP申请正文基于UCT搜索算法的亚马逊棋人机博弈软件解读.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

URTP申请正文基于UCT搜索算法的亚马逊棋人机博弈软件解读.docx

《URTP申请正文基于UCT搜索算法的亚马逊棋人机博弈软件解读.docx》由会员分享,可在线阅读,更多相关《URTP申请正文基于UCT搜索算法的亚马逊棋人机博弈软件解读.docx(11页珍藏版)》请在冰豆网上搜索。

URTP申请正文基于UCT搜索算法的亚马逊棋人机博弈软件解读.docx

URTP申请正文基于UCT搜索算法的亚马逊棋人机博弈软件解读

 

北京市大学生科学研究与创业行动计划

立项申请书

 

基于UCT搜索算法的

亚马逊棋人机博弈软件的设计与实现

 

团队成员:

侯亮张婷

学院:

信息工程学院

专业:

计算机科学与技术

指导老师:

吴立成

 

一、立项依据……………………………………………………………………3

1.1亚马逊棋人机博弈的研究现状……………………………………………3

1.2项目可行性分析……………………………………………………………4

1.3学术价值……………………………………………………………………6

1.4团队优势……………………………………………………………………6

二、研究目标、内容、关键问题及解决方案…………………………7

2.1研究目标……………………………………………………………………7

2.2研究内容……………………………………………………………………7

2.3软件各部分简述……………………………………………………………7

2.4要解决的关键问题及解决方案……………………………………………8

2.5研究基础……………………………………………………………………9

2.6本项目的主要特色及创新之处……………………………………………10

三、预期效果与具体成果…………………………………………………10

3.1预期效果……………………………………………………………………10

3.2具体成果……………………………………………………………………10

四、具体安排及进度………………………………………………………11

五、经费预算………………………………………………………………11

六、参考文献………………………………………………………………12

 

一、立项依据

1.1亚马逊棋人机博弈的研究现状

亚马逊棋(GameoftheAmazons),是由阿根廷人WalterZamkauska在1988年推出的两人棋类,是欧美国家的一个棋种,在亚洲并不常见,它由国际象棋中后的走法衍生而来,与著名的八皇后问题类似。

亚马逊棋是计算机博弈(ComputerGames)的重要组成内容,也是全国大学生计算机博弈大赛以及ICGA国际计算机博弈大赛的比赛指定棋类。

1998年举行了国际电脑亚马逊棋锦标赛,2001年亚马逊棋正式成为电脑奥林匹克大赛项目之一。

在人类文明发展的初期,人们便开始进行棋类博弈的游戏了。

近几十年来,随着计算机硬件和软件技术的不断发展,人们开始对计算机能否战胜人脑这个话题产生了浓厚的兴趣。

从1980开始,电脑博弈便开始逐渐大规模地向人类智能发起了挑战,到了1997年,IBM超级电脑DeeperBlue击败了当时的国际象棋冠军卡斯帕罗夫,成为了人工智能挑战人类智能发展的一个重要里程碑。

然而计算机博弈在我国发展起步较晚,2006年我国举办了首届中国象棋博弈大赛。

在2007年举办的首届全国计算机博弈大赛中,亚马逊棋被引入。

亚马逊棋的棋盘由10*10的格子组成,每方各拥有4枚棋子(4个Amazons),以不同的两色区分敌我,每个棋子都相当于国际象棋中的皇后,它们的行棋方法与皇后相同,可以在八个方向(上、下、左、右、左上、左下、右上、右下)上任意行走,但不能穿过阻碍;当轮到一方行棋时,此方只能而且必须移动四个Amazons中的一个,并在移动完成后,必须由当前移动的棋子释放一个障碍,障碍的释放方法与棋子的移动方法相同(可在八个方向上释放,但不能穿过阻碍)。

当某方完成某次移动后,使另一方四个棋子均不能再移动,此时棋子不能移动一方将输掉比赛;整个比赛中双方均不能吃掉对方或己方的棋子或障碍。

正是由于这种特殊的走法规则导致了亚马逊棋每步的走法非常多,平均在1000多种左右,而且对大多数走法的评估也具有很大的不确定性。

这些特点导致了亚马逊棋并不太适合人与人之间对弈,但却非常合适用于人工智能、机器博弈方面的研究。

当前亚马逊棋计算机博弈主要搜索算法有传统的负极大方法、剪枝算法、MC方法(即蒙特卡洛方法)、UCT算法、Alpha-Beta搜索。

其中UCT算法是机器博弈领域最新的搜索算法,它很好的解决了传统搜索算法无法在亚马逊棋搜索中遍历更深层节点的问题。

本软件就是基于UCT算法开发的亚马逊人机博弈程序,通过提高对弈过程中计算机的搜索效率,解决现有亚马逊PC博弈程序搜索时间长、运行速度慢的问题。

图1.亚马逊棋棋盘图2.亚马逊棋对局画面

1.2项目可行性分析

项目组现已拥有大量亚马逊棋机器博弈的相关资料,并且能继承和借鉴现有的亚马逊棋博弈程序的优点,开发出效率更高、算法更精良的亚马逊博弈软件。

大量资料表明,MC/UCT搜索算法在亚马逊棋搜索中能得到较好的运用。

UCT是机器博弈领域最新的搜索算法,它很好的解决了传统搜索算法无法在亚马逊棋搜索中遍历更深层节点的问题。

JensLieberum在他自己的关于亚马逊棋评估的文章中,对亚马逊棋的评估方法做了详细的讨论,这篇文章也是现在亚马逊棋评估方法的主要来源。

项目组通过仔细研读相关文献,对亚马逊棋博弈软件的研究有如下可行性分析。

亚马逊棋的走法生成:

亚马逊棋的走法分为两步,首先要移动一个棋子,然后由当前被移动的棋子放置一个障碍,棋子的移动和障碍的放置都遵循皇后的走法,所以在生成一步的所有可行走法时,走法的结构中应该至少包括3个数据:

起点,终点,障碍放置点。

由于亚马逊棋走法存在上述的特点,导致每一步的可行走法数量十分庞大,平均在1000多种左右,第一步有2176种可行走法。

亚马逊棋的局面评估:

亚马逊棋的行棋目的是用障碍或自身棋子将对方棋子堵死,使其不能移动,而对于可以在八个方向任意行走的Queen来说,将其堵死又谈何容易,所以另一种思路则是圈地思想,用障碍或己方棋子为自己圈出足够大的地盘(对方棋子不能进入的区域),这样当自身获得足够的地盘时,对方会因为没有地方可走而自己将自己堵死。

现在用的主要是后一种控制区域(地盘)的思想,当评估一个局面的好坏时,主要看对方棋子控制的区域和己方棋子控制区域的多少,至于什么样的区域算是己方的控制区域,现在多数用QueenMove的方法。

在对局初期,当棋盘比较空旷时,通过人的观察和判断很难确定一步棋的好坏。

这时的亚马逊棋和围棋很相近,都存在地盘的思想,初期的许多走法更像是布局而非具体的争夺,而到了对局的中后期,当棋盘上的障碍逐渐增多,每块地盘的形状已经明朗时,亚马逊棋的行棋思路则又和象棋相近,需要通过更深层的搜索来确定具体某块区域的争夺和归属情况。

亚马逊棋的评估方式与围棋的不同点在于,围棋更强调布局,亚马逊棋则更为直观,所以真人与电脑对局基本不会赢。

亚马逊棋的搜索:

1、传统的负极大方法:

用负极大方法为搜索的主体时,由于亚马逊棋每步的可行走法数量十分庞大,所以可以向下展开的层数很少,两层就会有数百万个叶子节点。

因此需要大量运用剪枝算法配合提前排序。

2、MC方法,即蒙特卡洛方法:

以蒙特卡洛方法为主体的搜索方法也在亚马逊棋中大量运用,但与围棋中的MC方法不同的是,亚马逊棋中的MC模拟并不模拟到局面的终了,而是只模拟到一定的层数。

3、UCT算法:

UCT算法源于围棋,但同样使用于亚马逊棋。

UCT方法是MC方法的发展,它的实质是运用了这样一种思想,就是尽量在有价值的节点上作较多的模拟对局,什么是有价值的节点,就是敌我对局时大家都愿意选择的节点,这些节点的层层确定是通过minmax方法,而这些节点的得分的获得则是通过MC方法,所以UCT方法实际上是一种minmax和MC的混合,使用MC模拟对局,通过minmax确定路径(下一次对局选用的节点),从而使有限次模拟对局的结果更准确地反映出节点的性质。

由于亚马逊棋的搜索空间很大、计算机难于处理模糊概念且难于设计学习算法,造成了计算机亚马逊棋程序的搜索效率难以提高。

还因为亚马逊棋特殊的规则,导致了亚马逊棋平均每步的合法走法多达1000多种(第一步有2176种),如果仅向下搜索一层,则所需要评估的所有节点数已经超过百万,即使加入较好的剪枝算法,亚马逊棋庞大的节点数仍然让传统的基于minmax的搜索方法望而却步。

项目组通过对亚马逊棋的规则及算法的进一步研究,吸取并借鉴各搜索算法的优势,为传统搜索算法无法在亚马逊棋环境中遍历更深层节点的问题找到解题的思路,提高亚马逊棋人机博弈的算法效率。

1.3学术价值

博弈是人工智能的重要研究主题,人工智能的发展在很大程度上得益于博弈研究的发展。

人类对机器博弈的研究衍生了大量的研究成果,这些成果对更广泛的领域产生了重要影响。

1997年著名的深蓝计算机战胜国际象棋世界冠军卡斯帕罗夫成为轰动一时的新闻事件。

人工智能的先驱们曾认真的表明:

如果能掌握下棋的本质,也许就掌握了人类智能行为的核心,那些能够存在于下棋活动中的重大原则,或许就存在于其它任何需要人类智能的活动中。

亚马逊棋近几年才传入我国,是全国大学生计算机博弈大赛以及ICGA国际计算机博弈大赛的比赛指定棋类。

目前在我国亚马逊棋的算法研究和搜索分析还只是刚刚起步,亚马逊棋的算法研究和开发还有很广阔的空间。

亚马逊棋不仅为检验人工智能发展水平提高了良好环境,还有助于加强对人类认知能力的理解,而且更能进一步推动计算机博弈理论的发展,把亚马逊棋人人对弈的局面转到可以人机大战上来,并且这对宽带娱乐、棋类教学也是非常有意义和帮助的,所以亚马逊棋计算机博弈研究具有重要的理论意义和实用价值。

1.4团队优势:

1.本团队共有两名成员,全部来自计算机科学与技术专业。

有着良好的专业知识基础,比较好的数学基础以及软件工程基础,能够熟练运用C++、JAVA等高级语言,为软件实现打下良好的基础。

并具有较强的实践能力和创新精神,在以前参赛过程中,通过长期的培训和不断努力,培养了团队成员坚持不懈和迎难而上的科研精神。

2、项目组成员成绩优秀,获得过“中央民族大学专业二等奖学金”和“信息工程学院电子设计大赛一等奖”等,理论知识和实践操作能力都非常优秀;

3.指导老师长期从事机器人学、智能控制、轨迹规划及试验平台研制等方面的研究,在电子电路设计与软件开发方面有着多年的实践经验。

曾指导本科生课外科技活动获清华大学挑战杯二等奖、“创新奖”及“最佳展示奖”(水上漂浮机器人),及“浪潮杯”首届中国计算机博弈锦标赛“新秀奖”(“棋乐无穷”象棋博弈软件),以及“北科杯”首届全国大学生计算机博弈大赛暨第五届全国计算机博弈锦标赛优秀指导教师奖和六子棋比赛“二等奖”。

二、研究目标、内容、关键问题及解决方案

2.1研究目标

本项目将用JAVA语言开发一套亚马逊棋的人机博弈软件,通过使用UCT搜索算法使博弈引擎合理优化,并完成对系统的调试、测试及人机对战演练,最终实现一个高水平棋力的亚马逊棋人机博弈软件。

2.2研究内容

1.博弈界面的设计。

包括对弈界面、菜单选项等的设计,同时嵌入音效、动画等功能。

在编程语言方面,我们选择用JAVA语言进行开发,它不仅具有高移植性,并且拥有强大的界面制作工具和组件,在界面制作方面更具有优势。

2.搜索引擎的设计与优化。

对已有的多种搜索算法进行测试、分析、调整,选择并设计出最适合本博弈软件的搜索引擎,我们主要采用UCT搜索算法提高软件的搜索效率。

3.软件的调试与测试,通过手动调整、自动对战、人机对战等方法对该博弈软件进行测试和优化,对众多的参数权值、估值方式进行调整。

2.3软件各部分简述

设计的计算机亚马逊棋博弈软件主要包括:

棋盘生产、着法产生、搜索算法、估值核心四大部分。

1.棋盘表示(BoardRepresentations)

为了能快速获取个棋子的位置坐标,本项目将采用10*10二维矩阵表示棋盘,用0~99进行棋盘位置编码。

并根据对称性,对双方棋子进行编码以方便对其进行估值等操作。

2.着法生成(MoveGeneration)

软件运行时需要进行频繁、复杂的判断和搜索才能确定着法,该过程是软件性能的瓶颈。

着法生产模块主要解决如何快速高效地确定当前局面可能有的几十种甚至几百种着法中的最优着法的问题。

本项目将采用棋盘扫描法、模板匹配法和预置表法等着法生产函数来找到一种最优的着法。

3.评估函数(atuationFunction)

对当前局面进行估值是不可缺少的,它影响着博弈局势发展的趋势。

我们用评估函数来对当前局面的好坏做出判断和打分。

如果这个评价是不够准确甚至是有错误的,那么即使搜索深度很深也往往要在对战中失利。

因此,本项目将对传统的子力估值、棋子位置估值、棋子灵活度估值、基于QueenMove和KingMove的评估等估算函数进行研究、改进,以实现对局面的更精确估值,从而提升软件的性能。

4.搜索技术(searchTechniques)

为了找到评值最高的状态,得到最有利的着法,必须找到高效、快速的搜索算法。

这是博弈程序的核心,也是博弈成败的关键。

传统的蛮力深度优先搜索算法只能搜索到很浅范围内的局面,棋力不高。

本项目将对适合亚马逊棋的UCT搜索算法和进行深入研究,并结合搜索的时间及空间复杂度,争取研发出更加精确地着法搜索引擎。

5.开局库(OpeningBook)

即根据人类长期的实战经验得出的定势,做成开局库,供程序在开局时查询和使用,对给定的局面,给出快速、合适的着法。

开局库的类型分为树型和局面型,本项目将采用哈希技术加以实现。

2.4要解决的关键问题及解决方案

1、UCT搜索算法在亚马逊棋中的运用

UCT算法源于围棋,但同样使用于亚马逊棋,只是在将围棋中的算法复制到亚马逊棋中时,会有一定的变化。

基本步骤:

由当前局面建立根节点,生成根节点的子节点

(1).从根节点开始;

(2).利用UCB公式计算每个子节点的UCB值,选择最大值的子节点;

(3).若此节点不是叶节点,则从此节点开始,重复

(2);

(4).直到遇到叶节点,如果叶节点曾经被模拟对局过40次,为这个叶节点生成子节点,从此节点开始,重复

(2);

(5).否则对这个叶节点进行模拟对局,得到胜负结果,将这个收益按对应颜色更新到该节点及它的每一级祖先节点上去;

(6).回到

(1),除非时间结束或者达到预设循环次数;

(7).从根节点的子节点中挑选平均收益最高的,作为最佳点;

UCB公式:

X:

由模拟对局输赢次数决定,表现该节点基本性质

k:

常数系数,k取大表示希望模拟更多的兄弟节点,取小表示希望走入更深的层中;

parent_count:

父节点被模拟对局的次数;

node_count:

该结点被模拟对局的次数。

亚马逊棋中使用UCT算法需要额外确定的一些参数和变化:

(1).节点被模拟多少次后决定展开:

当一个节点被模拟对局一定次数后,才能初步得到此节点的统计学信息,并展开节点。

(2).提前剪枝:

亚马逊棋中每步的着法过于庞大,一般在1000步左右,而许多着法可以很容易的判定为垃圾,所以一般进行提前剪枝,保留400步左右的着法。

(3).决定展开节点后,子节点需要用提前剪枝后的顺序排列,并且并不生成所有的子节点而是按顺序先生产一定数量的子节点,在父节点的访问量突破一定数量时,再决定下一步生产的子节点。

(4).模拟对局层数的决定:

一般选择6至10层。

(5).底层评估方法:

一种为返回输赢,一种为返回输赢程度。

2.开局库的设计

亚马逊棋人机博弈开局库数据量相当大,且是完善的博弈软件中不可缺少的一部分,为了减少程序占用的存储空间、精简程序内容,如何对这些大量的数据进行压缩、裁剪,同时保证一定高水平的棋力是另一个需要解决的重要问题。

2.5研究基础

1.收集并整理了国内外关于亚马逊棋人机博弈相关方面大量的研究资料,对亚马逊棋人机博弈的发展历史、发展现状以及现在开发的难点和关键问题有了较详细的了解。

2.掌握现有的亚马逊棋PC人机博弈软件的C++源代码,并已对其性能、算法和优缺点进行了详细的分析,明确了下一步的开发方向。

3.对其他棋类的PC博弈软件的开发流程作了较详尽、深入的分析和研究,基本掌握了软件开发的基本方法、流程及开发工具的使用,为本次程序的开发提供了一个很好的参考。

2.6本项目的主要特色及创新之处

1.项目成果是一款能在计算机上运行,并具有能和高水平棋手对弈棋力的亚马逊棋博弈软件。

2.通过对搜索引擎的优化设计,采用高效的MC/UCT搜索算法,提高对弈过程中计算机的搜索效率,解决现有亚马逊PC博弈软件搜索时间长、运行速度慢的问题。

3.本软件采用JAVA语言编写。

JAVA语言是一种相当简洁的“面向对象”程序设计语言。

它省略C++语言中所有的难以理解、容易混淆的特性,例如头文件、指针、结构、单元、运算符重载、虚拟基础类等。

它更加严谨、简洁,并且JAVA语言还具有高移植性。

使用JAVA编程语言编写的程序,只要做较少的修改,甚至有时根本不需修改就可以在不同平台上运行。

4.对PC博弈软件界面及功能进行合理优化,保证程序在计算机中运行的良好性能。

在人机对弈情况中,减少用户等待时间,使博弈软件更加人性化、智能化。

三、预期效果与具体成果

3.1预期效果

1.所开发的亚马逊棋PC博弈软件能在计算机上运行,有较为人性化操作功能和友好的界面。

2.本博弈软件能使用开局库,并对开局进行特殊的处理和开局库的合理优化。

3.所开发的亚马逊棋PC博弈软件用JAVA语言编写,具有较高的棋力,并且能实现局面估算搜索的演示与验证。

4.程序采用高效的MC/UCT搜索算法,能与高水平的亚马逊棋爱好者对弈,搜索效率高、运行速度快。

3.2具体成果

1.高棋力亚马逊棋PC博弈软件1套

2.研制报告一份,包括系统总体及各部分的设计书、软件源代码、仿真文件,以及试验结果等。

 

四、具体安排及进度

第一阶段

(4个月)

软件的设计和编写:

●原有亚马逊棋程序的消化;

●计算、测试估值函数的准确性;

●测试选择最优的搜索算法,并组成搜索引擎;

●软件代码编写:

1、界面开发;

2、搜索引擎代码编写;

3、算法代码实现

4、组员共同讨论对程序的优化和完善。

●对软件整合后进行运行测试,解决运行中发现的问题,并修改不便之处;

●检验运行成功,软件初成品开发完成。

第二阶段

(1个半月)

系统的初测试:

让系统与性能低的亚马逊棋软件博弈,大约对弈100到300局,记录全部对弈数据;

让系统与性能高亚马逊软件对弈,记录全部对弈数据

第三阶段

(2个月)

系统优化:

●分析前期系统与各亚马逊棋软件的对弈数据,列出具体的缺陷和不足;

●借鉴其他软件的优势,修改和补充系统的缺陷和不足,再次提高系统的性能;

●通过和其他软件进行对比,优化操作界面,使操作更人性化。

第四阶段

(半个月)

人机博弈:

●请棋手与系统进行对弈,测试系统的性能

●咨询棋手,了解系统的性能、界面和软件是否存在“低级错误”。

第六阶段

(2个月)

项目总结:

●总结整个项目的开发过程和经验;

●撰写论文和研究报告。

五、经费预算

项目

说明

经费

软件购买

购买其他高水平PC亚马逊软件和与开发的亚马逊人机博弈软件进行对弈测试。

计划有:

KadonEnterprises开发的“Amazons”

1000

资料费

购买书籍、论文及影印资料费等。

250

差旅交通费

赴外地参加计算机博弈大赛,

火车票:

600*2=1200

食宿费:

550*2=1100

市内交通费:

800

3100

参赛报名费

参加全国大学生计算机博弈大赛报名费

500

总计

4850

六、参考文献

[1]乔治,黄鸿.亚马逊棋博弈技术研究[R].北京理工大学,2009

[2]Jens.Lieberum:

AnevaluationfunctionforthegameofamazonsTheoretical.ComputerScience349(2005)230-244.

[3]J.Conway:

OnNumbersandGames,AcademicPress,NewYork,1976.

[4]RichardJ.Lorentz:

AmazonsDiscoverMonteCarlo.DepartmentofComputerScience,CaliforniaStateUniversity,NorthridgeCA91330-8281,USA.

[5]JulienKloetzer,HiroyukiIida,andBrunoBouzy:

TheMonte-CarloApproachinAmazons.ResearchUnitforComputersandGamesJapanAdvancedInstituteofScienceandTechnology.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1