小组作业示例:
问题的提出:
有一只猴,要取到高处的香蕉,需要先走到梯子前,搬着梯子,走到挂香蕉的地方,爬上梯子,取到香蕉。
解决问题要求:
描述猴子活动的过程,通过逻辑推理,控制猴子的活动步骤,当猴子达到目标后,显示猴子活动过程。
对描述的设计
,目的是希望通过状态函数值的传递来控制活动的进程。
,以表明猴子活动的状态。
,以实现推理链的产生。
。
Walk(x,y,s):在s状态下,猴从x位置走到y位置的新状态。
Carry(x,y,s):在s状态下,猴扛梯子从x位置走到y位置的新状态。
Climb(s):在s状态下,猴爬上梯子后的新状态。
R(s):在s状态下,猴吃到香蕉的新状态。
谓词设计
P(x,y,z,s):猴的位置是x,梯子的位置是z,香蕉的位置是y,当前状态是s。
Ans(s): s为状态。
Ans(s)是为显示状态序列而设的虚拟谓
词。
前提规则设计
xyzs(p(x,y,z,s)p(z,y,z,wakl(x,z,s)))
当前状态下,若猴,梯,香蕉各就各位,则猴要走向梯子xys(p(x,y,x,s)p(y,y,y,carry(x,y,s)))
当前状态下,若猴,梯位置相同,则猴要搬梯子。
s(p(b,b,b,s)R(climb(s)))
当前状态下,若猴,梯,香蕉在b位置,则猴要爬梯子。
p(a,b,c,s0)
初状态s0,猴,梯,香蕉的具体位置为a,b,c。
结论:R(s) Ans(s)
若得到猴吃到香蕉的最终结果s,则显示s
猴子吃香蕉 来自淘豆网www.taodocs.com转载请标明出处.