2.7解:根据谓词知识表示的步骤求解问题如下:解法一:(1)本问题涉及的常量定义为:猴子:Monkey,箱子:Box,香蕉:Banana,位置:a,b,c(2)定义谓词如下:SITE(x,y):表示x在y处;HANG(x,y):表示x悬挂在y处;ON(x,y):表示x站在y上;HOLDS(y,w):表示y手里拿着w。
(3)根据问题的描述将问题的初始状态和目标状态分别用谓词公式表示如下:问题的初始状态表示:SITE(Monkey,a)∧HANG(Banana,b)∧SITE(Box,c)∧~ON(Monkey,Box)∧~HOLDS(Monkey,Banana)问题的目标状态表示:SITE(Monkey,b)∧~HANG(Banana,b)∧SITE(Box,b)∧ON(Monkey,Box)∧HOLDS(Monkey,Banana)解法二:(1)本问题涉及的常量定义为:猴子:Monkey,箱子:Box,香蕉:Banana,位置:a,b,c(2)定义谓词如下:SITE(x,y):表示x在y处;ONBOX(x):表示x站在箱子顶上;HOLDS(x):表示x摘到了香蕉。
(3)根据问题的描述将问题的初始状态和目标状态分别用谓词公式表示如下:问题的初始状态表示:SITE(Monkey,a)∧SITE(Box,c)∧~ONBOX(Monkey)∧~HOLDS(Monkey)问题的目标状态表示:SITE(Box,b)∧SITE(Monkey,b)∧ONBOX(Monkey)∧HOLDS(Monkey)从上述两种解法可以看出,只要谓词定义不同,问题的初始状态和目标状态就不同。
所以,对于同样的知识,不同的人的表示结果可能不同。
2.8解:本问题的关键就是制定一组操作,将初始状态转换为目标状态。
为了用谓词公式表示操作,可将操作分为条件(为完成相应操作所必须具备的条件)和动作两部分。
条件易于用谓词公式表示,而动作则可通过执行该动作前后的状态变化表示出来,即由于动作的执行,当前状态中删去了某些谓词公式而又增加一些谓词公式从而得到了新的状态,通过这种不同状态中谓词公式的增、减来描述动作。
定义四个操作的谓词如下,操作的条件和动作可用谓词公式的增、删表示:(1)goto<x,y):从x处走到y处。
条件:SITE(Monkey,x)动作:删除SITE(Monkey,x);增加SITE(Monkey,y)(2)pushbox (x,y):将箱子从x处推到y处。
条件:SITE(Monkey,x)∧SITE(Box,x)∧~ONBOX(Monkey)动作:删除SITE(Monkey,x),SITE(Box,x);增加SITE(Monkey,y),SITE(Box,y)(3)climbbox:爬到箱子顶上。
条件:~ONBOX(Monkey)动作:删除~ONBOX(Monkey);增加ONBOX(Monkey)(4)grasp:摘下香蕉。
条件:~HOLDS(Monkey) ∧ONBOX(Monkey) ∧SITE(Monkey,b)动作:删除~HOLDS(Monkey);增加HOLDS(Monkey)在执行某一操作前,先检查当前状态是否满足其前提条件。
若满足,则执行该操作。
否则,检查另一操作的条件是否被满足。
检查的方法就是当前的状态中是否蕴含了操作所要求的条件。
在定义了操作谓词后,就可以给出从初始状态到目标状态的求解过程。
在求解过程中,当进行条件检查时,要进行适当的变量代换。
SITE(Monkey,a)SITE(Box,c)~ONBOX(Monkey)~HOLDS(Monkey)⇓goto(x,y),用a代x,用c代ySITE(Monkey,c)SITE(Box,c)~ONBOX(Monkey)~HOLDS(Monkey)⇓ pushbox(x,y),用c代x,用b代ySITE(Monkey,b)SITE(Box,b)~ONBOX(Monkey)~HOLDS(Monkey)⇓climbboxSITE(Monkey,b)SITE(Box,b)ONBOX(Monkey)~HOLDS(Monkey)⇓graspSITE(Monkey,b)SITE(Box,b)ONBOX(Monkey)HOLDS(Monkey)2.12 解:首先建立棋盘变换的产生式规则。
如果把棋盘的每一种布局看做是一个状态矩阵,本题就变成了从初始状态矩阵到目标状态矩阵的一种变化。
所谓棋盘状态的变化就是希望棋盘上空格周围的棋子能走进空格,这也可以理解为移动空格,只要实现空格的上、下、左、右四种移动即可。
可通过建立四个条件一操作型的产生式规则,来实现这四种移动。
设Sij为状态矩阵中的第i行和第j列的数码,i0、j0表示空格所在的行和列,如果在状态矩阵中用0来表示空格的话,则建立如下四条产生式规则:R1:if (jo – 1≥1) then begin Siojo: = Sio(jo-1); Sio(jo-1): =0 end空格左移R2:if (io – 1≥1) then begin Siojo: = S(io-l)jo; S(io-l)jo: =0 end空格上移R3:if (Jo + 1≤3) then begin Siojo: = Sio(jo+1); Sio(jo+1): = 0 end空格右移R4: if (io + 1≤3) then begin Siojo: = S(io+l)jo; S(io+l)jo: = 0 end空格下移然后,建立综合数据库。
将棋盘的布局表示为状态距阵的形式存入综合数据库,例如,可以将本题的初始布局和目标布局以矩阵形式表示为:2 83 1 2 3S0= 1 6 0 Sg= 8 0 47 5 4 7 6 5综合数据库中,存放着初始状态矩阵和目标状态矩阵以及变换过程中的中间矩阵。
在建立了规则集和综合数据库后,就可以按照产生式规则进行状态变换,实现推理求解。
在进行推理时,可能会有多条产生式规则的条件部分和综合数据库中的已有事实相符,这样就有可能激活多条规则。
究竟采用哪一条规则作为启用规则,这就是冲突解决策略问题。
解决冲突的策略有专一性排序、规则顺序等多种,也可以使用一些启发性的信息,根据具体问题选择。
在本题中,我们采用一个启发式函数h(x),它表示节点x所对应的棋盘中与目标节点对应的棋盘中棋子位置不同的个数。
这里,综合数据库中的初始状态矩阵,能满足规则R1、R2、R4的条件,所以有三条匹配规则。
利用启发式函数决定哪一条规则为启用规则。
因为规则R4的启发式函数值h(x)=5,规则R1的h(x)=6,规则R2的h(x)=7,也就是说,规则R4所得到的新状态与目标状态差距最小,所以启用规则R4,依此类推,可以得到到达目标状态的规则执行序列如下:R4,R1,R2,R2,R1,R4,R3其执行过程如图2.19所示。
2.13解:设综合数据库中包含了已访问过的城市名的列表、未访问过的城市名的列表和各城市间的距离表。
初始时刻,已访问过的城市名列表中只有A,未访问过的城市名列表中有B、C、D、E。
定义如下谓词:not—visit(x):表示未访问过城市x;visit—all():表示已无未访问过的城市;goto(x):表示去访问城市x,并将x加入已访问的城市列表中,从未访问过的城市列表中删除它。
则建立如下的产生式规则:R1:not—visit(x)→goto(x)R2:visit—all()→goto(A)当未访问过的城市列表不为空时,激活规则R1;否则,激活规则R2。
如果未访问过的城市列表中的城市个数多于一个时,这时规则R1的实例就不止一个。
例如,在刚开始时,就有四条规则(分别针对x=A,x=B,x=C,x=D)被激活,这时可以根据综合数据库中的城市间距离,构造一个启发式函数h(x)来解决规则冲突,决定某一条规则为启用规则。
例如,在刚开始从A出发时,决定下一访问城市,由于B与A的距离最近,所以x:=B。
依此类推,推销员走的路径为E、D、C。
这时未访问过的城市列表中S经为空,规则R2被激活,返回城市A。
2.15答:从谓词逻辑表示法来看,一个基本网元相当于一组一阶二元谓词。
因为三元组(节点1,弧,节点2)可写成P(个体1,个体2)。
其中,个体1、个体2分别对应节点1、节点2,而弧及其上标注的节点1与节点2的关系由谓词P来体现。
产生式表示法以一条产生式规则作为知识的单位,各条产生式规则之间没有直接的联系。
而语义网络则不同,它不仅将基本网元视做一种知识的单位,而且各个基本网元之间又是相互联系的。
人脑的记忆便是由存储大量的这种基本网元来体现的。
2.16解:(1)本知识涉及的对象有3个:鸟、鸽子、信鸽。
信鸽是一种鸽子,除了其本身的属性外,理应具有鸽子的一般特性。
而鸽子又是一种鸟,鸟所具有的属性它也具有。
(2)信鸽与鸽子之间是一种类属关系,鸽子和鸟之间也是一种类属关系,它们都可以用AKO 表示。
(3)整理各对象节点之间的属性,使上层节点所具有的属性不再在下层节点中标出。
(4)将各对象作为一个节点,而它们之间的关系作为弧,则得到如图2.20所示的语义网络。
2.17解:(1)这是一个带有全称量词的语义网络,如图2.21所示。
其中,s是全称变量,代表任一个学生;h是存在变量,表示某次拥有;bs也是存在量词,代表多本书;s、h、bs 及其语义联系构成一个子网,是一个子空间,表示每个学生都拥有多本书;节点g代表该子空间,由弧F指向其所代表的子空间的具体形式,弧 指出s是一个全称变量。
节点GS代表整个空间。
(2)根据题意得到如图2.22所示的语义网络。
这里需要指出的是,设立“讲课”很有必要,由它向外引出的弧不仅可以指出讲课的主体,而且可以指出讲课的起止时间。
(3)根据题意,这是一个有合取和析取的语义网络,如图2.23所示。
(4)此题较简单,根据题意,其语义网络如图2.24所示2.18解:按照语义网络知识表示步骤,首先进行解题分析:(1)问题涉及的对象有动物、偶蹄动物、哺乳动物、猪、羊、野猪、山羊、绵羊共8个对象。
各对象的属性可以根据常识给出,不过,这里特别给出了山羊有角、绵羊能产羊毛的特点。
(2)羊和猪与偶蹄动物、哺乳动物间是类属关系,偶蹄动物、哺乳动物与动物间也是类属关系,野猪与猪,山羊、绵羊与羊之间都是类属关系,可用AKO表示。
(3)根据信息继承性原则,各上层节点的属性下层都具有,在下层都不再标出,以避免属性信息的重复。
(4)根据以上分析,本题共涉及8个对象,各对象的属性以及它们之间的关系已在上面指出,所以本题的语义网络应是由8个节点构成的有向图,弧上的标注以及各节点的标注如上所述。
语义网络图如图2.25所示。
2.26解:用状态空间法进行表示。