博弈树的搜索是人工智能领域一个重要的研究课题.许多完全信息的二人零和博弈问题都可以用博弈树搜索算法解决。
那么什么是二人零和博弈问题呢?
有一系列的博弈问题拥有以下性质[1]:
1. 有两个对抗者:对抗者1和对抗者2.
2. 两个对抗者交替移动.在博弈的每一个位置,对于正在移动的参与者,都存在有限个可能的移动.
3. 游戏是决定性的,即游戏中不存在随机性.
4. 游戏是完全信息的,即在任意时刻,博弈双方知道所处状态的所有信息.例如国际象棋是完全信息的,因为博弈双方知道所有的棋子所处位置,而两人玩的扑克牌游戏则是非完全信息的,因为一个人看不到对方手上的扑克牌.
5. 游戏有三种可能结局:对抗者1获胜,对抗者2获胜,或者平局.有一些游戏不存在平局,只有两种可能解决:对抗者1获胜,或者对抗者2获胜.由于这个性质,所以一个对抗者的损失对另一个对抗者来说是受益,故此这类的博弈游戏称为零和博弈(zero-sum game).
对于具有上述性质的博弈问题,可以用博弈树来表示两个对抗者在博弈过程可能遇到的状态和移动选择.在对抗树(adversarytree)或者博弈树(gametree)中,两个对抗者交替移动.处于树底层的结点称为叶结点(leaf node),叶结点的祖先称为内部结点(interior node).
使用的[2]术语,一个问题空间(problem space)看以看做是一个状态(state)和实现状态之间映射的操作(state)的集合.在博弈问题中,博弈树上的一个内部结点或叶结点就是一个状态,一般使用位置(position)来表述.移动(move)就是将一个位置转化为其子位置(successor position)的操作.如果一个位置是博弈树的叶结点,可以用评价者(evaluator)来对其优劣进行评分(evaluate).有了评价者,博弈树中的每个叶结点都有一对应值(value).
博弈树搜索或者对抗搜索的目的就是找出博弈树的值(game tree value).博弈树的值(gametree value,下面简称博弈值)指的是博弈树中一个子结点的值,该值对于博弈双方都是最优的.博弈树的子树(subtree)在该子树搜索完成之后也会返回一个博弈值,虽然该值对于该子树来说最优的,但是对整个博弈树来说并不是全局最优的.
找出一棵博弈树的博弈值,可以使用基本的Min-Max方法.为了减少Min-Max方法需要搜索的结点个数,可以使用Alpha-Beta算法进行剪枝.根据博弈树的性质,在Alpha-Beta算法的基础上,各种改进方法被先后提出来.为了进一步提高搜索速度,Alpha-Beta算法又可以基于不同的思想进行并行化.在博弈树搜索算法方面,前人做了许多丰富而充满意义的研究工作.
本文重点在于讨论博弈树并行搜索算法的设计和分析.但是一方面由于博弈树搜索的并行算法与串行算法的紧密内在联系,一方面为了对博弈树的搜索问题进行全面和深入的认识,本文不仅将讨论并行的博弈树搜索算法,而且将总结关于博弈树的串行搜索算法的许多其他问题.从最基本的Min-Max方法开始,到Alpha-Beta串行算法,再到Alpha-Beta算法的并行化,本文沿着博弈树搜索问题的脉络,将进行细致的分析和总结.
本文章欢迎转载,请保留原始博客链接http://blog.csdn.net/fsdev/article
-------------------------------------------------
[1] Valavan Manohararajah(2001). Parallel Alpha-Beta Search on SharedMemory Multiprocessors. Master’s thesis, Graduate Department of Electrical andComputer Engineering, University of Toronto, Canada.
[2] A. Newell and H.A. Simon (1972). Human Problem Solving.Prentice-Hall, 1972.
分享到:
相关推荐
一篇实用的博弈树并行搜索算法论文,以中国象棋AI为例描述了基于OpenMP平台和NegaScout(PVS)算法的博弈树并行搜索算法,并以中国象棋为例做了实验。
在分析现有并行Prim算法的基础上,提出了适于GPU架构的压缩邻接表图表示形式,开发了基于GPU的min-reduction数据并行原语,在NVIDIA GPU上设计并实现了基于Prim算法思想的并行最小生成树算法。该算法通过使用原语...
在管理科学、计算机科学、分子物理学和生物学以及超大规模集成电路(VLSI)设计、代码设计、图象处理和电子工程等科技领域中,存在... 最后,在引入邻域结构概念的基础上,介绍一种通用的近似算法——局部搜索算法。
从1985年到1993年,召开了五届国际遗传算法学术会议,遗 传算法巳经有了很大的发展,并开始渗透到人工智能、神经网络、 机器人和运筹学等领域.遗传算法是多学科相互结合与渗透的产 物,它已发展成一种自组织、自适应...
并行计算 陈国良编著 呵呵 大家来下载 是第三版《并行计算:结构•算法•编程(第3版)》是并行计算系列丛书之开篇,它以并行计算为主题,围绕并行计算机、并行算法和并行程序设计展开讨论,强调融并行计算机体系结构、...
非数值算法 常用非数值并行算法介绍 模拟退火算法新解的产生和接受可分为如下四个步骤: 1、模拟退火算法可以分解为解空间、目标函数和初始解三部分。 模拟退火算法源程序 一、模拟退火算法
遗传并行算法-高性能,可以结合自己实际情况,进行修改.
这是我写的算法设计与分析结课论文,用的蒙特卡洛算法搜索树,写的是一个虽然代码简易但是下棋能力强大的四子棋AI,你们可以用pycharm运行我的代码,玩下试试,如果你们电脑可以并行处理的话,只要模拟次数够大,只要...
3.1实验目的与要求 1、熟悉快速排序的串行算法 2、熟悉快速排序的并行算法 ...6、在最优的情况下并行算法形成一个高度为logn的排序树 7、完成快速排序的并行实现的流程图 8、完成快速排序的并行算法的实现
Bellman Ford算法的并行实现
大数据-算法-树的核与中心的并行算法研究
并行算法 并行算法 并行算法 并行算法 并行算法 并行算法
并行图论算法并行图论算法并行图论算法并行图论算法
大数据-算法-嵌套结构并行多维动态规划算法及其应用研究.pdf
利用k_means聚类算法的MapReduce并行化实现,为学习hadoop的同学提供参考
基于树形结构的算法,这种算法可以很方便地解决某些特殊的博弈论的问题
并行线程算法-易语言.zip
并行计算——结构·算法·编程习题答案 并行计算——结构·算法·编程习题答案 并行计算——结构·算法·编程习题答案 并行计算——结构·算法·编程习题答案 并行计算——结构·算法·编程习题答案