Modeling constraints
Shows how to define modeling constraints in OPL.
Constraints passed to the algorithm, and which as such define the optimization problem, usually apply to decision variables; that is, they are Boolean expressions of some decision variables. To be taken into account by the solving algorithm, constraints must be stated using the optimization instruction:
constraints
or
subject to
as shown in the following example.
Stating constraints by means of an optimization instruction
minimize
sum(p in Products) (insideCost[p]*inside[p] + outsideCost[p]*outside[p]);
subject to {
forall(r in Resources)
sum(p in Products) consumption[p,r] * inside[p] <= capacity[r];
forall(p in Products)
inside[p] + outside[p] >= demand[p];
}
Note:
Optimization instructions require an objective function of type integer or float.
That objective function must be defined before the constraints. Otherwise, a warning message is displayed.