博弈树的搜索是人工智能领域一个重要的研究课题.许多完全信息的二人零和博弈问题都可以用博弈树搜索算法解决。

那么什么是二人零和博弈问题呢?

有一系列的博弈问题拥有以下性质[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.

用java编写博弈树_并行博弈树搜索算法-第1篇 什么是博弈树搜索算法相关推荐

  1. 用java编写博弈树_并行博弈树搜索算法-第8篇 写在最后的话:有趣的的博弈算法...

    毛主席说过,与人斗其乐无穷.博弈就是一个人与人斗争的过程.既然是斗争,那就有利益的争端.利益存在此消彼长,是谓"零和".既然斗争对方是人,那意味着他是一个有着主观能动性,有着智慧与 ...

  2. 用java编写博弈树_并行博弈树搜索算法-第7篇 另辟蹊径:其他的博弈树并行搜索算法...

    除了基于Alpha-Beta算法的博弈树并行搜索算法外,还有其他的博弈树搜索算法.现简要介绍如下. 7.1SSS*算法及其并行化 Alpha-Beta算法是一种基于Min-Max方法的固定深度(fix ...

  3. java编写存钱_用Java编写一个简单的存款

    package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...

  4. java 编写代码_如果您在2016年编写过Java代码-这是您不容错过的趋势

    java 编写代码 2016年最有趣的Java相关主题 关于代码,有很多热门话题,而要跟上所有事情,这是一项全职的工作. 如果您想知道如何从谷壳中分离出小麦,我们已经为您完成了工作. 在下面的文章中, ...

  5. java 编写代码_如果您在2015年编写过Java代码-这是您不容错过的趋势

    java 编写代码 去年我们有机会遇到的最有趣趋势的实用概述 在这篇文章中,我们回顾了构成我们2015年对话的5个主题和新发展.与其他许多年终总结保持较高水平的不同,我们将做一个更实际的操作不用流行语 ...

  6. java编写代理服务器_如何编写Java代理

    java编写代理服务器 对于vmlens (轻量级Java竞争条件捕获器),我们使用Java代理来跟踪字段访问. 这是我们学习的实现此类代理的经验教训. 开始 使用"静态公共静态无效值pre ...

  7. java编写正则表达式_如何用Java编写最快的表达式评估器之一

    java编写正则表达式 当然,标题有点吸引人,但确实如此(您当然不相信自己没有伪造自己的基准,但这是另一回事了). 因此,上周我正在寻找一个小型且可用的库来评估数学表达式. 我几乎直接偶然发现了这个s ...

  8. java编写管理系统_用java编写学生信息管理系统

    <用java编写学生信息管理系统>由会员分享,可在线阅读,更多相关<用java编写学生信息管理系统(7页珍藏版)>请在人人文库网上搜索. 1.用java编写学生信息管理系统im ...

  9. java中的基本小程序_12个用Java编写基础小程序经典案例(收藏篇)

    原标题:12个用Java编写基础小程序&经典案例(收藏篇) 如果是刚接触或者刚学习java,练习一些基础的算法还是必须的,可以提升思维和语法的使用. 1.输出两个int数中的最大值 impor ...

最新文章

  1. re2正则表达式匹配引擎的c接口版本cre2的中文使用手册
  2. python双循环zip_Python如何同时进行两个循环
  3. exe软件ui嵌套软件_UI设计行业中的PS软件起什么用途
  4. 内网端口转发-LCX基本使用
  5. 临汾移动搜索引擎推广_竞价信息流移动搜索推广分析!
  6. 影响程序员生涯的三个错误观念,你千万不要犯!
  7. 云计算openstack介绍
  8. 超实用的脚本——检查oracle数据库是否存在潜伏的比特币勒索病毒
  9. 【LeetCode】【字符串】题号:*49. 字母异位词分组
  10. python 存储对象_Python使用redis存储对象
  11. 遥感图像处理 | 辐射校正
  12. 姓名国别分类代码:PyTorch深度学习实践 - Lecture_13_RNN Classifier
  13. 转载一篇适合初学者“区分自由浮动时间和总浮动时间”的文章
  14. win10Edge浏览器或第三方浏览器网页字体模糊解决方法
  15. Python实现电话号码的数字组合
  16. 看过这样一个纪录片吗《父亲》,令人深思
  17. 一篇就可以搞定——ADB连接多台设备问题
  18. Java 集合系列3、骨骼惊奇之LinkedList
  19. l2正则化python_L1、L2正则化的区别
  20. 物联网会成为移动互联网的下一个红海市场吗

热门文章

  1. 物流一站式查询之TrackingMore篇
  2. 微软收购暴雪计划流产;Meta 终于赚钱了;美国最高法否认 AI 发明;中国推动全球电动车市场;吃下硅谷银行后,第一共和国银行濒临破产……《经济学人 | 第 18 期》
  3. 菲波那切数列的时间复杂度分析-矩阵加速斐波那契数列计算
  4. samba配置共享用户home目录
  5. IDEA设置默认的maven配置
  6. [内网渗透]—令牌窃取
  7. SunPinyin代码导读-IME部分
  8. php-fpm比php成为apache模块好在哪
  9. 二叉树寻找祖先C语言,二叉树寻找最近公共祖先节点
  10. C#调用Java的WebService时添加身法认证信息的方法