我有一个使用三组不同的有序对的优化问题模型。使用此约束:
subject to Constraint8 {t in T, j in J, a in A}:
sum{i in I: (i,j) in LINKS} l[i,t,a] >= sum{v in V, (ih,jh) in REV:(ih,j) not in LINKS} x[ih,j,v,t,a]+1;
实际上工作并提供正确的解决方案。我想改变这个约束,所以我将它注释掉,然后编写修改后的版本:
subject to Constraint8 {t in T, j in J, a in A}:
sum{i in I: (i,j) in LINKS} l[i,t,a] >= sum{g in T: g <= t, v in V, (ih,jh) in REV: (ih,j) not in LINKS} x[ih,j,v,g,a] +1;
(差异在于x
现在也在集合T上求和,但是在元素g in T: g <= t
上。但是,AMPL似乎不喜欢这样,这会产生语法错误.I& #39;已经在一些不同的地方尝试了它,但是它不起作用。
有没有人对这个错误有所了解?
答案 0 :(得分:1)
在AMPL以及数学符号中,你应该指定&#34;这样&#34;索引表达式结束时的条件:
subject to Constraint8 {t in T, j in J, a in A}:
sum{i in I: (i,j) in LINKS} l[i,t,a] >=
sum{g in T, v in V, (ih,jh) in REV: g <= t and (ih,j) not in LINKS}
x[ih,j,v,g,a] + 1;