From 9e7118dd6a8e3db12cba172d26122f06791a3b68 Mon Sep 17 00:00:00 2001 From: "Jip J. Dekker" Date: Wed, 26 May 2021 18:21:57 +1000 Subject: [PATCH] Add paragraph on interaction between delaying and aggregation --- chapters/2_background.tex | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/chapters/2_background.tex b/chapters/2_background.tex index f50d47b..ce39004 100644 --- a/chapters/2_background.tex +++ b/chapters/2_background.tex @@ -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 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}% \label{subsec:back-fzn-optimisation}