百科知识

lingo集合中两个变量,如何通过一个变量的值来约束另一个变量

2019-04-10 10:32:08S***
lingo集合中两个变量,如何通过一个变量的值来约束另一个变量lingo集合中两个变量,如何通过一个变量的值来约束另一个变量,lingo集合中两个变量,如何通过一个变量的值来约束另一

最佳回答

  • 1.sets:x/1..m/;y/1..4/;matrix(x,y):b;!定义矩阵bendsetsdata:!可以这里对需要赋值的数组或矩阵赋值;enddata!下面是针对你的问题所需要的语句;@for(x(i):@sum(y(j):b(i,j))=1);@for(matrix(i,j):@bin(b));2.Lingo似乎不能实现你要求的那种if语句,Lingo主要是针对成员集合生成约束条件,不能进行判断;3.约束条件可以给中间变量赋值,比如要将矩阵x与w的乘积赋值给矩阵y,可以用下面的代码:@for(PX(i,j):y(i,j)=@sum(s(k):x(i,k)*w(k,j)))
    2019-04-10 10:32:27
  • 很难很好的做到 只能定义一组0-1变量 然后限制仅有一个为1 这样的话可以把你说的变量写成0-1变量与你的集合内的量乘积的和
    2019-04-10 10:47:37
  • @for(setname1(j):
    @for(setname2(r):
    @sum(setname3(n):D(n,r)*X(n,j))>=U(j,r)
    ))
    2019-04-10 10:40:04
  • 很赞哦! (107)