论文部分内容阅读
机器博弈是人工智能的“果蝇”,同时也是该领域公认的最具挑战性的研究课题之一。人工智能的著名学者们认为如果可以掌握博弈的本质,同时也就意味着掌握了人类智能活动的核心所在。因为存在于棋类博弈的原则或许就存在于人类的智能活动中。近年来,国内外计算机博弈比赛,极大的推动了计算机博弈问题的研究,促进了计算机博弈理论和技术的发展。计算机博弈涉及的棋种较多,包括五子棋、六子棋、围棋、象棋等。各种搜索算法在计算机博弈中已经得到广泛的应用。传统的机器博弈模型是以棋盘上的交叉点为基本单位来设计数据结构的,局面的状态描述也依赖于交叉点,而K子棋的局面可以与若干个连珠建立一一对应关系,局面的状态可由模式库中的抽象知识来描述,称为连珠模式。连珠的抽象知识最大程度的描述连珠内各棋子联合所形成的整体效果。模式之间存在演化关系,高效的博弈应该合理的推动模式的演化。为了提高搜索速度,K子棋的搜索算法基本都是以Alpha-Beta剪枝算法为基础来进行设计的。博弈树搜索的深度越大,获得的着法最佳,但是受计算机博弈比赛的时间约束,搜索深度不可能无限大,而只能在有限的范围内,搜索技术需进一步优化。本文以K子棋为研究对象,研究了机器博弈技术,包括一些基本概念和搜索算法;以五子棋和六子棋为实例进行连珠模式棋类的设计,包括相关棋形、数据结构及估值函数的设计;对棋形进行定义、分析,并设计基于棋形扫描的搜索算法;分析了基于“路”的全局扫描方式的计算规则和估值分析,然后将博弈树搜索算法中的全局扫描方式改进为局部扫描方式,并给出其计算规则和估值分析,接着设计了基于局部扫描方式的博弈树生成算法,并集成到Alpha-Beta剪枝算法中。从搜索效率和博弈水平两个角度进行实验可得:相对于无棋形扫描,基于棋形的扫描在搜索效率方面无显著提高,但是博弈水平却有明显提高。相对于全局扫描,局部扫描大幅度提高搜索效率,博弈水平也有明显提高。本文仅在开局和中局阶段采用局部扫描方式,提高搜索效率,如何在残局阶段改进估值提高效率,有待进一步研究。本文的创新点如下:.(1)将博弈树扩展时对棋盘进行全局“路”扫描改进为局部“路”扫描,忽略无用路数,减少了扫描的路数,提高了搜索效率;通过对全局扫描和局部扫描的估值定量分析对比,确定局部扫描完全可以等价代替全局扫描扩展博弈树,不会降低精确度。(2)设计了基于局部“路”扫描方式的博弈树搜索算法,将该算法应用于Alpha-Beta剪枝搜索时,和基于全局“路”扫描方式的博弈树搜索算法相比,可以显著提高博弈水平。(3)在基于连珠模式的棋类基础上提出一种的计算落子方式一模拟落子法,将“两步”并作“一步”,根据棋类每步落子规则,综合棋局特征计算组合点的权值,并在K子棋中得到应用,提高了搜索的精确度。上述算法已成功运用于六子棋博弈软件“龙行天下”中,在国内大学生计算机博弈大赛中获得良好的成绩,有力的说明了本文研究工作的实用性和有效性,设计思想可广泛应用于机器博弈的其他棋种。