- Relational Operators
- Logical Expressions
- Binary Parameters
- Logical Operators
- Conditional Expressions
- Conditional Structures

Relational operators are used to compare two expressions. They are most commonly used in constraints, but not exclusively. The relational operators are:

Expression | Meaning |
---|---|

< |
Less than |

< |
Less than or equal to |

> |
Greater than |

>= |
Greater than or equal to |

>= |
Equal to |

<> |
Not equal to |

\begin{verbatim} sum {i in INGREDIENTS} FatPercent[i] * Percentage[i] >= MinFat \end{verbatim}

\begin{verbatim} sum {i in INGREDIENTS} FibrePercent[i] * Percentage[i] <= MaxFibre; \end{verbatim}

However, there are some special logical expressions in AMPL for use with sets:

- {\tt <e> in <SET>} is
*true*if {\tt <e>} is a member of {\tt <SET>}; - {\tt <e> not in <SET>} is
*false*if {\tt <e>} is a member of {\tt <SET>}; - exists {
in } is *true*if somein has being true; - forall {
in } is *true*if allin have being true; within is *true*if all the elements inare in ; not within is *true*if some element inis *not*in.

Logical expressions can be built up from other logical expressions, binary parameters and logical operators.

\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.

<\tt not} {\tt and} {\tt or}

A conditional expression is very much like the IF function in Excel:
param ifvalue := if

If the logical expression is true then ifvalue will be set to , otherwise it is set to 0 (by default) or, if the else part of the expression is present,

A conditional structure is the same as the classical if-then-else statement in programming languages like MATLAB, Fortran, Visual Basic and C++:
if

-- TWikiAdminGroup - 18 Mar 2008

Topic revision: r2 - 2008-03-18 - TWikiAdminUser

Copyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.

Ideas, requests, problems regarding TWiki? Send feedback

Ideas, requests, problems regarding TWiki? Send feedback