1、数学建模研究商人过河问题 数学建模实验一报告实验题目:研究商人过河问题一、实验目的:编写一个程序(可以是C,C+或Mathlab)实现商人安全过河问题。二、实验环境:Turo c20、Mcroot isualC+ 6。0、Mala6.0以上 三、实验要求:要求该程序不仅能找出一组安全过河的可行方案,还可以得到所有的安全过河可行方案。并且该程序具有一定的可扩展性,即不仅可以实现3个商人,3个随从的过河问题.还应能实现n个商人,个随从的过河问题以及n个不同对象且每个对象有m个元素问题(说明:对于3个商人,3个随从问题分别对应于n=2,m=3)的过河问题。从而给出课后习题5(n=4,=1)的全部安全
2、过河方案。 四、实验步骤: 第一步:问题分析。这是一个多步决策过程,涉及到每一次船上的人员以及要考虑此岸和彼岸上剩余的商人数和随从数,在安全的条件下(两岸的随从数不比商人多),经有限步使全体人员过河. 第二步:分析模型的构成.记第k次渡河前此岸的商人数为,随从数为,(具有可扩展性),将定义为状态,状态集合成为允许状态集合(S)。S=记第k次渡船的商人数为,随从数为,决策为,安全渡河条件下,决策的集合为允许决策集合。允许决策集合记作D,所以D=|1u+v,u,v=0,1,2,因为k为奇数时船从此岸驶向彼岸,k为偶数时船由彼岸驶向此岸,所以状态随决策变化的规律是,此式为状态转移律。制定安全渡河方案
3、归结为如下的多步决策模型:求决策,使状态按照转移律,由初始状态经有限n步到达第三步:模型求解。#inclue io.”#iclue ”stringhinue memoycld nextNULL;rer;/*释放该单元格,并将其上的单元格的nxt指针还原/in deter(struc i p)srucim *1p;i(ps1k)retur 1;/仆人数不能超过总仆人数/if(pm1)tn -;/*商人数不能超过总商人数/i(s2k2)retrn 1;/对岸,同上if(m2k1)reur-1;/*对岸,同上/(p-s10)rturn ;/仆人数不能为负*(ps1s1pm)return -1;i(p
4、m2!=0)if(psp-2)retun -1;两岸商人数均不能小于仆人数*whl(p1!=NULL)p1=p1back;if(p1!=NL)if(p1-n2=p%)if(1s1p-s1)if(ps2=p-s2)(p1m1=p-m1)if(p1-m=p-m2)retrn-1;/*用于解决重复,算法思想:即将每次算出的链表单元与以前的相比较,若重复,则表示出现循环/i(s1=0pm1=0)if(p%2=0)rtrn 1;ele return 1;/显然如果达到条件就说明ok了*/retur ;/*判断函数/n sgn(it n)if(n%2=0)eturn -1;eturn 1;/符号函数*/v
5、oid copyit(struct aim 3,structi p)p3s1p-s1;3s2s2;p3mp-m1;3m2=-m2;p3n=p-n+1;p3bac;p-next=ULL;p-net=p;*复制内容函数,将p中的内容写入p3所指向的链表单元中*/virint(suct aimp)struc im =;s+;while(pac)p=pack;pritf(”n第%d种方法:n,js);fpn(fp,n第%d种方法:n,j);intcount0;hie()printf(l,ld::%ld,l,p-m1,p1,p2,s2);fpritf(p,ld,d:l,d”,pm1,ps,m2,2);p
6、=pnext;ut+;cu”一共有cotm*f;pm1=fla-sf;p-s2=lm*f;p3m2+=flas*f;/*运算过程,即过河过程/j=dterm(p3);/判断,j记录判断结果/if(j1)if(iotal1)cntinue;elsefreei(3);bea;nt on10;if(j=1)if(ioal-1)print(3);count+;cntue;elserint(3);freit(p);break;/cotcout1next=NULL;p-2=;p2=0;pn=1;/设立初始头指针*pt(pseinu the total f pepe tboar);fpitf(fp,n请输入
7、船上的人数);saf(”%d,&n);fprintf(,n%dn,n);lag=had;or(=0;e=n;e+)(f0;f=e; js=; flagnet=jj; jnext=UL; flag=jj; /*it(plase inut th otalf meant an slven fo: ehan,avet;n);fprinf(fp,nplaseinut th tota o erchant and lven as foow: echat,salvent;n”);sa(%ld,ld,&p-m1,p1);printf(f,nd,d,pm1,-s1);*=pm1;k2=p-s1;tas();clo
8、s(fpt);tch();第一步:三个商人,三个随从的模型求解答案为:运行后的结果为:第 1 种方案:(,3) 到 (0,0)、(3,1) 到(0,2)、(3,2) 到 (0,)、(,0)到(0,)、(3,1) 到 (0,2)、(,1) 到 (2,)、(2,2) 到 (1,1)、(,2) 到 (3,1)、(,3)到 (,0)、(0,1) 到 (3,2)、(0,2) 到 (3,1)、(,0)到 (3,)第 种方案:(3,) 到 (0,0)、(,) 到(,2)、(,2) 到 (0,)、(3,0) 到 (,)、(3,1) 到(,2)、(1,1)到 (2,2)、(2,2) 到 (1,1)、(0,2)到
9、 (,)、(0,3) 到 (3,0)、(0,1) 到 (,)、(1,1) 到 (,2)、(0,0) 到 (3,)第 3种方案:(,)到 (,0)、(,2)到 (1,)、(,2)到 (0,1)、(3,0) 到 (0,3)、(,1) 到(,2)、(,1)到(2,)、(2,2)到(1,)、(,2) 到 (3,)、(,)到 (,0)、(0,1)到(3,)(、0,2) 到 (3,1)、(0,0) 到 (3,3)第4 种方案:(3,3) 到 (0,)、(2,2) 到 (1,)、(3,2) 到 (0,1)、(3,0)到(,)、(3,) 到(0,2)、(1,) 到 (2,2)、(,2)到 (,1)、(,2)
10、到(3,1)、(0,3) 到 (3,0)、(,) 到 (3,2)、(,1)到 (,2)(,0)到 (3,3)第二步:四个商人三个随从,其结果为:第1种方法:4,3:0,0 3,2::1,1 4,::0,1 ,::2,1 ,2::,1,1:2,2 2,2::2,1 0,2:4,1 ,:4, 0,1::4,21,1:, 0,0::4, 一共有1步完成第2种方法:,3::,0 3,:, 4,::0,1 2,2:2,1 ,:,1,1:2,2 2,::2,1 0,2:,1 0,3::4,0 ,1::,22,::2, 1,::3, 1,1:3,2 0,0::4,3 一共有14步完成第3种方法:4,3::0
11、,0 3,2::1,1 4,2:0,1 2,2:2,1 3,2:1,1,:2,2 2,2::2,1 ,:4, 0,3::4,0 0,1::4,20,2::4,1 0,0::4, 一共有12步完成第4种方法:4,:0,0 ,2:1,1 4,2:0, 2,2:2,1 3,::1,12,1::2,2 2,2::2,1 1,:3, ,1:, 0,1:,21,::3,2 ,0::, 一共有1步完成第5种方法:,3:0, ,2:1,1 4,2:0, 2,2::,1 3,2:1,2,:2,2 ,2:,1 1,1::3, 2,:2, 0,1::4,20,:,1 0,0::4, 一共有12步完成第6种方法:4,
12、:,0 ,2:1, ,2::0,1 ,2:2,1 3,:1,1:2,2 2,2::2,1 1,:3,2 2,::2, 1,0::,31,1::3,2 0,1:,2 0,:4, ,:4, 一共有14步完成第7种方法:,3::0,0 3,2:,1 ,2:0,1 2,2:2,1 ,2:,1,1::,2 ,2::,1 ,1:3,2 ,1:2,2 1,0::3,3,1::3,2 0,::4,3 一共有12步完成第8种方法:4,3:0,0 3,2:,1 4,2::0,1 4,0::0, 4,1::0,2,1::2,2 ,::2,1 ,::4,1 ,::4,0 0,1:4,1,1:3,2 0,0::,3 一
13、共有2步完成第9种方法:,3::0,0 3,::1,1 4,2:0, ,0::0,3 4,1::0,2,1::,2 ,2::2, 0,::4, 0,3:4,0 ,:4,22,1::2,2 1,0:3, 1,1:3,2 0,0:4, 一共有14步完成第10种方法:4,3::0,0 3,2::1,1 ,2:,1 4,0::,3 4,1:,2,::2, ,:,1 0,2:4,1 ,3::,0 0,1:,20,2:,1 0,0::4,3 一共有12步完成第11种方法:4,3::0,0 ,2::1, 4,::0,1 4,0:0, 4,1::0,2,1::,2 2,:,1 1,1::3,2 ,:,2 0,
14、::4,21,1:3,2 ,0:4,3 一共有12步完成第2种方法:4,3:, 3,2::1,1 ,2:0, ,0:0, 4,1:0,1:2,2 2,2::2, 1,::3,2 2,1::,2 ,1:4,,2::,1 0,0::4,3 一共有12步完成第3种方法:4,3::0,0 ,2::1,1 4,2:0, 4,0:,3 4,1:,2,1:2,2 2,2:2,1 1,1:3,2 2,:2,2 1,0:3,1,:3, ,1::4, 0,:4,1 0,0:4,3 一共有14步完成第14种方法:4,3::, ,2:1, 4,2::, ,0:0,3 4,1:,22,1::2,2 ,2::2,1 1,
15、1::,2 2,1:,2 ,::3,31,1:3,2 0,0::4, 一共有2步完成第15种方法:4,3::0,0 3,2:1,1 ,3:1,0 2,2:2,1 3,2::1,1,1:2, 2,2::2,1 0,2:,1 ,:, 0,::,1,1:,2 0,0:4,3 一共有1步完成第16种方法:,3:0,0 3,2::1, ,3::1,0 2,::2,1 3,::1,12,1:2,2 2,2::2,1 0,2::4,1 0,3:,0 0,:4,22,::2, ,0:3,3 1,1:3,2 0,0:4,3 一共有14步完成第17种方法:4,3:0, ,2:1, 3,3::,0 ,2:,1 3,
16、2:,12,1:2,2 2,::2,1 ,2::, ,3:4, ,1:,20,::4,1 0,0:4,3 一共有12步完成第1种方法:4,:0,0 ,2::1,1 3,3:1,0 2,::2,1 3,2:,12,::,2 2,2::2, 1,1::,2 2,1:2, ,::4,1::3,2 0,0:4,3 一共有1步完成第19种方法:4,3::,0 3,2::1,1 3,3:1,0 2,2::2,1 3,:1,12,1::,2 2,2::, 1,1:3,2 2,::2,2 ,::,0,2::4,1 0,::4,3 一共有12步完成第20种方法:,3:,0 3,::1,1 3,3:,0 ,2:2
17、, ,::1,12,1:2,2 ,2:2, 1,1:,2 2,1::2,2 1,0::,31,:3,2 0,1::4,2 0,2:4,1 0,0::4,3 一共有1步完成第21种方法:4,::0,0 3,2::1,1 3,3:1,0 2,2::2, ,2:1,2,::,2 ,2::2,1 1,1::,2 2,::, 1,::3,31,1::, 0,0::4,3 一共有12步完成第2种方法:,3:,0 3,::,1 3,3:1,0 2,::2,1 ,:0,4,0::0,3 4,1:0,2 ,1:, 2,:,1 0,2::4,3::4, ,1::4,2 1,::3,2 0,0::4,3 一共有14
18、步完成第3种方法:,::0, 3,2:1, ,3::,0 ,::2, ,2::,14,0:0, ,:,2 2,1::2,2 ,2::2, 0,2::4,10,3:,0 ,1::4,2 2,::2,2 1,:,3 1,1::,0,::4,3 一共有16步完成第24种方法:4,3::0,0 3,2::1,1 3,3:1,0 2,2::2,1 4,2:,4,0::0,3 4,1::0,2 2,1::2, 2,2::2, 0,2::,10,3::4,0 ,1:4,2 0,2:4,1 0,0::4,3 一共有1步完成第2种方法:4,3::0, 3,2::1,1 3,3::1,0 2,2::2,1 ,:0
19、,1,::0,3 4,:0,2 2,::2,2 ,:2, 1,1::3,2,1:2,2 0,::4, 1,1::3, 0,:4, 一共有14步完成第26种方法:4,:0, 3,2::1,1 3,3:1,0 2,2:2,1 4,2::0,14,0:,3 4,1:,2 2,:,2 2,2::2, 1,:,2,1:2,2 0,1::4, ,2:4, 0,::4,3 一共有1步完成第27种方法:,3::0, ,2::1, 3,3::1,0 2,2:2,1 4,:,1,::0,3 4,1::, 2,:2,2 2,2:2,1 1,:,22,1::2,2 1,::3,3 1,:3,2 0,1::4,2 0,::4,1,0::,3 一共有16步完成第2种方法:4,3::0,0 3,2:1,1 3,:1,0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1