Expressions
Numeric Expressions
Statements
Parameter Declaration
param name [domain][, := value];
| name | identifier of the parameter | 
| domain | optional indexing expression | 
| attrib | optional attributes seperated by commas | 
Allowable attributes are
| := expression | expression defining the value of the parameter | 
Examples
                    param a;
                    param b := 5;
                    param c {I};
                    param d {j in J} := 2 * j;
                
Set Declaration
set name [domain][[, attrib]];
| name | identifier of the set | 
| domain | optional indexing expression | 
| attrib | optional attributes seperated by commas | 
Allowable attributes are
| dimen n | dimension of the tuples of the set | 
| := expression | expression defining the tuples of the set | 
Examples
                    set I;
                    set J := {1..10};
                    set K, dimen 2 := {(0, 0), (0, 1), (1,0), (1, 1)};
                    set L {i in I} := {1..i};
                
Variable Declaration
var name [domain][[, attrib]];
| name | identifier of the variable | 
| domain | optional indexing expression | 
| attrib | optional attributes seperated by commas | 
Allowable attributes are
| binary | variable can only take value 0 or 1 | 
| >= expression | lower bound | 
| <= expression | upper bound | 
| = expression | initial value | 
Examples
                    var v;
                    var w, binary, = 1;
                    var x {I}, >=0, <= 2;
                    var y {j in J}, = 2 * j;
                
Objective
minimize name : expression;
maximize name : expression;
| name | identifier of the objective | 
| expression | expression to be minimized or maximized | 
Examples
                    var x;
                    minimize ( x - 1 ) * x;