Сортировка значений переменных.
Следующий код позволяет произвести действия с переменными: выполнить сортировку (расположить по возрастанию/убыванию) значения полученных переменных:
set A = setof {i in 0..5} v[i].val+i*eps ordered; set S = setof {i in 0..5} v[i].val+i*eps ordered by Reals; set T = setof {i in S} ord(i,A)-1 ordered; display {i in T} v[i];
Отображение переменных, которые > либо < заданного значения
Следующий код позволяет вывести все переменные, значение которых больше 10000000:
display{j in 1.._nvars: abs(_var[j]) > 10000000} (_varname[j], _var[j]);
Индексирование переменной с помощью параметра
В AMPL можно использовать параметр в выражении индексации переменных:
param Wx{X1} in W1; s.t. Constraint{x in X1}: sum{r1 in Rc} Y[r1, Wx[x]] <= sum{j in L1} A[Wx[x], j];
что эквивалентно:
set W2 in W1; subject to Constraint{x in W1: x in W2}: sum{r1 in Rc} Y[r1, x] <= sum{j in L1} A[x, j];
Одним из применений параметра, индексирующего переменную, является моделирование специального узла в сети, как при использовании параметра entr в netmax.mod из книги AMPL.