Add paragraph on interaction between delaying and aggregation
This commit is contained in:
parent
e358213997
commit
9e7118dd6a
@ -1901,6 +1901,17 @@ Note that this heuristic does not guarantee that \variables{} have their
|
|||||||
tightest possible \gls{domain}. One delayed \constraint{} can still influence
|
tightest possible \gls{domain}. One delayed \constraint{} can still influence
|
||||||
the \glspl{domain} of \variables{} used by other delayed \constraints{}.
|
the \glspl{domain} of \variables{} used by other delayed \constraints{}.
|
||||||
|
|
||||||
|
Delaying the rewriting of constraints might, however, interfere with the
|
||||||
|
constraint aggregation. Since aggregation is eagerly performed only when a
|
||||||
|
\constraint{} is first encountered, it cannot aggregate any constraints that
|
||||||
|
follow from delayed values. For example, if when aggregating Boolean clauses
|
||||||
|
comes across an expression that needs to be reified, then a new Boolean
|
||||||
|
\variable{} is created and the reified \constraint{} is delayed. The problem
|
||||||
|
is, however, that if the definition of this reified constraint turn out to be
|
||||||
|
in terms of Boolean clauses as well, then this definition could have been
|
||||||
|
aggregated as well. Because the flattener does not revisit the aggregation of
|
||||||
|
variables, this does not happen.
|
||||||
|
|
||||||
\subsection{FlatZinc Optimisation}%
|
\subsection{FlatZinc Optimisation}%
|
||||||
\label{subsec:back-fzn-optimisation}
|
\label{subsec:back-fzn-optimisation}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user