论文部分内容阅读
计算机博弈是人工智能研究的一个重要分支,计算机博弈和人工智能的发展是一个互动的过程,它往往会成为人工智能研究的切入点,而更先进的人工智能技术的应用又进一步推动了计算机博弈事业的发展。目前国际象棋计算机博弈已取得巨大成功,中国象棋计算机博弈也在蓬勃发展,其搜索技术为设计其它计算机棋类博弈系统提供了良好的参照。但是,不同的棋类博弈,其规则的千差万别赋予了每一种棋类博弈特殊的专业知识。这就必然要求设计一个具体的棋类博弈系统时应该深入研究它的基本原理和内在规律。
本文对计算机博弈技术进行了研究,并开发了一套完整的单人博弈游戏一华容道博弈系统。论文的主要工作集中在以下三个方面。
首先对国际象棋计算机博弈程序crafty进行分析研究,包括整理其框架结构、分析主要模块(特别是搜索部分)流程,在此实例分析的基础上,对计算机博弈搜索技术,特别是基础搜索技术进行了研究。
其次是机器博弈相关模块的研究与开发。主要内容包括软件加密模块、资源调用模块、着法合理性判断模块、用户信息记录模块、匿名管道系统、时间控制系统。这是棋天大圣博弈系统中不可缺少的部分,且对于其它棋类博弈系统也是必要的。
然后在对博弈技术有了一定掌握的基础上,设计并开发了单人博弈游戏——华容道博弈系统。在开发之前应用博弈理论对华容道问题进行了数学描述。整个软件设计采用了软件工程的开发思想。根据需求定义了系统的功能,再根据定义的功能设计了系统的总体结构。华容道博弈系统划分为三部分:界面模块、自动搜索模块和总体控制模块。
控制模块主要采用windows的消息映射机制来对界面模块和自动搜索模块的请求进行应答。界面模块设计的重点在于棋子的数据表示。如何能辨别单位棋子并易于走棋判断和着法表示是设计的重心。这里采用对棋子的每一部分进行编号的策略。自动搜索模块是整个程序真正意义上的博弈部分。华容道博弈系统采用了广度优先的树型结构,应用平衡二叉树解决了博弈树节点重复问题,利用堆栈输出最少步数。其中平衡二叉树的应用是本文的创新点。试验结果表明对于任意开局式,都能搜索到最短解决路径。