运筹学实验报告 .pdf
实验报告
《运筹学(二)》
2012~2013学年第一学期
学院(部)管理学院
指导教师高圣国
班级代号0316101
姓名/学号叶王虎031010119
同组人/
提交时间2012年12月26日
成绩评定
实验1
一、实验目的
1.加强学生分析问题的能力,锻炼数学建模的能力。
2.利用所学高级语言,设计动态规划算法,并完成程序设计。
二、实验内容
问题1(动态规划):
(投资问题)某公司拟现将3千万元用于扩建3工厂。每个项目预计可获得
的收益由表1给出。问如何投资可获得最大的收益。(教材P212)
表1
投资与收益投资额x
工厂0123
1#02.5410
2#0358.5
3#0269
三、实验步骤
1、建立模型
——对k##
S,…,3项目允许的投资额;
k
x——对k#项目的投资额;
k
w——对k#项目投资xk后的收益:w(S,x)=w(x);
kkkkkk
T——S=S-x;
kk+1kk
F——当第k至第3项目允许的投资额为S时所能获得的最大收益。
kk
为了获得最大收益,必须将5百万元资金全部用于投资。故假想有第4阶段存
在时,必有S=0。对于本问题,有下列递归方程:
4
f(S)=0
44
f(S)=max{w(x)+f+1(S+1)},,k=3,2,1
kkkkkk
2、编写代码
clc;
a=[02.5410
0358.5
0269];
[mn]=size(a);
max=0;
ii=1;
%fid=fopen(exp.txt,w)
forx=0:3
fory=0:3-x
forz=0:3-x-y
%z=3-x-y;
tep(ii,:)=[xyza(1,x+1)+a(2,y+1)+a(3,z+1)];
%fprintf(fid,%4.2f%4.2f%4.2f%4.2f\n,tep(ii));
fprintf(%4.2f%4.2f%4.2f\n,tep(ii,1:3));
fprintf(%4.2f%4.2f%4.2f%4.2f\n,tep(ii,:));