Expression | Meaning |
---|---|
< | Less than |
<= | Less than or equal to |
> | Greater than |
>= | Greater than or equal to |
>= | Equal to |
<> | Not equal to |
Lower[r] <= sum {i in INGREDIENTS} Contributes[r, i] * Amount[i]
sum {s in SURFBOARDS} Recipe[m, s] * Production[s] <= Supply[m];However, there are some special logical expressions in AMPL for use with sets:
<e> in <SET>
is true if <e>
is a member of <SET>
;
<e>
is a member of <SET>
;
exists {<e> in <SET>} <expression>
is true if some <e>
in <SET>
has <expression>
being true;
forall {<e> in <SET>} <expression>
is true if all <e>
in <SET>
have <expression>
being true;
<SUBSET> within <SET>
is true if all the elements in <SUBSET>
are in <SET>
;
<SUBSET> not within <SET>
is true if some element in <SUBSET>
is not in <SET>
.
\begin{verbatim} param stillSearching binary; \end{verbatim}
Binary parameters are used in a similar way to boolean variables (in Matlab, C, etc) and logical variables (Fortran). If a binary parameter has the value 0 this is equivalent to false, and 1 is equivalent to true. Binary parameters can be used with conditional expressions to hold a true/false result from a logical expression:
\begin{verbatim} param isGreater binary;
let isGreater := if 4 > 5 then 1 else 0; # isGreater = 0 (false) let isGreater := if 6 > 5 then 1; # else 0 is the default, isGreater = 1 (true) \end{verbatim}so the syntax is
\begin{verbatim} \end{verbatim} or as the condition in a conditional statement or conditional structure. They are very useful for building complex conditional statements or structures:
\begin{verbatim} Some example from depth first searching or column generation \end{verbatim}
and controlling loops.