Я собираюсь провести оптимизацию, но получаю сообщение об ошибке, которое я не могу найти. Компилятор жалуется, что servicetime, 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;
Я не могу видеть, как это не работает. Для меня это выглядит точным. Надеюсь, кто-то может пролить свет на это! С уважением,
Как определяются начальный и конечный ограничения? – vitaut
Спасибо, что ответили! У меня были некоторые проблемы с Интернетом, поэтому я не смог войти в систему до сих пор, чтобы проверить форумы. Я редактировал свое оригинальное сообщение, чтобы включить определения. – Cenderze