运筹学
实验报告
姓 名: 高志通
学 号: 20120404302
班 级: 信息与计算科学1203
指 导 老 师: 武梦梦
目录
1、线性规划问题:... 2
2、运输问题:... 3
3、一般整数规划问题:... 4
4、指派问题:... 5
相关问题说明:
一、 实验性质和教学目的
本实验是运筹学课内安排的上机操作实验。
目的在于了解、熟悉计算机Lingo软件在运筹学模型求解中的作用,激发学习兴趣,提高学习效果,增强自身的动手能力,提高实际应用能力。
二、 实验基本要求
要求学生:
1. 实验前认真做好理论准备,仔细阅读实验指导书;
2. 遵从教师指导,认真完成实验任务,按时按质提交实验报告。
三、 主要参考资料
1.LINGO软件
3. 优化建模与LINDO/LINGO软件,清华大学出版社,2005
4.运筹学编写组主编,运筹学(第四版),清华大学出版社,2012
5.胡运权主编,运筹学教程(第二版),清华大学出版社,2003
实验1 线性规划问题
(1) 给出原始代码;
max4x1+3x2
st
9x1+8x2<12
7x1+11x2<24
9x1+11x2<13
end
(2) 计算结果(包括灵敏度分析,求解结果粘贴);
Global optimal solution found.
Objective value: 5.333333
Infeasibilities: 0.000000
Total solver iterations: 2
Variable Value Reduced Cost
X1 1.333333 0.000000
X2 0.000000 0.5555556
Row Slack or Surplus Dual Price
1 5.333333 1.000000
2 0.000000 0.4444444
3 14.66667 0.000000
4 1.000000 0.000000
Ranges in which the basis is unchanged:
Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease
X1 4.000000 INFINITY 0.6250000
X2 3.000000 0.5555556 INFINITY
Righthand Side Ranges
Row Current Allowable Allowable
RHS Increase Decrease
2 12.00000 1.000000 12.00000
3 24.00000 INFINITY 14.66667
4 13.00000 INFINITY 1.000000
(3) 回答下列问题(手写):
a) 最优解及最优目标函数值是多少;
答:最优解:X1=1.333333 X2=0.000000 ;最优目标函数值=5.333333
b) 资源的对偶价格各为多少,并说明对偶价格的含义;
答:y1=0.4444444;y2=0.000000;y3=0.000000;对偶价格的含义:表示每增加一个单位(约束右边的常数),目标值改变的数量(在最大化问题中目标函数值是增加,在最小化问题中目标函数值是减少)。
c) 为了使目标函数值增加最多,让你选择一个约束条件,将它的常数项增加一个单位,你将选择哪一个约束条件?这时目标函数值将是多少?
答:选择第一个约束条件,若常数项增加一个单位,目标函数值将=5.77777
d) 对x2的目标函数系数进行灵敏度分析;
答:目标函数中x2变量原来的费用系数为3,允许增加(Allowable Increase)=0.5555556、允许减少(Allowable Decrease)= INFINITY,说明当它在[3-∞,3+0.5555556] = [-∞,3.5555556]范围变化时,最优基保持不变。
e) 对第2个约束的约束右端项进行灵敏度分析;
答:当它在[24-14.66667,24+∞] = [9.33333,∞]范围变化时,最优基保持不变。
f ) 结合本题的结果解释“Reduced Cost”的含义。
答:Reduced Cost指为了使某个变量在解中的数值增加一个单位,目标函数值必须付出的代价。在本题中x1的Reduced Cost值为0,当x1增加一个单位时,目标函数值将不变。x2的Reduced Cost值为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))<=WH(i));
@for(customer(j):[dem]@sum(warehouse(i):x(i,j))=V(j));
end
(2) 计算结果(决策变量求解结果粘贴)
Global optimal solution found.
Objective value: 634.0000
Infeasibilities: 0.000000
Total solver iterations: 16
Variable Value Reduced Cost
WH( 1) 60.00000 0.000000
WH( 2) 55.00000 0.000000
WH( 3) 51.00000 0.000000
WH( 4) 43.00000 0.000000
WH( 5) 41.00000 0.000000
WH( 6) 52.00000 0.000000
V( 1) 35.00000 0.000000
V( 2) 37.00000 0.000000
V( 3) 22.00000 0.000000
V( 4) 32.00000 0.000000
V( 5) 41.00000 0.000000
V( 6) 32.00000 0.000000
V( 7) 43.00000 0.000000
V( 8) 38.00000 0.000000
C( 1, 1) 6.000000 0.000000
C( 1, 2) 2.000000 0.000000
C( 1, 3) 6.000000 0.000000
C( 1, 4) 7.000000 0.000000
C( 1, 5) 4.000000 0.000000
C( 1, 6) 2.000000 0.000000
C( 1, 7) 5.000000 0.000000
C( 1, 8) 9.000000 0.000000
C( 2, 1) 3.000000 0.000000
C( 2, 2) 6.000000 0.000000
C( 2, 3) 5.000000 0.000000
C( 2, 4) 3.000000 0.000000
C( 2, 5) 8.000000 0.000000
C( 2, 6) 9.000000 0.000000
C( 2, 7) 8.000000 0.000000
C( 2, 8) 2.000000 0.000000
C( 3, 1) 7.000000 0.000000
C( 3, 2) 6.000000 0.000000
C( 3, 3) 1.000000 0.000000
C( 3, 4) 5.000000 0.000000
C( 3, 5) 7.000000 0.000000
C( 3, 6) 4.000000 0.000000
C( 3, 7) 3.000000 0.000000
C( 3, 8) 3.000000 0.000000
C( 4, 1) 5.000000 0.000000
C( 4, 2) 2.000000 0.000000
C( 4, 3) 7.000000 0.000000
C( 4, 4) 3.000000 0.000000
C( 4, 5) 9.000000 0.000000
C( 4, 6) 2.000000 0.000000
C( 4, 7) 7.000000 0.000000
C( 4, 8) 1.000000 0.000000
C( 5, 1) 2.000000 0.000000
C( 5, 2) 3.000000 0.000000
C( 5, 3) 9.000000 0.000000
C( 5, 4) 5.000000 0.000000
C( 5, 5) 5.000000 0.000000
C( 5, 6) 2.000000 0.000000
C( 5, 7) 6.000000 0.000000
C( 5, 8) 5.000000 0.000000
C( 6, 1) 5.000000 0.000000
C( 6, 2) 7.000000 0.000000
C( 6, 3) 2.000000 0.000000
C( 6, 4) 2.000000 0.000000
C( 6, 5) 3.000000 0.000000
C( 6, 6) 1.000000 0.000000
C( 6, 7) 4.000000 0.000000
C( 6, 8) 3.000000 0.000000
X( 1, 1) 0.000000 4.000000
X( 1, 2) 31.00000 0.000000
X( 1, 3) 0.000000 3.000000
X( 1, 4) 0.000000 5.000000
X( 1, 5) 29.00000 0.000000
X( 1, 6) 0.000000 0.000000
X( 1, 7) 0.000000 0.000000
X( 1, 8) 0.000000 8.000000
X( 2, 1) 0.000000 0.000000
X( 2, 2) 0.000000 3.000000
X( 2, 3) 0.000000 1.000000
X( 2, 4) 32.00000 0.000000
X( 2, 5) 0.000000 3.000000
X( 2, 6) 0.000000 6.000000
X( 2, 7) 0.000000 2.000000
X( 2, 8) 1.000000 0.000000
X( 3, 1) 0.000000 7.000000
X( 3, 2) 0.000000 6.000000
X( 3, 3) 8.000000 0.000000
X( 3, 4) 0.000000 5.000000
X( 3, 5) 0.000000 5.000000
X( 3, 6) 0.000000 4.000000
X( 3, 7) 43.00000 0.000000
X( 3, 8) 0.000000 4.000000
X( 4, 1) 0.000000 3.000000
X( 4, 2) 6.000000 0.000000
X( 4, 3) 0.000000 4.000000
X( 4, 4) 0.000000 1.000000
X( 4, 5) 0.000000 5.000000
X( 4, 6) 0.000000 0.000000
X( 4, 7) 0.000000 2.000000
X( 4, 8) 37.00000 0.000000
X( 5, 1) 35.00000 0.000000
X( 5, 2) 0.000000 1.000000
X( 5, 3) 0.000000 6.000000
X( 5, 4) 0.000000 3.000000
X( 5, 5) 0.000000 1.000000
X( 5, 6) 6.000000 0.000000
X( 5, 7) 0.000000 1.000000
X( 5, 8) 0.000000 4.000000
X( 6, 1) 0.000000 4.000000
X( 6, 2) 0.000000 6.000000
X( 6, 3) 14.00000 0.000000
X( 6, 4) 0.000000 1.000000
X( 6, 5) 12.00000 0.000000
X( 6, 6) 26.00000 0.000000
X( 6, 7) 0.000000 0.000000
X( 6, 8) 0.000000 3.000000
Row Slack or Surplus Dual Price
OBJ 634.0000 -1.000000
SUP( 1) 0.000000 1.000000
SUP( 2) 22.00000 0.000000
SUP( 3) 0.000000 3.000000
SUP( 4) 0.000000 1.000000
SUP( 5) 0.000000 1.000000
SUP( 6) 0.000000 2.000000
DEM( 1) 0.000000 -3.000000
DEM( 2) 0.000000 -3.000000
DEM( 3) 0.000000 -4.000000
DEM( 4) 0.000000 -3.000000
DEM( 5) 0.000000 -5.000000
DEM( 6) 0.000000 -3.000000
DEM( 7) 0.000000 -6.000000
DEM( 8) 0.000000 -2.000000
实验3 一般整数规划问题
新天地购物广场某一层各时段(每2h为一时段)需要的服务员人数见下表。按规定,服务员连续工作8h(即四个时段)为一班。现要求安排服务员的工作时间,使服务部门服务员总数最少。
(1) 给出原始代码;
sets:
time/1..8/: required,start;
endsets
data:
required = 20 16 18 22 26 16 10 6;
enddata
min=@sum(time: start);
@for(time(J):
@sum(time(I) | I #le# 4:
start(@wrap(J+I+2,8))) >= required(J));
end
(2) 计算结果(决策变量求解结果粘贴)
Global optimal solution found.
Objective value: 46.00000
Infeasibilities: 0.000000
Total solver iterations: 3
Variable Value Reduced Cost
REQUIRED( 1) 20.00000 0.000000
REQUIRED( 2) 16.00000 0.000000
REQUIRED( 3) 18.00000 0.000000
REQUIRED( 4) 22.00000 0.000000
REQUIRED( 5) 26.00000 0.000000
REQUIRED( 6) 16.00000 0.000000
REQUIRED( 7) 10.00000 0.000000
REQUIRED( 8) 6.000000 0.000000
START( 1) 26.00000 0.000000
START( 2) 0.000000 0.000000
START( 3) 0.000000 0.000000
START( 4) 4.000000 0.000000
START( 5) 16.00000 0.000000
START( 6) 0.000000 0.000000
START( 7) 0.000000 0.000000
START( 8) 0.000000 0.000000
Row Slack or Surplus Dual Price
1 46.00000 -1.000000
2 0.000000 -1.000000
3 0.000000 0.000000
4 8.000000 0.000000
5 4.000000 0.000000
6 0.000000 -1.000000
7 14.00000 0.000000
8 10.00000 0.000000
9 14.00000 0.000000
答:第1时段安排26人,第2、3时段不增加人,第4时段安排再4人,第5时段再安排16人,总共至少安排服务员46人。
实验4 指派问题
已知如下效率矩阵,求极大化指派问题。
(1) 给出原始代码;
sets:
AD/A1..A5/:A;
BD/B1..B5/:B;
link(AD,BD):c,x;
endsets
data:
c=4 8 7 15 12
7 9 17 14 10
6 9 12 8 7
6 7 14 6 10
6 9 12 10 6;
enddata
max=@sum(link(i,j):c(i,j)*x(i,j));
@for(BD(j):@sum(AD(i):x(i,j))=1);
@for(AD(i):@sum(BD(j):x(i,j))=1);
@for(link:@bin(x));
(2) 计算结果(决策变量求解结果粘贴)
Global optimal solution found.
Objective value: 57.00000
Objective bound: 57.00000
Infeasibilities: 0.000000
Extended solver steps: 0
Total solver iterations: 0
Variable Value Reduced Cost
A( A1) 0.000000 0.000000
A( A2) 0.000000 0.000000
A( A3) 0.000000 0.000000
A( A4) 0.000000 0.000000
A( A5) 0.000000 0.000000
B( B1) 0.000000 0.000000
B( B2) 0.000000 0.000000
B( B3) 0.000000 0.000000
B( B4) 0.000000 0.000000
B( B5) 0.000000 0.000000
C( A1, B1) 4.000000 0.000000
C( A1, B2) 8.000000 0.000000
C( A1, B3) 7.000000 0.000000
C( A1, B4) 15.00000 0.000000
C( A1, B5) 12.00000 0.000000
C( A2, B1) 7.000000 0.000000
C( A2, B2) 9.000000 0.000000
C( A2, B3) 17.00000 0.000000
C( A2, B4) 14.00000 0.000000
C( A2, B5) 10.00000 0.000000
C( A3, B1) 6.000000 0.000000
C( A3, B2) 9.000000 0.000000
C( A3, B3) 12.00000 0.000000
C( A3, B4) 8.000000 0.000000
C( A3, B5) 7.000000 0.000000
C( A4, B1) 6.000000 0.000000
C( A4, B2) 7.000000 0.000000
C( A4, B3) 14.00000 0.000000
C( A4, B4) 6.000000 0.000000
C( A4, B5) 10.00000 0.000000
C( A5, B1) 6.000000 0.000000
C( A5, B2) 9.000000 0.000000
C( A5, B3) 12.00000 0.000000
C( A5, B4) 10.00000 0.000000
C( A5, B5) 6.000000 0.000000
X( A1, B1) 0.000000 -4.000000
X( A1, B2) 0.000000 -8.000000
X( A1, B3) 0.000000 -7.000000
X( A1, B4) 1.000000 -15.00000
X( A1, B5) 0.000000 -12.00000
X( A2, B1) 0.000000 -7.000000
X( A2, B2) 0.000000 -9.000000
X( A2, B3) 1.000000 -17.00000
X( A2, B4) 0.000000 -14.00000
X( A2, B5) 0.000000 -10.00000
X( A3, B1) 0.000000 -6.000000
X( A3, B2) 1.000000 -9.000000
X( A3, B3) 0.000000 -12.00000
X( A3, B4) 0.000000 -8.000000
X( A3, B5) 0.000000 -7.000000
X( A4, B1) 0.000000 -6.000000
X( A4, B2) 0.000000 -7.000000
X( A4, B3) 0.000000 -14.00000
X( A4, B4) 0.000000 -6.000000
X( A4, B5) 1.000000 -10.00000
X( A5, B1) 1.000000 -6.000000
X( A5, B2) 0.000000 -9.000000
X( A5, B3) 0.000000 -12.00000
X( A5, B4) 0.000000 -10.00000
X( A5, B5) 0.000000 -6.000000
Row Slack or Surplus Dual Price
1 57.00000 1.000000
2 0.000000 0.000000
3 0.000000 0.000000
4 0.000000 0.000000
5 0.000000 0.000000
6 0.000000 0.000000
7 0.000000 0.000000
8 0.000000 0.000000
9 0.000000 0.000000
10 0.000000 0.000000
11 0.000000 0.000000
答:指派方案为 A1—〉B4;A2 —〉B3;A3—〉B2;
A4—〉B5;A5—〉B1;