数学建模人狼羊菜问题_第1页
数学建模人狼羊菜问题_第2页
数学建模人狼羊菜问题_第3页
数学建模人狼羊菜问题_第4页
数学建模人狼羊菜问题_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一,论文题目人,狼,羊,菜渡河问题二,摘要将人狼羊菜依次用一个四维向量表示,对每一分量按二进制法则进行运算,将可行状态与转移状态表示出来,将这种运算方法设计为Matlab语言,进行计算机的计算,最终求得所得结果。三,问题的重述一个摆渡人希望用一条小船把一只狼,一只羊和一篮白菜从一条河的左岸渡到右岸去,而船小只能容纳人,狼,羊,菜中的两个,绝不能在无人看守的情况下,留下狼和羊或羊和白菜在一起,求应怎样渡河才能把狼羊白菜都运过去?四,模型的假设、符号约定和名词解释我们可以用四维向量来表示状态,其中第一分量表示人,第二分量表示狼,第三分量表示羊,第四分量表示菜;当人或物在此岸时相应分量取1,在对岸时则取0。根据题意,人不在场时,狼要吃羊,羊要吃菜,因此,人不在场时,不能将狼与羊,羊与菜留在河的任一岸。例如,状态(0,1,1,0)表示人和菜在对岸,而狼和羊在此岸,这时人不在场的情况下狼要吃羊,因此,这个状态是不可行的。我们通过穷举法将所有可行的状态列举出来,可行的状态有(1,1,1,1),(1,1,1,0),(1,1,0,1),(1,0,1,1),(1,0,1,0)(0,1,0,1),(0,1,0,0),(0,0,1,0),(0,0,0,1),(0,0,0,0)可行状态共有十种。每一次的渡河行为改变现有的状态。用1表示过河,0表示未过河。例如,(1,1,0,0)表示人带狼过河。状态转移只有四种情况,用如下的向量表示。(1,0,0,0),(1,1,0,0),(1,0,1,0),(1,0,0,1)五,模型的建立、模型求解、模型的结果和检验将可取状态及可取运载分别编成矩阵。共分为五个m文件,一个主文件xduhe.m数,分别为:1、duhe(L,B,M,s)函数。用来实现渡河总思路。思路为:将起始矩阵A分别与可取运载相加(使用二进制法则),判断相加后的矩阵C是否是【0,0,0,0】,如果是,则渡河成功。否则,用fuhe(C,M)函数判断C是否是可取状态,如果是,则打印并将C与初始矩阵合并成新矩阵,继续调用duhe.m函数。2、fuhe(C,M)函数。判断和矩阵C是否属于矩阵M,如果是,则返回1,否则返回0.3、Panduan(S函数。判断S矩阵中是否有两个相同的状态,即行向量。如果有,则返回0,否则返回1.4、print(K,C,s)函数。打印相应的状态。通过程序运行结果截图为:MATLAB7.10.0(R2010a)uMATLAB7.10.0(R2010a)u回I—a—「FileEditDebuqParallelDesktopWindowHelpMBMBBMMMBSfWMBl|:DS|Ji■色*90|Ji呦囱|範|C;\Users\ll\Docunnents\Wri▼口畲Shortcuts?JHowtoAddZJWhat'sNew,ZC'NewtoMATLAB?WatchthisVidgseeD^mgorreadGettingStzrtEcL羊,从左岸到迭右岸从右岸回到左岸羊,从左岸到迭右岸从右岸回到左岸狼,羊,羊,第1次渡河:人,第2次渡河:人,第3次渡河:入'第4次渡河:人,第5次渡河:人,从左岸到迭右岸从右岸回到左岸从左岸到达右岸1比追河方案不可行菜,狼,羊,羊,菜,狼,羊,羊,第5次濺河:人,第6次渡河:人,第7次渡河:人,第8次渡河:入,从左岸到达右岸从右岸回到左岸就左岸到达右岸从右岸回到左岸从右岸回到左岸从右岸回到左岸从左岸到达右岸从右岸回到左岸1比族河方案不可行第8次渡河,入,菜,此渡河方案不可行第7次渡河:人,狼,此族河方案不可行第6次渡河:人,菜,此渡河方案不可行〔口|回MM〔口|回MM4MATLAB710.0::R201Oa)xFileEditDebugPsrsllelRmmktopWindow旦dp匸1已|晶■■勺a|羞阿日|龜C:\U&er&\lI\Dwument&^MATI〒口苗ShortcutszlHowtoAdd_r]What'sNewCpNewtoMATLAB?WatchthiaUidgseeD亡mgorreadGating5t』rt亡cl.第占次濃河:人」風右岸回到左岸第:次渡河:人,羊,M左岸到达右岸渡河咸功第4次渡河;人,狼,川右岸回到左岸此滬河方案不可行第3灰遐河:人j从左坪到达右JT第4次渡河:人羊,从右芹回到左库第5次濃河:人」羊」川左岸到迖右岸此侵刘万亲不R1仃第5次遐河:人,狼,M左岸到达右岸第6次渡河;人」狼J川右岸回到左岸此煜刘万亲小R1仃第6次遐河:人,苹,汕右斥回到左岸第7次渡河;人羊,川左岸至H达右岸第&友渡河:人,羊,从右佯回到左JT万亲不nJ仃M右岸回到左岸此族河方案不可行第7次渡河:人’菜’汕左岸到达右岸曲渡河方案不可行第&炎遐河:人‘就右岸回到左岸第7次遁河:人’羊「从左岸到达右岸濺河咸功第4欢遐河:人「菜,汕右岸回到左岸此追河方案不可行第:3次渡河:人,妣左岸到达右岸此追河方秦不可行可得两种运送方案六,模型的评价和改进从书中所学知识让我们了解到图解法,但对于此问题,涉及到四维向量,显然利用坐标系很难完成,所以我们采用计算机编程来得到求解,具有高效简洁的优势,利用运行结果让我们对问题的解答一目了然,改进方面,希望能尝试运用其他思路。七,参考文献1,姜启源、谢金星、叶俊《数学模型》(第三版),北京:高等教育出版社.八,程序代码1、xduhe.m文件clear;clc;A=[1,1,1,1];B=[1,0,1,0;1,1,0,0;1,0,0,1;1,0,0,0];M=[1,1,1,0;0,0,0,1;1,1,0,1;0,0,1,0;1,0,1,1;0,1,0,0;1,0,1,0;0,1,0,1];duhe(A,B,M,1);2、duhe.m文件functionduhe(L,B,M,s);[h,l]=size(L);fork=s:hfori=1:4C=mod(L(k,:)+B(i,:),2);ifC==[0,0,0,0]print(B(i,:),C,s);fprintf('渡河成功\n\n');break;elseiffuhe(C,M)==1print(B(i,:),C,s);S=[L;C];ifPanduan(S)==1duhe(S,B,M,s+1);elsefprintf('此渡河方案不可行\n\n');endendendendend3、fuhe.m文件functiony=fuhe(C,M)y=0;fori=1:8if(C==M(i,:))y=1;break;endend4、Panduan.m文件functionz=Panduan(S)z=1;[m,n]=size(S);forp=1:mforq=(p+1):mifS(p,:)-S(q,:)==[0,0,0,0]z=0;break;endendend5、print.m文件functionprint(K,C,s)fprintf('第%4次渡河:',s);ifK(1)==1f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论