Constraints on groups of interval variables

Describes constraints that act to encapsulate a group of intervals together.

The main purpose of a group constraint is to encapsulate a group of interval variables into one effective higher level interval.

Three “interval grouping” constraints are available: span, alternative, and synchronize.

Span constraint: The constraint span(a, {b1, .., bn}) states that the interval a spans over all present intervals from the set {b1, .., bn}. That is, interval a starts together with the first present interval from {b1, .., bn} and ends together with the last one.

Alternative constraint: The constraint alternative(a, {b1, .., bn}) models an exclusive alternative between {b1, .., bn}. If interval a is present then exactly one of intervals {b1, .., bn} is present and a starts and ends together with this chosen one. The alternative constraint can also be specified by a non-negative integer cardinality c, alternative(a, {b1, .., bn}, c). In this case, it is not 1 but c interval variables that will be selected among the set {b1, .., bn} and those c selected intervals will have to start and end together with interval variable a.

Synchronize constraint: The constraint synchronize(a, {b1, .., bn}) makes intervals b1 . . . bn start and end together with interval a (if a is present).

span constraint
alternative interval constraint

Note that the alternative, span, and synchronize constraints cannot be used in meta-constraints.

For syntax and examples, see the functions as described in the OPL Language Quick Reference.