Domain reduction

Constraint propagation reduces the domains of decision variables.

Each decision variable in an IBM® ILOG® Concert Technology model has a domain that is the set of its possible values.

For instance, the domain of the decision variable


    IloIntVar x(env, -1, 2);

is the set of values {-1, 0, 1, 2} , represented as [-1..2].

Note:

In IBM ILOG Concert Technology and CP Optimizer, square brackets denote the domain of decision variables. For example, [5 12] denotes a domain as a set consisting of precisely two integers, 5 and 12. In contrast, [5..12] denotes a domain as a range of integers, that is, the interval of integers from 5 to 12, so it consists of 5, 6, 7, 8, 9, 10, 11 and 12.

A constraint is stated over one or more decision variables and restricts the possible assignments of values to these variables. The possible assignments are the solutions of the constraint. For instance, the constraint x <= y allows the assignments x = 0, y = 1 or x = 2, y = 2 but not x = 3, y = 2.

A constraint can perform domain reduction on its decision variables to eliminate from their domains values that do not belong to a solution of the constraint. When the domain reduction algorithm is such that it removes all the values that do not belong to a solution, the process is called full domain reduction. Full domain reduction sometimes can be very costly in terms of computation time, so, in practice, the domain reduction performed by a constraint does not necessarily eliminate all inconsistent values.

As an example, consider the variables x and y, each of which has the initial domain [1..10] and the constraint x + y <= 5.

The domain of each variable is the set of integer values from 1 to 10. A solution to the constraint x + y <= 5 is the assignment to x and y any combination of values from the set {1, 2, 3, 4}. The assignment x = 5 does not lead to a solution for this constraint as there is no value in the domain of y that satisfies the constraint when x = 5. A full domain reduction for this constraint eliminates all values greater than 4 from the domains of x and y, and thus the domains of x and y are reduced to the interval [1..4].