一个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)
人气:473 ℃ 时间:2020-07-08 11:29:00
解答
好多年没用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用起来感觉就是不太爽。而且计算效率也不够好,所以很久以前就不再用了。
推荐
猜你喜欢
- You’ve got a smile that could light up this whole
- 英语翻译
- 一支车队有15辆车,某天依次出发执行运输任务,第一辆车于下午2时出发,第二辆车于下午2时10分出发,第三辆车于下午2时20分出发,依次类推,假设所有的司机都连续开车,并且都在下午6时停下来休息.
- 一次检阅,接受检阅的一列彩车车队共30辆,每辆车长4米,前后两辆车相隔5米.如果车队每秒行驶2米,那么这列车队要通过535米长的检阅场地,需要多少时间?
- 英文句子的结构和成分分析,Lucy and Lily came too late and could only watch the performance from the balcony.
- more quick ,much quicker
- My aunt teaches english (改为一般疑问句)
- 一辆长120米货车遇到一辆迎面开来的长160米的客车,从车头相遇到车尾离开共用了8秒,货车每秒行驶17米,客