lingo 求助 求解错误 请高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/09/21 14:54:26
MODEL:
SETS:
SCITY / HOU,CAP,WYO/:AVAILABLE;
RCITY / LOS,STL,FRE,NEW,ATL/:REQUIRED;
FORMULA(SCITY,RCITY)/
HOU,LOS,
HOU,STL,
HOU,FRE,
HOU,ATL,
CAP,LOS,
CAP,STL,
CAP,FRE,
WYO,FRE,
WYO,NEW,
WYO,ATL/:PRICE,TRANS;
ENDSETS

DATA:
AVAILABLE=350000 250000 300000;
REQUIRED =200000 120000 230000 190000 150000;
PRICE =0.25 0.18 0.19 0.20 0.28 0.22 0.21 0.17 0.14 0.16;
ENDDATA

MIN = @SUM( FORMULA( I,J):
PRICE(I,J)*TRANS(I,J));
TRANS(HOU,LOS)<=150000;
TRANS(CAP,LOS)<=180000;
@FOR(SCITY(I):
@SUM(FORMULA(I,J):
TRANS(I,J))<=
AVAILABLE(I));
@FOR(RCITY(J):
@SUM(FORMULA(I,J):
TRANS(I,J))=REQUIRED(J));
@FOR(FORMULA(I,J):
@GIN(TRANS(I,J)));
END

你的集合定义出了问题,后面Lingo没能识别出来你定义的八个美国城市。
我修改了一下,用了数字来表示,如下:
MODEL:
SETS:
SCITY /1,2,3/:AVAILABLE;
RCITY /1..5/:REQUIRED;
FORMULA(SCITY,RCITY)/1,1 1,2 1,3 1,5 2,1 2,2 2,3 3,3 3,4 3,5/:PRICE,TRANS;
ENDSETS

DATA:
AVAILABLE=350000 250000 300000;
REQUIRED =200000 120000 230000 190000 150000;
PRICE =0.25 0.18 0.19 0.20 0.28 0.22 0.21 0.17 0.14 0.16;
ENDDATA

MIN = @SUM( FORMULA:PRICE*TRANS);
TRANS(1,1)<=150000;
TRANS(2,1)<=180000;
@FOR(SCITY(I):@SUM(FORMULA(I,J):TRANS(I,J))<=AVAILABLE(I));
@FOR(RCITY(J):@SUM(FORMULA(I,J):TRANS(I,J))=REQUIRED(J));
@FOR(FORMULA(I,J):@GIN(TRANS(I,J)));
END

运行结果:

Global optimal solution found.
Objective value: 172800.0
Extended solver steps: 0
Total solver iterations: 8

Variable Valu