第3章 和或图搜素问题.pptVIP

  • 3
  • 0
  • 约2.9千字
  • 约 31页
  • 2018-11-03 发布于福建
  • 举报
第3章 和或图搜素问题

第二章 与或图搜索问题 2.1 基本概念 与或图是一个超图,节点间通过连接符连接。 K-连接符: 耗散值的计算 k(n, N) = Cn+k(n1, N)+…+k(ni, N) 其中:N为终节点集 Cn为连接符的耗散值 能解节点 终节点是能解节点 若非终节点有“或”子节点时,当且仅当其子节点至少有一能解时,该非终节点才能解。 若非终节点有“与”子节点时,当且仅当其子节点均能解时,该非终节点才能解。 不能解节点 没有后裔的非终节点是不能解节点。 若非终节点有“或”子节点,当且仅当所有子节点均不能解时,该非终节点才不能解。 若非终节点有“与”子节点时,当至少有一个子节点不能解时,该非终节点才不能解。 普通图搜索的情况 f(n) = g(n) + h(n) 对n的评价实际是对通过n的这条路径的评价 与或图: 对局部图的评价 两个过程 图生成过程,即扩展节点 从最优的局部途中选择一个节点扩展 计算耗散值的过程 对当前的局部图重新计算耗散值 AO*算法举例 2.3 博弈树搜索 博弈问题 双人 一人一步 双方信息完备 零和 分钱币问题 中国象棋 一盘棋平均走50步,总状态数约为10的161次方。 假设1毫微秒走一步,约需10的145次方年。 结论:不可能穷举。 极小极大搜索法 其基本思想是: (1)设博弈的双方中一方为A,另一方为B。为一方(如A)寻找最优行动方案。 (2)为了找到当前的最优行动方案,需要对各个可能的方案所产生的后果进行比较。 (3)为计算得分,需要根据问题的特性信息定义一个估价函数,用来估算当前博弈树端节点的得分。 (4)当端节点的估值计算出来后,再推算出父节点的得分,方法是:对“或”节点,选其子节点中一个最大的得分作为父节点的得分,这是为了使自己在可供选择的方案中选一个对自己最有利的方案;对“与”节点,选其子节点中一个最小的得分作为父节点的得分,这是为了立足于最坏的情况。 (5)如果一个行动方案能获得较大的倒推值,则它就是当前最好的行动方案。 1,极小极大过程 例 一字棋游戏。设有如图所示的九个空格,由A,B二人对弈,轮到谁走棋谁就往空格上放一只自己的棋子,谁先使自己的棋子构成“三子成一线”谁就取得了胜利。 设A的棋子用“a”表示,B的棋子用“b”表示。为了不致于生成太大的博弈树,假设每次仅扩展两层。估价函数定义如下: 设棋局为P,估价函数为f(P)。 (1)若P是A必胜的棋局,则f(P)=+∞。 (2)若P是B必胜的棋局,则f(P)=-∞。 (3)若P是胜负未定的棋局,则 f(P)=e(+P)-e(-P) 其中e(+P)表示棋局P上有可能使a成为三子成一线的数目;e(-P)表示棋局P上有可能使b成为三子成一线的数目。例如,对于所示棋局: e(P)=6-4=2 另外,我们假定具有对称性的两个棋局算作一个棋局。还假定A先走棋,我们站在A的立场上。 博弈树的剪枝(1) 博弈树的剪枝(2) 博弈树的剪枝(3) ?-?剪枝 极大节点的下界为?。 极小节点的上界为?。 剪枝的条件: 后辈节点的?值≤祖先节点的?值时, ?剪枝 后辈节点的? 值≥祖先节点的?值时, ?剪枝 简记为: 极小≤极大,剪枝 极大≥极小,剪枝 ?-?剪枝(续) ?-?剪枝的效率 ?-?剪枝的效率很大程度上取决于检查后继节点的次序—应该先检查那些可能最好的后继 如果能够先检查那些最好的后继,则?-?剪枝算法只需检查O(bd/2)个节点以决定最佳招数 / 极大极小值算法为O(bd)—效率大大提高 课程设计大作业 五子棋程序 要求:具有良好的用户界面、支持人机对弈 ,提供源代码,设计方案和核心算法说明。 5月1日前发送至jrchen@126.com * 目标 目标 初始节点s a b c …... K个 …... i个 n n1 n2 ni 目标 目标 初始节点 解图: n s 目标 目标 初始节点 a b c 其中: h(n0)=3 h(n1)=2 h(n2)=4 h(n3)=4 h(n4)=1 h(n5)=1 h(n6)=2 h(n7)=0 h(n8)=0 设:K连接符 的耗散值为K 目标 目标 初始节点 n0 n1 n2 n3 n4 n5 n6 n7 n8 目标 目标 初始节点 n0 n1 n2 n3 n4 n5 n6 n7 n8 初始节点 n0 n1(2) n4(1) n5(1) 红色:4 黄色:3 目标 目标 初始节点 n0 n1 n2 n3 n4 n5 n6 n7 n8 初始节点 n0

文档评论(0)

1亿VIP精品文档

相关文档