wujianjack2 发表于 2014-8-31 23:30 
是不可行吗?我的测试程序只是做了一个演示,以证明SEMIC可以完成类似于SEMINT的功能,LINGO目前似乎不 ...
model:
sets:
var1/1..1000/:num;
var2/1..100/:d;
link(var1,var2):content,x;
endsets
data:
d =
10 40 15 20 20 12 30 33 35 25 29 31 28 61 2 28 28 26 31 38 34 29 35 22 29 81 1 19 25 41 29 35 1 40 39 5 106 30 29 2 110 6 15 36 34 11 32 25 2 64 40 26 33 26 61 2 11 38 44 36 27 31 42 44 12 81 10 35 33 30 2 40 15 11 28 24 20 88 9 28 31 8 22 3 70 21 34 4 38 27 39 28 24 15 50 24 36 55 2 40
;
content = @ole('test.xls','data');
@ole('0xljlNu3efa609bff65761325dbc67312a1ce923.xls','data') = x;
enddata
max = @sum(link:content*x);
@for(var2(j):@sum(var1(i):x(i,j))<d(j));
@for(var1(i):@sum(var2(j):x(i,j))<3);
@for(var1(i):@abs(@sum(var2(j):x(i,j))-1 )< 0.0001);
@for(var1(i):@abs(@sum(var2(j):x(i,j))-2 )< 0.0001);
@for(link:@bin(x));
end
test.xls数据太多就不传了,你自己模拟些数据也行。
这是我使用的约束,这样求出的结果会有某行为1或2
@for(var1(i):@sum(var2(j):x(i,j))<3);
而@semic限定的是基本变量,如果这样写@for(var1(i):@semic(3,@sum(var2(j):x(i,j)),3));lingo会提醒semic使用错误。