2015-09-22 69 views
1

我有一個使用三組不同的有序對的優化問題模型。使用這個約束:在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似乎並不喜歡這個,這給出了一個語法錯誤,我一直試圖在一些不同的「地方」的總和,但它不起作用。

有沒有人有關於此錯誤的線索?

回答

1

在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{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;