符。
状态空间:由表示问题的全部状态及一切可用算符构成的集合成为该问题的状态空间一般都有三部分构成(S,F,G)
问题的解:从问题的初始状态S出发,经过一系列的算符运算,到达目标状态。由初始状态到目标状态所用的算符序列就构成了问题的一个解。 09
表示方法—状态空间法
由15个编有1至15并放在4×4方格棋盘上的可走动的 棋子组成。 初始棋局和目标棋局,对应于该下棋问题的初始状态和目标状态。 棋盘上总有一格是空的,空格的移动可以看作状态的操作。
从初始状态到目标状态的一系列移动空格操作的新状态组成的集合为问题的解空间。 09
表示方法—状态空间法 用状态空间表示问题的步骤 定义状态的描述形式
用所定义的状态描述形式把问题的所有可能状态都表示出来,并确定出问题的初始状态集合描述和目标状态集合描述
定义一组算符,使得利用这组算符可以把问题由一种状态转变为另一种状态。 09
表示方法—状态空间法
例题:猴子和香蕉问题(monkey and banana problem)
在一个房间内有一只猴子(可把这只猴子看做一个机器人)、一个箱子和一束香蕉。香蕉挂在天花板下方,但猴子的高度不足以碰到它。那么这只猴子怎样才能摘到香蕉呢?下图表示出猴子、香蕉和箱子在房间内的相对位置。 猴子和香蕉问题 09
表示方法—状态空间法
用一个四元表列(W,x,Y,z)来表示这个问题的状态,其中 W-猴子的水平位置
x-当猴子在箱子顶上时取x=1;否则取x=0 Y-箱子的水平位置
z-当猴子摘到香蕉时取z=1;否则取z=0 这个问题中的操作(算符)如下:
goto(U)猴子走到水平位置U,用产生式规则表示为:
即应用操作goto(U),能把状态(W,0,Y,z)变换为状态(U,0,Y,z)。 09
表示方法—状态空间法
(2) pushbox(V)猴子把箱子推到水平位置V,即有
要应用算符pushbox(V),就要求产生式规则的左边,猴子与箱子必须在同一位置上,并且,猴子不是在箱子顶上。这种强加于操作的适用性条件,叫做产生式规则的先决条件。 (3) climbbox猴子爬上箱顶,即有
在应用算符climbbox时也必须注意到,猴子和箱子应当在同一位置上,而且猴子不在箱顶上 。 09
表示方法—状态空间法
(4) grasp猴子摘到香蕉,即有
其中,c是香蕉正下方的地板位置,在应用算符grasp时,要求猴子和箱子都在位置c上,并且猴子已在箱子顶上。 从初始状态到目标状态,把所有适用的操作连续应用于每个状态,我们就能够得到状态空间图。得到从初始状态变换为目标状态的操作序列。 09
表示方法—状态空间法
从初始状态到目标状态的操作序列: {goto(b),pushbox(c),climbbox,grasp} 09
表示方法(各有特点,并存) 谓词逻辑法
产生式规则表示法 语义网络法 状态空间法 问题归约法 框架表示 面向对象表示 脚本方法表示 过程式表示 09
表示方法—问题归约法 09
表示方法—问题归约法 问题归约描述:
先把问题分解为子问题和子-子问题,然后解决较小的问题。对该问题的某个具体子集的解答就意味着对原始问题的一个解答。 问题归约的实质:
从目标(要解决的问题)出发逆向推理,建立子问题以及子问题的子问题,直至最后把初始问题归约为一个平凡的本原问题集合。 09
表示方法—问题归约法 与或树概念
终叶节点:对应于原问题的本原节点。
或节点:只要解决某个问题就可解决其父辈问题的节点集合,如(M,N,H)。
与节点:只有解决所有子问题,才能解决其父辈问题的节点集合,如(B,C)和(D,E,F)各个结点之间用一端小圆弧连接标记。
与