或:¬AL(船),¬AL(农夫) ,¬AL(狼),¬AL(白菜),AL(羊)
动作:删除表:¬AL(船),¬AL(农夫)
添加表:AL(船),AL(农夫)
R-L(羊) :农夫带着羊划船从右岸到左岸
条件:¬AL(船),¬AL(农夫),¬AL(羊) ,¬AL(狼),¬AL(羊),AL(白菜)
动作:删除表:¬AL(船),¬AL(农夫),¬AL(羊)
添加表:AL(船),AL(农夫),AL(羊)
(3) 问题求解过程
AL(农夫)
AL(船)
AL(狼)
AL(羊)
AL(白菜)
2.11 用谓词表示法求解修道士和野人问题。在河的北岸有三个修道士、三个野人和一条船,修道士们想用
这条船将所有的人都运过河去,但要受到以下条件限制:
(1) 修道士和野人都会划船,但船一次只能装运两个人。
(2) 在任何岸边,野人数不能超过修道士,否则修道士会被野人吃掉。
假定野人愿意服从任何一种过河安排,请规划出一种确保修道士安全的过河方案。要求写出所用谓词的定
义、功能及变量的个体域。
解:(1)定义谓词
先定义修道士和野人人数关系的谓词:
G(x,y,S): 在状态 S 下 x 大于 y
GE(x,y,S):在状态 S 下 x 大于或等于 y
其中,x,y 分别代表修道士人数和野人数,他们的个体域均为{0,1,2,3}。
再定义船所在岸的谓词和修道士不在该岸上的谓词:
Boat(z,S):状态 S 下船在 z 岸
EZ(x,S): 状态 S 下 x 等于 0,即修道士不在该岸上
其中,z 的个体域是{L,R},L 表示左岸,R 表示右岸。
再定义安全性谓词:
Safety(z,x,y,S)≡(G(x,0,S)∧GE(x,y,S))∨(EZ(x,S))
其中,z,x,y 的含义同上。该谓词的含义是:状态 S 下,在 z 岸,保证修道士安全,当且仅当修道士不在该岸上,
或者修道士在该岸上,但人数超过野人数。该谓词同时也描述了相应的状态。
再定义描述过河方案的谓词:
L-R(x, x1, y, y1,S):x1 个修道士和 y1 个野人渡船从河的左岸到河的右岸
AL(狼)
AL(白菜)
¬AL(农夫)
¬AL(船)
¬AL(羊)
AL(农夫)
AL(船)
AL(狼)
AL(白菜)
¬AL(羊)
AL(农夫)
AL(船)
AL(羊)
AL(白菜)
¬AL(狼)
AL(白菜)
¬AL(农夫)
¬AL(船)
¬AL(狼)
¬AL(羊)
AL(羊)
¬AL(农夫)
¬AL(船)
¬AL(白菜)
¬AL(狼)
AL(农夫)
AL(船)
AL(羊)
¬AL(白菜)
¬AL(狼)
¬AL(农夫)
¬AL(船)
¬AL(羊)
¬AL(白菜)
¬AL(狼)
评论0
最新资源