lingo 如何表示 两个和式的或?
问题描述:
lingo 如何表示 两个和式的或?
规划目标矩阵的每一行,可以是4也可以是5,这个怎么表示?
@for(supply(j):@sum(demand(i):x(i,j))=5#or#supply(j):@sum(demand(i):x(i,j))=4);
@for(supply(j):(@sum(demand(i):x(i,j))=5#or#@sum(demand(i):x(i,j))=4));
答
加一个0-1变量就可以了
@for(supply(j):@sum(demand(i):x(i,j))=4+b);
@bin(b);牛╮(╯▽╰)╭,好吧,可是如果是0 4 5咋办 其实我要做的是0 4 5@for(supply(j):@abs(@sum(demand(i):x(i,j))-2)=2+b);我太佩服您的 lingo了!!!简直是艺术家啊,不过这不是普世的方法啊,对于一般的情况,比如5个7个差异较大的整数或者非整数和解呢?逻辑或的写入才是根本啊,这样的写法能不能加上?(x-4)*(x-5)*(x-8)*(x-16)=0,则x=4或x5或x=8或x=16@for(supply(j):(@sum(demand(i):x(i,j))-4)*(@sum(demand(i):x(i,j))-5)*(@sum(demand(i):x(i,j))-8)*(@sum(demand(i):x(i,j))-16)=0);