Я учусь на AMPL и работаю над линейной задачей.Когда я пытаюсь решить ее с некоторыми данными, я получаю следующее сообщение:
Файл существует. Вы используете решатель cplexamp.Проверка amp.mod для cplex_options ... Проверка amp.com для cplex_options ... Выполнение AMPL.обработка данных.обработка команд.Выполнение на prod-exec-3.neos-server.org Переменные не объявлены.
Я не знаю, к чему относится «Файл существует».Это должно быть здесь?Но я беспокоюсь о том, что переменные не объявлены.Что это значит?Я много искал об этом и о том, как правильно объявлять переменные, но не смог найти ничего полезного.
Я пытался объявить переменную P различными способами, но я думаю, что это правильноодин (он работал для меня в другой проблеме в прошлом).
Вот копия моей модели.
param n_persones;
param n_unitats;
param max_caps;
param min_caps;
set caps := 1..n_persones;
set unitats := 1..n_unitats;
param si_unitats{caps,unitats};
param no_unitats{caps,unitats};
param si_cocaps{caps,caps};
param no_cocaps{caps,caps};
param pes{caps};
var P{i in caps, k in unitats} binary;
maximize f :
sum {i in caps} (pes[i] * (sum {k in unitats} (sum {j in caps} (si_cocaps[i,j] * P[i,k] * P[j,k] - no_cocaps[i,j] * P[i,k] * P[j,k])))
+ ((1 - pes[i]) * (sum {k in unitats} (si_unitats[i,k] * P[i,k] - no_unitats[i,k] * P[i,k]))));
subject to fitasup {k in unitats}:
(sum {j in caps} P[j,k]) <= max_caps;
subject to fitainf {k in unitats}:
(sum {j in caps} P[j,k]) >= min_caps;
subject to una_unitat_per_cap {i in caps}:
(sum {k in unitats} P[i,k]) == 1;