Объявления объектов модели имеют следующую общую форму:
entity name [aliasopt indexingopt bodyopt];
где name - это буквенно-цифровое имя, которое ранее не было присвоено объектам модели, alias - обозначает необязательный литерал, indexing - необязательное выражение индексации, а body - одно из ключевых слов. Entity использует следующие зарезервированные слова для объявления различных типов объектов:
Таблица 1. Зарезервированные слова (entity) для объявления различных типов объектов
arc environ maximize minimize node param |
problem set subject to suffix table var |
entity может быть опущен, для subject to. body различных объявлений состоит из других, в основном необязательных фраз, следующих за начальной частью. Каждое объявление заканчивается точкой с запятой.
Некоторые имена имеют специальные значения в AMPL, и могут использоваться только для определенных целей (зарезервированные имена). Большинство имен в AMPL имеют предопределенные значения, которые можно изменить, если необходимо. Например, имя sum зарезервировано для оператора сложения. Однако, prod просто предопределено как оператор повторного умножения. В случае необходимости его можно переопределить:
Таблица 2. Список зарезервированных имен
all binary by check complements contains current default dimen div |
else environ exists forall if in IN Infinity integer Initial INOUT |
less LOCAL logical max min option OUT setof shell_exitcode solve_exitcode solve_message |
solve_result solve_result_num suffix sum symbolic table then union until while within |
Слова, начинающиеся со знака нижнее подчеркивание _, также зарезервированы. Другие ключевые слова, имена функций и т.д., только предопределены. Как только предопределенное слово было переопределено, его первоначальное значение становится недоступным.