Small changes to a few files
This commit is contained in:
parent
b84118430f
commit
bd6a9f9d44
@ -22,7 +22,7 @@
|
||||
|
||||
\newacronym{ess-prime}{Essence'}{Essence Prime}
|
||||
|
||||
\newacronym{gbac}{GBAC}{Generalised Balanced Academic Curriculum}
|
||||
\newacronym{gbac}{GBAC}{Generalized Balanced Academic Curriculum}
|
||||
|
||||
\newacronym[see={[Glossary:]{gls-lcg}}]{lcg}{LCG\glsadd{gls-lcg}}{Lazy Clause Generation}
|
||||
|
||||
@ -42,7 +42,7 @@
|
||||
|
||||
\newacronym{or}{OR}{Operational Research}
|
||||
|
||||
\newacronym[see={[Glossary:]{gls-opl}}]{opl}{OPL\glsadd{gls-opl}}{The Optimisation Programming Language}
|
||||
\newacronym[see={[Glossary:]{gls-opl}}]{opl}{OPL\glsadd{gls-opl}}{The Optimization Programming Language}
|
||||
|
||||
\newacronym{pos}{\textit{pos}}{positive context}
|
||||
|
||||
|
@ -56,7 +56,6 @@
|
||||
style=apa,
|
||||
backend=biber,
|
||||
]{biblatex}
|
||||
\DeclareLanguageMapping{australian}{english-apa}
|
||||
\usepackage[noabbrev]{cleveref}
|
||||
|
||||
% Tables
|
||||
|
@ -1,10 +1,10 @@
|
||||
\begin{tabular}{lrrr}
|
||||
\toprule
|
||||
& Full Reification & \multicolumn{2}{l}{Half Reification} \\
|
||||
& Full Reification & \multicolumn{2}{l}{Half-Reification} \\
|
||||
\midrule
|
||||
Constraints & 7,085,131 & 7,030,942 & (-0.76\%) \\
|
||||
Reifications & 1,698,026 & 763,031 & (-55.06\%) \\
|
||||
Half Reifications & 0 & 934,975 & \\
|
||||
Half-Reifications & 0 & 934,975 & \\
|
||||
Implications Removed & 0 & 54,169 & \\
|
||||
Rewriting Time & 575s & 580s & (0.93\%) \\
|
||||
\bottomrule
|
||||
|
@ -1,10 +1,10 @@
|
||||
\begin{tabular}{lrrr}
|
||||
\toprule
|
||||
& Full Reification & \multicolumn{2}{l}{Half Reification} \\
|
||||
& Full Reification & \multicolumn{2}{l}{Half-Reification} \\
|
||||
\midrule
|
||||
Constraints & 11,880,863 & 10,990,943 & (-7.49\%) \\
|
||||
Reifications & 3,786,613 & 2,570,378 & (-32.12\%) \\
|
||||
Half Reifications & 0 & 1,099,397 & \\
|
||||
Half-Reifications & 0 & 1,099,397 & \\
|
||||
Implications Removed & 0 & 67,833 & \\
|
||||
Rewriting Time & 3,223s & 3,279s & (1.73\%) \\
|
||||
\bottomrule
|
||||
|
@ -1,10 +1,10 @@
|
||||
\begin{tabular}{lrrr}
|
||||
\toprule
|
||||
& Full Reification & Half Reification & \\
|
||||
& Full Reification & \multicolumn{2}{l}{Half-Reification} \\
|
||||
\midrule
|
||||
Constraints & 68,652,864 & 68,111,741 & (-0.79\%) \\
|
||||
Reifications & 2,903,542 & 2,557,830 & (-11.91\%) \\
|
||||
Half Reifications & 694,276 & 856,364 & \\
|
||||
Half-Reifications & 694,276 & 856,364 & \\
|
||||
Implications Removed & 0 & 182 & \\
|
||||
Rewriting Time & 6,030s & 5,926s & (-1.28\%) \\
|
||||
\bottomrule
|
||||
|
@ -158,7 +158,7 @@ Only full \gls{reif} can be used for expressions that are in this context.
|
||||
\end{example}
|
||||
|
||||
|
||||
\section{Propagation and Half Reification}%
|
||||
\section{Propagation and Half-Reification}%
|
||||
\label{sec:half-propagation}
|
||||
|
||||
Logically, there are three tasks that a \gls{propagator} for any \constraint{} must perform:
|
||||
@ -251,7 +251,7 @@ This means that the \glspl{cvar} are still fixed at the same time, but there is
|
||||
|
||||
In \cref{sec:half-experiments} we assess the implementation of \glspl{propagator} for the \glspl{half-reif} of \mzninline{all_different} and \mzninline{element} based on these principles.
|
||||
|
||||
\section{Decomposition and Half Reification}%
|
||||
\section{Decomposition and Half-Reification}%
|
||||
\label{sec:half-decomposition}
|
||||
|
||||
The use of \gls{half-reif} does not only offer a benefit when a \gls{propagator} for the \gls{half-reified} \constraint{} is available.
|
||||
@ -700,7 +700,7 @@ Therefore, it will output the \posc{} call for the right-hand side of \mzninline
|
||||
At compile time, this is the only correct context to use.
|
||||
We will, however, discuss how to adjust contexts dynamically during \gls{rewriting} in \cref{subsec:half-dyn-context}.
|
||||
|
||||
\section{Rewriting and Half Reification}%
|
||||
\section{Rewriting and Half-Reification}%
|
||||
\label{sec:half-rewriting}
|
||||
|
||||
During the \gls{rewriting} process the contexts assigned to the different expressions can be used directly to determine if and how an expression has to be \gls{reified}.
|
||||
@ -890,7 +890,7 @@ This canonical form for expressions and their negations can also be used for the
|
||||
Using the canonical form we can now also be sure that we never create a full \gls{reif} for both an expression and its negation.
|
||||
Instead, when one is created, the negation of the resulting \variable{} can directly be used as the \gls{reif} of its negation.
|
||||
Moreover, this mechanism also allows us to detect when an expression and its negation occur in \rootc{} context.
|
||||
Since a \constraint{} and its negation cannot both hold at the same time, this is a simple way to detect that the \cmodel{} is \gls{unsatisfiable}.
|
||||
Since a \constraint{} and its negation cannot both hold at the same time, this is a simple way to detect that the \cmodel{} is \gls{unsat}.
|
||||
|
||||
\subsection{Dynamic Context Switching}%
|
||||
\label{subsec:half-dyn-context}
|
||||
@ -958,7 +958,7 @@ We then analyse the trends in the generated \glspl{slv-mod} and their solving pe
|
||||
|
||||
A description of the used computational environment, \minizinc{} instances, and versioned software has been included in \cref{ch:benchmarks}.
|
||||
|
||||
\subsection{Half Reified Propagators}
|
||||
\subsection{Half-Reified Propagators}
|
||||
\label{sec:half-exp-prop}
|
||||
|
||||
Our first experiment considers the QCP-max quasi-group completion problem.
|
||||
@ -1033,7 +1033,7 @@ Although the performance on smaller \instances{} is similar, the dedicated \gls{
|
||||
The difference in performance becomes more pronounced in the bigger \instances{}.
|
||||
In the 32-4-8 group, we even see that usage of the \gls{propagator} allows us to solve an additional three \instances{}.
|
||||
|
||||
\subsection{Rewriting with Half Reification}
|
||||
\subsection{Rewriting with Half-Reification}
|
||||
\label{sec:half-exp-rewriting}
|
||||
|
||||
The usage of context analysis and introduction of \glspl{half-reif} allows us to evaluate \gls{half-reif} on a larger scale.
|
||||
@ -1116,7 +1116,7 @@ It might be possible to create more dedicated \glspl{decomp} for \gls{half-reifi
|
||||
|
||||
The results shown in this table are very mixed.
|
||||
For \gls{gecode}, \gls{half-reif} does not seem to impact its solving performance.
|
||||
We would have hoped that \glspl{propagators} for \glspl{half-reif} would be more efficient and reduce the number of \glspl{propagator} scheduled in general.
|
||||
We would have hoped that \glspl{propagator} for \glspl{half-reif} would be more efficient and reduce the number of \glspl{propagator} scheduled in general.
|
||||
However, neither number of \instances{} solved, nor the required solving time improved.
|
||||
A single \instance{}, however, is negatively impacted by the change; an \gls{opt-sol} for this \instance{} is no longer found.
|
||||
We expect that this \instance{} has benefited from the increased Boolean \gls{propagation} that is caused by full \gls{reif}.
|
||||
|
@ -25,7 +25,7 @@ Each part is published as a Git repository on GitHub.
|
||||
|
||||
This repository contains the flattening, recursive function, and the incremental flattening benchmarks.
|
||||
|
||||
\paragraph{Half Reification} The design for all the \gls{half-reif} experiments is located in:
|
||||
\paragraph{Half-Reification} The design for all the \gls{half-reif} experiments is located in:
|
||||
|
||||
\begin{center}
|
||||
\url{https://github.com/Dekker1/half-reif-benchmarks}
|
||||
|
@ -36,7 +36,7 @@ toc=bib,
|
||||
\input{chapters/2_background_preamble}
|
||||
\chapter{Rewriting Constraint Modelling Languages}\label{ch:rewriting}
|
||||
\input{chapters/3_rewriting_preamble}
|
||||
\chapter{Half Reification}\label{ch:half-reif}
|
||||
\chapter{Reasoning about Reification}\label{ch:half-reif}
|
||||
\input{chapters/4_half_reif_preamble}
|
||||
\chapter{Incremental Processing}\label{ch:incremental}
|
||||
\input{chapters/5_incremental_preamble}
|
||||
|
Reference in New Issue
Block a user