lingo如何编写这个约束条件: 当x(k)=1时,r(k)>=1; 当x(k)=0时,r(k)=0;

如题所述

好像没办法直接用一个式子来表达这个条件。。。。
sets:
c/1..5/:r,x;
endsets
@for(c(k):r(k)=@if(x(k)#eq#0,0,r(k)));!如果x(k)=0则r(k)=0,否则r(k)=r(k);
@for(c(k):r(k)>=@if(x(k)#eq#1,1,0)); !如果x(k)=1则r(k)>=1,否则r(k)>=0;来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-15
定义一个派生集link如下,其中x即可表示为一个矩阵
sets:
r/1..5/:;
c/1..5/:;
h/1..5/:;
link(r,c,h):x;
endsets
第2个回答  2011-05-07
那么k是0-1变量就用 @for(s:@bin(k));表示 sets: s/1..3/:k; endsets data: k=1(或者k=0); enddata
第3个回答  2011-05-09
给个例子好了
@bin(k(1,1));@bin(k(1,3));
这是0-1变量的表示方法。
相似回答