qq_1502076851 发表于 2017-8-7 12:21

新人求助

Model is ill defined 是什么意思呀

目标函数:max ∑sij*xij
约束条件:xij<=aij,
∑ i  xij<=cj,
∑ j  xij=3yi
xij,yij=0,1

model:
sets:
si/1..1000/:y;
sj/1..100/:c;
link(si,sj):s,x,a;
endsets

data:
c= @OLE('C:\Users\Sky\Documents\I.xlsx' , 'asd');
s= @OLE('C:\Users\Sky\Documents\s.xlsx' , 's');
a= @OLE('C:\Users\Sky\Documents\data.xls' , 'a');

enddata


max=@sum(link:s*x);

@for(si:@bin(y(i)));
@for(si:@for(sj:@bin(x(i,j))));
@for(si:y(i)=@sum(sj:x(i,j)));
@for(sj:c(j)>=@sum(si:x(i,j)));
@for(sj:@for(sj:x(i,j)<=a(i,j)));




qq_1502076851 发表于 2017-8-7 12:25

那个表情是 冒号@

qq_1502076851 发表于 2017-8-7 12:32

solve后 说model is ill defined 问题好像在最后几行

liwenhui 发表于 2017-8-7 18:01

把你的3个数据文件传上来。

qq_1502076851 发表于 2017-8-7 18:30

liwenhui 发表于 2017-8-7 18:01 static/image/common/back.gif
把你的3个数据文件传上来。

好的 麻烦您了

liwenhui 发表于 2017-8-7 21:41

把下面的三个文档放到你的D盘下,方便后面给出的代码调用这3个文档里的数据:


然后在运行下面的LINGO代码:MODEL:

SETS:

SI/ 1..1000/: Y;

SJ/ 1..100 /: C;

LINK( SI, SJ): S, X, A;

ENDSETS

MAX = @SUM( LINK( I, J): S( I, J) * X( I, J));

@FOR( SI( I): @FOR( SJ( J): X( I, J) < A( I, J)));

@FOR( SJ( J): @SUM( SI( I): X( I, J)) < C( J) );

@FOR( SI( I): @SUM( SJ( J): X( I, J)) = 3 * Y( I));

@FOR( SI( I): @BIN( Y( I)));

@FOR( SI( I): @FOR( SJ( J): @BIN( X( I, J))));

DATA:

C = @OLE( 'D:\My LINGO\I.xlsx', ' ASD');

S = @OLE( 'D:\My LINGO\s.xlsx', ' S');

A = @OLE( 'D:\My LINGO\data.xls', ' A');

ENDDATA

END数据量比较大,所以运行起来有点慢,建议设置一下LINGO的可用内存为100M。
得到的结果如下:



注意:这只是说你的模型求解出来了,但并不意味着你的建模问题解决了,因为还需要确保你的模型本身没有问题。






页: [1]
查看完整版本: 新人求助