Home

constraintthat

Constraintthat is a concept proposed for constraint programming to represent conditional constraints. It denotes a constraint C that is enforced only when a specified condition φ holds. The construct is intended to make conditional dependencies explicit in models and to align with how many solvers implement reified constraints or implication constraints.

Formal definition: In a finite-domain constraint satisfaction problem, let C be a constraint over a set of

Relation to existing concepts: constraintthat corresponds to the common practice of reified or conditional constraints in

Examples: In a scheduling problem, a constraint that a projector is required only if the meeting type

Implementation considerations: Efficiency depends on solver support for reification and implication constraints. Overhead may arise from

See also: Constraint programming, reified constraints, conditional constraints, implication constraints, modeling patterns.

variables
and
φ
be
a
boolean
condition
over
the
same
or
related
variables.
The
constraint
constraintthat(C,
φ)
is
satisfied
by
a
variable
assignment
if
either
φ
evaluates
to
false
under
the
assignment
or
C
is
satisfied.
Equivalently,
it
expresses
φ
→
C.
constraint
programming.
In
many
solvers,
φ
is
represented
by
a
boolean
variable
and
the
enforcement
of
C
is
gated
by
the
value
of
that
variable,
implemented
as
an
implication
or
as
a
reified
constraint.
is
'presentation'
can
be
written
as
constraintthat(hasProjector,
type
==
'presentation').
Another
example:
a
discount
applies
only
to
premium
customers,
expressed
as
constraintthat(discountApplies,
isPremium).
maintaining
additional
booleans
and
from
propagation
interactions
with
other
constraints.
Careful
modeling
can
prevent
unnecessary
relaxation
when
φ
is
undecided.