状态空间搜索

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机与信息学院 刘勇
最优化理论与应用
如何设计可采纳的启发式函数?
❖根据问题特征设计h,例如八数码问题
➢ h1位置不一致的棋子数目 ➢ h1 (n)=1+1+0+1+1+0+0+0=4 ➢ h2所有棋子到其目标位置的距离和 ➢ h2 (n)=1+2+0+1+1+0+0+0=5
283
123
结点n 1 6 4 目标 8 4
计算机与信息学院 刘勇
最优化理论与应用
八数码问题
令g *(n)为初始结点到结点n的深度 令h * (n)为位置不正确的数字个数
283 164 75
123 84 765
h*(n) 1
123 84
765
计算机与信息学院 刘勇
最优化理论与应用
1+5 283 164 75
0+4 2 8 3
164
7
5
left
75
765
计算机与信息学院 刘勇
最优化理论与应用
如何设计可采纳的启发式函数?
❖组合启发式函数:如果已有h1, h2 ,······, hm等可 采纳启发式函数,那么:
h = max(h1, h2 ,······, hm)
❖ 从但经 不验 知中 道学 具习 体:的已关知系某,些那特么征可以x1与定x义2和h有关, h=c1x1 +c2x2
可把状态空间记为三元状态(S,F,G)。
计算机与信息学院 刘勇
最优化理论与应用
2、状态空间的搜索策略
计算机与信息学院 刘勇
最优化理论与应用
3. 状态空间的一般搜索过程
➢ 对一个确定的具体问题来说,与解题有关的状态空 间往往只是整个状态空间的一部分,因此只要能生成并 存储这部分状态空间就可求得问题的解。 ➢ 人工智能采用的基本思想:首先把问题的初始状态( 即初始节点)作为当前状态,选择适用的算符对其进行 操作,生成一组子状态(或称后继状态、后继节点、于 节点),然后检查目标状态是否在其中出现。若出现, 则搜索成功,找到了问题的解;若不出现,则按某种搜 索策略从已生成的状态中再选一个状态作为当前状态。 重复上述过程,直到目标状态出现或者不再有可供操作 的状态及算符时为止。
f *(n) g *(n) h*(n)
f *(n) f (n)
S
g *(n)
n
h * (n)
G
计算机与信息学院 刘勇
最优化理论与应用
启发式搜索
H1 局部择优搜索
局部择优搜索是一种启发式搜索方法,是对深 度优先搜索方法的一种改进。其基本思想是:当一 个节点被扩展以后,按f(x)对每一个子节点计算估价 值,并选择最小者作为下一个要考察的节点,由于 它每次都只是在子节点的范围内选择下一下要考察 的节点,范围比较狭窄,所以称为局部择优搜索, 下面给出它的搜索过程。
B2 深度优先搜索(depth-first search)
❖A B C D E F G H I
A
新扩展出的节 点先被考察
B CDE
计算机与信息学院 刘勇
F GI H
最优化理论与应用
深度优先搜索算法
1. 初始化open表、close表为空,定义S为初始状态 结点
2. 将S 放入open表中 3. 如果open表为空,则搜索失败,否则从open表中
计算机与信息学院 刘勇
最优化理论与应用
2、搜索的定义和分类?
定义:根据问题的实际情况不断寻找可利用的知识, 从而构造一条代价较少的推理路线,使问题得到圆满 解决的过程称为搜索。 分类:盲目搜索和启发式搜索。
➢ 盲目搜索是按预定的控制策略进行搜索,在搜索过程中获 得的中间信息不用来改进控制策略。效率不高,不便于复杂问 题的求解。 ➢ 启发式搜索是在搜索中加入了与问题有关的启发性信息, 用以指导搜索朝着最有希望的方向前进,加速问题的求解过程 并找到最优解。
在与或树的搜索过程中将反复使用这两个过 程,直到初始节点(即原始问题)被标示为可解或不 可解节点为止。
计算机与信息学院 刘勇
最优化理论与应用
计算机与信息学院 刘勇
最优化理论与应用
通过学习调整c1与c2。 ❖ ABSOLVER程序能自动生成启发式。魔方的第
一个有用的启发式就是它找到的
计算机与信息学院 刘勇
最优化理论与应用
三. 与或树搜索法
由可解子节点来确定父节点、祖父节点等为 可解节点的过程称为可解标示过程;由不可解子 节点来确定其父节点、祖父节点等为不可解节点 的过程称为不可解标示过程。
❖ 关键技术:搜索
计算机与信息学院 刘勇
最优化理论与应用
问题实例——八数码问题
❖ 状态:8个棋子在3×3 的棋盘上的任意一个 摆放
❖ 初始状态:右上图 ❖ 算子(后继函数):
left、right、up、down ❖ 目标函数:右下图 ❖ 路径代价:1
计算机与信息学院 刘勇
127 583 46
初始状态
❖ 根据与问题相关的知识问 题,引入启发式信息。
❖ 定义:f(n)为经过结点n的 且从起点到目标的最短路 径函数。 f(n)的值越小,表 示路径越短
❖ 策略:从初始结点S出发, 选择f(n)最小的子结点
S
BCDE FGH
…… G
计算机与信息学院 刘勇
最优化理论与应用
引入f(n)的搜索过程
S 434
取出第一个结点N,将N放入到close表中。 4. 如果N是目标结点,搜索成功,返回N 5. 对N的每一个子结点 i,如果open表和close表中
都没有结点i,那么将结点i其追加到open表的最 后一个元素之后 6. goto 3
计算机与信息学院 刘勇
最优化理论与应用
广度优先搜索
open
close
最优化理论与应用
B1 广度优先搜索
❖breadth-first search,BFS
❖A B F C D E G I
A
先扩展出的节 点先被考察
B
F
CDE G I H
计算机与信息学院 刘勇
最优化理论与应用
广度优先搜索算法
1. 初始化open表、close表为空,定义S为初始状态 结点
2. 将S放入到open表中 3. 如果open表为空,则搜索失败,否则从open表中
43 4 44 4 G
S
f(n)
… n…
n0
… n1
nk
G
计算机与信息学院 刘勇
最优化理论与应用
引入f(n)的搜索过程
S 0,3
S
g(n)
1,4
1,3
1,4
n
2,2
2,1
2,2
h(x)
G
f (n) g(n) h(n)
3,1
3,1
4,1
G 3,0
计算机与信息学院 刘勇
最优化理论与应用
f(n)=?
up
1+3
283
1
4
765
right
1+5 283 164 75
3+3 83
214
765
2+3
left
up
2+3
right
283
2
3
14
184
765
765
up
down
3+4
283
left
right
3+2
23
714
184
65
765
down
4+1 123
84
765
5+0
right 5+1down
123
123
最优化理论与应用
常用搜索策略
➢ 基础知识 ➢ 状态空间搜索法 ➢ 与或树搜索法 ➢ 博弈树搜索法 ➢ 随机搜索-遗传算法 ➢ 分析与讨论
计算机与信息学院 刘勇
最优化理论与应用
一. 基础知识
1、为何要搜索?
➢ 人工智能所要解决的问题大部分是结构不良或非 结构化的问题,对这样的问题一般不存在成熟的算法 可供利用,而只能是利用已有的知识一步丛地摸索着 前进。如何确定推理路线,使其付出的代价尽可能的 少,而问题又能得到较好的解决? ➢ 在人工智能中,即使对结构性能较好,理论上有 算法可依的问题,由于问题本身的复杂性以及计算机 在时间、空间上的局限性,也需要通过搜索来求解。
计算机与信息学院 刘勇
最优化论与应用
3、基于搜索的问题求解模式
❖ 问题的形式化:将环境状态简化为适于问题求解 的状态,用状态空间图描述问题。
➢ 给出初始状态 ➢ 设计算子:对动作建模 ➢ 目标函数:目标的形式化 ➢ 给出路径代价函数
❖ 求解过程:在状态空间图中找到一条从初始结点
到达目标的路径。这条路径上的所有边对应算子 组成的序列,就是解决问题的一个方案
1A
2 B,F
A
3 F,C,D,E A,B
4 C,D,E,G,I A,B,F
5 D,E,G,I A,B,F,C
6 E,G,I
A,B,F,C,D
7 G,I
A,B,F,C,D,E
8 I,H
A,B,F,C,D,E,G
9H
A,B,F,C,D,E,G,I
A
B
F
CDE G I H
计算机与信息学院 刘勇
最优化理论与应用
计算机与信息学院 刘勇
最优化理论与应用
H2 全局择优搜索
每当要选择一个节点进行考察时,局部择优搜 索只是从刚生成的子点节中进行选择,选择的范围 比较狭窄,因而又提出了全局择优搜索方法。这种 方法搜索时,每次总是从0PEN表的全体节点中选择 一个估价值最小的节点。
f(x)=g(x)则它就成为代价树的广度优先搜索 f(x)=d(x) 它就成为广度优先搜索
取出第一个结点N,将N放入close表中 4. 如果N是目标结点,搜索成功,返回N 5. 对N的每一个子结点 i,如果open表和close表中
都没有结点i,那么将结点i其插入到open表的第 一个元素之前 6. goto 3
计算机与信息学院 刘勇
最优化理论与应用
深度优先搜索
open close
1A
计算机与信息学院 刘勇
最优化理论与应用
A*算法
1. 初始化open表、close表为空,定义s为初始状态结点。 2. 计算f*(s) := g*(s) + h*(s)。将s加入到open表中。 3. 如果open表为空,则搜索失败退出, 4. 否则从open表中取出第一个结点n,将n插入到close表中 5. 如果n是目标结点,搜索成功,返回问题的解 6. 应用每一个可用的算子Opi ,扩展n生成子结点 mi,
计算机与信息学院 刘勇
最优化理论与应用
4. 状态空间搜索数据结构表示
计算机与信息学院 刘勇
最优化理论与应用
5. 状态空间搜索一般过程
计算机与信息学院 刘勇
最优化理论与应用
计算机与信息学院 刘勇
最优化理论与应用
6. 常用搜索方法 (盲目Blindfold+启发式Heuristic)
计算机与信息学院 刘勇
❖f(n) =g(n) + h(n)
➢ g(n)表示起始结点到n的最小代价 路径的代价
➢ h(n)表示n到目标结点的最小代价 路径的代价
❖g=? h=?
S
g(n)
n
h(n)
G
计算机与信息学院 刘勇
最优化理论与应用
f(n)≈f*(n)
g *(n)是初始结点到结点n的最小代价路径的代价估计 h *(n)是结点n到目标最小代价的代价估计 f *(n)是经过结点n的最小代价路径的代价估计
123 456 78
目标状态
最优化理论与应用
127 583 46
right
up
left
127 583 46
127 53 486
127 583
46
up left
right up down left right up
……
计算机与信息学院 刘勇
最优化理论与应用
二. 状态搜索法 1、状态(State)的基本概念
2 B,F
A
3 C,D,E,F A,B
A
4 D,E,F 5 E,F
A,B,C A,B,C,D
B
F
6F
A,B,C,D,E
CDE G I
7 G,I
A,B,C,D,E,F
H
8 H,I
A,B,C,D,E,F,G
9I
A,B,C,D,E,F,G,H
10
A,B,C,D,E,F,G,H,I
计算机与信息学院 刘勇
最优化理论与应用
8
4
784
765
65
2+4 283 14 765
3+4 23 184 765
计算机与信息学院 刘勇
最优化理论与应用
A*算法
❖定义g*(n)为已发现的初始结点到结点n 所有路径中的最小代价路径的代价。
❖定义h*(n)为结点n到目标结点的最小代价估 计,也称启发式函数。
❖f*(n) =g*(n)+ h*(n) ❖利用f*加速搜索的算法 ❖使用Open表、Close表
a) 计算g*(mi)=g*(n)+ C*(n, mi); f*=g*(mi)+h*(mi); b) 如果m已经存在于open表中或者在close表中,且先前计
算op的en表g*或(mci)l小ose于表等中于取当出前与的mgi相*(m同i)的,子那结么点gomtoi’5。否则从 c) 令mi := mi’ ,将mi的父指针指向n d) 将结点mi插入到open表,然后将open表按f值排序。 7. goto 3
B3 迭代加深
结合广度优先和深度优先的优点 算法: ❖ 令d = 1 ❖ 最大搜索深度 d 的深度优先搜索 ❖ 如果找到目标结点,那么结束搜索,否则
d=d+1, goto 2
计算机与信息学院 刘勇
最优化理论与应用
迭代加深搜索过程
计算机与信息学院 刘勇
最优化理论与应用
启发式信息加速搜索
❖ 盲目搜索的缺陷
相关文档
最新文档