运筹学实验报告doc.docx
- 文档编号:5490710
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:11
- 大小:18.95KB
运筹学实验报告doc.docx
《运筹学实验报告doc.docx》由会员分享,可在线阅读,更多相关《运筹学实验报告doc.docx(11页珍藏版)》请在冰豆网上搜索。
运筹学实验报告doc
运筹学实验报告
篇一:
高志通运筹学实验报告
运筹学
实验报告
姓名:
高志通
学号:
XX0404302
班级:
信息与计算科学1203
指导老师:
武梦梦
目录
1、线性规划问题:
.......................................................................................3
2、运输问题:
..............................................................................................5
3、一般整数规划问题:
...............................................................................9
4、指派问题:
............................................................................................11
相关问题说明:
一、实验性质和教学目的
本实验是运筹学课内安排的上机操作实验。
目的在于了解、熟悉计算机Lingo软件在运筹学模型求解中的作用,激发学习兴趣,提高学习效果,增强自身的动手能力,提高实际应用能力。
二、实验基本要求
要求学生:
1.实验前认真做好理论准备,仔细阅读实验指导书;
2.遵从教师指导,认真完成实验任务,按时按质提交实验报告。
三、主要参考资料
1.LINGO软件
3.优化建模与LINDO/LINGO软件,清华大学出版社,XX
4.运筹学编写组主编,运筹(本文来自:
wwW.xIAocAofaNwE小草范文网:
运筹学实验报告)学(第四版),清华大学出版社,XX
5.胡运权主编,运筹学教程(第二版),清华大学出版社,XX
实验1线性规划问题
maxz?
4x1?
3x2
?
9x1?
8x2?
12?
7x?
11x?
24?
12s..t?
?
9x1?
11x2?
13
?
?
x1,x2?
0
(1)给出原始代码;
max4x1+3x2
st
9x1+8x2 7x1+11x2 9x1+11x2 end
(2)计算结果(包括灵敏度分析,求解结果粘贴);
Globaloptimalsolutionfound.
Objectivevalue:
5.333333
Infeasibilities:
0.000000
Totalsolveriterations:
2
VariableValueReducedCost
X11.3333330.000000
X20.0000000.5555556
RowSlackorSurplusDualPrice
15.3333331.000000
20.0000000.4444444
314.666670.000000
41.0000000.000000
Rangesinwhichthebasisisunchanged:
ObjectiveCoefficientRanges
CurrentAllowableAllowableVariableCoefficientIncreaseDecreaseX14.000000INFINITY0.6250000X23.0000000.5555556INFINITY
RighthandSideRanges
RowCurrentAllowableAllowableRHSIncreaseDecrease
212.000001.00000012.00000324.00000INFINITY14.66667413.00000INFINITY1.000000
(3)回答下列问题(手写):
a)最优解及最优目标函数值是多少;
答:
最优解:
X1=1.333333X2=0.000000;最优目标函数值=5.333333b)资源的对偶价格各为多少,并说明对偶价格的含义;
答:
y1=0.4444444;y2=0.000000;y3=0.000000;对偶价格的含义:
表示每增加一个单位(约束右边的常数),目标值改变的数量(在最大化问题中目标函数值是增加,在最小化问题中目标函数值是减少)。
c)为了使目标函数值增加最多,让你选择一个约束条件,将它的常数项增加一个单位,你将选择哪一个约束条件?
这时目标函数值将是多少?
答:
选择第一个约束条件,若常数项增加一个单位,目标函数值将=5.77777d)对x2的目标函数系数进行灵敏度分析;
答:
目标函数中x2变量原来的费用系数为3,允许增加(AllowableIncrease)=0.5555556、允许减少(AllowableDecrease)=INFINITY,说明当它在[3-∞,3+0.5555556]=[-∞,3.5555556]范围变化时,最优基保持不变。
e)对第2个约束的约束右端项进行灵敏度分析;
答:
当它在[24-14.66667,24+∞]=[9.33333,∞]范围变化时,最优基保持不变。
f)结合本题的结果解释“ReducedCost”的含义。
答:
ReducedCost指为了使某个变量在解中的数值增加一个单位,目标函数值必须付出的代价。
在本题中x1的ReducedCost值为0,当x1增加一个单位时,目标函数值将不变。
x2的ReducedCost值为0.5555556,即当x2增加一个单位时,目标函数值将减少0.5555556;
实验2运输问题
如下是一个最小费用运输问题。
产销量及单位运价如下表。
(1)给出原始代码;
Sets:
warehouse/1..6/:
WH;
customer/1..8/:
V;
routes(warehouse,customer):
c,x;
endsets
data:
WH=60,55,51,43,41,52;
V=35,37,22,32,41,32,43,38;
c=6,2,6,7,4,2,5,9,
3,6,5,3,8,9,8,2,
7,6,1,5,7,4,3,3,
5,2,7,3,9,2,7,1,
2,3,9,5,5,2,6,5,
5,7,2,2,3,1,4,3;
enddata
[obj]min=@sum(routes:
c*x);
@for(warehouse(i):
[sup]@sum(customer(j):
x(i,j))篇二:
运筹学实验报告
(1)
运筹学实验报告一、实验目的:
通过实验熟悉单纯形法的原理,掌握matlab循环语句的应用,提高编程的能力和技巧,体会matlab在进行数学求解方面的方便快捷。
二、实验环境:
MatlabXXb,计算机
三、实验内容(包含参数取值情况):
构造单纯形算法解决线性规划问题
Minz=cx
s.t.Ax=b
xj>=0,j=1,…,n
函数功能如下:
function[S,val]=danchun(A1,C,N)
其中,S为最优值,Val为最优解,A1为标准形式LP问题的约束矩阵及最后一列为资源向量(注:
资源向量要大于零),A1=[A+b];C是目标函数的系数向量,C=c;N为初始基的下标(注:
请按照顺序输入,若没有初始基则定义N=[])。
先输入A1,C,N三个必要参数,然后调用danchun(A1,C,N)进行求解。
在此函数中,首先判断N的长度是否为空,若为空,则flag=1,进入初始解问题的迭代求值,添加辅助问题,构建单纯形表,求g所对应的RHS值,若其>0,则返回该问题无解,若其=0,则返回A1,C,N三个参数,继续构造单纯形表求解。
A1为经过变换后的系数及资源向量,C为单纯形表的第一行,
N为经过辅助问题求解之后的基的下标。
否则,直接构建单纯形表,对该问题进行求解,此时flag=2,多次迭代后找到解。
另外,若在大于零的检验数所对应的系数均小于零时,会显示“此问题无界”。
若找到最优解和最优值时,会输出“val”和“S=”以及具体数值。
四、源程序(在matlab中输入edit后回车,写在.M文件中,并保存为danchun.M)function[S,val]=danchun(A1,C,N)
if(length(N)==0)
gN=zeros(1,length(A1(:
1)));
gC=[-C,gN,0];%原文题的检验数的矩阵
G=[zeros(1,length(C)),-ones(1,length(gN)),0];
val=zeros(1,length(C));%val为最优解;
fori=(length(C)+1):
length(C)+length(A1(:
1))%生成基变量
gN(i-length(C))=i;
end
Nn=gN;
%%%%%%%
ll=zeros(1,length(N));%比值最小原则
%生成除了最上端两行的表的矩阵
gb=A1(:
length(C)+1);
A1(:
length(C)+1)=[];
l=zeros(length(gN),length(gN));
gA=[A1,l,gb];
fori=1:
length(gb)
gA(i,gN(i))=1;
end
fori=1:
length(gN)%J为基本可行基所对应的检验数
J(i)=G(gN(i));
end
fori=1:
length(gN)%找到基本可行基的检验数,将其赋值为0if(J(i)~=0)
G=G-(J(i)/gA(i,gN(i)))*gA(i,:
);
end
end
flag=1;
else
flag=2;
A=A1;
Z=[-C,0];%单纯形表的第一行
val=zeros(1,length(C));%val为最优解;
ll=zeros(1,length(N));%比值最小原则
end
%%初始解问题
whileflag==1
fori=1:
length(gN)%J为基本可行基所对应的G的检验数
J(i)=G(gN(i));
JZ(i)=Z(gN(i));%JZ为基本可行基所对应的Z的检验数
end
fori=1:
length(gN)%找到基本可行基的检验数,将其赋值为0if(J(i)~=0)
G=G-(J(i)/gA(i,gN(i)))*gA(i,:
);
Z=Z-(JZ(i)/gA(i,gN(i)))*gA(i,:
);
end
G1=G;%G1为检验数
G1(:
length(G1))=[];
D=max(G1);%找到检验数的最大值
if(D if(G(length(G))>=1)
disp('此情况无解');
flag=0;
else
if(G(length(G))>=0)
fori=1:
length(gN)
if(max(gN) flag=2;
forj=1:
length(Nn)
a=Nn
(1);
gA(:
a)=[];
Z(a)=[];
end
A=gA;
N=gN;
break;
end
end
end
end
else%检验数大于0
fori=1:
length(G)
if(G(i)==D)%找到最大的那个检验数所对应的元素forj=1:
length(gN)
if(gA(j,i)>0)
ll(j)=gA(j,length(G))/gA(j,i);%求比值
else
ll(j)=10000;
end
end
d=min(ll);
fork=1:
length(ll)%找到进基和离基
if(ll(k)==d)
gN(k)=i;
gA(k,:
)=gA(k,:
)/gA(k,i);
form=1:
k-1
gA(m,:
)=-(gA(m,i)/gA(k,i))*gA(k,:
)+gA(m,:
);end
forn=k+1:
length(ll)
gA(n,:
)=-(gA(n,i)/gA(k,i))*gA(k,:
)+gA(n,:
);end
break;
end
end
end
end
end
end
while(flag==2)
fori=1:
length(N)%J为基本可行基所对应的检验数
J(i)=Z(N(i));
end
fori=1:
length(N)%找到基本可行基的检验数,将其赋值为0if(J(i)~=0)
Z=Z-(J(i)/A(i,N(i)))*A(i,:
);
end
end
Z1=Z;%Z1为检验数
Z1(:
length(Z1))=[];
D=max(Z1);%找到检验数的最大值
if(D disp('已找到最优解和最优值')
fori=1:
length(N)
val(N(i))=A(i,length(Z));
end
S=Z(length(Z));
disp('val');
disp(val);
flag=0;
else%检验数大于0
fori=1:
length(Z)
if(Z(i)==D)%找到最大的那个检验数所对应的元素forj=1:
length(N)
if(A(j,i)>0)
ll(j)=A(j,length(Z))/A(j,i);%求比值
else
ll(j)=10000;
end
end
d=min(ll);
if(d==10000)
disp('此问题无界')
flag=0;
break;
end
fork=1:
length(ll)%找到进基和离基
if(ll(k)==d)
N(k)=i;
A(k,:
)=A(k,:
)/A(k,i);
form=1:
k-1
A(m,:
)=-(A(m,i)/A(k,i))*A(k,:
)+A(m,:
);end
forn=k+1:
length(ll)
A(n,:
)=-(A(n,i)/A(k,i))*A(k,:
)+A(n,:
);end
break
end
end
end
end
end
end
五、运行结果与数据测试
参考例题:
例1:
Minz=3x1+x2+x3+x4
s.t.-2x1+2x2+x3=4
3x1+2x+x4=6
Xj>=0,j=1,2,3,4
在workspace中写入,形式如下:
>>A=[-22104
31016]
A=
-22104
31016
>>C=[3111]
C=
3111
篇三:
运筹学实验报告
运筹学实验报告
实验内容:
整数规划问题的建模和求解。
案例4.3“建业银行职员的上班安排”。
一、问题提出
南平市青山区建业银行分理处每周七天营业,从周一到周日每天值班人员数见下表:
试回答:
a)银行职员每周上班5天,休息两天,但具体哪几天上班由银行排定。
领导保证每周六或周日两个公休日内至少安排一天休息,该分理处至少配备多少名职员才能满足值班需要;b)因排定的值班表有的职员每周六、日均得到休息,有的只能安排一个公休日休息,显得不公。
于是研究一个值班的倒班计划,做到在一个周期内,每名职工公休日休息的天数一致,问如何才能做到这一点。
二、问题简述
从该银行每天需要值班人数表可看出:
七天所需职员人数分别为15.17.14.14.15.16.18。
每个职员每周值五个班。
为了满足值班需要,并且公平合理。
现制定以下两种方案,通过建立整数规划模型并求解,分析各种方案的最佳安排方式。
方案一:
每个银行职员每周上班5天,休息2天,且每周末至少休息1天。
方案二:
每个银行职员每周上班5天,休息2天,每周末至少休息1天,且每名职工周末休息天数一致。
三、符号说明
四、问题分析
方案一:
每名职员在周六、周日两天内至少休息一天,每周共上班5天。
由每名职员在周六、周日两天内至少休息一天可知,周六周日休息人数a6+a7>=t。
而通过每周共上班5天,可推出
?
a(i=1、2...7)=2t。
而由表格可知
i
因此综上,可列出方程。
方案二:
每名职员在周六、周日两天内至少休息一天且休息天数一致。
每名职员每周共上班5天。
由每名职员在周六、周日两天内至少休息一天且休息天数一致可知,任何一名职员只能在周末休息一天,否则就无人上班了。
因此,遇上一体的唯一区别在于,将a6+a7>=t改为a6+a7=t。
五、建模及求解
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运筹学 实验 报告 doc