资源描述:
《数学建模论文_免费下载》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、冏人过河问题学号:201101050062姓名:张红梅1问题提岀三名商人各带一个随从乘船渡河,一只小船只能容纳二人,由他们口己划行。随从们密约,在河的任一岸,一旦随从的人数比商人多,就杀人越货。但是如何乘船渡河的大权掌握在商人们手中。商人们怎样才能安全渡河呢?2模型假设)/
2、717)/1234z/(z(/(7(每个商人和随从都会划船;只冇一条船,月•每条船上最多只能乘坐两个人;所有商人与随从之间没有矛盾,不会出现两人不愿意坐一条船的现彖;船在渡河的过程屮不受外界环境的影响。3模型建立记第k次渡河前此岸的商人数为矩,随从数为儿,k二1,2,…,Xk,儿二0,1,2,3。将
3、二维向量sk=(x『儿)定义为状态。安全渡河条件下的状态集合称为允许状态集合,记作S,因此有S二{(x,y)
4、x=0,y=0,1,2,3;x=3,y=0,1,2,3;x=y=l,2}(3-1)即S={(0,0)(0,1)(0,2)(0,3)(1,1)(2,2)(3,3)(3,0)(3,1)(3,2)}不难验证,S对此岸和彼岸都是安全的。记第k次渡船上的商人数为比「随从数为必。将二维向量dHuj必)定义为决策。允许决策集合记作D,由小船的容量可知D={(u,v)11Wu+v§2,u,v=0,1,2}(3-2)即D={(2,0)(0,2)(1,0)(1,1)(0,1)}。因为k为奇数时船从
5、此岸驶向彼岸,k为偶数时船从彼岸驶回此岸,所以状态Sk随决策变化的规律见式(3-3)SM=Sk+^kdk(3-3)上式称为状态转移律。这样,制定安全渡河方案归结为如下的多步决策模型:求决策d严D(k=l,2,…,n),使状态$严S按照转移律⑶,由初始状态$二(3,3)经有限步n到达状态$汁广(0,0)o4模型求解模型的要求从(3,3)开始经过对每次过河的安全状态量的选择最终安全到达(0,0)o由式仃-1)、仃-2)和(1-3),通过利用Matlab编写一段程序来求解多步决策问题是可行的,但是当商人和随从数都不多的情况下述可以用平而坐标法解此模型更为方便。在此处只讨论用Matlab编程解
6、决问题,见附录A。另外,附录B是对附录A的检验。5结果分析(1)模型的求解采取的是矩阵法求解,并运用了强大的Matlab软件,结果可信度高,便于推广;(2)没有考虑到实际生活中,在安全渡河的前提下,商人过河的优先级应高于随从;(3)此处只解决3个商人和3个随从过河的状态,若当商人和随从数增加或小船的容量加大时,靠逻辑思考就困难了,而用这种模型则仍然可以求解。6参考文献[1]姜启源谢金星叶俊•数学模型(第四版)[M].北京:高等教育出版社,2011.[2]陈汝栋于延荣•数学模型与数学建模(第二版)[M]•北京:国防工业出版社,2009.[3]白其峥•数学建模案例分析[M]•北京:海洋岀版
7、社,2000.7附录附录Aclearall;clca=[0,0;0,1;0,2;0,3;1,1;2,2;3,3;3,0;3,1;3,2;];d二[2,0;0,2;1,0;1,1;0,1];s(l,:)=[3,3];i二1;j二1;k二1;disp('此岸-船上-对岸')fori=l:12forj=l:5t=0;u二0;r二mod(i,2);m二r;fork=l:10ifs(i,:)+(T厂i*d(j,:)==a(k,:)t=l;endendifi+l>二3form=(l+r):2:(iT)ifs(i,:)+(—l)r*d(j,:)二二s(m,:)u=l;endendendift==li
8、fu==0s(i+l,:)=s(i,:)+(-l)"*d(j,:);c(i+l,:)=d(j,:);breakelseifu==lcontinueendelsecontinueendendift二二0disp('NoResult');break;endb(i+l,:)=[3,3]-s(i+l,:);play=sprintfC{%d,%d}--{%d,%d}--{%d,%d}',s(i,1),s(i,2),c(i+l,1),c(i+l,2),...b(i+l,l),b(i+l,2));disp(play)ifs(i+l,:)==[0,0]breakendend运行结果为:2}—{0,1}
9、-{0,2}-{0,1}-{0,0}-{2,0}-{3,1}-{3,2}--{3,0}-{2,1}—{3,2}1}3}2}2}1}1}0}2}2}3}此岸--船上--对岸{3,3}--{0,{3,1}--{0,{3,2}--{0,{3,0}--{0,{3,1}--{2,{1,1}-{1,{2,2}--{2,(0,2}--{0,{0,3}--{0,{0,1}-{1,{1,1}-{1,附录B通过口己的笔算检验,迭代过扌呈如下:⑴S1=(3,3)⑵$