02第二讲(状态空间搜索策略)
人工智能之状态空间搜索.ppt
§01 Three-S 的基本思想 Ruan Xiaogang Institute of Artificial Intelligence & Robots Beijing University of Technology
1.2 事物的特性
变化的和运动的
事物有事物的特性。 事物既有内在特性又有外在特性,内在特性通 常表现为事物固有的和本质的特征,而外在特性通 常表现为事物与环境的关系。 事物的特性是在不断地变化的,或不断地运动 的,因而,被称为动态特性。 事物特性的变化或运动必定是在一定的时间和 空间中发生的。
(问题原态的描述)
在问题求解活动中,事物的特性代表着问题的性 质,事物特性的变化意味着问题性质的变化。
因此,状态空间中状态的运动,意味着事物特性 的变化,意味着问题性质的变化。重要的是,这种运 动是可以通过对事物进行操作来控制的。
§01 Three-S 的基本思想 Ruan Xiaogang Institute of Artificial Intelligence & Robots Beijing University of Technology
1.4 状态是问题的性质
问题求解过程搜索过程
关于状态空间搜索 (Three-S):
状态 (State):状态空间中的点,代表问题的性质; 问题原态对应的状态称为初始状态,问题终态所对 应的状态称为目标状态。
状态空间 (State Space):所有可能的状态的集合。
状态空间搜索 (Search in State Space): 在状态空间 中搜寻一条由初始状态到目标状态的路径的过程, 即问题求解的过程。
2.1 Three-S 问题的形式化
定义:
状态空间搜索中的问题被定义为一个四元组:
人工智能精品:状态空间搜索策略
开始
初始化:把S0放入OPEN表,CLOSED表置 空
OPEN为空表? N
把OPEN表中的第一个节点(n)移至 CLOSED表中
Y 失败,退出出
n为目标节点吗?
N 若n的后继未曾在搜索图G中出现,则将其放入
OPEN表的末端,并提供返回节点n的指针
Y 成功,退出
根据后继节点在搜索图G中的出现情况修改指针 方向
CLOSED表 Y
n是目标节点吗? N
N 节点n可扩展吗? Y
扩展节点n,将其后继结点放入 OPEN表的前端,为每个后继节
点设置指向n的指针
图5.7 深度优先搜索算法框图
无解,退出
回溯求解路径 成功退出
5.2 盲目搜索策略
例5.2 对图5.4所示的八数码难题,利用深度优先 方法进行搜索来求解问题。 解:搜索过程如图5.8所示。这里只给出了搜索树 的一部分,仍可继续往下搜索,直到找到目标节点。 深度优先搜索中,搜索若进入某一分支,则沿着这 一分支一直搜索下去,对于有限的状态空间图,从 理论上讲,解总是能够找到的。但是,由于某些分 支可能扩展得很深,而解又不在这些分支上,这就 无疑会降低搜索的效率。为了防止在无解的分支上 进行无效的搜索,对搜索的分支深度进行一定的限 定,这就是下面的有界深度优先搜索。
考察。依此类推,一直搜索下去,当到达
某个既非目标节点又无法继续扩展的节点
时,才选择其兄弟节点进行考察。搜索过 程如图5.6所示。其搜索算法见算法5.3。
图5.6 深度优先搜索示意图
5.2 盲目搜索策略
算法5.3 状态空间图的深度优先搜索算法 (1)把初始节点S0放入OPEN表。 (2)如果OPEN表为空,则问题无解,退出。 (3)从OPEN表中将其第一个节点(节点n)移出,放入已扩展节点表CLOSED 中。 (4)考察节点n是否为目标节点,若是,则找到问题的解,用回溯法求解的路 径,退出。 (5)若节点n不可扩展,则转第(2)步。 (6)扩展节点n,将其后继结点放到OPEN表的前端,并为其设置指向节点n的 指针,然后转第(2)步。
人工智能状态空间搜索策略
7, OPEN中的节点按f值从小到大排序; 8, GO LOOP;
一个A算法的例子
283 164 75
123 84 765
定义评价函数:
f(n) = g(n) + h(n) g(n)为从初始节点到当前节点的代价值 h(n)为当前节点“不在位”的位置数
h计算举例
123 283 81 6 4 4 7 55 76
h(n) =4
283
A(6) 1 6 4
75
283 3
D(5) 1 4
765
2 8 3 s(4)
164 1 75
283 2
1 4 B(4)
765
283
1 6 4 C(6)
75
4
23
1 8 4 E(5)
765
283
1 4 F(6)
7 65
83 214 765
问题求解就是搜索过程 搜索对应的知识表示法:
状态空间表示法、与/或树表示法
(6)对节点n进行扩展,将它的所有后继节点放入OPEN表的末端, 并为这些后继节点设置指向父节点n的指针,然后转步骤(2)
宽度优先搜索
1, G:=G0(G0=s), OPEN:=(s), CLOSED:=( );
5.3 启发式搜索策略
5.3.1 启发信息与估价函数 5.3.2 最佳优先搜索 5.3.3 A*算法
需要重点掌握的问题
用宽度优先搜索和深度优先搜索求解八数 码问题;
用代价树的宽度优先搜索和深度优先搜索 求解推销员旅行问题;
用全局最佳优先搜索八数码问题。
状态空间搜索策略
搜索是人工智能的基本问题,是推理不可 分割的一部分
状态空间的搜索策略
状态空间的搜索策略图1 状态空间的搜索策略一般说来,搜索策略讨论对于具有树状结构图的问题状态空间更加方便。
因此,对于非树状结构图的问题,例如网状结构等,往往需要化为树状结构图,以便更好地应用搜索策略进行讨论。
(1)广度优先搜索——先进先出,生成的节点插入OPEN表的后面。
基本方法:从根节点S0开始,向下逐层逐个地对节点进行扩展与穷尽搜索,并逐层逐个地考察所搜索节点是否满足目标节点Sg的条件。
若到达目标节点Sg,则搜索成功,搜索过程可以终止。
注意:在广度优先搜索法的过程中,同一层的节点搜索次序可以任意;但在第n层的节点没有全部扩展并考察之前,不应对第n+1层的节点进行扩展和考察。
特点:显然,宽度优先搜索法是一种遵循规则的盲目性搜索,它遍访了目标节点前的每一层次每一个节点,即检查了目标节点前的全部的状态空间点,只要问题有解,它就能最终找到解,且最先得到的将是最小深度的解。
可见,宽度优先搜索法很可靠。
但是,当目标节点距离初始节点较远时将会产生许多无用的中间节点。
因此,速度慢,效率低,尤其对于庞大的状态空间实用价值差。
(2)深度优先搜索——后进先出,生成的节点插入OPEN表的前面。
基本方法:从根节点S0开始,始终沿着纵深方向搜索,总是在其后继子节点中选择一节点来考察。
若到达目标节点Sg,则搜索成功;若不是目标节点,则再在该节点的后继子节点中选一考察,一直如此向下搜索,直到搜索找到目标节点才停下来。
若到达某个子节点时,发现该节点既不是目标节点又不能继续扩展,就选择其兄弟节点再进行考察。
依此类推,直到找到目标节点或全部节点考察完毕,搜索过程才可以终止或结束。
特点:方式灵活,规则易于实现,对于有限状态空间并有解时,必能找到解。
例如,当搜索到某个分支时,若目标节点恰好在此分支上,则可较快地得到解。
故在一定条件下,可实现较高求解效率。
但是,在深度优先搜索中,一旦搜索进入某个分支,就将沿着该分支一直向下搜索。
这时,如果目标节点不在此分支上,而该分支又是一个无穷分支,则就不可能得到解。
状态空间搜索解读
最
优
化
理
论
与
应
用
问题实例——八数码问题
状态:8个棋子在3×3 的棋盘上的任意一个 摆放 初始状态:右上图 算子(后继函数): left、right、up、down 目标函数:右下图 路径代价:1
计算机与信息学院 刘勇
1 2 7 5 8 3 4 6
初始状态
1 2 3 4 5 6 7 8
计算机与信息学院 刘勇
最
优
化
理
论
与
应
用
深度优先搜索
open
1 2 3 4 5 6 7 8 9 10 A B,F C,D,E,F D,E,F E,F F G,I H,I I
close
A A,B A,B,C A,B,C,D A,B,C,D,E A,B,C,D,E,F A,B,C,D,E,F,G A,B,C,D,E,F,G,H A,B,C,D,E,F,G,H,I
最
优
化
理
论
与
应
用
B1 广度优先搜索
breadth-first search,BFS A B F C D E G I
A B C D E G H F I
先扩展出的节 点先被考察
计算机与信息学院 刘勇
最
优
化
理
论
与
应
用
广度优先搜索算法
1. 初始化open表、close表为空,定义S为初始状态 结点 2. 将S放入到open表中 3. 如果open表为空,则搜索失败,否则从open表中 取出第一个结点N,将N放入到close表中。 4. 如果N是目标结点,搜索成功,返回N 5. 对N的每一个子结点 i,如果open表和close表中 都没有结点i,那么将结点i其追加到open表的最 后一个元素之后 6. goto 3
状态空间搜索策略
开始
把S放入OPEN表
OPEN表为空表?
是 失败
否
把第一个节点(n)从OPEN表移至CLOSED表
n为目标节点吗?
是 成功
否
把n的后继节点放入OPEN表的末端, 提供返回节点n的指针
修改指针方向 重排OPEN表
图3.1 图搜索过程框图
3.2 盲目搜索
• 特点:不需重排OPEN表 • 种类:宽度优先、深度优先、等代价搜索等。
03
虽然问题求解可通过搜索方法, 也可用逻辑推理,但二者的侧 重点是不一样的。前者着重于 寻求问题解答的过程,而后者 强调前提(初始)问题空间 (公理集合)与问题解答间连 接的逻辑正确性。或者简单地 讲,搜索着重于发现 (Discovery),而推理强调证 明(Proof)。
搜索
在状态图中寻找目标或路径的基本方法 从初始节点,沿着与之相连的边,寻找目标节点的过程
过多无用节点。 ○ 用于删除节点的选择,即用于决定应删除哪些无用节点, 以免造成进一
步的时空浪费。
3.3 启发式搜索
3.3.1 启发式搜索策略和估价函数
特点:重排OPEN表,选择 最有希望的节点加以扩展
1
种类:有序搜索、A*算法 等
○ 盲目搜索可能带来 组合爆炸
○ 启发式信息 用来加速搜索过程 的有关问题领域的 特征信息。
3.2.1 宽度优先搜索
❖ 定义
以接近起始节点的程度逐必能 找❖ 到算法它。
广度(宽度)优先搜索 (Breadth-first search, BFS)
○ 优先在同一级节点中考察,只有当同一级节点考察完毕之后,才考 察下一级节点
○ 自顶向下一层一层逐渐生成的
75
10
11
[工学]状态空间的搜索策略
成功退出;否则,转向步骤②。
有界深度优先搜索的几点说明
如果问题有解,且路径长度dm,则上述搜索过程一 定能求得解。但若解的路径长度> dm,则得不到解。
为找到最优解,可增设表R,每找到一个目标节点Sg 后,就把它放到R的前面,并令dm等于该目标节点所对应 的路径长度,然后继续搜索。
有界深度优先搜索算法流程
① 把起始节点S放到OPEN表中。如果此节点为目标节点, 则得到一个解。
② 如果OPEN为空表,则失败退出。 ③ 把第一个节点(节点n)从OPEN表移到CLOSED表。 ④ 如果n的深度等于最大深度dm,则转向步骤②。 ⑤ 扩展n,产生其全部后裔,并把它们放入OPEN表的前头。
一般搜索过程算法流程
⑦ 对M中子节点进行如下处理:
对没在G中出现过的(即没在OPEN或CLOSED表中出现 过的)M成员设置一个指向n的指针,把M的这些成员加 进OPEN表;
已在OPEN或CLOSED表中的每个M成员,确定是否需要 更改指向n的指针方向;
已在CLOSED表中的每个M成员,确定是否需要更改图G 中它的每个后裔节点指向父节点的指针。
枝法(Alpha-beta Pruning)、启发式剪枝法(Heuristic Pruning)
搜索策略选取操作算子的方式
搜索策略的主要任务是确定选取操作算子的方式。
盲目搜索
– 对特定问题不具有任何有关信息,按预定步骤(依次或随机) 进行搜索,搜索过程中获得的中间信息不用来改进控制策略。
– 特点:能快速调用操作算子。启发式搜索一般优于盲目搜索,但 不能过于追求更多的甚至更完整的启
深度优先搜索的基本思想
《状态空间搜索》课件
应用领域
人工智能
状态空间搜索可以应 用于机器学习、自然 语言处理和图像识别 等人工智能领域。
游戏设计
状态空间搜索是游戏 中人物行动和决策的 基础,使游戏更具挑 战性和智能性。
自动规划和调 度
在生产、物流和交通 等领域中,状态空间 搜索可以优化资源规 划和任务调度。
数据分析
状态空间搜索可以帮 助发现数据中隐藏的 模式和关联,为决策 制定提供有力支持。
案例研究
人工智能
使用状态空间搜索优化机器学习 算法的参数选择,提高准确性和 效率。
游戏设计
通过状态空间搜索实现游戏中的 智能NPC行为,使游戏更具挑战 性。
自动规划和调度
利用状态空间搜索优化物流系统 的路径规划和车辆调度,降低成 本和提高效率。
《状态空间搜索。通过定义和搜索问题的 状态空间,我们能够找到最佳解决方案,并解决各种实际挑战。
定义与背景
状态空间搜索是一种以状态和操作为基础的搜索算法。它可用于查找特定问题的解决方案,并在搜索空间中找 到最佳路径。 状态空间搜索在人工智能、游戏设计、自动规划和调度以及数据分析等领域都有广泛的应用。
挑战和解决方案
1 空间复杂度
随着状态空间的增大,搜索算法需要占用更多的内存。优化技术和剪枝策略可以减少空 间需求。
2 时间复杂度
在大规模状态空间中搜索最优解需要花费较长的时间。智能的启发式函数可以提高搜索 效率。
3 剪枝技术和优化策略
通过剪掉冗余的搜索路径和使用启发式函数进行优化,可以加速状态空间搜索。
常见的搜索算法
盲目搜索算法
通过无信息的搜索策略,在状态空间中逐步探 索并找到解决方案。
最佳优先搜索算法
根据启发式函数评估搜索节点,并选择评估函 数值最小的节点进行扩展。
《状态空间搜索》PPT课件
精选ppt
3
• 另一种求解方法是:先从欲想达到的目标开始, 看哪些规则或合法移动能产生该目标以及应用这 些规则产生目标时需要哪些条件。这些条件就成 为我们要达到的新目标,即子目标。搜索就通过 反向的、连续的子目标不断地进行,一直到找到 问题给定的条件为止。这样就找到了一条从数据 到目标的移动或规则组成的链,尽管搜索方向和 它正好相反。这种方法称为目标驱动的推理或反 向推理。
765
765
精选ppt
28
宽度优先搜索
• 可使用的算符有,空格左移,右移,上移,下 移.
• 宽度优先搜索的图示如p267页的图6-15.
状态空间搜索状态空间搜索策略数据驱动和目标驱动的搜索图搜索的实现深度和广度优先搜索有界深度优先搜索有界深度优先搜索谓词演算推理的状态空间表示法逻辑的状态空间描述与或图讨论?基于递归的搜索?递归?递归搜索?模式驱动搜索?产生式系统?定义与历史?产生式系统示例?产生式系统搜索的控制?产生式系统的优点?状态空间搜索策略?数据驱动和目标驱动的搜索?状态空间可以从两个方向进行搜索
D
•
E F G HI J
•
K L M NO P Q R
•
ST
U
•
用于深度和广度优先搜索的例图
精选ppt
24
深度和广度优先搜索
• 例如在上面的深度和广度优先搜索图中,深度优 先搜索的顺序是:
• A,B,E,K,S,L,T,F,M,C,G,N, H,O,P,U,I,Q,J,R
• 而在广度优先搜索中结点的顺序是:
• end
• end;
• return FAIL
• end.
• 假设状态空间的深度优先回溯搜索中的回溯轨迹 如下:
状态空间搜索
4.1 搜索概述
4
在人工智能中,问题 求解的基本方法:
① 推理法 ② 搜索法 ③ 归约法 ④ 归结法
……
由于大多数需要用人 工智能方法求解的问题 缺乏直接求解的方法, 因此,搜索法是一种求 解问题的一般方法。
4.2 状态空间表示法
5
为了进行搜索,首先 要考虑问题及其求解过 程的形式表示。
常用表示法: 状态空间表示法 与/或树表示法
第 2 章 人工智能与专家系统 1
主要内容
1. 概述 2. 知识表示 3. 确定性推理 4. 状态空间搜索 5. 专家系统 6. 机器学习 7. 神经网络
4.1 搜索概述
2
问题(现代认知心理学):
在给定信息和目标状态之间有某些障碍需要加以克服的情境。 ①给定:有关问题条件的描述,即问题的起始状态; ②目标:有关构成问题结论的描述,即问题的目标状态; ③障碍:无法直接到达目标,必须通过一定的思维活动才 能找到答案,达到目标状态。
4.2 状态空间表示法
11
例题:二阶梵塔问题
设有3根柱子,在1号柱子上穿有A、B两个盘, 盘A小于盘B,盘A位于盘B的上面。
要求把这两个盘全部移到另一根柱子上,而且 规定每次只能移动一个盘,任何时刻都不能使B盘 位于A盘的上面。
1
2
3
A B
4.2 状态空间表示法
12
用Sk = (SkA, SkB)表示问题的状态,SkA表示A盘所 在的柱号,SkB表示B盘所在的柱号。
4.2 状态空间表示法
10
状态空间图
状态空间的图 示表示问题形 式。状态空间 图是一个有向 图,节点表示 状态,有向边 (弧)表示算 符。
问题 原态
问题的求解:的过程: 一搜条索由初始状态至目标 状态的路径。的过程。
第五章 状态空间的搜索策略
状态空间图的搜索策略
节点类型说明
状态空间图的搜索策略
修改指针的说明
状态空间图的搜索策略
状态空间图的搜索策略
状态空间图的搜索策略
宽度优先搜索策略
宽度优先
又称为是广度优先; 是一种盲目的搜索策略。
它的基本思想是:
从初始节点开始,逐层对节点进行依次扩展,并考 察它是否为目标节点。在对下层的节点进行扩展或 者是搜索之前,必须完成对当前层的所有节点的扩 展或者是搜索。
搜索方法的实现——递归实现 递归方法的特点
递归必须要有出口 递归公式中,每一次调用必须距出口更近一 些
回溯搜索
回溯搜索
算法步骤Backtrack(DATA)
①如果当前状态DATA为目标状态,则找到目 标。 ②该状态不合法,则过程返回失败信息 ,必须 回溯。 ③计算DATA(当前状态)的可应用规则集, 依某种原则(任意排列或按启发式准则)排列 后赋给RULES。 ④如果规则用完未找到目标,过程返回FAIL, 必须回溯。
回溯搜索
回溯搜索会出现的问题
深度问题 死循环问题
回溯搜索
回溯中失败原因的分析——多步回溯问 题 回溯搜索中知识的应用
盲目搜索策略
状态空间图的搜索策略 宽度优先搜索策略 深度优先搜索策略 代价树的宽度优先搜索 代价树的深度优先搜索 盲目搜索的性质总结
状态空间图的搜索策略
启发式搜索
人工智能领域中已有搜索方法
(1)求任一解路的搜索策略
回溯法(Backtracking) 爬山法(Hill Climbing) 宽度优先法(Breadth-first) 深度优先法(Depth-first) 限定范围搜索法(Beam Search) 好的优先法(Best-first)
状态空间搜索策略(PPT45张)
– 根节点深度=0 – 其它节点深度=父节点深度+1
3.2.2 深度优先搜索
定义
首先扩展最新产生的(即最深的)节点。
算法
防止搜索过程沿着无益的路径扩展下去, 往往给出一个节点扩展的最大深度 ——深度界 限。 与宽度优先搜索算法最根本的不同在于: 将扩展的后继节点放在 OPEN 表的前端。 (算法
(目标状态)
规定:将牌移入空格的顺序为:从空格左边开始 顺时针旋转。不许斜向移动,也不返回先辈节点。 从图可见,要扩展26个节点,共生成46个节点 之后才求得解(目标节点)。
1
2 8 3 1 4 7 6 5
2 6
2 8 3 1 4 7 6 5
3 7 8
2 3 1 8 4 7 6 5
4 9
2 8 3 1 6 4 7 5
框图见教材)
• 深度优先搜索(Depth-first search ,DFS)
• 排序方式不同,对应的搜索算法不同
开始 把S放入OPEN表 是 OPEN表为空表? 否 把第一个节点(n)从OPEN表移至CLOSED表 失败
n为目标节点吗?
否 把n的后继节点放入OPEN表的末 端,提供返回节点n的指针
是
成功
修改指针方向
重排OPEN表 图3.1 图搜索过程框图
3.2 盲目搜索
• 搜索
– 在状态图中寻找目标或路径的基本方法
– 从初始节点,沿着与之相连的边,寻找目标节 点的过程
,按照原图的连接 关系,便形成一个树形的有向图
• 盲目搜索
– 无向导搜索/穷举式搜索 – 从初始节点,沿连接边逐一考察各个节点,或反 向进行
• 启发式(heuristic)搜索
状态空间搜索
广度优先搜索(Breadth-first Search)
搜索顺序:1->2->3->4->5->… “找眼镜”
广度优先搜索
实现:队列 空间开销: 可扩展结点 + 已扩展结点标记
广度优先搜索的实现框架
void BFS() {
while(队列可扩展且尚未到达目标状态) {
从队首依次取出队列中未扩展的结点进行扩 展,并将新结点加入队尾。 } }
状态空间搜索
适用范围和意义 盲目搜索方法 优化搜索技巧 参考习题 推荐材料
盲目搜索方法
定义
状态(state) 对问题在某一时刻进展情况的数学描述
状态转移(state-transition) 问题从一种状态到转移到另一种(或几种)状态的操作
状态空间(state space) 问题可以处于的所有状态
算法运行若干次(比如k次),验证F是否满足 值为1。
K是一个从理论上分析出来的界。 能以接近1的概率找到解。
状态空间搜索
适用范围和意义 盲目搜索方法 优化搜索技巧 参考习题 推荐材料
搜索优化技巧
改变搜索顺序 剪枝技巧
改变搜索顺序
每次都选择先扩展更接近目标状态的结点, 那么就会更快的找到最优解,并为剪枝提 供依据。
只有能够补偿策略本身所花费代价的剪枝,才能称得 上是好的剪枝。
举例
[例3,POJ 1011] 合并木棒 我们有n(n≤64)根小木棍,每根长度均不大 于50。现在需要将它们拼接成长度相同的 若干长木棍,并使得这些长木棍最短。问 如何拼接?
分析
此题也是很明显的搜索题 从小到大枚举每个拼成后的木棍长d 验证d是否可行
作业:
POJ 1167 公交车问题 (the buses) POJ 2817 木棒 提交poj,同时上传代码至ftp, 第十二次作业 目录中 提交时间:25号
2第二讲 第二章 知识表示(状态空间法)
一、问题状态描述 2、算符:
使问题从一种状态变化为另一种状态的手段,操作 符可为走步、过程、规则、数学算子、运算符号 或逻辑符号等。
3、状态空间:
一个表示该问题全部可能状态及其关系的图,包含 三种说明的集合,即所有可能的问题初始状态集 合S、 操作符集合F以及目标状态集合G。可把状 态空间记为三元状态(S,F,G)。
2 3 1 8 4 7 6 5
2 3 4 1 8 7 65
2.2状态空间法
求解的方法:首先把适用的算符用于初始状态,
以产生新的状态;然后,再把另一些适用算符 用于这些新的状态;这样继续下去,直至产生 目标状态为止。
初始 状态 2 3 1 8 4 7 6 5 2 3 1 8 4 7 6 5 1 2 3 8 4 7 6 5 目标状态 2 8 3 1 4 7 6 5
1
状态空间表示概念详释
初始状态
操 作
中间状态
操 作
目标状态
对一个问题的状态描述,必须确定3件事: ①该状态描述方式,特别是初始状态描述; ②操作符集合及其对状态描述的作用; ③目标状态的描述。 例如:数码难题。
1
例1:三数码难题(3 puzzle problem)
2 3
1 3 2 1 初始棋局
2 3 1 8 4 7 6 5 2
图论的基本概念
如果从节点ni到节点n 4)路径:某个节点序列 (n j存在有一条路经,则称 1,n2,…,nk),当 j=2, nj 是从 ni时,如果对于每一个 可达到的节点。 3,… ,k nj-1都有一个后继节点 寻找从一种状态变换成另一种状态的某个算符 nj存在,那么就把这个节点序列叫做从节点 n1至节点 序列问题等价于寻求图的某一路径问题。 nk的长度为 k的路径。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引子:问题求解
3X+5=14, X=?
60 ° 40° ?
引子:问题求解
引子
◦ 人能够采用试探的搜索方法求解很多问题 ◦ 人工智能也可以利用搜索来求解问题 在可能的解空间内寻找一个解
状态
2.1.1 问题状态描述
定义:状态(State)
◦ 为描述某类不同事物间的差别,引入一组最少
变量 q0,q1,…,qn 的有序集合,记作Q
起始节点 S L M F P O Q
N
A
B
C
2、深度优先搜索过程
S L M N A F P B O Q C M N A L F P B S O Q C
3、最大深度约束
◦ 优先扩展最深的节点,使得搜索沿着状态 空间某条单一的路径从起始节点向下进行 下去;只有当搜索到达一个没有后续的状 态时,它才考虑另一条替代的路径。 ◦ 为了防止搜索过程沿着无益的路径扩展下 去,往往给出一个节点扩展的最大深度约 束。超过这个深度约束时不再产生后继。
目标
11
2 8 3 1 6 4 7 5
12
8 3 2 1 4 7 6 5
13
2 8 3 7 1 4 6 5
14 2 8 1 4 3 7 6 5
3、性质
◦ 当问题有解时,一定能找到解 ◦ 方法与问题无关,具有通用性
◦ 效率较低
2.1 问题的状态和状态空间 2.2 盲目搜索方法 2.3 启发式搜索策略 2.4 通用图搜索算法 2.5 启发式图搜索算法
内容回顾
内容提要:
1.1 什么是人工智能 1.2 人工智能的发展历史 1.3 人工智能研究的方法 1.4 人工智能研究的课题
国际象棋人机大战
本讲内容
2.1 问题的状态和状态空间 2.2 盲目搜索方法 2.3 启发式搜索策略 2.4 通用图搜索算法 2.5 启发式图搜索算法
2.1 问题的状态和状态空间 2.2 盲目搜索方法 2.3 启发式搜索策略 2.4 通用图搜索算法 2.5 启发式图搜索算法
盲目搜索是一种无信息搜索(Uninformed Search)
◦ 深度优先搜索 ◦ 宽度优先搜索 ◦ 分支有界搜索 ◦ 迭代加深搜索
1、定义:
在此搜索中,首先扩展 最新产生的(即最深的)节 点,深度相等的节点可 以任意排列。这种盲目 搜索叫做深度优先搜索 (depth-first search)
2.1.2 状态空间法
基本思想
◦ 问题中的已知条件 状态空间中的初始状态 ◦ 要求到达的目标 状态空间中的目标状态 ◦ 其他可能发生的情况 状态空间中的任一状态 ◦ 在状态空间找一条路径,能够从初始状态出发 到达目标状态
2.1.2 状态空间法
基本方法:
(1)确定状态描述方式(初始状态、目标状态) (2)规定一组操作符 (3)决定一种搜索策略
解答 初始状态(0,0) 目标状态(2,?)
(0,3) (3,0) (3,3) (0,2) (2,0)
② (X,Y|Y<3)→(X,3) ⑦ (X,Y|X+Y≤4)→(X+Y,0) ② (X,Y|Y<3)→(X,3) ③ (X,Y|X>0)→(0,Y) ⑦ (X,Y|X+Y≤4)→(X+Y,0)
X Y
⑥ (X,Y|X+Y≥4)→(4,Y-4+X) (4,2)
2.1.2 状态空间法 [例2.2]农夫过河
◦ 一个农夫带一条狼、一只羊和一筐菜要从河的 左岸乘船到右岸,但受下列条件限制: 船太小,农夫每次只能带一样东西过河 没有农夫看管,则狼要吃羊,羊要吃菜 ◦ 设计一个过河方案,使得农夫、狼、羊、菜都 能不受损地过河。
1 2 3 8 4 7 6 5
目标
4、性质
◦ 一般不能保证找到最优解 ◦ 当深度限制不合理时,可能找不到解 ◦ 最坏情况时,搜索空间等同于穷举 ◦ 是一个通用的与问题无关的方法
1、定义:
如果搜索是以接近起始节点 的程度依次扩展节点的,那 么这种搜索就叫做宽度优先 搜索 (breadth-first search)
2.3.2 几种基本的搜索策略
◦ 爬山法(Hill-climbing) ◦ 最佳优先搜索(Best-first Search) …
爬山法(Hill-climbing)
步骤1:生成第一个可能的解,若是目标则停止; 步骤2:从当前可能的解出发,生成新的可能解集: 2.1 测试新的可能解集中的元素,若是解 则停止; 2.2 选择最接近解的作为最佳元素,其余 舍弃. 步骤3:从当前最佳元素为起点,转 步骤2.
M N A
起始节点 S L F P B O
Q C
2、举例
2 3 1 8 4 7 6 5
1 2 3 8 4 7 6 5
定义状态空间(综合数据库) 用图画表示 定义算符(忽略从后继到双亲的弧) A. 空格左移 B. 空格上移 C. 空格右移 D. 空格下移
求解过程
1 2 3 1 8 4 7 6 5 2 2 8 3 1 4 7 6 5 5 2 8 3 1 6 4 7 5 10 2 8 3 1 6 4 7 5 6 2 8 3 1 4 7 6 5 3 2 3 1 8 4 7 6 5 7 2 8 3 1 4 7 6 5 4 2 3 1 8 4 7 6 5 8 1 2 3 8 4 7 6 5 15 2 8 3 1 4 5 7 6 16 1 2 3 7 8 4 6 5 9 2 3 4 1 8 7 6 5 17 1 2 3 8 4 7 6 5
X Y
算符
⑦把 3 升的水壶中的水 ⑤把 4 升的水壶中的水 ⑧把 4 ⑥把 3 ④倒空 ①加满 ②加满 ③倒空 3 4升的水壶 升的水壶 全部倒进 4升水壶 倒进 3 ,直到加满 4升水壶 3 (X,Y|Y>0)→ (X,Y|X<4)→ (X,Y|Y<3)→ (X,Y|X>0)→ (X,0) (4,Y) (X,3) (0,Y) (X,Y|X+Y>3)→(X -(3-Y),3) (X,Y|X+Y>4)→(4,Y -(4-X)) (X,Y|X+Y≤4)→(X+Y,0) (X,Y|X+Y≤3)→(0,X+Y)
操作符的限制
◦ 农夫带菜过河 (F, W, S, V)→ (F, W, S, V)
– 被改变的状态变量X必须与 F同值(同为0或1) – 操作符不改变的状态变量中,必须满足 W ≠ S 以及 S ≠ V
2.1 问题的状态和状态空间 2.2 盲目搜索方法 2.3 启发式搜索策略 2.4 通用图搜索算法 2.5 启发式图搜索算法
2.4 通用图搜索算法
节点6待扩展
s
1
6
2 3
4
5
2.4 通用图搜索算法
扩展节点6
s
1
6
2 3
4
5
2.4 通用图搜索算法
节点1待扩展
s
1
6
2 3
4
5
2.4 通用图搜索算法
扩展节点1
s
1
6
2 3
4
5
OPEN
SHale Waihona Puke LS O F P Q C
CLOSED
O L M F N A
Q P
M
(1)把起始节点放到OPEN表中; (2)若OPEN表为空,则无解,失败退出; A (3)选择OPEN表上的第一个节点,记为节点n, 把n从OPEN表移出,加入到CLOSED表; (4)若n为一目标节点,则找到解,成功退出 (5)扩展节点n,将n的后继点加入到OPEN表首部,转(2)
最佳优先搜索(Best-first Search)
步骤1:生成第一个可能的解,若是目标则停止; 步骤2:从当前可能的解出发,生成新的可能解集: 2.1 测试新的可能解集中的元素,若是解 则停止; 2.2 将新生成的解集加入原可能解集. 步骤3:挑选最好元素为起点,转 步骤2.
2.1 问题的状态和状态空间 2.2 盲目搜索方法 2.3 启发式搜索策略 2.4 通用图搜索算法 2.5 启发式图搜索算法
6. 扩展节点n,同时生成不是n的祖先的那些后继节 点的集合M={mi}。把M的这些成员作为n的后继 节点添入图G中。 7. ADD(mj, OPEN),并设置mj指向n的指针, 其中 mj为OPEN和CLOSED中未出现过的子节点。对 于节点n后继节点集合 {mi}= {mj}∪{mk}∪{ml}的 其它节点,计算是否要修改mk (已在OPEN表中 的)、ml(已在CLOSED表中的)到 n的指针。 按照特定模式或启发式方式对OPEN表重新排序。 8. GO LOOP。
OPEN →未扩展节点表 CLOSED →已扩展节点表 此过程生成 搜索图、搜索树
否 对节点n进行扩展,生成的新节点放到 OPEN表中,提供返回节点n的指针 重排OPEN表
对表中的节点排序: 任意的:盲目搜索 用各种启发思想或其它准 则为依据:启发式搜索
搜索过程
1. 建立一个只含有起始节点S的搜索图G,把S放到 一个叫做OPEN的未扩展节点表中。 2. 建立一个叫做 CLOSED 的已扩展节点表,其初始 值为空表。 3. LOOP:若OPEN表是空表,则失败退出。 4. 选择OPEN表上的第一个节点,把它从OPEN表移 出并放进CLOSED表。称此节点为节点n。 5. 若 n 为一目标节点,则有解并成功退出,此解是 追踪图G中沿着指针从n到S这条路径而得到的。
2.3.1 启发式信息
◦ 盲目搜索的效率低,最好能够选择最有希望的 节点加以扩展 ◦ 在搜索问题中,有助于选择搜索方向的线索统 称为启发式(Heuristic)信息 ◦ 根据一些启发信息,选择最佳的一个或几个分 支往下搜索
2.3.1 启发式信息