我打算進行優化,但我得到一個我找不到原因的錯誤。編譯器抱怨服務時間,startlimit和endlimit不是無效的。特別是編譯器在約束TimeConstraint中抱怨servicetime ['ORIGINS']沒有值。AMPL:無效的下標
約束的問題是:
subject to TimeConstraint {k in H}: sum{i in UNI, j in UNI} servicetime[i]*x[i,j,k] <= 1440;
其中:
set ORIGINS;
set DESTINATIONS;
set UNI;
param servicetime{UNI} integer > 0;
var x{UNI,UNI, H} binary;
param startlimit{UNI};
param endlimit{UNI};
的.dat文件是:
set ORIGINS := 1 2 3 4 5 6 7;
set DESTINATIONS := 8 9 10 11 12 13 14;
set UNI = ORIGINS union DESTINATIONS;
param: startlimit endlimit servicetime:=
1 0 1440 360
2 0 1440 360
3 0 1440 360
4 0 1440 360
5 0 1440 360
6 0 1440 120
7 0 1440 120
8 0 1440 360
9 0 1440 360
10 0 1440 360
11 0 1440 360
12 0 1440 360
13 0 1440 120
14 0 1440 120;
我看不出這是行不通的。對我來說這看起來很準確。希望有人能對此有所瞭解! 問候,
startlimit和endlimit是如何定義的? – vitaut 2014-10-10 18:46:56
感謝您的回覆!我一直有一些互聯網問題,所以我一直無法登錄到檢查論壇。我編輯了我的原始文章以包含定義。 – Cenderze 2014-10-14 08:35:17