运筹学的2次课内实验Word文档下载推荐.docx
《运筹学的2次课内实验Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《运筹学的2次课内实验Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
1)了解线性规划问题建模思路,并能够根据实际问题进行建模。
2)学会利用EXCEL与Lingo软件进行线性规划问题的求解。
习题:
某农场I、II、III等耕地的面积分别为100hm2、300hm2和200hm2,计划种植水稻、大豆和玉米,要求三种作物的最低收获量分别为190000kg、130000kg和350000kg。
I、II、III等耕地种植三种作物的单产如表所示。
若三种作物的售价分别为水稻1.20元/kg,大豆1.50元/kg,玉米0.80元/kg。
那么,
(1)如何制订种植计划,才能使总产量最大?
(2)如何制订种植计划,才能使总产值最大?
表不同等级耕地种植不同作物的单产(单位:
kg/hm2)
I等耕地
II等耕地
III等耕地
水稻
11000
9500
9000
大豆
8000
6800
6000
玉米
14000
12000
10000
实验过程与结果:
利用EXCEL求解
根据题意可得,约束方程如下:
耕地面积的约束:
X11
+
X21
X31
=
100
X12
X22
X32
=300
X13
X23
X33
=200
最低收获量的约束:
11000X11
9500X12
9000X13
≥190000
8000X21
6800X22
6000X23
≥130000
14000X31
12000X32
10000X33
≥350000
非负约束:
Xi
j
≥0
(i
=1,2,3;
=1,2,3)
(1)追求最大总产量的目标函数为:
maxZ
11000X11+9500X12
+8000X21
+6800X22
+6000X23
+14000X31
+10000X33
下面利用Excel软件线性规划加载宏来求解最大总产量的问题:
①
在Excel上建立线性规划模型,在sheet1中把模型的目标函数系数矩阵置于A40至C42区域,约束常数100、300、200、190000、130000和350000分别置于E44至E49单元格;
②
选择A44至C46范围作可变单元,并输入初值0。
其中A44至C46区域对应变量xij(i=1,2,3;
j=1,2,3);
③
在D44、D45和D46处分别输入“=11000*A44+9500*B44+9000*C44”、“=8000*A45+6800*B45+6000*C45”、
“=14000*A46+12000*B46+10000*C46”,再在A47、B47和C47处分别输入“=SUM(A44:
A46)”、“=SUM(B44:
B46)”、“=SUM(C44:
C46)”表示约束等式的左边;
④
选择单元格A50,
输入“=A40*A44”,再把其引用至单元格C52;
⑤
以单元格E51作目标单元格,输入“=SUM(A50:
C52)”
⑥
单击“工具”菜单下的“规划求解”,在弹出的“规划求解参数”对话框中输入各项参数。
⑦
设置目标单元格和选择最大值。
规划求解结果如下:
所以
目标函数Max
z=6892222
(2)
追求最大总产值的目标函数为:
1.20(11000X11+9500X12
)
+1.50(8000X21
+6000X23
+0.80(14000X31
+10000X33)
13200X11+11400X12
10800X13
+12000X21
+10200X22
+9000X23
+11200X31
+9600X32
+8000X33
利用上一小题的同样方法,在Excel中建立求解的线性规划模型,所不同的是目标系数矩阵的改变,然后:
设置可变单元格。
添加约束。
设置选项参数。
所以目标函数Max
z=6830500
利用lingo软件求解
首先运行lingo程序,在程序主界面下利用程序包自带的文件编辑功能,编辑程序文件(*.ltx),文件内容如下:
max11000x11+9500x12+9000x13+8000x21+6800x22+6000x23+14000x31+12000x32+10000x33
ST
x11+x21+x31=100
x12+x22+x32=300
x13+x23+x33=200
11000x11+9500x12+9000x13>
=190000
8000x21+6800x22+6000x23>
=130000
14000x31+12000x32+10000x33>
=350000
然后进行求解运行,可以得如下结果:
LPOPTIMUMFOUNDATSTEP6
OBJECTIVEFUNCTIONVALUE
1)6892222.
VARIABLEVALUEREDUCEDCOST
X110.0000001777.777832
X120.0000001444.444458
X1321.1111110.000000
X210.000000666.666687
X220.000000666.666687
X2321.6666660.000000
X31100.0000000.000000
X32300.0000000.000000
X33157.2222290.000000
ROWSLACKORSURPLUSDUALPRICES
2)0.00000014000.000000
3)0.00000012000.000000
4)0.00000010000.000000
5)0.000000-0.111111
6)0.000000-0.666667
7)6222222.0000000.000000
NO.ITERATIONS=6
RANGESINWHICHTHEBASISISUNCHANGED:
OBJCOEFFICIENTRANGES
VARIABLECURRENTALLOWABLEALLOWABLE
COEFINCREASEDECREASE
X1111000.0000001777.777710INFINITY
X129500.0000001444.444458INFINITY
X139000.0000001000.0000001368.421021
X218000.000000666.666504INFINITY
X226800.000000666.666504INFINITY
X236000.0000004000.000244499.999878
X3114000.000000INFINITY666.666504
X3212000.000000INFINITY666.666504
X3310000.000000499.9998781000.000000
RIGHTHANDSIDERANGES
ROWCURRENTALLOWABLEALLOWABLE
RHSINCREASEDECREASE
2100.000000INFINITY100.000000
3300.000000INFINITY300.000000
4200.000000INFINITY157.222229
5190000.0000001415000.000000190000.000000
6130000.000000943333.375000130000.000000
7350000.0000006222222.000000INFINITY
其中,输出内容得含义为:
“LPOPTIMUMFOUNDATSTEP6”表示LINDO在(用单纯形法)6次迭代或旋转后得到最优解。
“OBJECTIVEFUNCTIONVALUE1)6892222表示最优目标值为6892222。
“VALUE”给出最优解中各变量的值。
“SLACKORSURPLUS”给出松弛变量的值。
“DUALPRICE”(对偶价格)列出最优单纯形表中判别数所在行的松弛变量的系数,表示当对应约束有微小变动时,目标函数的变化率,输出结果中对应每一个约束有一个对偶价格。
若其数值为X,表示对应约束中不等式右端项若增加一个单位,目标函数将增加X个单位(max型问题)。
“RANGESINWHICHTHEBASISISUNCHANGED”给出灵敏度分析:
如果做敏感性分析,则系统报告当目标函数的费用系数和约束右端项在什么范围变化(此时假定其他系数保持不变)时,最优基保持不变。
报告中INFINITY表示正无穷。
其中,“OBJCOEFFICIENTRANGES”为目标函数的系数可变范围;
“RIGHTHANDSIDERANGES”为边界约束的可变范围。
(2)将目标函数改为:
追求最大总产值,即:
编辑程序文件,文件内容如下:
max13200x11+11400x12+10800x13+12000x21+10200x22+9000x23+11200x31+9600x32+8000x33
求解运行,可以得如下结果:
LPOPTIMUMFOUNDATSTEP4
1)6830500.
X1158.7500000.000000
X12300.0000000.000000
X13200.0000000.000000
X2116.2500000.000000
X220.000000180.000000
X230.000000900.000000
X3125.0000000.000000
X320.00000085.714287
X330.0000001371.428589
2)0.00000013200.000000
3)0.00000011400.000000
4)0.0000