请问怎么用lingo求解?
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 22:48:27
请问怎么用lingo求解?
请问怎么用lingo求解?
请问怎么用lingo求解?
方法一:
model:
sets:
Level/1..3/: P, U, Goal; !有3个优先级别;
Variable/1..4/: x; !有4个变量;
Sn/1..5/: g, dp, dm; !有5个柔性目标约束;
Sc(Sn, Variable): C; !柔性约束系数矩阵(5×4矩阵);
W(Level, Sn): Wp, Wm; !偏差权重矩阵(3×5矩阵);
endsets
data:
P=? ? ?; !对优先级P赋值;
Goal=? ? 0; !Goal(i)为第i(≤2)个优先级时最优目标值,注:Goal(3)不起作用;
g=20 20 150 20 900; !柔性约束常数项矩阵;
C=1 0 1 0 !柔性约束系数矩阵;
0 1 0 1
3 4 0 0
0 0 3 4
10 8 9 7;
Wp=0 0 1 0 0 !正偏差权重矩阵;
0 0 0 1 0
0 0 0 0 0;
Wm=1 1 1 0 0 !负偏差权重矩阵;
0 0 0 0 0
0 0 0 0 1;
enddata
min=@sum(Level(i):P(i)*U(i)); !目标函数;
@for(Level(i):U(i)=@sum(Sn(j):Wp(i,j)*dp(j)+Wm(i,j)*dm(j))); !求偏差矩阵U;
@for(Sn(j):@sum(Variable(k):C(j,k)*x(k))+dm(j)-dp(j)=g(j)); !柔性约束;
@for(Level(i)|i#lt#@size(Level):@bnd(0,U(i),Goal(i))); !偏差限定在最优值范围内;
end
第一级目标计算,P(1),P(2),P(3)分别输入1,0,0,Goal(1)与Goal(2)输入两个较大的值(例如1000),表明这两项约束不起作用.结果如下:
Global optimal solution found.
Objective value: 0.000000
Variable Value Reduced Cost
P( 1) 1.000000 0.000000
P( 2) 0.000000 0.000000
P( 3) 0.000000 0.000000
U( 1) 0.000000 1.000000
U( 2) 1000.000 0.000000
U( 3) 520.0000 0.000000
X( 1) 20.00000 0.000000
X( 2) 22.50000 0.000000
X( 3) 0.000000 0.000000
X( 4) 0.000000 0.000000
第一级最优偏差为0,进行第二论计算
第二级目标计算,P(1),P(2),P(3)分别输入0,1,0,由于第一级最优偏差为0,因此Goal(1)输入0,Goal(2)输入较大的值(例如1000).结果如下:
Global optimal solution found.
Objective value: 0.000000
Variable Value Reduced Cost
P( 1) 0.000000 0.000000
P( 2) 1.000000 0.000000
P( 3) 0.000000 0.000000
U( 1) 0.000000 0.000000
U( 2) 0.000000 0.000000
U( 3) 520.0000 0.000000
X( 1) 20.00000 0.000000
X( 2) 22.50000 0.000000
X( 3) 0.000000 0.000000
X( 4) 0.000000 0.000000
第二级最优偏差为0,进行第三论计算
第三级目标计算,P(1),P(2),P(3)分别输入0,0,1,由于第一、二级最优偏差都为0,因此Goal(1)与Goal(2)输入0.结果如下:
Global optimal solution found.
Objective value: 445.0000
Variable Value Reduced Cost
P( 1) 0.000000 0.000000
P( 2) 0.000000 0.000000
P( 3) 1.000000 0.000000
U( 1) 0.000000 -5.333333
U( 2) 0.000000 -3.083333
U( 3) 445.0000 0.000000
GOAL( 1) 0.000000 0.000000
GOAL( 2) 0.000000 0.000000
X( 1) 30.00000 0.000000
X( 2) 15.00000 0.000000
X( 3) 0.000000 0.2500000
X( 4) 5.000000 0.000000
DP( 1) 10.00000 0.000000
DP( 2) 0.000000 5.333333
DP( 3) 0.000000 2.000000
DP( 4) 0.000000 0.000000
DP( 5) 0.000000 1.000000
DM( 1) 0.000000 5.333333
DM( 2) 0.000000 &nbs