При отправке моей формулировки AMPL на сервер NEOS, почему приведенная ниже кодировка с использованием оператора `setof 'отлично работает в файле модели, но не в файле данных?setof в данных модели и файлах сценариев для сервера NEOS
set X := setof {indices in Y} subsetofindices
Сервер NEOS требует, чтобы код был разделен на .mod, .dat и файл сценария отдельно. Я видел ссылки на использование let
X := ...
в файле сценария. В чем разница между этими файлами и чем их разместить?
Пример Использование steelT.x файлов Ampl, это первый блок из 2-х файлов работает
# steelT.mod
set DUMMYPROD;
set PROD := setof {i in DUMMYPROD} i; # products
# steelT.dat
data;
set DUMMYPROD := bands coils;
Принимая во внимание следующее не работает:
# steelT.mod
set DUMMYPROD;
set PROD; # products
# steelT.dat
data;
set DUMMYPROD := bands coils;
set PROD := setof {i in DUMMYPROD} i;
возвращает ошибку
ожидается; (: Или символ контекст: установить PROD: = setof >>> {< < < я в DUMMYPROD} я;
Более широкий вопрос Вообще, то, что принадлежит в файле модели, файл данных и файл сценария ? (Также для param
и других определений) Каков порядок их обработки? Возможно, мне не хватает некоторых оснований, когда я читал руководство AMPL, где я этого не нашел (я никогда не занимался курсом оптимизации).
Бонус вопрос о сервере NEOS «Новый» Contraint programming logic in AMPL включает условные и логические операторы для целых ограничений. Я не думаю, что они доступны в NEOS. Или они (потому что они не работали для меня)? Есть ли простой способ?
Спасибо!