农夫过河问题

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

问题一:农夫,狐狸,鹅和麦粒过河问题。

他们都在河的左岸,现在要全部到对岸去,农夫有一条船,过河时,除农夫外,船上至多能载一样东西,狐狸要吃鹅,鹅要吃麦粒,除非农夫在那里。

规划出确保全部安全的过河方案。

解:用四元组(农夫,狐狸,鹅,麦粒)表示状态,其中每个元素都可为0或1。

0表示在左岸,用1表示在右岸。

用四元组(f、w、s、g)表示状态, f 代表农夫,w 代表狐狸,s 代表鹅,g 代表麦粒
初始状态S0:(0,0,0,0)目标状态:(1,1,1,1)
不合法状态有:(1,0,0,*),(1,*,0,0),(0,1,1,*),(0,*,1,1)
操作集F={p1,p2,p3,p4,q0,q1,q2,q3 }
首先分析如图所示:
操作符条件动作
p1 f=0,w=0f=1,w=1
s和g相异
p2 f=0,s=0 f=1,s=1
p3 f=0,g=0 f=1,g=1
w和s相异
q0 f=1 f=0
s和g相异
w和s相异
q1 f=1,w=1f=0,w=0
s和g相异
q2 f=1,s=1 f=0,s=0
q3 f=1,g=1 f=0,g=0
w和s相异
所以,方案有两种:
p2→ q0 → p3→ q2 → p2 → q0 → p2 p2→ q0 → p1→ q2 → p3→ q0→ p2。

相关文档
最新文档