第03杰讲问题归约法.ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三讲 知识表示方法 --问题归约法 Problem Reduction Method -- One of Knowledge Represent Methods 目录(1/1) 目 录 引言 问题归约描述 梵塔难题 问题归约描述 与或图表示 问题归约机理 关键算符 差别 1 引言(1/3) 1 引言 问题归约(reduction)是另一种问题描述与求解方法. 所谓归约,即降阶. 简单地说,问题归约是通过系列变换将问题变换为一个可以直接求解的本原问题的集合,从而解决了初始问题. 这里,所谓本原问题就是不可或不需再通过变换化简的“原子”问题, 本原问题的解可以直接得到或通过一个"黑箱"操作得到。 1 引言(2/3) 采用问题归约表示可由下列3部分组成: 一个初始问题描述; 将问题变换为子问题的操作集; 一系列本原问题描述. 从目标(要解决的问题)出发逆向推理,建立子问题以及子问题的子问题,直至最后把初始问题归约为一个平凡的本原问题集合. 这就是问题归约的实质. 1 引言(3/3) 这里值得指出的是: 问题归约与前面状态空间描述不同的是,主要其在问题空间中展开对问题的描述和求解. 状态空间法只是研究对问题所陈述的事实\状态如何表示,以及如何搜索状态空间求解; 而问题归约法则是对问题求解中如何将问题逐步分解为一系列子问题\本原问题的集合. 对实际问题求解,可将这两种方法有机结合,如后面讨论到的与或图表示与搜索. 2 问题归约描述(1/1) 2 问题归约描述 本节通过介绍“梵塔难题”(Tower-of-Hanoi Puzzle)及其求解来讨论问题归约描述,主要内容有: 梵塔难题 问题归约描述 2.1 梵塔难题(1/9) 2.1 梵塔难题 为了说明如何用问题归约法求解问题,下面考虑著名的AI问题--“梵塔难题”(Tower-of-Hanoi Puzzle),其提法如下: 有3个柱子(1,2和3)和3个不同尺寸的圆盘(A,B和C).圆盘的中心有个孔,圆盘可以堆叠在柱子上. 最初,全部3个圆盘都堆在柱子1上;最大的圆盘C在底部,最小的圆盘A在顶部. 现要求把所有圆盘都移到柱子3上,每次只许移动一个,而且圆盘只能从上到下移动,且堆放只能从小到大. 2.1 梵塔难题(2/9) 梵塔难题的初始配置和目标配置如图1所示. 2.1 梵塔难题(3/9) 梵塔难题可采用前一讲的状态空间法来求解. 其状态空间图每个节点代表柱子上圆盘的一种状态,共含有27个节点,其节点(状态)数、规则数多,求解较复杂. 本讲讨论对梵塔难题而言,问题表述和求解更简洁的问题归约法. 2.1 梵塔难题(4/9) 图1所示的原始梵塔问题可归约为如下较简单的问题集合: 要把所有圆盘都移至柱子3,必须首先把圆盘C移至柱子3;而且此前,要求柱子3必须是空的. 只有在移开圆盘A和B之后,才能移动圆盘C; 而且圆盘A和B不要移至柱子3,否则就不能尽快把圆盘C移至柱子3. 因此,首先应该把圆盘A和B移到柱子2上. 然后才能够进行关键的一步,把圆盘C从柱子1移至柱子3,并继续解决难题的其余部分. 2.1 梵塔难题(5/9) 上述论证允许把原始问题归约(简化)为下列3个子问题; 1. 移动圆盘A和B至柱子2的双圆盘问题,如图2(a)所示. 2.1 梵塔难题(6/9) 2. 移动圆盘C至柱子3的单圆盘问题,如图2(b)所示. 2.1 梵塔难题(7/9) 3. 移动圆盘A和B至柱子3的双圆盘问题,如图2(c)所示. 2.1 梵塔难题(8/9) 由于3个简化了的问题都较小,都比原始问题容易解决. 子问题2为本原问题,因为它的解只包含一步移动. 应用一系列相似的推理,子问题1和子问题3也可被归约为本原问题,如图3a所示. 2.1 梵塔难题(9/9) 这种图式结构,叫做与或图. 它能有效地说明如何由问题归约法求得问题的解答. 顺序解读与或图,按问题归约顺序将其本原问题及其解组合,即可得到原问题的解. 如,对该梵塔问题,从与或图读得的解为如下操作顺序: 2.2 问题归约描述(1/5) 2.2 问题归约描述 问题归约方法应用算符来把问题描述变换为子问题描述. 问题描述可以有各种数据结构形式,表列、树、字符串、矢量、数组等都曾被采用过. 对于梵塔难题可用一个包含两个数列的表列来描述. [(113)?(333)] 就意味着 “把配置(113)变换为配置(333)”. 2.2 问题归约描述(2/5) 可以用状态空间表示的三元组合(S,F,G)来规定与描述问题. 有关子问题可当作状态空间中两个的“路标”(对问题求解有重要作用的中间状态)之间寻找路径的问题来辨别. 对梵塔问题,子问题 [(111)?(122)], [(122)?(322)]和 [(322)

文档评论(0)

181****7126 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档