(完整版)matlab求解夫妻过河问题毕业设计
数学建模常用方法MATLAB求解

数学建模常用方法MATLAB求解数学建模是通过数学方法对实际问题进行数学描述、分析和求解的过程。
MATLAB是一款功能强大的数学软件,广泛用于数学建模中的问题求解。
在数学建模中,常用的方法有数值求解、优化求解和符号计算。
下面将介绍MATLAB在数学建模中常用的方法和求解示例。
1.数值求解方法:数值求解是利用数值计算方法来近似求解实际问题的数学模型。
MATLAB提供了许多数值求解函数,如方程求根、解线性方程组、曲线拟合、积分和微分等。
以方程求根为例,可以使用fsolve函数来求解非线性方程。
示例:求解非线性方程sin(x)=0.5```matlabx0=0;%初始点x = fsolve(fun,x0);```2.优化求解方法:优化求解是在给定约束条件下,寻找使目标函数取得最优值的变量值。
MATLAB提供了许多优化求解函数,如线性规划、二次规划、非线性规划、整数规划等。
以线性规划为例,可以使用linprog函数来求解线性规划问题。
示例:求解线性规划问题,目标函数为max(3*x1+4*x2),约束条件为x1>=0、x2>=0和2*x1+3*x2<=6```matlabf=[-3,-4];%目标函数系数A=[2,3];%不等式约束的系数矩阵b=6;%不等式约束的右端向量lb = zeros(2,1); % 变量下界ub = []; % 变量上界x = linprog(f,A,b,[],[],lb,ub);```3.符号计算方法:符号计算是研究数学符号的计算方法,以推导或计算数学表达式为主要任务。
MATLAB提供了符号计算工具箱,可以进行符号计算、微积分、代数运算、求解方程等。
以符号计算为例,可以使用syms函数来定义符号变量,并使用solve函数求解方程。
示例:求解二次方程ax^2+bx+c=0的根。
```matlabsyms x a b c;eqn = a*x^2 + b*x + c == 0;sol = solve(eqn, x);```以上是MATLAB在数学建模中常用的方法和求解示例,通过数值求解、优化求解和符号计算等方法,MATLAB可以高效地解决各种数学建模问题。
求解夫妻过河问题

求解夫妻过河问题曲靖师范学院本科生毕业论文论文题目: matlab求解夫妻过河问题作者、学号:郭彩虹2010111212学院、年级:数学与信息科学学院2010级学科、专业:数学数学与应用数学指导教师:郭昀完成日期:2013年12月27日曲靖师范学院教务处摘要渡河问题.[]1始于公元8 世纪,至今它仍是一个逻辑难题,许多数学建模教材上已经提到.这个问题指的是:有不同的对象或生物,他们其中一些相互不共存,逐步地让一小群体从河的一岸到另一岸,经过有限步后,该群体全部从一岸达到另一岸,并且要求没有任何损失.在渡河问题的夫妻过河问题中我们发现状态转移问题有时不一定有解,有时的解又不一定有规律,本文对于夫妻过河问题利用图解法和matlab编写程序求解5对、6对夫妻过河是否有解,并推广到n对夫妻与船的运载能力m对于能否安全渡河时它们之间的关系。
关键词:多步决策 matlab 数学模型渡河问题Problem of couples across the riverAbstract: the problem of crossing the river. In the 8th century, it still is a logical problem, many mathematical modeling teaching material has been mentioned. The question is: have different objects or creatures, they lack some mutual coexistence, gradually to a small group from one bank to another bank of the river, after finite steps, the group all from one side to the other shore, and requires no losses. In crossing the river problem of couples across the river, we found that state transition problem sometimes does not necessarily have a solution, sometimes the solution is not necessarily regular, in this paper, using the graphical method for the problem of couples across the river and the matlab program to solve the 5, 6 for couple across a river if there is a solution,And derived to n couple with the ability to run m to safe crossing the river when the relationship between them.Keywords: Multistep decision Matlab Mathematical model Problem of crossing the river目录1 引言 (1)2 文献综述 (1)2.1 国内外研究现状 (1)2.2 国内外研究现状评价 (2)2.3 问题提出 (2)3 模型假设 (2)4 符号说明 (2)5 重述3、4对夫妻过河问题的解 (3)5.1 3对夫妻过河的解 (3)5.2 4对夫妻过河的解 (3)6 五对夫妻过河模型 (4)6.1 模型构成 (4)6.2 模型建立 (4)6.3 模型求解 (4)6.31 Matlab编程求解 (4)6.32 图解法 (7)7 六对夫妻过河模型 (8)7.1 模型构成 (8)7.2 模型求解 (9)8 n对夫妻过河情况 (10)8.1 求解 (10)8.2 验证 (11)9 总结与展望 (12)9.1 总结 (12)9.2后续研究工作展望 (13)参考文献 (14)附录 (15)1 引言这是一个古老的阿拉伯数学问题。
模型解析及Matlab程序 抢渡长江

抢渡长江问题提出:“渡江”是武汉城市的一张名片。
1934年9月9日,武汉警备旅官兵与体育界人士联手,在武汉第一次举办横渡长江游泳竞赛活动,起点为武昌汉阳门码头,终点设在汉口三北码头,全程约5000米。
有44人参加横渡,40人达到终点,张学良将军特意向冠军获得者赠送了一块银盾,上书“力挽狂澜”。
2001年,“武汉抢渡长江挑战赛”重现江城。
2002年正式命名为“武汉国际抢渡长江挑战赛”,定于每年的5月1日进行。
由于水情、水性的不可预测性,这种竞赛更富有挑战性和观赏性。
2002年5月1日,抢渡的起点设在武昌汉阳门码头,终点设在汉阳南岸咀,江面宽约 1160米。
当日的平均水温16.8℃,江水的平均流速为1.89米/秒。
参赛的国内外选手共186人(其中专业人员将近一半),仅34人到达终点,第一名的成绩为14分8秒。
除了气象条件外,大部分选手由于路线选择错误,被滚滚的江水冲到下游,而未能准确到达终点。
假设在竞渡区域两岸为平行直线, 两岸的垂直距离为 1160 米, 从武昌汉阳门的正对岸到汉阳南岸咀的距离为 1000米,见图1。
下面借助数学模型解决如下问题: (1)假定在竞渡过程中游泳者的速度大小和方向不变,且竞渡区域每点的流速均为 1.89 米/秒。
如果2002年第一名是按最优路径游泳的,试说明她是沿着怎样的路线前进的,求她游泳速度的大小和方向。
(2)在(1)的假设前提下,试为一个速度能保持在1.5米/秒的人选择最佳的游泳方向,并估计他的成绩。
(3)在(1)的假设下,如果游泳者始终以和岸边垂直的方向游, 他(她)们能否到达终点?并说明为什么 1934年和2002 年能游到终点的人数的百分比有如此大的差别;给出能够成功到达终点的选手的条件。
(4)流速沿离岸边距离的分布为 (设从武昌汉阳门垂直向上为 y 轴正向):⎪⎩⎪⎨⎧=≤≤<<≤≤米米秒,米米米秒,米米米秒,米1160960/47.1960200/11.22000/47.1)(y y y y v (1) 游泳者的速度大小(1.5米/秒)仍全程保持不变,试为他选择游泳方向和路线,估计他的成绩。
渡河问题的Hamming算法的Matlab求解

渡河问题的Hamming算法的Matlab求解
谢朋;梁西腾;王娜
【期刊名称】《鲁东大学学报(自然科学版)》
【年(卷),期】2007(023)004
【摘要】借助于Matlab软件对渡河问题进行了研究,通过对渡河问题的解析解和数值解进行图像和理论分析,说明了Hamming算法对求解此类数学建模问题的有效性和实用性.
【总页数】5页(P301-305)
【作者】谢朋;梁西腾;王娜
【作者单位】鲁东大学数学与信息学院,山东,烟台,264025;鲁东大学数学与信息学院,山东,烟台,264025;烟台第一职业中专,山东,烟台,264001
【正文语种】中文
【中图分类】O175.1
【相关文献】
1.基于MATLAB的工程项目管理多目标优化问题的解析求解及算法研究 [J], 薛亚宏;王加毅
2.渡河问题阿当姆斯法的Matlab求解 [J], 陈磊
3.求解Hamming距离下单位型单发点树型网络最短路改进问题的算法 [J], 张斌武;王勤
4.求解Hamming距离下的最短路改进问题的一个近似算法 [J], 张斌武;王勤;余
维燕
5.求解信赖域子问题的Milne-Hamming预报校正算法 [J], 范晓宇;王希云
因版权原因,仅展示原文概要,查看原文内容请购买。
夫妻过河问题

题目:夫妻过河三对夫妻要过河,河中只有一条小船,可容两人。
每个个丈夫都不愿让自己的妻子和另一个男人在一起,除非自己也在场。
(1)如何过河?有多少种渡河次数最少的方法?(2)三对夫妻改为四对夫妻,其他条件不变,能过河吗?为什么?若船至多可容三人,能过河吗?怎么过?数学建模论文题目:夫妻过河问题摘要:主要运用状态转移的方法分析类似于夫妻过河等问题。
状态转移矩阵是俄国数学家马尔科夫提出的,他在20世纪初发现:一个系统的某些因素在转移中,第n次结果只受第n-1的结果影响,即只与当前所处状态有关,而与过去状态无关。
在马尔科夫分析中,引入状态转移这个概念。
所谓状态是指客观事物可能出现或存在的状态;状态转移是指客观事物由一种状态转移到另一种状态的概率。
关键词:状态转移,状态集合。
正文:1.建模我们把此岸有M个男人(丈夫),F个女人(妻子)的情形称为一种状态,用一对数组(M,F)表示,注意M、F的顺序不要变,其中M、F 均为不小于0且不大于3的整数.很显然,在我们的问题中,并非所有数组所表示的状态。
(M,F) M,F∈Z,0≤M,F≤3都是被允许的.例如在0<M<F≤3时,状态(M,F)就不允许,因为它表示必有女子在其丈夫不在场的情形下与其他男人在一起了.除去不允许状态后,剩下的就都称为允许状态.于是我们可以把本问题的允许状态集合S写出来:S={(0,0),(0,1),(0,2),(0,3),(1,1),(2,2),(3,3),(3,2),(3,1),(3,0),(2,1)}.有了允许状态集S,还需要知道这些允许状态之间是如何变化的,特别是如何从三对夫妻全在此岸是的状态(3,3)一步步地变为三对夫妻全在彼岸的状态(0,0)的.这就需要讨论所谓运算(或决策),它们也是由一对有序数组表示的.因为小船每次从河的一岸驶向另一岸都使状态发生变化,故我们把小船的一次运送称为一次运算(或决策).我们规定第n次运算dn由第n+1个状态Sn+1减去第n个状态Sn来确定,即dn=Sn+1-Sn.注意到小船由此岸驶向彼岸时,此岸人数由多变少,而船由彼岸驶回此岸时,此岸人数由少变多.又由于小船载乘人数不多于2人,故运算dn必然满足:dn=(-1)n(p,q),p,q≥0且1≤p+q≤2,n∈N,其中p,q分别表示小船离岸时船上男人与女人的数量.当Sn+1,Sn均为允许状态时,称dn为允许运算,我们把方程Sn+1=Sn+dn称为状态转移方程.至此,我们已经把问题完全抽象化了.2.解法我们下面的任务就是利用状态转移方程来求解.实际上是要一步一步地考虑由一个允许状态加上一个允许运算,得出另一个允许状态的过程,试图寻求一条由初始状态(3,3)转为期望状态(0,0)的路径(当然对有些问题这种路径不一定存在),也就是要确定一系列的允许运算dn(n=1,2,…,m),使得(3,3)+d1+d2+…+dm=(0,0).由于本问题涉及的变量不多,约束条件也不多,我们可以凭简单的演算来求解.当某些问题变量较多,约束条件也较复杂时,我们可以借助计算机,以避免十分繁琐的演算.下面是利用状态转移方程直接求解“夫妻过河”问题的一条路径:经过决策经过11次会完成。
夫妻过河问题的程序(可直接运行)

function jueche=guohem=input('输入男人数:');w=input('输入女人数:');c=input('船的最大容量:');if m>wm=input('输入男人数:');w=input('输入女人数:');c=input('船的最大容量:');end%%%%%%%第一阶段决策生成结束jc=1; %决策向量放在矩阵d中,jc是插入新元素的行标初始为1;for i=0:cfor j=0:cif (i+j<=c)&&(i+j>0) %满足条件D={(1<=u+v<c,u,v=0,1,2}d(jc,1:3)=[i,j,1];%生成一个决策向量立刻扩充为3维;d(jc+1,1:3)=[-i,-j,-1]; %同时生成他的负向量;jc=jc+2; %由于生成两个决策向量,jc向下移动2个;endj=0;endend%%%%%状态数组的生成kx=1; %状态向量放在A矩阵中,生成方法同矩阵生成;for i=w:-1:0for j=m:-1:0if((i==j)&&(j>=1)&&(j<=1))|| ((i==j)&&(j>=2)&&(j<=2))||((i==0)||i==w)% (i=j)&(j=1))| ((i=j)&(j=2))|((i==0)|i==w)为可以存在的状态的%约束条件%生成状态数组的集合A(kx,1:3)=[i,j,1];A(kx+1,1:3)=[i,j,0];kx=kx+2;endendw=j;end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 将状态向量生成抽象矩阵k=(1/2)*size(A,1);cx=zeros(2*k,2*k);a=size(d,1);for i=1:2*kfor j=1:ac=A(i,:)+d(j,:) ;x=(A(:,1)==c(1))&(A(:,2)==c(2))&(A(:,3)==c(3)) ;v(i,x)=1; %x为空不会改变v值endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dijstra 算法x=1; y=size(A,1);m=size(v,1);T=zeros(m,1);T=T.^-1;lmd=T;P=T;S=zeros(m,1);S(x)=1;P(x)=0; lmd(x)=0;k=x;while(1)a=find(S==0);aa=find(S==1);if size(aa,1)==mbreak;endfor j=1:size(a,1)pp=a(j,1);if v(k,pp)~=0if T(pp)>(P(k)+v(k,pp))T(pp)=(P(k)+v(k,pp));lmd(pp)=k;endendendmi=min(T(a));if mi==infbreak;elsed=find(T==mi);d=d(1);P(d)=mi;T(d)=inf; k=d;S(d)=1;endendif lmd(y)==infjueche='can not reach';return;endjueche(1)=y;g=2; h=y;while(1)if h==xbreak;endjueche(g)=lmd(h);g=g+1;h=lmd(h);endjueche=A(jueche,:);jueche(:,3)=[]。
3对夫妻过河的Matlab程序

function kexing = f_kexing(a)% ycu sunkanry% 判断一个状态a是否可行状态% 可行状态为(0,i),(i,i),(3,i);0<=i<=3if (a(1) == a(2) && a(1) >= 0 && a(1) <= 3)%可行状态为(i,i), kexing = 1;elseif (a(1) == 0 ) && a(2) >= 0 && a(2) <= 3%可行状态为(0,i) kexing = 1;elseif((a(1) == 3) && a(2) >= 0 && a(2) <= 3)%可行状态为(3,i) kexing = 1;elsekexing = 0;endendendfunction jie = guohe()kaishi = [3,3];%开始状态jieshu = [0,0];%结束状态jie = -ones(2,50) ;jie(:,1) = kaishi;jie(:,2) = [3,1];%第一次移动两个人过去%过去时人尽量多,去多qu = [0 2 1 0 1;2 0 1 1 0];%回来时人尽量少hui = [0 1 0 2 1;1 02 0 1];yd_cishu = 2;%移动次数index = zeros(1,50);%指示第yd_cishu次移动是采用的是那种方式index(1) = 1;index(2) = 1;%注意矩阵是否相等的判断while(jie(1,yd_cishu) ~= jieshu(1) || jie(2,yd_cishu) ~= jieshu(2) ) if( mod(yd_cishu,2) ~= 0 )%奇数次移动while(index(yd_cishu)<=5 )switch(index(yd_cishu))case {1}%左移一位jixu = jie(:,yd_cishu) - qu(:,1);case {2}%左移两位jixu= jie(:,yd_cishu) - qu(:,2);case {3}%向下移一位jixu = jie(:,yd_cishu) - qu(:,3)';case {4}%向下移两位jixu = jie(:,yd_cishu) - qu(:,4)';case {5}%左下移一位jixu = jie(:,yd_cishu) - qu(:,5)';endif(f_kexing(jixu))%当移动状态可行,则保存移动情况yd_cishu = yd_cishu + 1;%继续移动jie(:,yd_cishu) = jixu;index(yd_cishu) = index(yd_cishu) + 1;index(yd_cishu) = 1;%下一次移动选择从新开始break;elseindex(yd_cishu) = index(yd_cishu) + 1;endendif(index(yd_cishu)>5)yd_cishu = yd_cishu - 1;%回退endelse%偶数次移动while(index(yd_cishu)<=5 )switch(index(yd_cishu))case {1}%向上移两位jixu = jie(:,yd_cishu) + hui(:,1);case {2}%向上移一位jixu = jie(:,yd_cishu) + hui(:,2);case {3}%右移两位jixu = jie(:,yd_cishu) + hui(:,3);case {4}%右移一位jixu = jie(:,yd_cishu) + hui(:,4);case {5}%右上移一位jixu = jie(:,yd_cishu) + hui(:,5);end%当移动状态可行,则保存移动情况且回来船上的人员状态不能和上一次的情况完全一样,否则就重复操作无意义了。
人猫鸡米渡河问题的matlab求解法

摘要:人带着猫、鸡、米过河,船除需要人划之外,至多能载猫、鸡、米三者之一,而当人不在场时猫要吃鸡、鸡要吃米,试通过数学建模,运用计算机给出一个安全渡河方案,并使渡河次数尽量少。
一、问题分析:此问题是从状态向量A (1,1,1,1)经过奇数次运算向量B 变为状态向量A (0,0,0,0)的状态。
转移过程为什么是奇数次?我们注意到过河有两种,奇数次的为从左岸到右岸,而偶数的为右岸回到左岸,因此得到下述转移过程,所以最后应该是过河完成时状态转移数为奇数次。
二、模型假设:1.假设船除了载人之外,至多只能载猫、鸡、米三者之一。
2.当人不在场时,猫一定会吃鸡、鸡一定会吃米。
我们将人,猫,鸡,米依次用四维向量中的分量表示,当一物在左岸时,相应的分量记为1,在右岸时记为0.如向量(1,0,1,0)表示人和鸡在左岸,猫和米在右岸,并将这些向量称为状态向量。
例如(1,1,1,1)表示它们都在左岸,(0,1,1,0)表示猫,鸡在左岸,人,米在右岸;由于问题中的限制条件,有些状态是允许的,有些状态是不允许的。
凡问题可以允许存在的状态称为可取状态。
A 向量定义为状态变量。
比如()11,0,1,0A 是一个可取状态向量,但()20,0,1,1A 是一个不可取状态向量。
此外,B 向量定义为运载变量。
把每运载一次也用一个四维向量来表示。
如()11,1,0,0B 表示人和猫在船上,而鸡和米不在船上,这自然是可取的运载,因为船可载两物,而()21,0,1,1B 则是不可取运载,依此规律类推。
三、模型建立:由上可知,可取状态向量A共有10个,即:()0,0,0,01,1,1,1()()0,0,0,11,1,1,0()()0,0,1,01,1,0,1()()0,1,0,01,0,1,1()()1,0,1,0()0,1,0,1可取运载B有4个:(1,1,0,0)、(1,0,1,0)、(1,0,0,1)、(1,0,0,0)。
四、算法设计:1、规定A和B的每一分量相加时按二进制法则进行,这样一次渡河就是一个可取状态和一个可取运载相加,在判断和向量是否属于可取状态即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
曲靖师范学院本科生毕业论文论文题目: matlab求解夫妻过河问题学院、年级:数学与信息科学学院2010级学科、专业:数学数学与应用数学指导教师:郭昀完成日期:2013年12月27日曲靖师范学院教务处摘要渡河问题.始于公元8 世纪,至今它仍是一个逻辑难题,许多数学建模教材上已经提到.这个问题指的是:有不同的对象或生物,他们其中一些相互不共存,逐步地让一小群体从河的一岸到另一岸,经过有限步后,该群体全部从一岸达到另一岸,并且要求没有任何损失.在渡河问题的夫妻过河问题中我们发现状态转移问题有时不一定有解,有时的解又不一定有规律,本文对于夫妻过河问题利用图解法和matlab编写程序求解5对、6对夫妻过河是否有解,并推广到对夫妻与船的运载能力对于能否安全渡河时它们之间的关系。
关键词:多步决策 matlab 数学模型渡河问题Problem of couples across the river Abstract: the problem of crossing the river. In the 8th century, it still is a logical problem, many mathematical modeling teaching material mentioned. The question is: crossing the river problem of couples across the river, we found that state transition problem sometimes does not necessarily , sometimes the solution is not necessarily regular, in this paper, using the graphical method for the problem of couples across the river and the matlab program to solve the 5, 6 for couple across a river if there is a solution,And derived to n couple with the ability to run m to safe crossingthe river when the relationship between them.Keywords: Multistep decision Matlab Mathematical modelProblem of crossing the river目录1 引言 ................................................................2 文献综述 ............................................................2.1 国内外研究现状.......................................................2.2 国内外研究现状评价...................................................2.3 问题提出 ............................................................3 模型假设 ............................................................4 符号说明 ............................................................5 重述3、4对夫妻过河问题的解..........................................5.1 3对夫妻过河的解.....................................................5.2 4对夫妻过河的解.....................................................6 五对夫妻过河模型.....................................................6.1 模型构成 ............................................................6.2 模型建立 ............................................................6.3 模型求解 ............................................................6.31 Matlab编程求解.....................................................6.32 图解法 .............................................................7 六对夫妻过河模型.....................................................7.1 模型构成 ............................................................7.2 模型求解 ............................................................8 n对夫妻过河情况 (1)8.1 求解 (1)8.2 验证 (1)9 总结与展望 (1)9.1 总结 (1)9.2后续研究工作展望 (1)参考文献 (1)附录 (1)1 引言这是一个古老的阿拉伯数学问题。
有3对夫妻要过河,船最多可载2人,约束条件是根据阿拉伯法律,任一女子不得在其丈夫不在场的情况下与其他男子在一起,问此时这3对夫妻能否过河?如果是4对夫妻过河,其他条件不变的情况下,夫妻能否过河?就这一问题我们发现状态转移问题有时不一定有解,有时的解又不一定有规律(当4对夫妻过河,其他条件不变的情况下,夫妻能否过河?我们发现此问题是无解的),但是当我们改变条件船最多可载3人时有解.就其数学建模思想来说, 一般采用将该问题转化为一个多步决策模型, 模型求解的方法大多为图解法然而一旦问题的条件(例如丈夫、妻子或者小船上每次渡河人数等) 发生变化, 图解法求解犹如大海捞针!很难奏效. 因此计算机编程求解模型的方法就显得非常重要了.该题求解编程的难点在于允许状态与决策这两个方面的处理与实现.此问题中利用的多目标决策方法是从20世纪70年代中期发展起来的一种决策分析方法.决策分析是在系统规划、设计和制造等阶段为解决当前或未来可能发生的问题,在若干可选的方案中选择和决定最佳方案的一种分析过程.在社会经济系统的研究控制过程中我们所面临的系统决策问题常常是多目标的,例如我们在研究生产过程的组织决策时,既要考虑生产系统的产量最大,又要使产品质量高,生产成本低等。
这些目标之间相互作用和矛盾,使决策过程相当复杂使决策者常常很难轻易作出决策.这类具有多个目标的决策总是就是多目标决策. 多目标决策方法现已广泛地应用于工艺过程、工艺设计、配方配比、水资源利用、能源、环境、人口、教育、经济管理等领域.2 文献综述2.1国内外研究现状渡河问题有不同的版本,从目前参阅的文献资料中了解的信息来看文献[1]、[5]、[6]的商人和随从渡河问题利用通过遍历状态空间树来搜索可行的渡河方案、建立多步决策模型、计算机编程等方法解决,文献[3]、[4]的传教士和食人族难题仿照整数( 二元) 规划的图示方法、用矩阵表示与迭代算法等方法解决,文献[5]军官渡河问题和人与机器渡河问题利用Dijkstra算法,文献[13]的人、猫、鸡、米过河问题利用计算机C语言编程求解,文献[6]、[15]的人、狼、羊、菜过河问题利用多为向量的方法解决.但是解决方法是类似的,都是要找到允许状态和允许决策.2.2国内外研究现状评价综上所述,渡河问题至今仍是一个逻辑难题.国内外对于过河问题的研究很多,但是不是很全面,由于渡河问题的种类很多,尽管研究方法大体相同,但是他的解却是有很多种,或者有的问题根本无解,就夫妻过河问题而言当4对夫妻过河,船只能载2人时问题无解.本文在夫妻过河问题的基础上从3对、4对夫妻研究至5对、6对,并推至n对夫妻过河情况,利用图解法和matlab编程解决.2.3 问题提出问题1:若船最多能载3人,5对夫妻能否过河?六对夫妻呢?如果不可以那么船最多能载几人才可以?问题2:n对夫妻要过河,船最多能载m人,n和m有怎样的关系?任务:用matlab编写程序求问题1的解,并用已有程序验证问题2.3 模型假设1.不考虑过河环境因素的影响情况;2.夫妻过河只能依靠小船;3.每个男人和女人都会划船;4 符号说明表示渡河的夫妻对数表示第k次渡河前此岸丈夫的人数表示第k次渡河前此岸妻子的人数表示第次过渡船上丈夫的人数表示第次过渡船上妻子的人数表示第几次渡河表示渡河的次数表示允许状态集合表示允许决策集合表示状态表示决策5 重述3、4对夫妻过河问题的解有3对夫妻要过河,船最多可载2人,约束条件是根据阿拉伯法律,任一女子不得在其丈夫不在场的情况下与其他男子在一起,问此时这3对夫妻能否过河?如果是4对夫妻过河,其他条件不变的情况下,夫妻能否过河?记次过河前此岸丈夫的人数为,妻子的人数为.记表示状态, =(),记表示决策, =()。
5.1 3对夫妻过河的解5.2 4对夫妻过河的解可看出问题无法再解下去6 五对夫妻过河模型6.1模型构成记第次过河前此岸丈夫的人数为,妻子的人数为, =1,2,3……由已知条件知可取状态为(0,1)(0,2)(0,3)(0,4)(0,5)(0,0)(5,5)(5,4)(5,3)(5,2)(5,1)(5,0)(1,1)(2,2)(3,3)(4,4)共16种,用表示可取状态集合,成为允许状态集合,不难验证,对此岸和彼岸都是可行的.记第次过渡船上的丈夫的人数为,妻子的人数为,由已知条件知可取状态为(0,1)(0,2)(0,3)(1,0)(2,0)(3,0)(1,1)(2,1),其中(1,1)表示1对夫妻,共五种,用表示可取状态集合,成为允许决策集合. 6.2模型建立我们发现当为奇数时船从此岸驶向彼岸,当为偶数时船从此岸驶向彼岸,记表示状态, =(),记表示决策, =()。