首页 > 其他 > 详细

农夫过河问题

时间:2015-03-23 00:08:50      阅读:1138      评论:0      收藏:0      [点我收藏+]

关于“农夫过河”问的如何用状态空间法解决:

解:问题的状态可用三元组(x,y,z)来表示。其中x表示狼的位子、y表示羊的位置、z表示菜的位置;当各个未知数的值取0时表示物品在和的左岸,取1时相反。

那么所有可能的状态为:

S1(0,0,0)   (初始状态)

S2(0,0,1) 

S4(0,1,0)

S3(0,1,1)

S5(1,0,0)

 

S6(1,0,1)

S7(1,1,0)

S8(1,1,1)   (目标状态)

 

允许的操作有:

Cross():农夫划船到对岸,状态不变,农夫位置改变;

Cross&Taken(x):农夫携带x到河的对岸使得x的状态发生变化,即(1(x),y,z)→(0(x),y,z)或(0(x),y,z)→(1(x),y,z)

 

这个问题的状态空间图为:

技术分享

 

如图所示农夫过河问题中油初始状态到目标状态有两种方法:

方法一: {Taken(y)&Cross() , Cross() , Taken(x)&Cross() , Taken(y)&Cross() , Taken(z)&Cross() , Cross() , Taken(y)&Cross()}

方法二: {Taken(y)&Cross() , Cross() , Taken(z)&Cross() , Taken(y)&Cross() , Taken(x)&Cross() , Cross() , Taken(y)&Cross()}

 

农夫过河问题

原文:http://www.cnblogs.com/YuLonBlog/p/4358254.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!