人狼羊菜安全渡河问题

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

人、狼、羊、菜安全渡河问题

摘要

安全渡河问题又称作“人狼羊菜”问题,其具体描述为:一个人带着一条狼、一只羊、一筐白菜过河但由于船太小,人一次只能带一样东西乘船过河。狼和羊、羊和白菜不能单独留在同岸,否则羊或白菜会被吃掉。本文尝试应用运筹学中的图理论中的树知识来解决该问题。

问题分析

设图的顶点v=(m,n,p,q),m表示人,n代表狼,p代表羊,q代表白菜,且m,n,p,q ∈{-1,0,1},-1代表此岸,0代表船上,1代表彼岸。根据题意,问题变成了找出从顶点(-1,-1,-1,-1)到顶点(1,1,1,1)路径(即是一棵以(-1,-1,-1,-1)为根结点,(1,1,1,1,)为叶子结点的树)的问题。

通过分析问题知道:

顶点v必须满足以下条件:

1,当m≠0时,n,p,q≠0 因为乘船时必须有人在上面;

2,当m≠p时,n≠p,q≠p即当人与羊不在一起时,必羊和狼不在一起,羊和菜不在一起;

3, 当n、p、q中有一个为0时其余两个都不能为0.

设相邻顶点Vi=(m1,n1,p1,q1),Vj=(m2,n2,p2,q2) .设

Tm=m2-m1,Tn=n2-n1,Tp=p2-p1,Tq=q2-q1,易见T∈(-1,0,1),因为状态必须是渐变的,不能逾越中间一个状态。

路径应该满足以下条件:

1,|Tm|≠0,即人前后的状态必须改变;

2,|Tn|+|Tp|+|Tq|=0或=1,因为最多仅能有一个物品随人转移,可以为0是因为允许人一个物品都不带;

3,当|Tn|+|Tp|+|Tq|=1时设状态改变的物品为x,必有Tx=Tm,因为物体状态的改变必是人状态改变的结果,且与人的改变方向一致。

根据上述规则建立符合条件的树:

1,用穷举法产生81个顶点;

2,由顶点法则排除不合理点,还剩k个可行点;

3,用(-1,-1,-1,-1)和(1,1,1,1)分别作为根结点和叶子结点;

4,用路径法则选取正确点:从(-1,-1,-1,-1)为起点开始从剩下的k-1-1个可行顶点中找到合理点,再以此点为新的起点从剩下的k-1-1-1个可行点中按路径法则找合理点......以此类推找到最后一个合理点为(1,1,1,1)。

最后结果如图所示:(-1-1-1-1)

(0,-1,0,-1)

(1,-1,1,-1)

(0,-1,1,-1)

(0,0,1,-1)(1,1,1,-1)(0,1,0,-1) (-1,1,-1,-1) (0,1-1,0)

(0,-1,1,0)

(1,-1,1,1)

(0,-1,0,1)

(-1,-1,-1,1)

(0,0,-1,1) (1,1,-1,1)

(0,1,-1,1)

(-1,1,-1,1)

(0,1,0,1)

(1,1,1,1)

(-1,-1,1,-1)

参考文献

[1]郭强,孙浩.运筹学原理与算法[M]西安:西北工业大学出版社,2006.

[2]严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,2002.

[3]俞涛.“船运狼,羊,菜”问题的新解法[J].河北师范大学学报:自然科学版,1996,20(4):27-29.

[4]王家华,王祥波,李美丽,曹春祥,王晓燕.安全渡河问题的图解新法[J].西安石油大学学报:自然科学版,22-4,2007,7

相关文档
最新文档