博弈算法在中国象棋上的应用

博弈算法在中国象棋上的应用

论文摘要

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

论文目录

  • 摘要
  • Abstract
  • 1 绪论
  • 1.1 人工智能的现状及概况
  • 1.2 中国象棋以及中国象棋博弈技术
  • 1.2.1 中国象棋简介
  • 1.2.2 中国象棋目前博弈技术的发展状况
  • 1.3 论文的主要工作
  • 1.4 论文的组织结构
  • 2 博弈算法
  • 2.1 Alpha-Beta 算法
  • 2.2 Fail-soft alpha-beta 算法
  • 2.3 渴望搜索
  • 2.4 哈希表
  • 2.5 极大极小算法和负极大值算法
  • 3 中国象棋博弈算法的实现
  • 3.1 编程语言和平台的选择
  • 3.2 中国象棋的算法实现
  • 3.2.1 数据的表示
  • 3.2.2 走法产生器模块
  • 3.2.3 估值模块
  • 3.2.4 搜索模块
  • 3.2.5 操作界面的设计及程序的实现
  • 4 总结与展望
  • 参考文献
  • 致谢
  • 个人简历
  • 发表的学术论文
  • 相关论文文献

    标签:;  ;  ;  

    博弈算法在中国象棋上的应用
    下载Doc文档

    猜你喜欢