商人过河数学模型Word下载.docx

上传人:b****1 文档编号:15260332 上传时间:2022-10-28 格式:DOCX 页数:7 大小:41.32KB
下载 相关 举报
商人过河数学模型Word下载.docx_第1页
第1页 / 共7页
商人过河数学模型Word下载.docx_第2页
第2页 / 共7页
商人过河数学模型Word下载.docx_第3页
第3页 / 共7页
商人过河数学模型Word下载.docx_第4页
第4页 / 共7页
商人过河数学模型Word下载.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

商人过河数学模型Word下载.docx

《商人过河数学模型Word下载.docx》由会员分享,可在线阅读,更多相关《商人过河数学模型Word下载.docx(7页珍藏版)》请在冰豆网上搜索。

商人过河数学模型Word下载.docx

1.每个商人和随从都会划船;

2.只有一条船,且每条船上最多只能乘坐两个人;

3.所有商人与随从之间没有矛盾,不会出现两人不愿意坐一条船的现象;

4.船在渡河的过程中不受外界环境的影响。

4、模型的建立与求解

1.模型建立

~第k次渡河前此岸的商人数,~第k次渡河前此岸的随从数

=0,1,2,3;

k=1,2,……

=(,,ck)~过程的状态,其中,,ck分别表示对应时刻此岸的商人,仆人数以及船的行进方向,其中c取值1表示即将向彼岸运行,为0表示即将向此岸运行

S~允许状态集合,S={(x,y)|x=0,y=0,1,2,3;

x=3,y=0,1,2,3;

x=y=1,2}

~第k次渡船上的商人数

~第k次渡船上的随从数

=(,)~决策,D={(u,v)|,,=0,1,2}~允许决策集合

k=1,2,……

因为k为奇数时船从此岸驶向彼岸,k为偶数时船从彼岸驶向此岸,所以状态随决策的变化规律是

=+~状态转移律

求∈D(k=1,2,…n),使∈S,并按转移律由=(3,3,1)到达状态=(0,0,0

(1))。

2.模型求解

本模型使用MATLAB软件编程求解,运行结果如下

>

chouxiang

输入商人数目:

3

输入仆人数目:

输入船的最大容量:

2

ans=

00

11

01

03

02

22

31

30

32

33

Matlab程序

functionfoot=chouxiang

%程序开始需要知道商人数,仆人数,船的最大容量

sr=input('

'

);

pr=input('

c=input('

ifpr>

sr

end

%状态数组生成

zt=1;

%状态数组存放在矩阵“A”中,zt为插入新元素的行标初始为1

fori=sr:

-1:

forj=pr:

if((i>

=j)&

((sr-i)>

=(pr-j)))|((i==0)|(i==sr))%(i>

=(pr-j)))|((i==0)|(i==sr))为可以存在的状态的约束条件

A(zt,1:

3)=[i,j,1];

%表示此岸安全

A(zt+1,1:

3)=[i,j,0];

zt=zt+2;

end

j=pr;

end;

%决策生成

jc=1;

fori=0:

c

forj=0:

if(i+j<

=c)&

(i+j>

0)%满足条件D={(u,v)|1<

=u+v<

=c,u,v=0,1,2}

d(jc,1:

3)=[i,j1];

%表示从此岸到彼岸

d(jc+1,1:

3)=[-i,-j,-1];

%表示从彼岸到此岸

jc=jc+2;

j=0;

end

%将状态数组生成抽象矩阵

k=(1/2)*size(A,1);

CX=zeros(2*k,2*k);

a=size(d,1);

fori=1:

2*k

forj=1:

a

c=A(i,:

)+d(j,:

);

x=find((A(:

1)==c

(1))&

(A(:

2)==c

(2))&

3)==c(3)));

v(i,x)=1;

%x为空不会改变v的值

%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);

ifsize(aa,1)==m

break;

size(a,1)

pp=a(j,1);

ifv(k,pp)~=0

ifT(pp)>

(P(k)+v(k,pp))

T(pp)=(P(k)+v(k,pp));

lmd(pp)=k;

mi=min(T(a));

ifmi==inf

else

d=find(T==mi);

d=d

(1);

P(d)=mi;

T(d)=inf;

k=d;

S(d)=1;

iflmd(y)==inf

foot='

cannotreach'

;

return;

foot

(1)=y;

g=2;

h=y;

while

(1)

ifh==x

foot(g)=lmd(h);

g=g+1;

h=lmd(h);

end

foot=A(foot,:

foot(:

3)=[];

5、模型评价与推广

1.模型的优点:

采用了较为成熟的数学理论建立模型,可行度比较高;

模型的求解运用了强大的matlab软件,结果可信度高,便于推广;

2.模型的缺点:

没有找到商人数﹑随从数及船的容量之间的数量关系;

没有考虑到实际生活中,在安全渡河的前提下,商人过河的优先级应高于随从。

3.该商人、随从过河模型可以完美解决此类商仆过河的决策问题,并且该模型还可推广至解决m个商人和n个随从过河,以及小船的最大载重人数改变时的问题,只需适当地改变相关的语句即可轻松实现模型的转换。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1