当前位置:文档之家› 状态空间法

状态空间法


S入OPEN 标出f(S)
启发式有序搜索算法
Y
OPEN空?
失败,退出
N 计算f(ni),i=1,2.. MIN[f(ni)入CLOSED
Y ni=T?
N
成功,退出
Y f(nij)< f’(nij-1)?
N
f(nij)取代 f’(nij-1) 指针改指j
扩 展 ni,生 成 全 部 后 继 节点。计算每个后继
隐式图:已知无限集合{si} 及后裔算符L,则 {si}和L规定的图
3)状态空间求解举例
例 2-3 推销员旅行问题。一个推销员计划 作一次旅行,必须访问图2-4所示的每个城 市。从城市A出发,访问每一个城市一次, 且最多一次,并返回城市A,求最短距离路 线。
B
10
77
13
E
A
6C
9
5
6
10
D
图2 – 4 推销员旅行问题地图
节点f(nij)
Y f(nij)< f’(nij-1)?
N
f(nij)取代 f’(nij-1) nij移回OPEN
Y
nij=T? NY
nij,加入OPEN,从nj加一指向节点nij的 Y 指针。计算f(nij),按 f(n)小-〉大排序
nij在OPEN?
nij在CLOSED? N
N
例 八数码难题。 估价函数:f(n)=d(n)+w(n)
图2-9 猴子和香蕉状态空间图
人工智能经典问题:
1 设有三个传教士和三个野人来到河边,打 算乘一只船从河右岸渡到河左岸去。该船 的最大负荷能力为两人。在任何时候,如 果野人人数超过传教士人数,野人就会把 传教士吃掉。他们怎样才能用这条船安全 地把所有人都渡过河去?
2 把八个皇后摆在一个标准的国际象棋棋盘 上,使得每行、每列以及每个对角线上都 只包含不多于一个皇后。画出部分状态空 间图,写出算符规则。
八数码算符:EL-- 空格左移 ER--空格右移 EU--空格上移 ED--空格下移
约 束:E1,4,6 -- 禁止EL E1,2,3 -- 禁止EU E3,5,8 -- 禁止ER E6,7,8 -- 禁止ED
例2-2 代数式简化问题。
(AB+CD)/BC
A/C+D/B
状态描述:二元树法
非 终 端:节点算术运算符号+、-、*、/
证明:
(1)每当一个目标节点可达时,算法终止。
结论1:A*对有限图总是终止的
结论1:A*对无限图也是终止的
证明:反证法 ,假设A*不终止
设:d*(n) : A*产生的搜索S树中从S到任一节点n
的搜索隐含图中最短路经长度
e :图中所有弧的最小长度 g(n) g*(n) d*(n) e ∵ h(n) 0
状态描述:目前为止访问过的城市列表(A…) 初始状态:(A) 目标状态: (A ……A)
算符:下一步走向的城市 (a)(b)(c)(d)(e) 约束:每个城市只能走过一次,A除外
(AB)
(A)
初始节点
7
6 (AC) 10
13
(AD)
(ACD) 5
(AE)
6 (ACDE) (ACDEB)
10
(ACDEBA)
最优化问题:寻找遵循某种规则的最优路径 例如,八数码难题求解中使用的算符最少, 走步最少(最优解搜索问题)
状态描述三原则:
(1)状态描述方式选择,尤其是初始状态 (2)算符集合及其对状态描述的作用 (3)目标状态描述特性
2)图示法(问题求解的抽象描述) (1)图论的几个概念
图:节点的集合,包括有限节点或无限节点。 有向图:节点之间用有向弧线联结的图。 节点:
归纳法假设:A1扩展了A2搜索树中深度 k 的 所有节点
证明:A2搜索树中由A2扩展的深度k+1的任意节 点n也可由A1扩展
根据假设,A2搜索树中n的任一父辈节点都可由A1
S
n f*(n)=g*(n)+h*(n)
T
f(n) = g(n) + h(n) : f*(n)的一个估计 f*(S) = h*(S) :从起始节点到目标节点的最佳路径 .
OPEN
A*的可纳性
CLOSED
可纳性:对于任意图G,如果存在从S到T
的路径,那么,终搜止索:找算到目法标 总能终止在一条 从S到T的最佳路径上用完,OP则EN此节点搜索算法可 纳
四种状态:(W, x, Y, z)
算符集合:
① goto(U) (a,0,b,0) goto(U)
(U,0,b,0)
② pushbox(V) (b,0,b,0) pushbox(V) (V,0,V,0)
③ climbbox (V,0,V,0) climbbox (V,1,V,0)
④ grasp
(c,1,c,0) grasp
根据结论1,终止前OPEN表上存在一个节 点n’,且满足:
f(n’)<f*(S)<f(t) 因此,这一步A*将选取n’而不是t进行扩展, 与假设A*已终止矛盾。 得证。
结论2:A*算法可纳
A*算法的最优性
h(n) = 0(无启发信息)是h*(n)的下界 设两种A*算法A1,A2有下式:
f1(n) = g1(n) + h1(n) f2(n) = g2(n) + h2(n)
j2
优化问题:寻求图中最小费用路径 (2) 问题求解的图描述 初始节点S与目标节点集合{ti}中任一节点
之间的路径。 初始节点集合{si}中任一节点与目标节点T
之间的路径。 初始节点集合{si}中任一节点与目标节点
集合{ti}中任一节点之间的路径。 (3) 图分类
显式图:各节点及其费用的弧线可以用图表 或表格的形式明确给出
Allen Newell (1927-
1992 ) 1975年第一 届图灵奖获得者,LT 发明者之一,美国人
工智能学会AAAI的发起 人之一
LT 逻辑理论家 ILP 归纳逻辑程序设计
2.1.1 状态空间法 1)问题描述
状 态:问题求解中每一步问题状况的数 据结构 状态描述:符号、字符串、向量、二维数 组、树、表等数据结构表示的问题状态 例 2-1 八数码难题
状态i ni
祖先
算符
nj 后裔 状态j
图 2 - 3 节点定义
路n径ij :,…存,n在ik)某,个令节j=点2,序3,…列N…[n,k],=(对n每i1,一ni个2,…ni,j-1, 如果都存在后裔nij,则称序列N[n]为长度 为k的路径
可达节点:如果两节点之间存在路径,则后 裔是祖先的可达节点
765
5
123 84
765
123 58 4
765
f(S)=d(n)+w(n)
6
283 164 75
6 283 14 765
7
7
23
184
765
7
23 18 4 76 5
A*算法 证明 h*(n)= k (n,T) :从节点n到目标节点最小路径费用 g*(n) = k (S,n):从起始节点S到节点n最小路径费用
得设f:(nAS)*=终f[*n(止s0,)n前1,,…令,nn’t是]是OSP到nE2NTn的表0 …一上n…1 条这.n’n最个3 佳序路列径的一
个节点
nk
存在: f(n’) = g(n’) + h(n’)
∵ n’在最佳路径上, ∴ g(n’) = g*(n’)
f(n’) = g*(n’) + h(n’) 又∵ h(n’) h*(n’)
7
目标节点
图 2 - 5 推销员旅行问题搜索树
例2-2.猴子和香蕉问题
猴子
香蕉
箱子
a
c
b
图 2-8 猴子和香蕉问题
状态描述模式:用变量描述状态集合的表达式
猴子状态:
水平走动 w
上下箱子 x[0,1],( 1=箱上,0 =箱下)
摘取香蕉 z[0,1],(1= 拿到,0 = 未拿到)。
箱子状态:水平移动Y
弧线费用:弧线表示的算符计算的费用
c(ni, nj) 路径费用:路径上所有弧线费用之和
优化问题:寻求图中最小费用路径
ni2 ni1
nik
ni3
C(ni4, ni5)
路径:k=10 ,k=6 可达节点:j=2,3,。。。,k
路径费用:
11
L1
c(ni( j1) , nij )
j2
7
L1
c(ni( j 1) , nij )
终端节点:变量、常量
树图:
B
C
A
CD
B
A B CD
图2-2 代数简化树图
算符:代数规则: 分配律、结合律、。。。 字符串法: ABCDBC ACDB
前缀(只作用于两个运算数) 目标状态
单一目标状态 多目标状态:某一条件下产生的子状态集
合。例如,象棋、围棋的终局
八数码难题目标状态:最上面一行不存在编 号大于5的棋子
∴ f(n’) g*(n’) + h*(n’)=f*(n’)
在最佳路径上的任一节点费用 f(n’) f*(S)
说明即使在A*还没有终止的OPEN表上,节 点的最小f值也不会变为无界。因此,对于 无限图来说,A*必须终止。
结论1:只要存在一条从S到某个目标节点 的路径,则A*必须终止。
推论1:OPEN表上任一具有f(n)f*(S)的节 点n,最终都将被A*选为扩展节点。
图2-12 宽度优先搜索 图2-13 深度优先搜索 盲目搜索: 宽度优先搜索,深度优先搜索 启发式搜索:利用启发式信息进行搜索的过程
启发式信息:用来加速搜索的特别信息
相关主题