英语原文共 4 页,剩余内容已隐藏,支付完成后下载完整资料
优化人工智能算法在中国象棋中的应用
关键字:中国象棋,人工智能算法,游戏树算法,历史启发式算法,Alpha Beta算法,近期活动方法,动态子力方法,玩家风格方法
摘要
在人工智能领域,中国象棋的规则不同于国际象棋和国际象棋,这决定了中国象棋的人工智能算法具有其特殊性。根据中国象棋的特点,分析了中国象棋的计算机人工智能算法,包括游戏树算法,历史启发式算法和Alpha-Beta算法,并提出了最新的活动方法,动态辅力方法和玩家风格方法。计算分析表明,改进后的新算法在效率和速度上都有明显的提高。
介绍:
计算机诞生后,人工智能一直在不断向前发展,其具体应用领域也越来越多。人工智能的发展有几个方向,包括模拟人类智能和与人类进行智能游戏。
在国际象棋计算机方面对智能算法的研究,国外在国际象棋方面取得了突破,1997年IBM的“深蓝' (Deep Blue)在比赛中击败了男子象棋领袖卡斯帕罗夫,即使是偶然因素,也可以标志着计算机的国际象棋人工智能算法已达到世界冠军水平和国际大师水平。相比之下,计算机学者对中国象棋的研究要比国际象棋要晚,再加上中国象棋的复杂性要高于国际象棋,因此中国象棋的计算机程序尚未达到人类最高水平,中国象棋的计算机人工智能算法有进一步改进的空间,但也需要大量的人机竞争数据来支持。尽管在硬件上进行投资是不可避免的,但是算法研究也需要突破。
尽管穷举法能够解决问题,但很明显,它通常效率低下。一路走来的中国象棋(全搜索树)的复杂性是很大的,即使用世界顶级计算机进行操作,所有搜索也需要3 * 10127^2年,这很明显是低效且不必要的。显然,不必考虑某些出路,例如第一步将开始(英俊),或者吃马,或者退车,因此在使用智能算法时,您可以人为地设置一些条件来减少搜索时间,提高搜索效率。但是,开始后,规律并不那么明显,因此需要使用智能算法来提高运算速度。
当前的智能算法
目前,在对中国象棋的分析中有博弈树,历史启发式算法(及其特殊的杀手算法),Alpha-Beta算法和评估算法。
博弈树算法是指搜索,不仅是在搜索自己的一方,而且是在搜索彼此参与的游戏,即搜索所有可能的应对策略。显然,其本质是详尽的。当然,穷举法的实质决定了它可以得到最优解,但不满足时间成本和请求的效果。根据研究,中国象棋在局的舞台上,每一步大约有35种分法,所以一次要搜索接下来的两轮行走(一步,对手一步,一步一步,对手一步一步)需要检查35^4 = 1500625种可能。然后再加上一轮,搜索目标将尽可能激增到35 ^ 6 = 18.38亿,我们可以看出博弈树算法并不适用于人机战争的智能操作。历史启发式算法指的是搜索过程,如果你在搜索的历史中遇到过几乎相同的情况,那么前面的搜索就是最好的办法,一般来说,很有可能成为当前情况下的好办法。这也是人类玩家在实践中使用的方法之一。几十年来,人类棋手在下棋实践中积累了丰富的经验,因此历史启发式算法对人类棋手的影响是不言而喻的。对于机器来说,由于存储空间和搜索速度以及搜索比较的准确性都远远优于人类,所以历史启发式算法在人机战争的研究中具有一定的地位。 alpha;-beta;算法是基于当前节点信息来确定子节点的上下界alpha;和beta;,然后根据子节点的返回值进行相应的运算。例如,在一个节点上,情况是最大,并且从所有子节点返回最大值55。如果第一个子节点的值是55,则其他子节点不必再次搜索。显然,该算法的效率受节点顺序的影响,是不稳定的。
提升的算法
鉴于上述方法,可以进行一些改进以提高算法的效率。
最近活动方法。在历史启发式算法中,现在的普遍想法是在历史表中找到相似的象棋游戏,从而减少搜索量和计算量。但是人类玩家在与机器进行游戏的过程中发现了这个问题,即使用跟随常识下棋,机器算法的结果往往会被打败。人类玩家在这种情况下不会受到这种“奇怪把戏”的影响,但是机器无法有效处理,历史启发式算法的弱点就在于此,不能对付奇怪走法就是这种情况。当前的研究差距在于,当前棋盘的整体情况是可估计的,因此有必要分析所有可以移动的棋子,包括其他棋子的分析。然而,在实践中,我们了解到,最近移动的两枚棋子,包括在最后几个步骤中已经移动的棋子,以及受前后移动影响的棋子(如移动到炮口的棋子),一般吃哪个棋子。因此,在分析时间的时候,我们应该首先分析最后一步的另一面或者移动棋子的几个步骤。而且,在极端情况下,需要减少分析量,提高速度,你只能分析其他最近移动的棋子。这样,计算量将大大减少,程序成本将大大提高。这种方法提出了一个问题,即当前正在移动的棋子不能移动,包括一个人的棋子和另一个人的棋子,在一步或几步后可能变成可行的棋子。例如,马最初是被塞住的,但在相关的棋子移动后,马就可以移动,或者炮不能隔着两个子吃子,当其中一个移动的时候,炮就可以吃子。这种方法也是在搜索过程中应该考虑的。 从表1中,我们可以看出最近活动方法的优越性。
搜素深度 |
对手筋疲力尽的方法 |
最近活动方法中的对手人数 |
||||
10 |
11 |
12 |
1 |
2 |
3 |
|
1 |
1.10E 12 |
1.76E 13 |
2.81E 14 |
16 |
256 |
4096 |
2 |
1.21E 24 |
3.09E 26 |
7.92E 28 |
256 |
65536 |
1.68E 07 |
表1穷举方法搜索和最近活动方法搜索的对照表当搜索深度为1时,在对手剩余10至12个棋子的情况下,穷举搜索孩子的方法可能总共是数量级的10到12倍。最近的活动方法只需要搜索1到3个棋子,要搜索的孩子数量可能只有4000个左右。当搜索深度为2时,在对手剩余10到12个棋子的情况下,搜索孩子的穷举方法可能达到总共10个大于24倍数量级,而最近的活动方法只需要搜索1到3个,要搜索的棋子数量只能在10个数量级。当搜索深度增加时,穷举方法和最新的活动规律是数量级的。
动态子力方法。估值算法是以攻击的损失作为估值,对每一次攻击形成的强度和防御效果做一个比较,从而得到更有利的一面。这种方法对棋子的攻击能力是机械固定的,并且棋盘情况无法进行正确的计算。根据中国象棋的规则,我们知道当一个棋子被对方的棋子杀死时,对方必须应付,否则就会输掉象棋。所以一般的棋子,攻击应该被视为更大的参照;而且对于不能移动棋子,攻击应该适当减少。此外,一枚棋子,在不同的棋盘区域造成的攻击是不同的。例如,在同样没有办法进食的情况下,兵在搜索过程中一般比其他的威胁更大,也应该得到适当的考虑。 还有一种不寻常的动态子力,即力的组合。如双炮、双马、马和炮。合力应根据该片的原始分力及其在棋盘攻防系统中的形成进行另一次计算和分析。
玩家风格方法。目前市场上的另一个空白点是没有对玩家的棋风进行分析。例如,一个总是想反对同一个棋子并试图避免玩家冲突的玩家,他们的风格、压力和威胁的程度是不同的,应该采取不同的对策。因此,在游戏中加入玩家风格的方式能够提高速度和计算结果。在实践中,棋子可以分为大攻击力的车炮和小攻击力的两个兵,分析对手对抗的类型。此外,因为玩家一般不会把马转移,把炮当成通勤者。例如,车的攻击力明显大于大炮,如果一方使用车换另一方的马或枪,一般会有隐藏在规则后面或有更多的规则。因此,也有可能将大的攻击力量分成两种类型的车和炮,这两种类型的车和炮是对立的。在这样的设定之后,象棋博弈分析可以创造一条新的道路。 同样,应该对开局、中局、残局等阶段分别进行分析,以便对棋手风格的各个阶段做出全面的判断。这种方法是一种新方法,没有太多可借鉴的地方,而且由于不容易量化不能精确定义和测量,它只能从模糊数学、灰色理论等非传统方法着手分析。
一些预防措施
在编程过程中,有一些问题需要注意,可以提高计算效率。例如,在长期的实践中,前人总结了经典的中国象棋游戏,如五七炮,屏风马等可以用来充当普通的启动库来搜索,这样可以提高程序的效率。在搜索期间,你可以缓存计算过程,如果对手的走法有迹可循,你可以直接搜索记录,从而避免重新搜索的时间和空间开销。这种方法对中局也非常有用。在残局阶段,经常会有一些意想不到的弃法可以起到杀棋的效果,所以在很大程度上增加了穷尽式的搜索和计算。为了提高效率,一方面可以做碎片库,另一方面也应该使用和研究更高效的算法,以达到更短的时间达到近乎穷尽的效果。
结论
针对中国象棋的人工智能问题,将重点放在近期活动的棋子上,对中国象棋盘的变化进行有针对性的搜索分析,可以大大提高操作效率。本文还创造性地提出了从宏观角度判断运动员风格的方法。对棋手风格的研究将对提高中国象棋比赛的效率产生积极的影响。
- 贾张馨,李静媛。人工智能,第6卷(2014)第53期,第25-26页
- 彭苏、王云辉、王群勇。《电子工业》,第12卷(2015年)第27期,第74-76页
- 钱希源,荆剑芬。《计算机工程》,第30卷(2014)第19期,第144-145页
- 张徐工,孙静。人工智能,第8卷(2013)第27期,第57-60页
- 托利欧。《制造科学与技术杂志》,第4卷(2011年)第27期,第281-289页
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[239685],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。