博弈技术是人工智能的一个重要应用,本文研究的是双人完备信息类的博弈问题,主要介绍了如何将负极大值的算法应用于中国象棋。本文以Visual C++作为平台,开发出了一个中国象棋博弈程序。论文的主要研究工作包括:1、实现了负极大值的算法,本文博弈程序的搜索引擎基于负极大值的算法,负极大值算法是极大极小算法的一种优化。2、在程序中设计了软件算法的估值模块:在已有的棋类知识的基础上来评测一个局面的优劣程度的过程称之为估值。估值模块主要由四部分组成:棋子战斗力评估、棋子灵活机动性评估、棋子相互关系评估以及与搜索引擎配合四部分组成。3、设计了算法的搜索模块:本人设计的搜索模块是负极大值算法父节点的值是各子节点的值的负数的负极大值,估值函数取决于该哪一方走棋,当红方行进的局面返回一个正的值时,黑方行进的局面返回一个负值。从算法原理上看,极大极小算法完全等效于负极大值算法,该算法是极大极小算法的形式上的优化,现在的博弈程序大多使用负极大形式的搜索算法。4、设计了走法产生模块。走法产生模块基于CanGo()函数来完成的,这个函数负责在某种情况下,产生每一种棋子的走法。5、制作了程序的操作界面模块。本人建立了两个对话框类,向工程中加入棋盘和棋子资源,借助Windows系统自带的鼠标响应函数来完成了进行象棋游戏所需要的界面。6、经过Visual C++编译生成可执行文件,运行可执行文件后就可以实现有一定博弈水平的人机博弈,可以在令人放松的游戏中感受到博弈技术。
本文来源: https://www.lw50.cn/article/aa7f90c6cb25a2a17591c860.html