Lingo求解多目标规划[新]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例:某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。
企业的经营目标不仅仅是利润,还需要考虑多个方面:
(1) 力求使利润不低于1500元;
(2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:
2;
(3) 设备A 为贵重设备,严格禁止超时使用;
(4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,
又尽可能不加班。
在重要性上,设备C 是设备B 的3倍。
Ⅰ
Ⅱ
设备的生产能
力/h
A (h/件) 2 2 12
B (h/件) 4 0 16
C (h/件) 0 5 15 利润 元/件
200
300
解:此题中只有设备A 是刚性约束,其余都是柔性约束。
首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。
在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。
该计划问题可用数学模型表示为: 目
标
函
数
min
)33()(433322211++-+--+++++=d d d p d d p d p z
满足约束条件 2122x x + 12≤
15003002001121=-+++-d d x x
022221=-+-+-d d x x 14x 1633=-++-d d
155442=-++
-d d x
3,2,1,0,,,21=≥+-i d d x x i i LINGO 程序为:
求第一级目标。
LINGO 程序如下: model: sets:
variable/1..2/:x;
S_Con_Num/1..4/:g,dplus,dminus; S_con(S_Con_Num,Variable):c; endsets data:
g=1500 0 16 15; c=200 300 2 -1 4 0 0 5; enddata min=dminus(1); 2*x(1)+2*x(2)<12;
@for(S_Con_Num(i):@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); end
求得dminus(1)=0,即目标函数的最优值为0,第一级偏差为0。
model:
sets:
variable/1..2/:x;
S_Con_Num/1..4/:g,dplus,dminus;
S_con(S_Con_Num,Variable):c;
endsets
data:
g=1500 0 16 15;
c=200 300 2 -1 4 0 0 5;
enddata
min=dplus(2)+dminus(2); !二级目标函数;
2*x(1)+2*x(2)<12;
@for(S_Con_Num(i):@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
dminus(1)=0;!一级目标约束;
@for(variable:@gin(x));
end
求得目标函数的最优值为0,即第二级的偏差仍为0。
model:
sets:
variable/1..2/:x;
S_Con_Num/1..4/:g,dplus,dminus;
S_con(S_Con_Num,Variable):c;
endsets
data:
g=1500 0 16 15;
c=200 300 2 -1 4 0 0 5;
enddata
min=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数;
2*x(1)+2*x(2)<12;
@for(S_Con_Num(i):@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
dminus(1)=0;!一级目标约束;
dplus(2)+dminus(2)=0;!二级目标约束;
end
目标函数的最优值为29,即第三级偏差为29。
分析计算结果,x1 = 2,4 2 x = ,100 1 d + = ,因此,目标规划的最优解为x* = (2,4),
最优利润为1600。
上述过程虽然给出了目标规划问题的最优解,但需要连续编几个程序,这样在使
用时不方便,下面用LINGO 软件,编写一个通用的程序,在程序中用到数据段未知数
据的编程方法。
model:
sets:
level/1..3/:p,z,goal;
variable/1..2/:x;
h_con_num/1..1/:b;
s_con_num/1..4/:g,dplus,dminus;
h_cons(h_con_num,variable):A;
s_cons(s_con_num,variable):c;
obj(level,s_con_num):wplus,wminus; endsets
data:
p=? ? ?;
goal=? ? 0;
b=12;
g=1500 0 16 15;
a=2 2;
c=200 300 2 -1 4 0 0 5;
wplus=0 0 0 0
0 1 0 0
0 0 3 1;
wminus=1 0 0 0
0 1 0 0
0 0 3 0;
enddata
min=@sum(level:p*z);
@for(level(i):
z(i)=@sum(s_con_num(j):wplus(i,j)*dplus(j))
+@sum(s_con_num(j):wminus(i,j)*dminus(j))); @for(h_con_num(i):
@sum(variable(j):a(i,j)*x(j))<=b(i));
@for(s_con_num(i):
@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)= g(i); );
@for(level(i)|i#lt#@size(level):@bnd(0,z(i),goal( i));
End
3、下面开始用LINGO中的图标或者Solve命令编译模型,当程序运行时,会出现一个对话框,如图2.1。
在作第一级目标计算时,p(1),p(2),p(3)分别输入1,0,0,goal(1)和goal(2)输入两个较大的值(例如100000),表明这两项约束不起作用。
运行状态窗口如图2.2,相应信息含义见实验一表1.1。
图2.1 LINGO的实时参数窗口
图2.2:LINGO运行状态窗口
计算结果如下:
Global optimal solution found.
Objective value:
0.000000
Total solver iterations: 1
Variable Value Reduced Cost
P( 1) 1.000000 0.000000
P( 2) 0.000000 0.000000
P( 3) 0.000000 0.000000
Z( 1) 0.000000 0.000000
Z( 2) 5.000000 0.000000
Z( 3) 58.00000 0.000000
GOAL( 1) 100000.0 0.000000
GOAL( 2) 1000000.
0.000000
GOAL( 3) 0.000000 0.000000
X( 1) 0.000000
X( 2) 5.000000 0.000000
B( 1) 12.00000 0.000000
G( 1) 1500.000 0.000000
G( 2) 0.000000 0.000000
G( 3) 16.00000 0.000000
G( 4) 15.00000 0.000000
DPLUS( 1) 0.000000 0.000000
DPLUS( 2) 0.000000 0.000000
DPLUS( 3) 0.000000 0.000000
DPLUS( 4) 10.00000 0.000000
DMINUS( 1) 0.000000
DMINUS( 2) 5.000000 0.000000
DMINUS( 3) 16.00000 0.000000
DMINUS( 4) 0.000000 0.000000
A( 1, 1) 2.000000 0.000000
A( 1, 2) 2.000000 0.000000
C( 1, 1) 200.0000 0.000000
C( 1, 2) 300.0000 0.000000
C( 2, 1) 2.000000 0.000000
C( 2, 2) -1.000000 0.000000
C( 3, 1) 4.000000 0.000000
C( 3, 2) 0.000000
C( 4, 1) 0.000000 0.000000
C( 4, 2) 5.000000 0.000000
WPLUS( 1, 1) 0.000000 0.000000
WPLUS( 1, 2) 0.000000 0.000000
WPLUS( 1, 3) 0.000000 0.000000
WPLUS( 1, 4) 0.000000 0.000000
WPLUS( 2, 1) 0.000000 0.000000
WPLUS( 2, 2) 1.000000 0.000000
WPLUS( 2, 3) 0.000000 0.000000
WPLUS( 2, 4) 0.000000 0.000000
WPLUS( 3, 1) 0.000000
WPLUS( 3, 2) 0.000000 0.000000
WPLUS( 3, 3) 3.000000 0.000000
WPLUS( 3, 4) 1.000000 0.000000
WMINUS( 1, 1) 1.000000 0.000000
WMINUS( 1, 2) 0.000000 0.000000
WMINUS( 1, 3) 0.000000 0.000000
WMINUS( 1, 4) 0.000000 0.000000
WMINUS( 2, 1) 0.000000 0.000000
WMINUS( 2, 2) 1.000000 0.000000
WMINUS( 2, 3) 0.000000 0.000000
WMINUS( 2, 4) 0.000000
WMINUS( 3, 1) 0.000000 0.000000
WMINUS( 3, 2) 0.000000 0.000000
WMINUS( 3, 3) 3.000000 0.000000
WMINUS( 3, 4) 0.000000 0.000000
Row Slack or Surplus Dual Price
1 0.000000
-1.000000
2 0.000000
-1.000000
3 0.000000 0.000000
4 0.000000 0.000000
5 2.000000 0.000000
0.000000
7 0.000000 0.000000
8 0.000000 0.000000
9 0.000000 0.000000
第一级的最优偏差为0,进行第二级计算。
在第二级目标计算时,p(1),p(2),p(3)分别输入0,1,0。
由于第一级的偏差为0,因此goal(1)的输入值为0,goal(2)输入一个较大的值(例如100000)。
计算结果如下:
Global optimal solution found.
Objective value:
0.000000
Total solver iterations: 2
Variable Value Reduced Cost
0.000000
P( 2) 1.000000 0.000000
P( 3) 0.000000 0.000000
Z( 1) 0.000000 0.000000
Z( 2) 0.000000 1.000000
Z( 3) 29.25000 0.000000
GOAL( 1) 0.000000 0.000000
GOAL( 2) 100000.0 0.000000
GOAL( 3) 0.000000 0.000000
X( 1) 1.875000 0.000000
X( 2) 3.750000 0.000000
0.000000
G( 1) 1500.000 0.000000
G( 2) 0.000000 0.000000
G( 3) 16.00000 0.000000
G( 4) 15.00000 0.000000
DPLUS( 1) 0.000000 0.000000
DPLUS( 2) 0.000000 0.000000
DPLUS( 3) 0.000000 0.000000
DPLUS( 4) 3.750000 0.000000
DMINUS( 1) 0.000000 0.000000
DMINUS( 2) 0.000000 0.000000
0.000000
DMINUS( 4) 0.000000 0.000000
A( 1, 1) 2.000000 0.000000
A( 1, 2) 2.000000 0.000000
C( 1, 1) 200.0000 0.000000
C( 1, 2) 300.0000 0.000000
C( 2, 1) 2.000000 0.000000
C( 2, 2) -1.000000 0.000000
C( 3, 1) 4.000000 0.000000
C( 3, 2) 0.000000 0.000000
C( 4, 1) 0.000000 0.000000
0.000000
WPLUS( 1, 1) 0.000000 0.000000
WPLUS( 1, 2) 0.000000 0.000000
WPLUS( 1, 3) 0.000000 0.000000
WPLUS( 1, 4) 0.000000 0.000000
WPLUS( 2, 1) 0.000000 0.000000
WPLUS( 2, 2) 1.000000 0.000000
WPLUS( 2, 3) 0.000000 0.000000
WPLUS( 2, 4) 0.000000 0.000000
WPLUS( 3, 1) 0.000000 0.000000
WPLUS( 3, 2) 0.000000 0.000000
0.000000
WPLUS( 3, 4) 1.000000 0.000000
WMINUS( 1, 1) 1.000000 0.000000
WMINUS( 1, 2) 0.000000 0.000000
WMINUS( 1, 3) 0.000000 0.000000
WMINUS( 1, 4) 0.000000 0.000000
WMINUS( 2, 1) 0.000000 0.000000
WMINUS( 2, 2) 1.000000 0.000000
WMINUS( 2, 3) 0.000000 0.000000
WMINUS( 2, 4) 0.000000 0.000000
WMINUS( 3, 1) 0.000000 0.000000
0.000000
WMINUS( 3, 3) 3.000000 0.000000
WMINUS( 3, 4) 0.000000 0.000000
Row Slack or Surplus Dual Price
1 0.000000
-1.000000
2 0.000000 0.000000
3 0.000000 0.000000
4 0.000000 0.000000
5 0.7500000 0.000000
6 0.000000 0.000000
7 0.000000
0.000000
8 0.000000 0.000000
9 0.000000 0.000000
第二级的最优偏差为0,进行第三级计算。
在第三级目标计算时,p(1),p(2),p(3)分别输入0,0,1。
由于第一级、第二级
的偏差均为0,因此goal(1)、goal(2)的输入值也均是0。
计算结果
如下:
GGlobal optimal solution found.
Objective value:
29.00000
Total solver iterations: 0
Variable Value Reduced Cost
P( 1) 0.000000 0.000000
P( 2) 0.000000 0.000000
0.000000
Z( 1) 0.000000 0.000000
Z( 2) 0.000000 -5.666667
Z( 3) 29.00000 0.000000
GOAL( 1) 0.000000 0.000000
GOAL( 2) 0.000000 0.000000
GOAL( 3) 0.000000 0.000000
X( 1) 2.000000 0.000000
X( 2) 4.000000 0.000000
B( 1) 12.00000 0.000000
G( 1) 1500.000 0.000000
0.000000
G( 3) 16.00000 0.000000
G( 4) 15.00000 0.000000
DPLUS( 1) 100.0000 0.000000
DPLUS( 2) 0.000000 0.000000
DPLUS( 3) 0.000000 6.000000
DPLUS( 4) 5.000000 0.000000
DMINUS( 1) 0.000000 0.000000
DMINUS( 2) 0.000000 11.33333
DMINUS( 3) 8.000000 0.000000
DMINUS( 4) 0.000000 1.000000
0.000000
A( 1, 2) 2.000000 0.000000
C( 1, 1) 200.0000 0.000000
C( 1, 2) 300.0000 0.000000
C( 2, 1) 2.000000 0.000000
C( 2, 2) -1.000000 0.000000
C( 3, 1) 4.000000 0.000000
C( 3, 2) 0.000000 0.000000
C( 4, 1) 0.000000 0.000000
C( 4, 2) 5.000000 0.000000
WPLUS( 1, 1) 0.000000 0.000000
0.000000
WPLUS( 1, 3) 0.000000 0.000000
WPLUS( 1, 4) 0.000000 0.000000
WPLUS( 2, 1) 0.000000 0.000000
WPLUS( 2, 2) 1.000000 0.000000
WPLUS( 2, 3) 0.000000 0.000000
WPLUS( 2, 4) 0.000000 0.000000
WPLUS( 3, 1) 0.000000 0.000000
WPLUS( 3, 2) 0.000000 0.000000
WPLUS( 3, 3) 3.000000 0.000000
WPLUS( 3, 4) 1.000000 0.000000
0.000000
WMINUS( 1, 2) 0.000000 0.000000
WMINUS( 1, 3) 0.000000 0.000000
WMINUS( 1, 4) 0.000000 0.000000
WMINUS( 2, 1) 0.000000 0.000000
WMINUS( 2, 2) 1.000000 0.000000
WMINUS( 2, 3) 0.000000 0.000000
WMINUS( 2, 4) 0.000000 0.000000
WMINUS( 3, 1) 0.000000 0.000000
WMINUS( 3, 2) 0.000000 0.000000
WMINUS( 3, 3) 3.000000 0.000000
0.000000
Row Slack or Surplus Dual Price
1 29.00000 -1.000000
2 0.000000 0.000000
3 0.000000 -5.666667
4 0.000000 -1.000000
5 0.000000 0.3333333
6 0.000000 0.000000
7 0.000000 5.666667
8 0.000000 -3.000000
9 0.000000
1.000000
第三级的最优偏差为29,所以最终结果是:4,221==x x ,利润为1600。
model: sets:
level/1..3/:p,z,goal; variable/1..2/:x; h_con_num/1..1/:b;
s_con_num/1..4/:g,dplus,dminus; h_cons(h_con_num,variable):A; s_cons(s_con_num,variable):c; obj(level,s_con_num):wplus,wminus; endsets data: p=? ? ?; goal=? ? 0; b=12;
g=1500 0 16 15; a=2 2;
c=200 300 2 -1 4 0 0 5;
wplus=0 0 0 0
0 1 0 0
0 0 3 1;
wminus=1 0 0 0
0 1 0 0
0 0 3 0;
enddata
min=@sum(level:p*z);
@for(level(i):
z(i)=@sum(s_con_num(j):wplus(i,j)*dplus(j)) +@sum(s_con_num(j):wminus(i,j)*dminus(j))); @for(h_con_num(i):
@sum(variable(j):a(i,j)*x(j))<=b(i));
@for(s_con_num(i):
@sum(variable(j):c(i,j)*x(j))
+dminus(i)-dplus(i)=g(i);
);
@for(level(i)|i#lt#@size(level):
@bnd(0,z(i),goal(i));
);
end
Global optimal solution found.
Objective value:
29.00000
Infeasibilities: 0.000000
Total solver iterations: 0
Model Class:
LP
Total variables: 13
Nonlinear variables: 0
Integer variables: 0
Total constraints: 9
Nonlinear constraints: 0
Total nonzeros: 26
Nonlinear nonzeros: 0
Variable Value Reduced Cost
P( 1) 0.000000 0.000000
P( 2) 0.000000 0.000000
P( 3) 1.000000 0.000000
Z( 1) 0.000000 0.000000
Z( 2) 0.000000 -5.666667
Z( 3) 29.00000 0.000000
GOAL( 1) 0.000000 0.000000
GOAL( 2) 0.000000 0.000000
GOAL( 3) 0.000000 0.000000
X( 1) 2.000000 0.000000
4.000000 0.000000
B( 1) 12.00000 0.000000
G( 1) 1500.000 0.000000
G( 2) 0.000000 0.000000
G( 3) 16.00000 0.000000
G( 4) 15.00000 0.000000
DPLUS( 1) 100.0000 0.000000
DPLUS( 2) 0.000000 0.000000
DPLUS( 3) 0.000000 6.000000
DPLUS( 4) 5.000000 0.000000
DMINUS( 1) 0.000000 0.000000
0.000000 11.33333
DMINUS( 3) 8.000000 0.000000
DMINUS( 4) 0.000000 1.000000
A( 1, 1) 2.000000 0.000000
A( 1, 2) 2.000000 0.000000
C( 1, 1) 200.0000 0.000000
C( 1, 2) 300.0000 0.000000
C( 2, 1) 2.000000 0.000000
C( 2, 2)
-1.000000 0.000000
C( 3, 1) 4.000000 0.000000
C( 3, 2) 0.000000 0.000000
0.000000 0.000000
C( 4, 2) 5.000000 0.000000
WPLUS( 1, 1) 0.000000 0.000000
WPLUS( 1, 2) 0.000000 0.000000
WPLUS( 1, 3) 0.000000 0.000000
WPLUS( 1, 4) 0.000000 0.000000
WPLUS( 2, 1) 0.000000 0.000000
WPLUS( 2, 2) 1.000000 0.000000
WPLUS( 2, 3) 0.000000 0.000000
WPLUS( 2, 4) 0.000000 0.000000
WPLUS( 3, 1) 0.000000 0.000000
0.000000 0.000000
WPLUS( 3, 3) 3.000000 0.000000
WPLUS( 3, 4) 1.000000 0.000000
WMINUS( 1, 1) 1.000000 0.000000
WMINUS( 1, 2) 0.000000 0.000000
WMINUS( 1, 3) 0.000000 0.000000
WMINUS( 1, 4) 0.000000 0.000000
WMINUS( 2, 1) 0.000000 0.000000
WMINUS( 2, 2) 1.000000 0.000000
WMINUS( 2, 3) 0.000000 0.000000
WMINUS( 2, 4) 0.000000 0.000000
0.000000 0.000000
WMINUS( 3, 2)
0.000000 0.000000
WMINUS( 3, 3)
3.000000 0.000000
WMINUS( 3, 4)
0.000000 0.000000
Row Slack or Surplus Dual Price
1
29.00000 -1.000000
2
0.000000 0.000000
3
0.000000 -5.666667
4
0.000000 -1.000000
5
0.000000 0.3333333
6
0.000000 0.000000
7 0.000000 5.666667
8 0.000000 -3.000000
9 0.000000 1.000000
model:
sets:
level/1..3/:p,z,goal;
variable/1..2/:x;
h_con_num/1..1/:b;
s_con_num/1..4/:g,dplus,dminus;
h_con(h_con_num,variable):a;
s_con(s_con_num,variable):c;
obj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus; endsets
data:
ctr=?;
goal=? ? 0;
b=12;
g=1500 0 16 15;
a=2 2;
c=200 300 2 -1 4 0 0 5;
wplus=0 1 3 1;
wminus=1 1 3 0;
enddata
min=@sum(level:p*z);
p(ctr)=1;
@for(level(i)|i#ne#ctr:p(i)=0);
@for(level(i):z(i)=@sum(obj(i,j):wplus(i,j)*dplus(j)+wminus(i,j)* dminus(j)));
@for(h_con_num(i):@sum(variable(j):a(i,j)*x(j))<b(i));
@for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
@for(level(i)|i #lt# @size(level):@bnd(0,z(i),goal(i)));
End
例6 某计算机公司生产三种型号的笔记本电脑A, B,C。
这三种笔记本电脑需要
在复杂的装配线上生产,生产1台A, B,C型号的笔记本电脑分别需要5,8,12(h)。
公
司装配线正常的生产时间是每月1700h。
公司营业部门估计A, B,C三种笔记本电脑的利
润分别是每台1000,1440,2520(元),而公司预测这个月生产的笔记本电脑能够全部
售出。
公司经理考虑以下目标:
第一目标:充分利用正常的生产能力,避免开工不足;
第二目标:优先满足老客户的需求,A, B,C三种型号的电脑分别为50,50,80(台),
同时根据三种电脑的纯利润分配不同的权因子;
第三目标:限制装配线加班时间,最好不要超过200h;
第四目标:满足各种型号电脑的销售目标,A, B,C型号分别为100,120,100(台),
再根据三种电脑的纯利润分配不同的权因子;
第五目标:装配线的加班时间尽可能少。
请列出相应的目标规划模型,并用LINGO软件求解。
model:
sets:
level/1..5/:p,z,goal;
variable/1..3/:x;
s_con_num/1..8/:g,dplus,dminus;
s_con(s_con_num,variable):c;
obj(level,s_con_num)/1 1,2 2,2 3,2 4,3 8,4 5,4 6,4 7,5
1/:wplus,wminus;
endsets
data:
ctr=?;
goal=? ? ? ? 0;
g=1700 50 50 80 100 120 100 1900;
c=5 8 12 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 5 8 12;
wplus=0 0 0 0 1 0 0 0 1;
wminus=1 20 18 21 0 20 18 21 0;
enddata
min=@sum(level:p*z);
p(ctr)=1;
@for(level(i)|i#ne#ctr:p(i)=0);
@for(level(i):z(i)=@sum(obj(i,j):wplus(i,j)*dplus(j)+wminus(i,j)* dminus(j)));
@for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
@for(level(i)|i #lt# @size(level):@bnd(0,z(i),goal));
end
model:
sets:
level/1..5/:p,z,goal;
variable/1..3/:x;
s_con_num/1..8/:g,dplus,dminus;
s_con(s_con_num,variable):c;
obj(level,s_con_num):wplus,wminus;
endsets
data:
p=? ? ? ? ?;
goal=? ? ? ? 0;
g=1700 50 50 80 100 120 100 1900;
c=5 8 12 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 5 8 12; wplus=0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0;
wminus=1 0 0 0 0 0 0 0
0 20 18 21 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 20 18 21 0
0 0 0 0 0 0 0 0;
enddata
min=@sum(level:p*z);
@for(level(i):z(i)=@sum(obj(i,j):wplus(i,j)*dplus(j)+wminus(i,j)* dminus(j)));
@for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
@for(level(i)|i #lt# @size(level):@bnd(0,z(i),goal));
end
Global optimal solution found.
Objective value: 200.0000 Infeasibilities: 0.000000 Total solver iterations: 6
Model Class: LP
Total variables: 24
Nonlinear variables: 0
Integer variables: 0
Total constraints: 14
Nonlinear constraints: 0
Total nonzeros: 43
Nonlinear nonzeros: 0
Variable Value Reduced Cost
P( 1) 0.000000 0.000000
P( 2) 0.000000 0.000000
P( 3) 0.000000 0.000000
P( 4) 0.000000 0.000000
P( 5) 1.000000 0.000000
Z( 1) 0.000000
Z( 2) 0.000000 -0.1269841
Z( 3) 0.000000 0.000000
Z( 4) 1590.000 -0.4444444
Z( 5) 200.0000 0.000000
GOAL( 1) 0.000000 0.000000
GOAL( 2) 0.000000 0.000000
GOAL( 3) 0.000000 0.000000
GOAL( 4) 1590.000 0.000000
GOAL( 5) 0.000000 0.000000
X( 1) 100.0000 0.000000
X( 2) 55.00000
X( 3) 80.00000 0.000000
G( 1) 1700.000 0.000000
G( 2) 50.00000 0.000000
G( 3) 50.00000 0.000000
G( 4) 80.00000 0.000000
G( 5) 100.0000 0.000000
G( 6) 120.0000 0.000000
G( 7) 100.0000 0.000000
G( 8) 1900.000 0.000000
DPLUS( 1) 200.0000 0.000000
DPLUS( 2) 50.00000
DPLUS( 3) 5.000000 0.000000
DPLUS( 4) 0.000000 2.666667
DPLUS( 5) 0.000000 5.000000
DPLUS( 6) 0.000000 8.000000
DPLUS( 7) 0.000000 9.333333
DPLUS( 8) 0.000000 0.000000
DMINUS( 1) 0.000000 0.000000
DMINUS( 2) 0.000000 2.539683
DMINUS( 3) 0.000000 2.285714
DMINUS( 4) 0.000000 0.000000
DMINUS( 5) 0.000000
DMINUS( 6) 65.00000 0.000000
DMINUS( 7) 20.00000 0.000000
DMINUS( 8) 0.000000 0.000000
C( 1, 1) 5.000000 0.000000
C( 1, 2) 8.000000 0.000000
C( 1, 3) 12.00000 0.000000
C( 2, 1) 1.000000 0.000000
C( 2, 2) 0.000000 0.000000
C( 2, 3) 0.000000 0.000000
C( 3, 1) 0.000000 0.000000
C( 3, 2) 1.000000
C( 3, 3) 0.000000 0.000000
C( 4, 1) 0.000000 0.000000
C( 4, 2) 0.000000 0.000000
C( 4, 3) 1.000000 0.000000
C( 5, 1) 1.000000 0.000000
C( 5, 2) 0.000000 0.000000
C( 5, 3) 0.000000 0.000000
C( 6, 1) 0.000000 0.000000
C( 6, 2) 1.000000 0.000000
C( 6, 3) 0.000000 0.000000
C( 7, 1) 0.000000
C( 7, 2) 0.000000 0.000000
C( 7, 3) 1.000000 0.000000
C( 8, 1) 5.000000 0.000000
C( 8, 2) 8.000000 0.000000
C( 8, 3) 12.00000 0.000000
WPLUS( 1, 1) 0.000000 0.000000
WPLUS( 1, 2) 0.000000 0.000000
WPLUS( 1, 3) 0.000000 0.000000
WPLUS( 1, 4) 0.000000 0.000000
WPLUS( 1, 5) 0.000000 0.000000
WPLUS( 1, 6) 0.000000
WPLUS( 1, 7) 0.000000 0.000000
WPLUS( 1, 8) 0.000000 0.000000
WPLUS( 2, 1) 0.000000 0.000000
WPLUS( 2, 2) 0.000000 0.000000
WPLUS( 2, 3) 0.000000 0.000000
WPLUS( 2, 4) 0.000000 0.000000
WPLUS( 2, 5) 0.000000 0.000000
WPLUS( 2, 6) 0.000000 0.000000
WPLUS( 2, 7) 0.000000 0.000000
WPLUS( 2, 8) 0.000000 0.000000
WPLUS( 3, 1) 0.000000。