目的是求函数的最小值,
约束条件为每行只能取三个数值,
数据矩阵为_1000*100的矩阵,
_我设置了一个1000*100的零一矩阵,
约束条件为零一矩阵每行的和为3
并且每一列可取的值是有上限的。
但是运算结果出来每行的和会有4 5 2这样的结果出现。
每一列的上限也没约束住。
下面是代码
model:
sets:
xb1 /1..100/:DVDM;
xb2 /1..1000/;
link (xb2,xb1):D;
Temp (xb2,xb1):T;
endsets
min=@sum(link(i,j):D(i,j)*T(i,j));
@for(Temp(i,j):@bin(T));
@for(xb2(i):@sum(xb1(j):T(i,j))=3);
@for(xb1(j):@sum(xb2(i):T(i,j))<=DVDM(j));
data:
D=@ole('C:\Users\Big brother\Desktop\gugug2.xls','DAT');
DVDM=@ole('C:\Users\Big brother\Desktop\gugug2.xls','Storage');
@ole('C:\Users\Big brother\Desktop\gugug2.xls','OUT')=T;
enddata
end