lingo中X(i 1)-X(i)怎么编写
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/06 13:35:04
定义一个派生集link如下,其中x即可表示为一个矩阵sets:r/1..5/:;c/1..5/:;h/1..5/:;link(r,c,h):x;endsets
@if(z(i,j)=2,@bin(x(i,j)),0)再问:lingo里语法好像不允许,报错了再答:给具体点,不然我也没有办法写,我就表示那个意思。
集合x中的元素要嘛大于等于2要嘛等于0x≥2或x=0为真,即其中至少有一个为真
有现成的0-1限制@bin(x);
改了一点,在逻辑上没有问题,但是就不是线性模型了,用全局最优器解.你看看吧!MODEL:data:M=7;enddatasets:demand/1..m/:p,a,d,x,y;ob/1..m/:w;l
z=x+3i1−i(x∈R)=(x+3i)(1+i)2=(x−3)+(x+3)i2,∵复数z=x+3i1−i(x∈R)是实数,∴x+3=0,∴x=-3.故选A.
@FOR(product(J):SUM(WORKER(I):X(I,J))=@if(W(J)#gt#0,1,SUM(WORKER(I):X(I,J)));这样试试
sets:a/1..10/:;b/1..45/:;link(a,b):x;endsets@for(a(i):@for(b(j):x(i,j)+x(i,j+1)
从代码看是没错,具体还得看你的集合定义
如果都是0-1变量,那么可以写成约束条件y(i)>x(i,j)
如果x>0,则为00,否则为0
由3(5x+2)+5小于4x-6(x+1)先求x的范围15x+6+5
改成这样min=x;1312.5*x-y7.79;
@abs(x-2)
具体问题是什么如果x不是离散的单单不等于0是没用的必须要不小于一个非负的数整数情况的话写大于等于1就完了
建议你看一下lingo教程重点看集的部分其实很容易的要我帮你也可以请拿个完整的题来我不知道你说的矩阵为什么会只有一个指标
1)1+X/3>=1X/3>=0X>=02)1+X/3
@mod(x,5)=0;可能需要lingo10以上版本也可以再定义一个yx=5*y;@gin(y);这个用起来比较方便所有版本应该都可以
@if函数结果是一个数值如果x(i,j)>=x(i-1,j)那么就是0否则就是x(i-1,j)-x(i,j)
对不起,刚才敲错了,那是不是应该是A+ε=B查看原帖