- 1、本文档共152页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE #
第01章建立数学模型
实验01-01商人们怎样安全过河(编程,p7~8)
三名商人各带一个随从乘船渡河,一只小船只能容纳二人,由他们自己划行 随从们密约,在河的任一岸,一旦随从的人数比商人多,就杀人越货。但是如 何乘船的大权掌握在商人们手中。商人们怎样才能安全渡河呢?
[分析]
决策:每一步(此岸到彼岸或彼岸到此岸)船上的人员。
要求:在安全的前提下(两岸的随从数不比商人多),经有限步使全体人员 过河。
[模型构成]
Xk 第k次渡河前此岸的商人数
yk 第k次渡河前此岸的随从数 Xk , yk=0,1,2,3; k=1,2,
过程的状态 Sk=(Xk , yk)
允许状态集合 S={(x , y) x=0, y=0,1,2,3; x=3, y=0,1,2,3; x=y= 1,2}
Uk 第k次渡船上的商人数
Vk 第k次渡船上的随从数 Uk , Vk=0,1,2; k=1,2,
决策 dk=(Uk , vk)
允许决策集合 D={(u , v) u+v =1, 2}
状态转移律 Sk+1=Sk+(-1)kdk
[多步决策问题]
求d^D(k=1, 2,…,n),使轿&并按转移律由 &=(3,3)到达斜+1=(0,0)
[算法]
给出允许状态集合;%用4阶方阵mark标记,其中mark(i,j)=0表示(i-1,j-1) 为允许状态,mark(i,j)=3表示(i-1,j-1)为不可达状态
给出允许决策集合; % D=[0 1; 0 2; 1 0; 1 1; 2 0]
初始状态进栈;%进栈数据包括:当前状态,出发标记(-1为从此岸出发,
1为从彼岸出发),选择第几个决策
初始状态标记;%mark(i,j)=-1表示从此岸出发转移到状态(i-1,j-1)已走过, mark(i,j)=1表示从彼岸出发转移到状态(i-1,j-1)已走过,mark(i,j)=3表示上 述两种情况都出现
循环直到栈空
5.1出栈,将出栈的状态作为当前状态,并选择下一个决策; %原决策失
败,回溯
5.2循环直到决策都用过或到达最终状态
5.2.1由当前状态、出发标记和决策得到转移到的新状态;
5.2.2若新状态是允许状态且没走过,则执行;否则执行
标记新状态的访问信息;%mark(i,j)=-1/1/3
当前状态及相关数据进栈;%存储决策过程
将新状态作为当前状态,改变出发标记,选择第 1个决策;
跳转5.2; %从新状态开始
选择下一个决策;%当前状态不变,当前决策无效
5.3当前状态为最终状态,则退出循;
如果有解,贝揃出决策过程;否则输出“无解”;
[程序]
clear; clc;
mark=3*ones(4);
mark(1,:)=0; mark(4,:)=0; %mark(i,j)=0 为允许状态
mark(2,2)=0; mark(3,3)=0;
D=[0 1; 0 2; 1 0; 1 1; 2 0];% 允许决策集合
sp=1; st(sp,:)=[3,3,-1,0]; %进栈,(3,3)为当前状态,-1表示当前在此岸,决策
0
mark(4,4)=3;
while sp>0
s0=st(sp,[1,2]); ss=st(sp,3); d=st(sp,4);
sp=sp-1% 出栈
d=d+1;
while d<6 && any(s0>0)
s1=s0+ss*D(d,:);
i=s1(1)+1;j=s1(2)+1;
if all(s1>-1) && all(s1<4) && (mark(i,j)==0 || mark(i,j)==-ss)
if mark(i,j)==0
mark(i,j)=ss;
else
mark(Ljll3; end
SPHSP+I^ffi^ sf(SPM"soyssa;
SONS」; SSH.SS; cM; e_se
dHd+1;
end
end
if wohho
break;
end
end
if wohho
disposal 毎P1n>);so=f 血翔 e_se
disp (丸尊);
end
PAGE
PAGE #
实验01-02
实验01-02求解人口指数增长模型(编程,
p10)
3
0
3
1
1
1
2
2
0
2
0
3
0
1
0
2
0
0
人口指数增长模型满足微分方程
dx dt二
dx dt
二 r x(t)
x(0) = Xo
其中,x(t)为t时刻的人口数,r为人口增长率(常数),X0为初始时刻(t=0) 的人口数。
>> x=dsolve(Dx=r*x' ,'x(0)=x0')
x =
x0*exp(r*t)
实验01-03人口指数增长模型参数估计及结果分析(美国
仃90-2000年 人口)(验证,p11)
用表中数据进行数据拟合求参数 r
文档评论(0)