lingo中x=0或x=1,怎么写
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/26 04:14:36
当然不对括号都要用英文的每句后面加分号不能连写不等号相乘要有*
@if(z(i,j)=2,@bin(x(i,j)),0)再问:lingo里语法好像不允许,报错了再答:给具体点,不然我也没有办法写,我就表示那个意思。
集合x中的元素要嘛大于等于2要嘛等于0x≥2或x=0为真,即其中至少有一个为真
可能二者都不是,因为整数规划的解不能四舍五入或就近取整.再问:那结果会是什么呢?再答:结果是不能由非整数解来预测的,如模型:Max=3*x1+2*x2;2*x1+3*x2
有现成的0-1限制@bin(x);
可以让x1+x2=c;然后限制c为0-1变量@bin(c);你最好说清楚具体的问题我看有没有更好的办法再问:我没说清楚,x1+x2=0或1,x3+x4=0或1,x5+x6=0或1,这几个同时满足呢??
从代码看是没错,具体还得看你的集合定义
x与x1,x2,x3,x4关系没写,没法做.第一行的Z直接去掉,改为max=.他不会未知数,把c,t带个数进去
如果都是0-1变量,那么可以写成约束条件y(i)>x(i,j)
lingo中开方函数是@sqrtlingo中所有函数都是以@开头的建议你最好是写成^(1/2)
你这里面是用了集了吗如果用集就大概是这样的但是具体的你要自己写sets:s/1..5/:x,y,z;endsets@sum(s(i):x(i)+y(i)+z(i)=1);@for(s(i):@bin(
如果x>0,则为00,否则为0
改成这样min=x;1312.5*x-y7.79;
具体问题是什么如果x不是离散的单单不等于0是没用的必须要不小于一个非负的数整数情况的话写大于等于1就完了
默认变量都是非负的要取消非负限制必须用@free(x);再问:请问你知道如何在目标函数中表示max=|y-x|;中绝对值吗?再答:@abs(y-x);再问:0.25*x+0.5*y=1;y>=1;ma
这种问题何必用LINGO.如果非要这样,试试@if,比如sets:a/1..5/:x,ifornot;endsetsdata:x=1,2,3,4,5;enddata@for(a(i):ifornot(
有个疑问x=0和x>=9的情况是什么会在其它条件中给出吗?如果确定了x的范围不会超过你给的那下面的就行f=@if(x#lt#3,2*x+3,@if(x#lt#6,3*x,5*x-12));
@if函数结果是一个数值如果x(i,j)>=x(i-1,j)那么就是0否则就是x(i-1,j)-x(i,j)
不是什么东西都能表达成线性的如果什么都是线性的那么数学就简单了再问:能否增加O,1变量来使分段函数变为线性约束,我记得在哪看过忘了。我的模型很大,就这么一个非线性约束,如果转换为线性约束,就变为线性规
对不起,刚才敲错了,那是不是应该是A+ε=B查看原帖