知识表示方法-状态空间法PPT

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

初始状态是(a, 0, b, 0),目标状态是(c, 1, c, 1)
操作符:
①猴子当前位置W走到水平位置U:goto(U):
(W, 0 , Y, z)(U, 0 , Y, z)
注:猴子必须不在箱子上
② 猴 子 将 箱 子 从 W 位 置 推 到 水 平 位 置 V: pushbox(V): (W, 0, W, z) (V, 0, V, z) 注:猴子与箱子必须在同一位置
11 1 7 13 9 3 5 2 8 10 4 15 12 6 14 1 2 3 4
5
9 13
6
10 14
7
11 15
8
12
初始状态:左图 目标状态:右图
操作符集合F=[空格的左移、上移、右移、下移]
可能的求解过程
注:在程序和图示求解过程中,需要规定好操作符 的使用顺序
要完成某一个具体问题的状态描述,必须完 成三项工作: ①如何描述状态,特别是初始状态
部分状态空间图
目标状态:(1,2,3,8,0,4,5,6,7)
注意:
事先规定操作符的前后顺序,便于编程 不要生成已有的状态(节点),防止进入死循环
例2:迷宫问题
给图上加一个坐标系,定义每一个分叉路口 为一个状态。
目标状态为(4,4) 操作符为人的上、
下、左、右走动
初始状态为(1,1)
部分状态空间图
操作的表示: 用符号Pij表示从左岸到右岸的运人操作 用符号Qij表示从右岸到左岸的操作 其中:
有向图和无向图:
无向图:一对节点可能互为后裔,边用线段
来表示
有向图:一对节点用弧线连接起来,并且从一
个节点指向另一个节点 父辈节点或祖先n i
后继节点或后裔nj
对于某一个节点序列 (ni0 , ni2 , … nij , …, nik) 如果每一个节点 nij-1 都有一个 后继节点 nij 存在,则将这一
s.t. 2(xy + yz + xz)=150
利用最优化技术中的算法,可以得到结果: x = y = z = 5.0
解释:长、宽、高都等于5米时,体积最大
说明:在计算数学的课程中,主要关心求解的
具体算法
在人工智能中,重点关注两个方面的内容:
①问题的表示(知识的表示):即要找到问题的一
种合适的表示方法
nj
(不相邻的)两个节点 间路径的代价等于连接 该路径的各个节点的所
n0 c(n0,n1)
有弧线的代价之和
c(nk-1,nk)
c(n , n
i 0 i
k 1
i 1
)
nk
引入代价的概念后,我们的问题可能是:
寻找初始节点到目标节点之间的代价最小的
路径 对应的原始问题:寻找从初始状态到目标状 态的操作符代价之和最小的操作符序列
利用图论的技术,我们要解决两个问题: 第一、找出初始节点到目标节点的一条路径。对应 于寻找初始状态到目标状态的操作符序列 第二、找出初始节点到目标节点的一条代价最小的
路径。对应于寻找将初始状态变换到目标状态所用
操作符代价之和最小的操作符序列
3. 例子
例1:八数码问题 八数码的任何一种摆法是一个状态,状态总数
这32种状态并非全有意义,除去不合法状态和修道 士被野人吃掉的状态,有意义的状态只有16种: S0=(3, 3, 1) S4=(1, 1, 1) S1=(3, 2, 1) S5=(0, 3, 1) S2=(3, 1, 1) S6=(0, 2, 1) S3=(2, 2, 1) S7=(0, 1, 1)
知识表示方法
--状态空间法
用计算机技术解决实际问题的一般思路:
实际
问题
结果的解释
问题表达
知识表达
数学建模
求解的方法
或者算法
例:求侧面积为150平方米的体积最大的长方体? y x 侧面积为:2(xy + yz + xz) z 体积为:xyz 数学模型
设长、宽、高分别为 x, y, z
max xyz
果走不通,则往后退,不停地试、试、试,直到
成功
1
5
2
7
4
8
1
4
2
5
3
6
3
6
7
8
类似地,在人工智能中,一种最基本的求解方法就
是试探搜索法,即,通过在某个可能的解空间(例 如,所有可能的走法)中寻找一个解。
这种基于解空间的问题表示和求解方法就是
状态空间法,其基础是状态和算符(算子)。
1. 问题状态描述
8
1,
2, 3, 4, 7, 8, 6, 5, 0
1 4 6
矩阵形式的状态表示:
算符(操作符):使问题从一个状态 变换到另一状态的手段。 例如:走步、规则、数学算子、运算 符号等等。
例:描述在坐的同学(续) 状态变量可以有: 年级 班级 姓名 性别 学号 ……
操作符:
入学 正常升级 毕业
为9!。用一个长度为9的一维数组来描述状态:
(q1, q2, …,q9) 其中,qi 取0, 1, …, 8个数,0表示空格,且取值互 不相同。 算符是空格的上、下、左、右移动
如果记空格的位置为P,这时空格的移动规则是: 1 2 3 1 2 3 8 5 6 7 4 0 P
1 2 3 4 5 6 7 8 9
解:首先选取描述问题状态的方法。在这个问题 中,需要考虑两岸的修道士人数和野人数,还需要考 虑船在左岸还是在右岸。从而可用一个三元组来表示 状态 S=(m, c, b) 其中,m表示左岸的修道士人数,c表示左岸的野人数, b表示左岸的船数。 右岸的状态可由下式确定: 右岸修道士数 m'=3-m 右岸野人数 c'=3-c 右岸船数 b'=1-b 在这种表示方式下,m和c都可取0、1、2、3中之 一,b可取0和1中之一。因此,共有4×4×2=32种状 态。
S8=(3, 2, 0)
S12=(1, 1,0)
S9=(3, 1, 0) S10=(3, 0, 0) S11=(2, 2, 0)
S13=(0, 2, 0) S14=(0, 1, 0) S15=(0, 0, 0)
有了这些状态,还需要考虑可进行的操作。
操作是指用船把修道士或野人从河的左岸运到右 岸,或从河的右岸运到左岸。
ni0
序列称为从节点 ni0 到 nik 的
长度为 k 的路径。
nik
ni
祖先
如果从节点 ni 到 nj 存在 一条路径,则称节点 nj 是
从节点 ni 可到达的节点,
或者称 nj 是 ni 的后裔节 点、称 ni 是 nj 的祖先。
后裔
nj
当用有向图来表示状态空间法时,对应关系:
图中的一个节点对应于某一个状态
11 1 7 13
9 4 3 5 8 2 10
15 12 6 14
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12
2. 状态图示法
状态空间法(求解过程)的表示方法:用图来表 示(借助于图论中某些技术)
图是由节点(不一定是有限个的节点)的集合
构成的
注意:在图论中,图的定义中还包括边的集合
图中的一个有向弧对应于某一个算符
注:有向弧的旁边可以标以具体算符
状态
节点
操作符
有向弧
问题:寻找从初始状态到目标 状态的某个操作符序列
转 化 为
问题:寻找图中初始节点(对应初
始状态)到目标节点(对应于目标
状态)的一条路径
在某些情况下,每个操作符作用、成本是不 一样的,需要引入代价的概念
ni
c (ni , nj) 表示源自文库节点 ni 指向节点 nj (相邻)的 那一段弧的代价
8 7
5 4
6
P-3
表示位置
P-1
P
P+1
P+3
空格移动规则
代码 规则 前提条件 应用结果
1 2 3
左移 上移 右移
P≠1,4,7 P≠1,2,3 P≠3,6,9
P 位置与 P-1 位置上的元素互换 P-3 P+1
4
下移
P≠7,8,9
P+3
1 表示位置 4 7
2 5 8
3 6 9
初始状态:(2,0,3,1,8,4,5,6,7)
在人工智能中,我们要涉及到:
状态空间法
问题归约法 谓词逻辑法 样本向量法
②问题的求解:从问题表示方法出发,找到一个
合理的办法来求解
在人工智能中,常有的方法有: 搜索法 推理法 计算方法
状态空间法
在日常的一些智力游戏(八数码、走八卦阵、走 迷宫等)中,我们采用的策略:试着向前走,如
操作符:
③猴子爬到箱子上:climbbox:
(W, 0, W, z) (W,1, W, z) ④猴子摘到香蕉:grasp: (c, 1, c, 0) (c, 1, c, 1)
初始状态 (a, 0, b, 0) goto(b) (b, 0, b, 0) climbbox pushbox (c, 0, c, 0) (b, 1, b, 0) a c b grasp (c, 1, c, 1) 目标状态 部分状态空间图
例:八数码问题
1
4
算符:
2
7
3
8
6
5
1、数字的上、下、左、右移动 2、空格的上、下、左、右移动
问题的状态空间:一个表示问题全部可能状
态及其关系的图,它包含了三个集合:
1. 所有可能的问题初始状态集合S
2. 操作符集合F
3. 目标状态集合G 状态空间记作三元状态:(S, F, G)
例:十五数码问题
climbbox (c, 1, c, 0)
(a,0,b,0) Goto(b) Pushbox(c)
初始状态
Goto(b)
(b,0,b,0)
Climbbox (b,1,b,0) Pushbox(c)
Pushbox(c)
Climbbox (c,1,c,0)
(c,0,c,0)
Pushbox(a)
(a,0,a,0) Pushbox(a) Grasp (c,1,c,1) 目标状态
每个操作都应当满足如下条件: 一是船至少有一个人(m或c)操作,离开岸边的 m和c的减少数目应该等于到达岸边的m和c的增加数 目; 二是每次操作船上人数不得超过2个; 三是操作应保证不产生非法状态。 因此,操作应由条件部分和动作部分: 条件:只有当其条件具备时才能使用
动作:刻划了应用此操作所产生的结果。
例3:梵塔问题(三个盘)
对于 n 个盘的问题,我们用 n 维向量 (a1 a2…an)
an ... a2 a1
表示问题的一个状态
其中ai = 1, 2, 3 表示第i个盘位于第一、二、 三个柱子上,a1 an中盘的大小从大到小
初始状态为(1…1),目标状态为(3…3) 操作符m(i, j):表示一个盘从 i 根柱子搬到第 j 根 柱子。
猴子摘香蕉问题的状态空间图
解序列为: {Goto(b), Pushbox(c), Climbbox, Grasp}
例5 :修道士(Missionaries)和野人(Cannibals)问题 (简称M-C问题)。 设在河的一岸有三个野人、三个修道士和一条船, 修道士想用这条船把所有的人运到河对岸,但受以下 条件的约束: 一是修道士和野人都会划船,但每次船上至多可载 两个人; 二是在河的任一岸,如果野人数目超过修道士数, 修道士会被野人吃掉。 如果野人会服从任何一次过河安排,请规划一个确 保修道士和野人都能过河,且没有修道士被野人吃掉 的安全过河计划。
T(k):表示第 k 根柱子上(最上面)的盘的大小。
操作符集合为: O={m( i , j ) | T( i )<T( j )}
部分状态空间图
例4:猴子与香蕉问题
a
a
c
c
b
b
用一个四元组(W,x, Y, z)来表示问题的状态 W:猴子的水平位置 x: 当猴子爬到箱子顶上取1,否则取0 Y: 箱子的水平位置 z: 当猴子摘到香蕉时取1,否则取0
T
其中,元素 qi ( i=0, 1,…, n)为集合的分
量,称为状态变量。 具体状态:给每一个状态变量一个具体的
值(符号、数值等)。
矩阵形式
q11 ... q 1n Q qm1 ... qmn
例:八数码问题
矢量形式的状态表示:
1
2
3
4
6
2 7 5
7
5
3 8 0
状态:
描述某一类不同事物间的差别而引入的一 组最少变量q0 ,q1 ,…, qn的有序集合
例:描述在坐的同学 根据要解决的问题、从 变量可以有: 年级 班级 姓名 性别 学号 …… 区分哪一个班:年级、 班级 区分哪一位同学:姓 名、性别、学号 中选择最少的一组变量 例:
矢量形式:
Q=[ q0, q1, …, qn ]
②操作符集合及其对状态描述的作用
③如何描述目标状态 即定义好三元状态(S, F, G)中的三个成分
状态空间法:
从某一个初始状态开始,每次施加一个操作符,递
增地建立操作符序列,直到达到目标状态为止
状态空间法的问题:
寻找从初始状态到目标状态的某一个操作符序列
状态空间法的解:
从初始状态变换到目标状态的操作符序列
相关文档
最新文档