lingo中目标函数有分段函数求和问题怎么解决
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 05:07:26
max=@sum(routes(i,j):q(j)*x(i,j)+p(i)*x(i,j)-c(i,j)*x(i,j));
min=@sum(c(i,j)|i#ge#4:x(i,j));
y=@if(x#LT#3,800*x,640*x);
min=@sum(c(i,j):x(i,j));再问:i是从4到5的累加,也可以这样吗?再答:min=@sum(c(i,j)|i#ge#4:x(i,j));再问:哦哦。。。非常感谢哦。。。。
把目标函数各个最大值求出来放到一个数组里,再求其中的最小值
|0.35t+1280
去掉指的那个右括号就行了再问:大神又是你!真是谢谢了。改了还是不行啊,能帮完整的写一句吗?其实就是x1+x2=0时,y(2)=0;x1+x2=2时,y(2)=r(2);x1+x2=1时,y2=0.7*
4,1,1的话根本就无法满足约束条件20*i+30*j+80*k
不能的,LINGO中时不识别积分符号的.
用@IF不过貌似不好弄,尤其是分段太多的时候
你用集就需要定义集里面的参数不用集就不需要定义
满足约束的某个解
用@if()函数,可嵌套使用y=@if(逻辑表达式,为真时的值,为假时的值);例如当.{...x,当0≤x≤5时y={...3x-5,当5<x<10时.{..2x+1,当x≥10时用lingo可表示为
分段函数用@if 表示:max = 4.8*(x11+x21) + 5.6*(x12+x22) - @if(x#LT#0.5,&n
sets:si/1..6/:;sj/1..5/:;sij(si,sj):y,z,c,x;endsetsmax=@sum(si(i):(1500-25)*@sum(sj(j):y(i,j)*z(i,j)
取绝对值的函数.
可以通过@if来实现分段函数,例如|5x+20
既然是分段函数总要有分段的区间吧你不写区间没法表示出来分段函数一般用@if表示用多项式来表示(x-a)*(x-b)=0;或者用一个0-1变量y来表示x=a+y*(b-a);@bin(y);
@for()
目标函数是一个函数怎么可能是不等式你能对不等式求最大值吗?再问:那网络图中要求两点连通的距离不大于两点直线距离的2倍,该怎么用lingo求解?跪求!!再答:那是约束条件不是目标函数约束条件当然可以是不