lingo里面写限制条件的时候,怎么表示x可以等于0和不等于0,当x不等于0时,取值范围为10到30,求lingo高手

avocat 1年前 已收到1个回答 举报

夜猫影 花朵

共回答了20个问题采纳率:85% 举报

lingo11以后又semic函数 @semic(10,x,30); 这样就是你要表达的那种
不过这个函数只能用在线性规划里面

1年前 追问

6

avocat 举报

min=@sum(a(k): d(k)-@sum(link(i,j)|j #eq# k:x(i,j))); @for(link(i,j)|t(i,j) #lt# 2 #or# t(i,j) #gt# 4:x(i,j)=0); @for(a(k): @sum(link(i,j)|j#eq#k:x(i,j))>=d(k)); @for(a(k): @sum(link(i,j)|i#eq#k:x(i,j))<=f(k)); @for(a(i): @mod(x(7,i),2)=0); @for(a(i): @mod(x(8,i),2)=0); @for(link(i,j): @gin(x(i,j))); @for(link(i,j)|t(i,j) #ge# 2 #and# t(i,j) #le# 4: @semic(10,x,30)); 为什么我这还是有问题

举报 夜猫影

你的t是已知的吗? 你给下标做限制必须是已知的 变量做限制不行

avocat 举报

嗯,是已知的,已经赋值好了 sets: a/1..8/:f,d; link(a,a):x,t; endsets data: f=30 20 40 30 10 60 60 80; d=20 35 30 40 15 30 60 50; t= 2 4 6 7 8 10 12 13 1 3 5 6 7 9 11 12 1 1 3 4 5 8 9 10 3 1 1 2 3 3 7 8 7 5 3 2 1 2 3 4 8 6 4 3 2 1 2 3 12 10 8 7 6 3 2 3 13 11 9 8 7 4 3 2; enddata init: x=0; endinit

举报 夜猫影

我一开始不是跟你说了这个函数只能用在线性模型上吗 你没看见?

avocat 举报

什么是线性的?我刚学,是不是因为t是二维的? 呃。。还有没有其他方法啊? 求解答

举报 夜猫影

你这里面限制x是偶数就不是线性了知道吗
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 1.983 s. - webmaster@yulucn.com