状态空间表示法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

减少数据存储的一种方法是,给出某种实现状态转 换的走步策略,这样,我们只要给出了初始状态,策 略(也就是操作符F),就可以由初始状态或前一个状 态推出下一个状态,直到达到目标状态。而且这是使 用比较多的方法。 因此,要实现对某个问题的状态空间描述,需要: 确定状态描述方法,特别是初始状态的描述; 确定状态间联系的描述方法,较好的表示出不同状 态之间的联系,确定操作符集合及其对状态描述的作 用; 目标状态的描述。 我们来看一个例子
15 4 12 8 6 10 14
11 1 7 13
9 3 5 2
4 15 12 6 8 10 14
11 1 7 13
9 3 5 2
4 12 15 8 6 10 14
7
从旧状态产生新状态,需要注意不出现重复状态, 既要检验是否已经描述了该状态——看产生的新状态 是否与某个原已描述的状态匹配,如果已产生了,则 该状态从新状态中删除。 通过某种推理或搜索策略,我们总可以寻找到一条 路经,从初始状态到达目标状态。 在智能控制中,也就是我们总可以找到一种控制 策略,使得被控对象的行为(状态)能够按我们期望 的方式变化(如果系统是可控的),最终达到控制目 的。 应用状态空间法,需要寻找减少状态存储代价(时 间、空间)方法。 8
6
11 1 7 13
9 4 15 3 12 5 8 6 2 10 14
11 9 4 15 1 3 12 7 5 8 6 13 2 10 14
11 1 7 13
9 15 3 4 12 5 8 6 2 10 14
11 1 7 13
9 3 5 2
4 15 12 8 6 10 14
11 1 7 13
9 4 15 3 8 12 5 6 2 10 14
9
2 另一个状态空间法描述的例子 假设房间里有一个人,一个箱子和一筐苹果。苹果 吊在天花板下方,人直接摘不到,需要站在箱子上才能 摘到苹果。如图所示
C
苹果
人 A
箱 B
10
(1) 状态:选择为(W,X,Y,Z) W——人所处在的水平面上的位置 X ——人所处的高度位置,在 地 面,X=0 在箱子上,X=1 Y——箱子所在的水平面上的位置 Z——是否摘到苹果的状态,=0,未摘到 =1,摘到
11
(2) 句法规则 • 人走动规则——用goto(U) 描述的含义:人从原来水平位置走到新的水平 位置U,例如
(W , 0 , Y , 0 )
goto (U )
→ (U , 0 , Y , 0 )
状态为 (W,0,Y,Z) 表示人在水平位置W,处于地面, 箱子在位置Y,没摘到苹果。在goto(U)操作下,变成新 状态 (U,0,Y,Z)——人走到U,还是摘不到苹果,箱子在 位置Y,摘不到苹果。
13
对于与前面提到的命题,箱子原来处于B,人走到 B后,才能将箱子移动到苹果所处的位置C。将具体 的实例数据带入,得到
( A ,0 , B , Z )
goto ( B )
→ ( B ,0 , B , Z )
( B ,0 , B , Z )
pushbox (C ) (C
→ (C ,0, C , Z )
2.3
精确性知识的表示
1
2.3.1 知识的状态空间表示法 1. 状态与状态空间的概念 (1) 状态 ) 描述某类不同系统(事物)间的差别而引入的一组最 小变量q1,q2,...qn的有序集合。其矢量形式为
2
其矢量形式为
Q = [ q1, q 2,..., qn ]T
3
(2) 状态空间 ) 表示该系统或问题全部可能状态的集合。 状态空间可以用:初始状态集合S,操作符集合 F,目标状态集合G构成的三元状态(S,F,G) 来表 示 该三元状态(S,F,G)表示系统从某个初始状态 开始,每加一个算符,状态发生一次转变,直到到达 目标状态G。
C=3,B=2,A=2 (322)
28
(122) (322) 一园盘问题,需要移动一个圆盘
在此基础上,将AB移动到柱子3上——又是一个的 二圆盘问题。 而二圆盘问题,又可以分解为一圆盘问题解决。 先将A移动到1 (322) (321) 然后将B移动到3,放在C上面 (321) (331) 最后将A移动到3,放在B上面 (331) (333)
11 9 1 7 5 13 2
4 15 11 4 15 3 12 1 9 3 12 8 6 7 5 8 6 10 14 13 2 10 14
11 9 4 15 1 5 3 12 8 6 7 13 2 10 14
9 15 11 1 3 4 12 7 5 8 6 13 2 10 14
11 1 7 13
9 3 5 2
1 2 3
A B C
26
1
2
3
C=1,B=1,A=1 (111)
A B C
1 A B C
2
3
移动AB到柱子2上,是一 个移动二圆盘问题
A B
C=1,B=2,A=2 (122)
27
1
2
3
移动AB到柱子2上后
C
A B
C=1,B=2,A=2 (122)
3 移动C到柱子3上 是一个移动一园盘问题
1
2
C
A B
由于还没有摘到苹果,应该有Z=0,这里我们还可 以不关心它。
14
• 爬到箱子上或从箱子上下来 用climbox 表示,如果原来在箱子上,该操作表 示人从箱子上下来,否则表示人从地面爬到箱子上。 需要注意这时人和箱子处于同一水平位置。例如
(W , 0 , W , Z )
c lim box
→ ( W ,1 , W , Z )
16
这样,我们就有了状态集合{ (A,0,B,0), (B,0,B,0), (C,0,C,0), (C,1,C,0), (C,1,C,1), (C,0,C,1) } 操作集合F: { goto(), pushbox(), climbox, grasp } 从初始状态(A,0,B,0),每经过一个操作,都转换 到下一个特定状态 ——从前以状态和操作符,可以确定下一个状态, 这样就不必存储每一个可能的状态,可以节省存储空 间和搜索时间。
20
3 状态图 状态图表示方法,就是用图论的方法来描述状态空 间的各个状态以及它们之间的相互关系。 在前面给出了一个图,它也可以叫做状态图。但是 这个图太复杂。我们用节点来表示上图中的各个实际 状态,就构成状态图。 状态图是由节点,有向弧线等构成的图。
21
实际上,就是将前面的图中的状态,用一个节点来表示
25
1 梵塔问题 这个问题是:有3根柱子1,2,3和大小不同的三 个圆盘A,B,C,每个圆盘的中心有一个孔,可以 让柱子穿过,从而他们可以堆叠在柱子上。最初,全 部圆盘都堆在柱子1上,最大的圆盘C在最下面,最 小的圆盘A在最上面。现要求将所有圆盘都移到柱子 3上,同时有限制条件为:每次只能移动最上面的一 个圆盘放到另一个柱子上,任何时候都不允许将大的 圆盘对方到小的圆盘之上。
30
条件
二 圆 盘 问 题 (111) → (122) (122) → (322) (111) → (113) (113) → (123) (123) → (122) 一 圆 盘 问 题 (322) → (321) (321) →(331) (331) → (333) (322) → (333)
初始条件
到苹果 的状态 标志 箱子的位置坐标
19
人的位置坐标
是否在 箱子上 的状态 标志
现假设有障碍物存在,我们的运动必须沿着特定的路 径进行:A D,D E, E F, F B, B F,F G,G C, 再爬上去苹果。 又该如何描述?
G A人 C E D B箱 F
苹果
如果需要寻找苹果的位置,又该如何描述 如果不知道障碍物的位置,需要寻找并避开障碍,又该如何描述?
4
例如
假设初始状态为: 11 1 7 13 9 3 5 2 8 10 4 13 12 6 14
我们要求的目标状态为: 1 5 9 13 2 6 10 14 3 7 11 15
5
ห้องสมุดไป่ตู้
4 8 12
如何把初始状抬转换为目标状态 ——选择移动一个棋子。 每移动一次棋子,就会有一个新的状态,所有可能 的状态一起,就构成了该问题的状态空间。 解决该问题,就是尝试各种不同的走步,直到寻找 到达到目的状态的路径,到达目标状态为止。 从初始状态开始,尝试不同的走步,就构成了一个 有不同状态组成的图。
22
11 1 7 13
9 4 15 3 12 5 8 6 2 10 14
11 9 4 15 1 3 12 7 5 8 6 13 2 10 14
11 1 7 13
9 15 3 4 12 5 8 6 2 10 14
11 1 7 13
9 3 5 2
4 15 12 8 6 10 14
11 1 7 13
9 4 15 3 8 12 5 6 2 10 14
(111) → (333)
31
(111)→(113) 含义就是执行操作,将A移动到 柱子3上。
1 2 3 移动A到柱子3上 B C A
32
(113)→(123) 含义就是执行操作,将柱子1上 的圆盘B移动到柱子2上。
1 2 3 移动B到柱子2上
A C B
33
(1)将三圆盘问题分解为第二级的二圆盘问题,其 中包含一个一圆盘问题。只要解决了第二级的三个问 题,原来的问题就获得了解决。 (2)二圆盘问题就是将两个圆盘按规定的堆放顺序 堆叠在某一个柱子上。 二圆盘问题又可以再分解为第三级的一圆盘问题—— 将一个圆盘从原来的柱子上移动到另一个柱子上。这 个问题是简单的。 (3)只要解决了第三级的全部问题,则第二级的问 题也就得到了解决。 (4)只要解决了第二级的全部问题,最原始的问题 也就得到了解决。
人从箱子上下来的描述
(W ,1, W , Z )
c lim box
→ (W , 0 , W , Z )
15
grasp——摘取苹果。
( C ,1, C , 0 )
grasp
→ ( C ,1, C ,1)
(C,1,C,0)表示人、箱子的水平位置都处于 C的位置,即苹果所在的位置。人已站在箱子上面, 可以摘到苹果但还没有摘。 (C,1,C,1)则表示已摘到苹果。
12
• 推箱子 pushbox (V) 它的作用是将箱子从原始水平位置推到新位置V。 例如:
(W , 0 , W , Z )
pushbox (V )
→ (V , 0 , V , Z )
要推箱子,我们认为人和箱子在水平面同一位置W, 人在地面故X=0,在操作pushbox(V)的作用下,人将箱 子移动到位置V。当然这时人和箱子还是在水平面同一 位置,人站在地面上,故新状态为(V,0,V,Z),Z表示 现在还不关心Z的取值,当然一般认为现在Z=0。
17
(3) 该命题的状态空间描述:
goto(B)
(A,0,B,0)
pushbox(C) (B,0,B,0) (C,0,C,0)
climbox
(C,1,C,0)
grasp (C,1,C,1)
climbox
(C,0,C,1)
如果人的初始位置不在A,他应该从所在位置走到箱 子所在位置…… 18
这里我们用一个符号来表示人、箱子在平面生的位 置,更一般的情况,使用平面坐标(x,y)来表示平面 上的位置。 对于一个固定格式的状态数据,用平面坐标描述平 面位置方法是相似的,只是在前面的数据结构,将表 示平面未知的符号用两个坐标值替换。 例如 (100,200, 0, 500,1000,0) 是否拿
15 4 12 8 6 10 14
11 1 7 13
9 3 5 2
4 15 12 6 8 10 14
11 1 7 13
9 3 5 2
4 12 15 8 6 10 14
23
状态图表示,主要是为了我们分析问题的方便,在 计算机内部,我们还是用一个数据结构来表示。
24
2.3. 2 问题的归约描述方法
所谓问题的归约描述方法,实际上就是把一个复 杂问题,分解为一组较简单的问题来描述和解决的方 法。只要解决了这些相对简单的问题,就可以解决原 来复杂的问题。 我们还是通过一个例子来讨论。
这些符号的含义
29
2 问题的归约解决方法
首先我们约定问题的描述方法。 我们用一个数据结构来表示三个圆盘在柱子上的 位置。 格式为:(CBA) 含义为:每个位置的字母的取值,就表示对应圆 盘所在的柱子的编号。例如(1 2 3)表示圆盘C在 柱子1上,圆盘B在柱子2上,圆盘A在柱子3上。 这样,A、B、C的取值只可能是1,2,3三个数 之一。 对于以上问题,我们用归约法描述,可以表示为
11 9 1 7 5 13 2
4 15 11 4 15 3 12 1 9 3 12 8 6 7 5 8 6 10 14 13 2 10 14
11 9 4 15 1 5 3 12 8 6 7 13 2 10 14
9 15 11 1 3 4 12 7 5 8 6 13 2 10 14
11 1 7 13
9 3 5 2
相关文档
最新文档