作业帮 > 综合 > 作业

一个lingo lingo中约束条件之间是 ‘或’ 的关系,应该如何表示?Lingo中是否允许?

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/17 11:20:25
一个lingo lingo中约束条件之间是 ‘或’ 的关系,应该如何表示?Lingo中是否允许?
代码如下,就是最后一个循环出错,去掉后可以执行,最后一句错在哪?
P是火车票价格;
model:
sets:
citys/1..10/:;
city/1..11/:u,tt1,tt2,et;
link(city,city):T1,T2,p,x;
links(city,city,citys):;
endsets
data:
p=@file('price.txt');
T1=@file('T1.txt');
T2=@file('T2.txt');
tt1=@file('tt1.txt');
tt2=@file('tt2.txt');
enddata
[OBJ] min=@SUM(link(i,j):p(i,j)*x(i,j));
@for(city(j):@sum(city(i)|j#ne#i:x(i,j))=1);!j前有一个城市相连;
@for(city(i):@sum(city(j)|j#ne#i:x(i,j))=1);!i前有一个城市相连;
@for(link(i,j)|(i#ne#j)#AND#(i#gt#1):u(i)-u(j)+11*x(i,j)
一个lingo lingo中约束条件之间是 ‘或’ 的关系,应该如何表示?Lingo中是否允许?
好多年没用lingo了,书写格式已经记不太清了.
至于你的补充问题,x>=10||y=0
max(x-10,100-y) 是关于(x,y)的凸函数,即为g(x,y)上式就是g(x,y)>=0
明显的这十个anticonvex 约束.是非凸的约束条件.
再问: 那这样表示是否可以? (x#GE#10)#OR#(y#LE#100)=1 还有就是能不能加上循环? 我的x,y不是一个变量: 比如说:@for(link(i,j):@MAX(x(i,j)-10,100-y(i,j))>=0; (两个问题)
再答: 加循环是没问题的, 表示构造了多个约束. 你可以试试看,如果不行可试下加个变量v. 引入等式约束v(某个范围内指标)=x(i,j)-10 和 v(某个范围内指标)=100-y(i,j) 最后针对v 用for 给出约束。 你第一个表达式可能是不行的。 总是lingo用起来感觉就是不太爽。而且计算效率也不够好,所以很久以前就不再用了。