第三章状态空间搜索策略方案
人工智能 chapter3

29
● 启发式搜索策略
假设初始状态、算符和目标状态的定义都是完全确定的,然后决定一
个搜索空间。因此,问题就在于如何有效地搜索这个给定空间。 启发信息按其用途可分为下列3种: (1) 用于决定要扩展的下一个节点,以免像在宽度优先或深度优先搜索 中那样盲目地扩展。 (2) 在扩展一个节点的过程中,用于决定要生成哪一个或哪几个后继节 点,以免盲目地同时生成所有可能的节点。
22ห้องสมุดไป่ตู้
有深度界限的深度优先搜索算法如下: (1) 把起始节点S放到未扩展节点OPEN表中。如果此节点为一目标节点,则得 到一个解。 (2) 如果OPEN为一空表,则失败退出。 (3) 把第一个节点(节点n)从OPEN表移到CLOSED表。 (4) 如果节点n的深度等于最大深度,则转向(2)。 (5) 扩展节点n,产生其全部后裔,并把它们放入OPEN表的前头。如果没有后 裔,则转向(2)。 (6) 如果后继节点中有任一个为目标节点,则求得一个解,成功退出;否则,
度依次扩展节点的,那么这种搜索就叫做宽度优先搜索(breadth-first search)。
从图可见,这种搜索是逐层进行的;在对下一层的任一节点进行搜索之前,必 须搜索完本层的所有节点。
14
宽度优先搜索算法如下: (1) 把起始节点放到OPEN表中(如果该起始节点为一目标节点,则求得 一个解答)。 (2) 如果OPEN是个空表,则没有解,失败退出;否则继续。 (3) 把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED扩展节
1
状态图的例子:
设有三枚钱币,其排列处在“正,正,反”状态,现允许每次 可翻动其中任意一个钱币,问只允许操作三次的情况下,如何 翻动钱币使其变成“正,正,正”或“反,反,反”状态。 若“正面”用“1”表示,“反面”用“0”表示,则问题化成求 解从初始状态(1,1,0)到目标状态(1,1,1)或(0,0,0)的路 径问题,且该路径的长度为3。 (1,1,0)--------->(1,1,1)或(1,1,0)--------->(0,0,0)
人工智能-搜索是人工智能中的一个基本问题 精品

这32种状态并非全有意义,除去不合法状态和修道士被野人吃
掉的状态,有意义的状态只有16种:
S0=(3, 3, 1) S1=(3, 2, 1) S2=(3, 1, 1) S3=(2, 2, 1) S4=(1, 1, 1) S5=(0, 3, 1) S6=(0, 2, 1) S7=(0, 1, 1) S8=(3, 2, 0) S9=(3, 1, 0) S10=(3, 0, 0) S11=(2, 2, 0) S12=(1, 1,0) S13=(0, 2, 0) S14=(0, 1, 0) S15=(0, 0, 0) 有了这些状态,还需要考虑可进行的操作。
描述方法; 然后从某个初始状态出发,每次使用一个“操作”,
递增地建立起操作序列,直到达到目标状态为止; 此时,由初始状态到目标状态所使用的算符序列就是
该问题的一个解。
5
4.1.2 状态空间法
3. 状态空间的例子(1/11)
例4.1 二阶梵塔问题。设有三根钢针,它们的编号分别是 1号、2号和3号。在初始情况下,1号钢针上穿有A、B两个 金片,A比B小,A位于B的上面。要求把这两个金片全部移 到另一根钢针上,而且规定每次只能移动一个金片,任何时 刻都不能使大的位于小的上面。
8
(1,1)
A(1,2) (2,1) B(1,3) (2,3) A(2,3)
A(1,3)
(3,1) B(1,2) (3,2) A(3,2)
(3,3)
(1,3)
(1,2)
(2,2)
二阶梵塔的状态空间图
从初始节点(1, 1)到目标节点(2, 2)及(3, 3)的任何一条路径都是问题的一 个解。其中,最短的路径长度是3,它由3个操作组成。例如,从 (1, 1)开始, 通过使用操作A(1, 3)、B(1, 2)及A(3, 2),可到达 (3, 3)。
2.2.3 知识表示与问题求解(状态空间法)

2.2.3 状态空间法
2.2.3.1 问题状态空间的构成
2. 算符
•算符:引起状态中某些变量发生变化,从而使问
题由一个状态变为另一个状态的操作。
•算符可分为走步、过程、规则、数学算子、运算
符号、逻辑符号等。
•例如:在产生式系统中,每一条产生式规则就是
一个算符;而在下棋程序中,一个算符就是一个 走步。
时,世界的末日就来临了。
自动化系仪自教研室 14
2.2.3 状态空间法 Hanoi塔
19世纪,法国的一位数学家 Édouard Lucas (1842−1891) 对该课 题进行过研究,他指示,要完成这 个任务,僧侣们搬动金盘的总次数: 18446744073709551615(20位)假 设僧侣们个个身强力壮,每天24小 时不知头疲倦地工作,而且一秒钟 移动一个金盘,那么,完成这个任 务也得花5800亿年。
自动化系仪自教研室
21
2.2.3 状态空间法 在状态空间图中,从初始节点(1,1)(状态S0)到目 标节点(3,3)(状态S8)的任何一条通路都是问题的 一个解。 最短的路径长度是3,它由3个算符组成:A(1,2)、 B(1,3)、A(2,3)。
自动化系仪自教研室
22
2.2.3 状态空间法
问题的初始状态集合为S={S0},目标状态集合为 G={S8}。 自动化系仪自教研室
18
2.2.3 状态空间法
自动化系仪自教研室
19
2.2.3 状态空间法 ③定义一组算符F 算符A(i,j)表示把盘子A从第i号柱子移到第j号柱 子上的操作; 算符B(i,j)表示把盘子B从第i号柱子移到第j号柱 子上的操作。 算符组F中共有12个算符:
人工智能 第三章 基本的问题求解方法

存在问题及解决办法
问题和解决方法:
深度问题
对搜索深度加以限制
死循环问题
状态重复: A→B,B→C, C→A 记录从初始状态到当前状态的路径
TOPIC2 GRAPH SEARCH
图搜索策略 问题的引出
回溯搜索:只保留从初始状态到当前状态的 一条路径。
图搜索:保留所有已经搜索过的路径。 N0
(2)求最佳解路的搜索策略
大英博物馆法(British Museum);最佳图搜索法(A*)
(3)求与或关系解图的搜索法
一般与或图搜索法(AO*);极小极大法(Minimax) 剪枝法(Alpha-beta Pruning);启发式剪枝法(Heuristic Pruning)
TOPICS
回溯策略( Backtracking )
83 214 765
283 714
65
28 143 765
283 145 76
123 784
65
12 3 84 7 65
目标
分析
宽度优先搜索是图搜索一般过程的特殊情 况,将图搜索一般过程中的第8步具体化为本 算法中的第6步,这实际是将OPEN表作为“先 进先出”的队列进行操作。 一定能找到解 找到的解一定是最佳解
最优解是否唯一?
下棋
搜索问题
状态空间
123
8
4
765
237 51
486
搜索不是检索
123
8
4
765
237 51
486
难点
123
8
4
765
237 51
486
启发式方法
123
8
搜索策略

6.1.3 与/或树表示法
与/或树是用于表示问题及其求解过程的另一种方法,通 常用于表示比较复杂问题的求解。 对于一个复杂问题,直接求解往往比较困难。此时可通过 下述方法进行简化:
分解 把一个复杂问题分解为若干个较为简单的子问题,每个子问题又 可继续分解。重复此过程,直到不需要再分解或者不能再分解为 止。如此形成“与”树。 等价变换 利用同构或同态的等价变换,把原问题变换为若干个较为容易求 解的新问题。如此形成“或”树。
2,3 3,3 1,3 1,2 3,2 A(3,2) 2,2
采用状态空间表示方法,首先要把问题的一切状态都表示出 来,其次要定义一组算符。 问题的求解过程是一个不断把算符作用于状态的过程。如果 在使用某个算符后得到的新状态是目标状态,就得到了问题 的一个解。这个解就是从初始状态到目标状态所采用算符的 序列。使用算符最少的解称为最优解。 对任何一个状态,可使用的算符可能不止一个。这样由一个 状态所生成的后继状态就可能有多个。此时首先对哪一个状 态进行操作,就取决于搜索策略。
7. 8.
按某种搜索策略对OPEN表中的节点进行排序; 转第2步。
一些说明
一个节点经一个算符操作后一般只生成一个子节点。但适用于 一个节点的算符可能有多个,此时就会生成一组子节点。这些 子节点中可能有些是当前扩展节点的父节点、祖父节点等,此 时不能把这些先辈节点作为当前扩展节点的子节点。 一个新生成的节点,它可能是第一次被生成的节点,也可能是 先前已作为其它节点的子节点被生成过,当前又作为另一个节 点的子节点被再次生成。此时,它究竟应选择哪个节点作为父 节点?一般由原始节点到该节点的代价来决定,处于代价小的 路途上的那个节点就作为该节点的父节点。 在搜索过程中,一旦某个被考察的节点是目标节点就得到了一 个解。该解是由从初始节点到该目标节点路径上的算符构成。 如果在搜索中一直找不到目标节点,而且OPEN表中不再有可 供扩展的节点,则搜索失败。 通过搜索得到的图称为搜索图,搜索图是状态空间图的一个子 集。由搜索图中的所有节点及反向指针所构成的集合是一棵树, 称为搜索树。根据搜索树可给出问题的解。
3 (修改)大规模状态空间中的动态规划和强化学习问题

3 大规模状态空间中的动态规划和强化学习问题本章我们将讨论大规模状态空间中的动态规划和强化学习问题。
对于这类问题,我们一般很难求得问题的精确解,只能得到问题的近似解。
前面章节所介绍的一些算法,如值迭代、策略迭代和策略搜索,无法直接用于这类问题。
因此,本章将函数近似引入这些算法,提出三类基于函数近似的算法版本,分别是近似值迭代、近似策略迭代和近似策略搜索。
本章将从理论和实例两个角度分析算法的收敛性,讨论如何获取值函数逼近器的方法,最后比较分析三类算法的性能。
3.1 介绍第二章详细介绍了DP/RL中三类经典算法,这三类算法都需要有精确的值函数及策略表示。
一般来说,只有存储每一个状态动作对回报值的估计值才能得到精确地Q值函数,同样V值函数只有存储每一个状态的回报值的估计值才能得到;精确的策略描述也需要存储每一个状态对应的动作。
如果值函数中某些变量,比如某些状态动作对、状态等,存在很多个或者无穷多个潜在值(又或者这些值是连续的),那么我们就无法精确描述对应的Q值函数或者V值函数,因此,考虑将值函数和策略通过函数近似的方式来表示。
由于实际应用中大部分问题都存在大规模或者连续状态空间,因此,函数近似方法是求解动态规划和强化学习问题的基础。
逼近器主要可以分为两大类:带参的和非参的。
带参的逼近器主要是从参数空间到目标函数空间的映射。
映射函数及参数的个数由先验知识给定,参数的值由样本数据进行调整。
典型的例子是对一组给定的基函数进行加权线性组合,其中权重就是参数。
相比之下,非参的逼近器通过样本数据直接得到。
本质上,非参的函数逼近器也是含带参数的,只是不像带参的函数逼近器,参数的个数及参数的值直接有样本数据决定。
例如,本书中所讨论的基于核函数的逼近器就是带参数的函数逼近器,它为每一个数据点定义一个核函数,并对这些核函数做加权线性组合,其中权重就是参数。
本章主要对大规模状态空间中动态规划和强化学习问题进行广泛而深入的讨论。
第三章 谓词逻辑与归结原理

以正向推理所得结果作为假设进 行反向推理
退出
是 还需要正向推理吗?
否
2014-4-9
18
华北电力大学
概述-推理的控制策略
搜索策略
推理时,要反复用到知识库中的规则,而知识库中 的规则又很多,这样就存在着如何在知识库中寻找 可用规则的问题 为有效控制规则的选取,可以采用各种搜索策略 常用搜索策略:
归结推理方法在人工智能推理方法中有着很重 要的历史地位,是机器定理证明的主要方法
2014-4-9
25
华北电力大学
归结法的特点
归结法是一阶逻辑中,至今为止的最有效的半可 判定的算法。也是最适合计算机进行推理的逻辑 演算方法 半可判定 一阶逻辑中任意恒真公式,使用归结原理,总 可以在有限步内给以判定(证明其为永真式) 当不知道该公式是否为恒真时,使用归结原理 不能得到任何结论
(5) 上下文限制
上下文限制就是把产生式规则按它们所描述的上下文分组,在某种 上下文条件下,只能从与其相对应的那组规则中选择可应用的规则
2014-4-9
22
华北电力大学
概述-推理的控制策略
推理的控制策略
3.冲突解决策略
(6) 按匹配度排序
在不精确匹配中,为了确定两个知识模式是否可以进行匹配,需要 计算这两个模式的相似程度,当其相似度达到某个预先规定的值时,就 认为它们是可匹配的。若有几条规则均可匹配成功,则可根据它们的匹 配度来决定哪一个产生式规则可优先被应用
如专家系统、智能机器人、模式识别、自然语言理解等
推理
按照某种策略从已有事实和知识推出结论的过程。 推理是由程序实现的,
称为推理机
医疗诊断专家系统
• 知识库中存储经验及医学常识 • 数据库中存放病人的症状、化验结果等初始事实 • 利用知识库中的知识及一定的控制策略,为病人诊治疾病、开出医疗处方就 是推理过程
第三章 确定性推理

首先,扩展最深的节点使得搜索从起始节点沿某条单一路 径进行下去;只有当搜索到达一个没有后裔的状态时,才考虑 最近的另一条替代的路径。替代路径与前面已经试过的路径不 同之处仅仅在于:改变最后n步,而且保持n尽可能小。
对于许多问题,其状态空间搜索树的深度可能为无限深, 或者可能至少要比某个可接受的解答序列的已知深度上限还要 深。为了防止搜索过程沿着无益的路径扩展下去,往往给出一 个节点扩展的最大深度——深度界限。任何节点如果达到了深 度界限,那么都将把它们作为没有后继节点处理。值得说明的 是,即使应用了深度界限的规定,所求得的解答路径并不一定 就是最短的路径。
3、宽度优先搜索方法分析:
宽度优先搜索是图搜索一般过程的特殊情况, 将图搜索一般过程中的第8步具体化为本算法中的 第5步,这就是将OPEN表作为“先进先出”的队列 进行操作。
宽度优先搜索的缺点:搜索方向盲目性较大, 当目标节点距离初始节点较远时,将会产生大量的 无用节点,搜索效率低。
但是,只要问题有解,用宽度优先搜索总可以 找到它的解,而且是搜索树中从初始节点到目标节 点路径最短的解(不考虑每条弧线的长度、代价、 扩展节点数等,只考虑经历的步数)。因此,宽度 优先搜索策略是完备的。搜索树能提供所有存在的 路径(如果没有路径存在,对有限图来说,就以失 败退出;对于无限图来说,则永远不会终止)。
宽度优先搜索示意图
2、宽度优先搜索算法如下:
(1) 把起始节点放到OPEN表中(如果该起始节 点为一目标节点,则求得一个解答)。
(2) 如果OPEN表是个空表,则没有解,失败退 出;否则继续。
(3) 把第一个节点(节点n)从OPEN表移出,并 把它放入CLOSED扩展节点表中。