资源描述:
《五子棋中的博弈智能设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、五子棋中的模拟人工智能设计蒋甜曹涛三峡大学计算机与信息学院20081121班摘要:博弈是人工智能的主要研究领域之一,他涉及人工智能中的推理技术搜索方法和决策规划本文将这些技术用于五子棋中,设计了一个智能五子棋系统,实现人和计算机进行博弈。关键字:博弈;五子棋;人工智能;遗传算法引言随着近几十年来人工智能的飞速发展,越来越多的具有智能的机器进入了人类的生活,人工智能的重要性如今显而易见。人工智能属于计算机科学的领域,它以计算机技术为基础,近儿I•年来,它的理论和技术已经口益成熟,应用领域也正在不断扩大,显示出强大的生命力。广义上来讲,博弈是指在一定的环境条件和一定的规则约束下,
2、依靠自己所能够掌握的信息,从各自选择的行为或是策略进行选择并加以实施,并从各自取得相应结果或收益的过程。而在本文狭义的讲,博弈论主要是研究棋手们落子中理性化、逻辑化的部分,进而找出攻守最合理的棋子位置。换言之,博弈就是研究个体如何在错综复杂的相互影响中得出最合理的策略,从而找出最佳的解决方法。人工智能中大多以下棋为例研究博弈规律,在此,以五子棋为入口进行研究,设计了一个模拟人工智能的五子棋系统,共同探讨博弈中人工智能的设计方法。1、人机博弈的要点人机对弈的程序,至少应具备以下5个部分:(1)某种在机器中表示棋局的方法,能够让程序知道博弈的状o(2)产生合法走法的规则,以使博弈
3、公正地进行,并可判断人类对手是否乱走。(3)从所有合法的走法中选择最佳的走法技术。(4)一种评估局面优劣的方法,用以同上面的技术配合做出智能的选择。(5)一个用户界面,有了他,这个程序才能用。2、五了棋的下棋规则(1)棋盘采用像围棋盘一样的15路或19路线的棋盘,在此采用15路的棋盘。(2)下法两人分别执黑口两色棋子。轮流在棋盘上选择一个无子的交叉点落子,无子的交叉点又被称为空点。(3)输赢判断黑、白双方有一方的五个棋了在横、竖或斜方向上连接成一线即为该方赢。3、算法设计3.1权值图3-1假如某棋局如图3-1所示,黑了为计算机所有的。对于计算机来说,若要进攻可选择(4,5),
4、(7,5),(9,5)这些位置,当然其中(7,5)肯定是最佳的,我们可以用权值的大小来区分它们在进攻中的重要性,位置(4,5)进攻权值可设为2500、位置(7,5)进攻权值可设为4000,、位置(9,5)可设为2500o若要防守,位置(7,2)肯定是最佳的,因此我们可以将(5,2)、⑺2)、(9,2)的防守权值分别设为2500.4000.2500,来区分每个位置在防守中的重要性。对棋盘上的每个位置赋权值,权值越大表示此位置越重要。每个位置都有两个权值(maxa>maxd),maxa表示进攻的权值,niaxd表示防守的权值。计算机每次下棋之前都要对整个棋盘进行扫描,分别计算岀各
5、个空位置(没有棋了的位置)的maxa.maxd,并分别将它们存储起来。计算机再根据各个位置的maxa>maxd来决定要下的位置。3.2权值估算权值的大小是根据下五子棋的经验来估算的,权值的大小设置得越恰当程序的智能就越高。每个位置的maxa和maxd都是用同一个函数来计算的。权值的计算方法:每个位置的权值等于其各个方向权值累加之和。而各个方向上的权值的计算按以下方法进行。例如在某个方向上:(@表示计算机的棋子后面说成黑子,#表示对手棋子以后说成口子或棋盘边界,0表示空位置,)#00@012345678910位置6处进攻的权值可以这样来计算,假设位置5处已经下了一颗黑子,那么位
6、置3~7为@@@0@这种组合,这种组合对应的权值为2500o(之所以选择5〜9这种组合而不选择2〜6、6〜10,是因为5〜9中所包含的黑子数最多并且不能包含白子)位置6处防守权值可以用类似的方法求得,我们只需将位置6处的黑子改为白子,找连续5个位置包含白子最多的那种组合(这五个位置中不允许出现黑子,如果找不到这样连续的五个位置,则将其权值设置为0),根据此组合找到对应的权值。在系统中使用的主要估值规则如下(给出连续7个位置组合,位置1,、7分别为首和尾):a)当这七个位置的形式为0?????0或#0????0或0????0#时(下而只写出中间五个连续位置的组合)@000@权值
7、二5;@00@0或0@00@权值二25;@0@00或0@0@0或00@0@权值二65;@@000或0@@00或00@@0或000@@权值二70;@0@0@权值=90;@@00@权值二90;@@0@0权值=550;@@@00权值二650;@@0@@权值=2400;@0@@@或@@@0@权值二2500;@@@@0或进攻权值二5100,防守权值二4000(注意此处的进攻与防守权值是不同的)b)#@????0或0????@#或#????#类型时当其中有4个黑子时权值=2250;当其中黑字数少于4颗时权值二0;C