计算机博弈-讲义幻灯片.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4、基本搜索技术 4.1 博弈树 4.2 极大极小值算法 4.3 深度优先搜索 4.4 负极大值算法 4.1 博弈树 博弈树 把所有的走法都列出来 树根是棋局的初始局面 根的若干子节点是甲的每种可能走法所生成的局面,而这些节点的子节点又是对方每种可能走法产生的局面 树的末梢是结束局面:一方获胜、平局 4.1 博弈树 博弈树 从根部向下递归产生的一颗包含所有可能的对弈过程的搜索树,是完全搜索树 搜索过程分析 不可能建立完全搜索树 很多情形根本到达不了叶节点 节点数量太多,超过计算机的处理能力 4.2 极大极小值算法 棋局优劣的评价标准 假设甲胜的局面为1,乙胜的局面为-1,和局的值为0 如何搜索?最有利于甲,最不利于乙的走法 假设甲胜的局面为+∞,乙胜的局面为-∞ ,和局的值为0 如何搜索?静态估值函数 4.3 深度优先搜索 4.4 负极大值算法 5、博弈评估 博弈评估是通过既有的棋类知识来评估局面优劣的过程 对棋类知识依赖很深,但仍有规律可循 5、博弈评估 5.1 棋子的价值评估 5.2 棋子的灵活性与棋盘控制 5.3 棋子关系的评估 5.4 与搜索算法配合 5.1 棋子的价值评估 以中国象棋为例 每个棋子赋予权值 一方的棋子价值计算公式 棋子价值评估要和其他知识相结合,可以提供评估函数的知识水平 兵是否过河 5.2 棋子的灵活性与棋盘控制 5.3 棋子关系的评估 5.4 与搜索算法配合 6、五子棋博弈实例 7、高级搜索技术 * * 为什么我们要谈论符号计算机? * 为什么我们要谈论符号计算机? * 为什么我们要谈论符号计算机? 中国象棋人机大战-2006 中国象棋人机大战-2006 中国象棋人机大战-2006 中国象棋人机大战-2006 1.3、人机博弈系统 1.3.1 人机博弈系统的构成 1.3.2 棋盘表示 1.3.3 走法产生 1.3.4 搜索技术 1.3.5 估值 1.3.1 人机博弈系统的构成 人机对弈的程序,至少能具备如下几个部分: 某种在机器中表示棋局的方法,能够让程序知道博弈的状态。 产生合法走法的规则,以使博弈公正的进行,并可判断人类对手是否乱走。 从所有合法的走法中选择最佳的走法的技术。 一种评估局面优劣的方法,用以同上面的技术配合做出智能的选择。 一个界面,有了它,这个程序才能用。 1.3.2 棋盘表示 棋盘表示就是使用一种数据结构来描述棋盘及棋盘上的棋子,通常是使用一个二维数组。一个典型的中国象棋棋盘是使用9X10的二维数组表示。每一个元素代表棋盘上的一个交点。一个没有棋子的交点所对应的元素是0,一个黑帅对应的元素是1,黑士则用2表示等等,依此类推。 棋盘的数据表示直接影响到程序的时间及空间复杂度。为了追求更高效率,研究人员针对不同棋类提出了多种不同的表示方法。 1.3.3 走法产生 博弈的规则决定了哪些走法是合法的。对有的游戏来说,这很简单,比如五子棋,任何空白的位置都是合法的落子点。但对于象棋来说,就有马走日、象走田等一系列复杂的规则。 走法产生是博弈程序中一个相当复杂而且耗费运算时间的方面。不过,通过良好的数据结构,可以显著地提高生成的速度。 1.3.4 搜索技术 对于计算机来说,直接通过棋盘信息判别走法的好坏并不精确。除了输赢这样的局面可以可靠地判别外,其他的判断都只能做到大致估计。判别两种走法孰优孰劣的一个好方法就是察看棋局走下去的结果,也就是向下搜索若干步,然后比较发展下去的结果,为了避免差错,我们假定对手的思考也和我们一样,也就是,我们想到的内容,对手也想到了,这就是极大极小搜索算法的基本原则。极大极小搜索算法是本书中所有搜索算法的基础。 极大极小搜索算法的时间复杂度是O(bn)。这里b是分枝因子(branching factor),指棋局在各种情况下的合法走步的平均值:n是搜索的最大深度,也就是向下搜索的博弈双方的走步。 1.3.5 估值 然而,现有的计算机的运算能力仍然十分有限。不可能一直搜索到分出输赢的那一步,在有限搜索深度的末端,我们用一些静态的方法,来估计局面的优势。这些方法在很大程度上依赖于具体的游戏规则和我们对于该游戏的经验知识,其中相当一部分不完全可靠。例如:中国象棋的程序通常将一个炮赋予远高于一个兵的价值,但一个兵在高手的运用之下往往可以产生不次于炮的作用。 写出一个好的估值函数并不是一件轻松的事,它需要你对所评估的棋类相当了解,最好是一个经验丰富的高手。然后还要进行无数次的试验,经历几番失败后才可能得到一个令人满意的估值函数。 2、棋盘表示 2.1 一般表示法 2.2 比特棋盘 2.1 一般表示法 棋盘表示主要探讨的是使用什么数据结构来表示棋盘上的信息。一般说来,这与具体的棋类知识密切相关。通常,用来描述棋盘及其上棋子信息的是一个二维数组。 例如

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档