Как исправить ошибку «Переменные не объявлены» при выполнении модели AMPL - PullRequest
0 голосов
/ 09 июля 2019

Я учусь на 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;
...