运筹学实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(7)Variables,表示变量,Total 2,表示总决策变量2个,非线性(Nonlinear)变量和整数(Integer)变量都是0个。
(8)Constraints,表示约束,Total 4,表示包括目标函数一共4个约束,非线性(Nowenku.baidu.comlinear)约束0个。
(9)Nonzeros,表示非零系数,Total 6,表示包括目标函数和约束条件中变量的非零系数6个,右端常数项不算。
!约束条件;
@sum(js(J):a(1,J)*x(J))=b(1);
@sum(js(J):a(2,J )*x(J))<=b(2);
@sum(js(J):a(3,J)*x(J))>= b(3);
!自由变量;
@free(x(4));
!指定常量的值;
data:
c=-3 4 -2 5;
b=-2 14 2;
五、实验内容及步骤
教学过程中所见到的运筹学模型大多是小规模的,但是,在解决生产和经营管理活动中的实际时,建立的通常是含有很多和变量和约束条件的模型,用前面的方法,经常要花费大量的时间来输入代码或模型,下面介绍编程的方法,对于解决大型复杂的模型,效果显著。
例2.1求解下面线性规划的数学模型;
min z=-3x1+4x2-2x3+5x4;
S.t. AX≤b
AeqX=Beq
命令:x=linprog(c,A,b,Aeq,beq)
注意:若没有不等式:AX≤b约束,则令A=[ ],b=[ ].
3.模型minz=cX
S.t. AX≤b
AeqX=Beq
VLB≤X≤VUB
命令:x=linprog(c,A,b,Aeq,beq, VLB,VUB)
注意:若没有等式:AeqX=Beq约束,则令A=[ ],b=[ ].
(4)Variable Value Reduced Cost
X1 4.000000 0.000000
X1 2.000000 0.000000
最优解的变量X1=4.000000,X2=2.000000。
(5)Reduced Cost:表示减少的成本,即最小化问题的最优目标函数中各变量的检验数,即在其它变量不变时,该变量减少一个单位,目标费用减少的数量如图8。对于最大化问题,是最优目标函数中各变量的检验数的相反数,表示当该变量增加一个单位时目标函数减少的数量如图9。这里由于上面X1和X2为取值非零的基变量,所以检验数为零。Reduced Cost为在最优解时,最小化问题中变量的检验数,最大化问题中变量检验数的相反数。
(6)Row Slack or Surplus Dual Price
1 14.00000 1.000000
2 0.000000 1.500000
3 0.0000000.1250000
44.000000 0.000000
Slack or Surplus表示松弛或剩余变量,即将最优解带入各个约束条件后,左边比右边小的或大的数量,表示在最优方案中,剩余或超过的资源数量。注意,这里第一行表示目标函数,其松弛或剩余变量和对偶价格都没有意义。
Objective value: 2.000000
Total solver iterations: 0
Variable Value Reduced Cost
X1 0.000000 15.50000
X2 8.000000 0.000000
X3 0.000000 8.500000
X4 -6.000000 0.000000
图6
图7
图8
关于图6的Solution Report的注释如下:
(1)Global optimal solution found.整体最优解被找到。
(2)Objective value: 14.00000.最优值为14。
(3)Total solver iterations: 1.求解的总迭代步数为1步。
2.用Excel加载规划求解,对所建立线性规划模型求解;
3.用Matlab调用函数linprog(),对所建立线性规划模型求解;
4.用Lingo编写程序,对所建立线性规划模型求解;
5.用1stopt对所建立线性规划模型求解.
【注】:根据所提供的资料,自学各种软件的用法。
三、实验要求
1.学生在实验操作过程中自己独立完成,1人1组;
问题:某制药厂生产甲、乙两种药品,生产这两种药品要消耗某种维生素。生产每吨药品所需要的维生素量分别为30Kg,20Kg,所占设备时间分别为5台班,1台班,该厂每周所能得到的维生素量为160kg,每周设备最多能开15个台班。且根据市场需求,甲种产品每周产量不应超过4t。已知该厂生产每吨甲、乙两种产品的利润分别为5万元及2万元。问该厂应如何安排两种产品的产量才能使每周获得的利润最大?
5级成绩评定标准如下:
优秀:
能够综合应用所学过运筹学知识解决案例问题,模型建立及分析过程合理,求解过程及结果可靠,体现了学生较强的分析和解决实际问题的能力,实验报告完整。实验工作量充分。
良好:
能够综合应用所学过运筹学知识解决案例问题,模型建立及分析过程合理,求解过程及结果基本可靠,体现了学生较强的分析和解决实际问题的能力,实验报告较完整。实验工作量较充分。
(3)Objective,目标函数值为14,由于处于最优解状态,所以这里表示最优值为14。
(4)Infeasibility 0,不可行性0,表示此时有可行解,否则没有可行解。
(5)Iteration 1,表示迭代了1步求得最优解。
(6)Extended Solver Status,表示扩展的解的状况,主要用于整数规划和非线性规划。
二、实验内容
1.对线性规划问题的习题,列出线性规划模型并求解;
2.用Lingo编写程序,对所建立线性规划模型求解;
三、实验要求
1.学生在实验操作过程中自己独立完成,1人1组;
2.完成实验报告:分析结果的正确性,说明对于大规模线性规划问题的求解Lingo具有的优势。
四、实验仪器、设备
操作系统为Windows 2000及以上的电脑,并装有Lingo软件。
运筹学课程上机实验要求
每项实验提交一份实验报告,根据实验报告进行上机实验成绩评定。提交实验报告要求:
1.提交电子word版运筹学课程实验报告一份,文件名以学生的学号命名(撰写要求及格式参考附件);
2.实验报告统一由学习委员打包发送到chen.zhh@163.com
3.提交报告时间:下次上机之前。
成绩评定等级主要分5级,优秀(100分)、良好(85分)、中等(70分)、及格(60分)、不及格(60分以下)。具体成绩评定还可根据实际情况界于5等级成绩之间细评为10等级。优(100分)、优-(95分)、良+(90分)、良(85分)、良-(80)、中+(75分)、中(70分)、中-(65分)、及格(60分)、不及格(60分以下)。
4.命令:[x, fval]=linprog(…)
返回最优解x及x处的目标函数值fval.
附录4:
Lingo用于求解小规模线性规划问题
对于小型线性规划模型的求解,LINGO中可以用一种与线性规划的数学模型及其类似的方式直接输入模型来求解,简单方便。
例1.1求解下面的线性规划
maxz=2x1+3x2
x1+2x2≤8
4x1-x2+2x3-x4=-2;
x1+x2+3x3-x4≤14;
-2x1+3x2-x3+2x4≥2;
x1,x2,x3≥0,x4无约束;
编程如下:
!定义变量与常量,给出了值的为常量;
sets:
is/1..3/:b;
js/1..4/:c,x;
links(is,js):a;
endsets
!目标函数;
min=@sum(js(J):c(J)*x(J));
(7)Dual Price,对偶价格,即最大化问题中对偶变量的最优解的值如图9所示,对于最小化问题,对偶价格为对偶变量的最优解的值的相反数。
图9
图10
例1.2求解下面线性规划的数学模型
min z=-3x1+4x2-2x3+5x4;
4x1-x2+2x3-x4=-2;
x1+x2+3x3-x4≤14;
-2x1+3x2-x3+2x4≥2;
Row Slack or Surplus Dual Price
1 2.000000 -1.000000
2 0.000000 4.500000
3 0.000000 0.5000000
4 10.00000 0.000000
实验
一、实验目的
1.掌握线性规划建模的方法与步骤;
2.熟悉Lingo求解较大规模线性规划问题.
(1)数与变量的乘积,乘号用空格表示;
(2)约束条件之前用s.t.或subject to表示后面是约束;
(3)每行后面不用分号结束;
(4)这种输入法的好处是和LINDO的输入一致,可以直接在LINDO中求解,做灵敏度分析较方便,也能得到最优单纯形表。
图4
点菜单栏的LINGO→Solver,或直接点工具栏上的,可得求解结果即解的状况(Solver Status)和解报告(Solution Report):
图5
关于图5的Solver Status的注释如下:
(1)Model(模型) LP(线性规划Linear programming,其它模型还有非线性规划NLP(Nonlinear programming ),整数线性规划ILP(Integer),整数非线性规划INLP)
(2)State(状态) Global Opt(整体最优解Global optimal solution,线性规划的最优解都是整体最优解,非线性规划有局部最优解(Local Opt)和整体最优解之分,其它状态还有无可行解(Infeasible)图7和无界解(Unbounded)图8)
x1,x2,x3≥0,x4无约束;
LINGO中输入如下的代码:
min=-3*x1+4*x2-2*x3+5*x4;
4*x1-x2+2*x3-x4=-2;
x1+x2+3*x3-x4<=14;
-2*x1+3*x2-x3+2*x4>=2;
@free(x4);
求解可得解报告:
Global optimal solution found.
a=4 -1 2 -1
1 1 3 -1
-2 3 -1 2;
(5)LINGO系统默认所有的变量非负,因此非负变量的约束可省略,而非正变量和自由变量要用x1<=0和@free(x2)表示;
(6)LINGO中不能输入下标,x1→x1。
图3
注2:例1.1的模型求解还可以按图4的方式输入代码求解。此时LINGO中输入的代码和线性规划模型的除注1的相关差异外,还有如下不同:
中等:
能够综合应用所学过运筹学知识解决案例问题,模型建立及分析过程基本合理,求解过程及结果基本可靠,体现了学生分析和解决实际问题的基本能力,实验报告较完整。
及格:
基本能够综合应用所学过运筹学知识解决案例问题,具有问题分析过程及建立了问题基本模型,体现了学生分析和解决实际问题的基本能力,实验报告基本完整。
2.完成实验报告:分析结果的正确性,写出简短报告说明各软件的优劣。
3.实验学时:4学时
四、实验仪器、设备
操作系统为Windows 2000及以上的电脑,并装有Office, Lingo, Matlab软件,1stopt软件自行下载,无需安装。
五、实验步骤
上机:建立下列问题的数学规划模型,并尝试用各种软件进行求解。
4x1≤16
4x2≤16
x1,x2≥0
LINGO中的输入的代码如图2所示,这种输入方式的优势在于适合LINDO系统。
图2
注1:LINGO中输入的代码和线性规划模型的差异如下:
(1)max z→max,min z→min;
(2)每一行(包括目标函数)用英文的分号结束;
(3)数与变量的乘积用*表示;
(4)不等号≤和≥用<=和>=或<和>表示;
每吨产品的消耗
每周资源总量


维生素/kg
30
20
160
设备/台班
5
1
15
附录1:
Excel规划求解,用于求解线性规划。见附件
附录2:
1stOPT用于求解线性规划。见附件
附录3:
Matlab用于求解线性规划。
1.模型minz=cX
S.t. AX≤b
命令:x=linprog(c, A, b)
2.模型minz=cX
不及格:
没有问题分析过程及模型,实验报告不符合要求。
【注】:如有两份或以上实验报告雷同,均评定为不及格。
实验
一、实验目的
1.掌握线性规划建模的方法与步骤;
2.掌握线性规划问题求解的原理;
3.熟悉常用软件-Excel, Matlab, Lingo, 1stopt的用法.
二、实验内容
1.对线性规划问题的习题,列出线性规划模型并求解;
相关文档
最新文档