Запись выражений ( expr ) в AMPL может использовать следующие формы:
Форма | Описание компонентов |
expr arith-op expr Пример: 5 + X[i] |
expr - выражение содержащее number (числа), variable (переменные).
arith-op - операторы: + - less * / mod div ˆ ** |
unary-op expr
Пример: - X[i] |
expr - выражение содержащее number (числа), variable (переменные).
unary-op : + - |
built-in ( expr-list )
Пример: min (P[i]) |
built-in - встроенная функция
expr-list - список выражений |
Таблица ниже отражает арифметические, логические и множественные операторы; столбец Тип указывает, создает ли оператор арифметическое значение A, логическое значение L или набор S. Арифметические выражения формируются из обычных арифметических операторов, встроенных функций и операторов арифметической редукции: sum, prod, max, min ( expr ):
wdt_ID | Приоритет | Наименование | Тип | Примечание |
---|---|---|---|---|
1 | 1 | if-then-else | A, S | A: если не else, или ‘‘else 0’’ рекомендуемый; S: ‘‘else sexpr’’ обязательный |
2 | 2 | or, || | L | |
3 | 3 | exists, forall | L | итерационный логический оператор |
4 | 4 | and, && | L | |
5 | 5 | меньше, меньше либо равно, равно, больше либо равно, больше | L | |
6 | 6 | in, not in | L | Членство в наборе |
7 | 6 | within, not within | L | S within T означает, что набор S является поднабором ⊆ набора T |
8 | 7 | not, ! | L | логическое отрицание |
9 | 8 | union, diff, symdiff | S | symdiff ≡ симметричная разность |
10 | 9 | inter | S | Набор пересечения |