Tiny reformatting
This commit is contained in:
parent
574a40ea43
commit
5699b08621
@ -694,26 +694,22 @@ trailing.
|
||||
|
||||
\subsection{Incremental Solving}
|
||||
|
||||
Ideally, the incremental changes made by the interpreter would also be applied
|
||||
incrementally to the solver. This requires the solver to support both the
|
||||
dynamic addition and removal of variables and constraints. While some solvers
|
||||
can support this functionality, most solvers have limitations. The system can
|
||||
therefore support solvers with different levels of an incremental interface:
|
||||
Ideally, the incremental changes made by the interpreter would also be applied incrementally to the solver.
|
||||
This requires the solver to support both the dynamic addition and removal of variables and constraints.
|
||||
While some solvers can support this functionality, most solvers have limitations.
|
||||
The system can therefore support solvers with different levels of an incremental interface:
|
||||
|
||||
\begin{itemize}
|
||||
\item Using a non-incremental interface, the solver is reinitialised with the
|
||||
updated \nanozinc\ program every time. In this case, we still get a
|
||||
performance benefit from the improved flattening time, but not from
|
||||
incremental solving.
|
||||
\item Using a \textit{warm-starting} interface, the solver is reinitialised
|
||||
with the updated program as above, but it is also given a previous solution
|
||||
to initialise some internal data structures. In particular for mathematical
|
||||
programming solvers, this can result in dramatic performance gains compared
|
||||
to ``cold-starting'' the solver every time.
|
||||
\item Using a fully incremental interface, the solver is instructed to apply
|
||||
the changes made by the interpreter. In this case, the trail data structure
|
||||
is used to compute the set of \nanozinc\ changes since the last choice
|
||||
point.
|
||||
|
||||
\item Using a non-incremental interface, the solver is reinitialised with the updated \nanozinc\ program every time.
|
||||
In this case, we still get a performance benefit from the improved flattening time, but not from incremental solving.
|
||||
|
||||
\item Using a \textit{warm-starting} interface, the solver is reinitialised with the updated program as above, but it is also given a previous solution to initialise some internal data structures.
|
||||
In particular for mathematical programming solvers, this can result in dramatic performance gains compared to ``cold-starting'' the solver every time.
|
||||
|
||||
\item Using a fully incremental interface, the solver is instructed to apply the changes made by the interpreter.
|
||||
In this case, the trail data structure is used to compute the set of \nanozinc\ changes since the last choice point.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user