在AMPL中求和约束的集合元素语法错误

时间:2015-09-22 17:34:31

标签: ampl

我有一个使用三组不同的有序对的优化问题模型。使用此约束:

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;已经在一些不同的地方尝试了它,但是它不起作用。

有没有人对这个错误有所了解?

1 个答案:

答案 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;