请高手看一下这个LINGO程序?非常感谢!答案正确再加高分!

来源:百度知道 编辑:UC知道 时间:2024/06/11 06:27:23
MODEL:
SETS:
YJ / 1 2 3 4 5 6 7 8/:
M, N, K, S, Q;
ENDSETS

INIT:
M=0,0,0,0,0,0,0,0;
N=0,0,0,0,0,0,0,0;
K=0,0,0,0,0,0,0,0;
S=0,0,0,0,0,0,0,0;
Q=0,0,0,0,0,0,0,0;
ENDINIT

[OBJECTIVE] MIN=(@SUM(YJ(I):Q(I)*K(I)*M(I))-0.62*D)^2+(@SUM(YJ(I):Q(I)*K(I)*N(I))-0.0489*D)^2;
@SUM(YJ(I):K(I))>=5;
@SUM(YJ(I):K(I))<=7;
@FOR(YJ(I):@BIN(K(I)));
!k是0-1变量
@FOR(YJ(I):Q (I)>=@IF(S (I) #LT# 0.03*D,0,0.03*D));
! 若S (I)<0.03*D,则Q (I)>=0,若S (I)>=0.03*D,则Q (I)>=0.03*D;
@FOR (YJ(I):Q (I)<=S (I));
! Q (I)<=S(I);
@SUM(YJ(I):Q(I)*K(I))=D;

DATA:
D=3;
M =0.6092,0.6493,0.6233,0.6148,0.5842,0.6367,0.6438,0.6409;
N =0.0655,0.0388,0.0443,0.0362,0.0762,0.0444,0.0598,0.0486;
S =2,4,2,7,6,8,2,1;
ENDDATA
END

这个程序可以解出来,但是不论数据怎么变,k只有前五个

你设置原因,等于零不输出

Local optimal solution found.
Objective value: 0.3081488E-28
Objective bound: 0.3081488E-28
Infeasibilities: 0.000000
Extended solver steps: 0
Total solver iterations: 9

Variable Value Reduced Cost
D 3.000000 0.000000
M( 1) 0.6092000 0.000000
M( 2) 0.6493000 0.000000
M( 3) 0.6233000 0.000000
M( 4) 0.6148000 0.000000
M( 5) 0.5842000 0.000000
M( 6) 0.6367000 0.000000
M( 7) 0.6438000