Small changes to a few files

This commit is contained in:
Jip J. Dekker 2021-07-25 10:43:41 +10:00
parent b84118430f
commit bd6a9f9d44
No known key found for this signature in database
GPG Key ID: 517DF4A00618C9C3
8 changed files with 17 additions and 18 deletions

View File

@ -22,7 +22,7 @@
\newacronym{ess-prime}{Essence'}{Essence Prime} \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} \newacronym[see={[Glossary:]{gls-lcg}}]{lcg}{LCG\glsadd{gls-lcg}}{Lazy Clause Generation}
@ -42,7 +42,7 @@
\newacronym{or}{OR}{Operational Research} \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} \newacronym{pos}{\textit{pos}}{positive context}

View File

@ -56,7 +56,6 @@
style=apa, style=apa,
backend=biber, backend=biber,
]{biblatex} ]{biblatex}
\DeclareLanguageMapping{australian}{english-apa}
\usepackage[noabbrev]{cleveref} \usepackage[noabbrev]{cleveref}
% Tables % Tables

View File

@ -1,10 +1,10 @@
\begin{tabular}{lrrr} \begin{tabular}{lrrr}
\toprule \toprule
& Full Reification & \multicolumn{2}{l}{Half Reification} \\ & Full Reification & \multicolumn{2}{l}{Half-Reification} \\
\midrule \midrule
Constraints & 7,085,131 & 7,030,942 & (-0.76\%) \\ Constraints & 7,085,131 & 7,030,942 & (-0.76\%) \\
Reifications & 1,698,026 & 763,031 & (-55.06\%) \\ Reifications & 1,698,026 & 763,031 & (-55.06\%) \\
Half Reifications & 0 & 934,975 & \\ Half-Reifications & 0 & 934,975 & \\
Implications Removed & 0 & 54,169 & \\ Implications Removed & 0 & 54,169 & \\
Rewriting Time & 575s & 580s & (0.93\%) \\ Rewriting Time & 575s & 580s & (0.93\%) \\
\bottomrule \bottomrule

View File

@ -1,10 +1,10 @@
\begin{tabular}{lrrr} \begin{tabular}{lrrr}
\toprule \toprule
& Full Reification & \multicolumn{2}{l}{Half Reification} \\ & Full Reification & \multicolumn{2}{l}{Half-Reification} \\
\midrule \midrule
Constraints & 11,880,863 & 10,990,943 & (-7.49\%) \\ Constraints & 11,880,863 & 10,990,943 & (-7.49\%) \\
Reifications & 3,786,613 & 2,570,378 & (-32.12\%) \\ 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 & \\ Implications Removed & 0 & 67,833 & \\
Rewriting Time & 3,223s & 3,279s & (1.73\%) \\ Rewriting Time & 3,223s & 3,279s & (1.73\%) \\
\bottomrule \bottomrule

View File

@ -1,10 +1,10 @@
\begin{tabular}{lrrr} \begin{tabular}{lrrr}
\toprule \toprule
& Full Reification & Half Reification & \\ & Full Reification & \multicolumn{2}{l}{Half-Reification} \\
\midrule \midrule
Constraints & 68,652,864 & 68,111,741 & (-0.79\%) \\ Constraints & 68,652,864 & 68,111,741 & (-0.79\%) \\
Reifications & 2,903,542 & 2,557,830 & (-11.91\%) \\ 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 & \\ Implications Removed & 0 & 182 & \\
Rewriting Time & 6,030s & 5,926s & (-1.28\%) \\ Rewriting Time & 6,030s & 5,926s & (-1.28\%) \\
\bottomrule \bottomrule

View File

@ -158,7 +158,7 @@ Only full \gls{reif} can be used for expressions that are in this context.
\end{example} \end{example}
\section{Propagation and Half Reification}% \section{Propagation and Half-Reification}%
\label{sec:half-propagation} \label{sec:half-propagation}
Logically, there are three tasks that a \gls{propagator} for any \constraint{} must perform: 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. 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} \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. 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. 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}. 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} \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}. 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. 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. 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. 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}% \subsection{Dynamic Context Switching}%
\label{subsec:half-dyn-context} \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}. 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} \label{sec:half-exp-prop}
Our first experiment considers the QCP-max quasi-group completion problem. 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{}. 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{}. 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} \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. 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. The results shown in this table are very mixed.
For \gls{gecode}, \gls{half-reif} does not seem to impact its solving performance. 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. 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. 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}. We expect that this \instance{} has benefited from the increased Boolean \gls{propagation} that is caused by full \gls{reif}.

View File

@ -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. 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} \begin{center}
\url{https://github.com/Dekker1/half-reif-benchmarks} \url{https://github.com/Dekker1/half-reif-benchmarks}

View File

@ -36,7 +36,7 @@ toc=bib,
\input{chapters/2_background_preamble} \input{chapters/2_background_preamble}
\chapter{Rewriting Constraint Modelling Languages}\label{ch:rewriting} \chapter{Rewriting Constraint Modelling Languages}\label{ch:rewriting}
\input{chapters/3_rewriting_preamble} \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} \input{chapters/4_half_reif_preamble}
\chapter{Incremental Processing}\label{ch:incremental} \chapter{Incremental Processing}\label{ch:incremental}
\input{chapters/5_incremental_preamble} \input{chapters/5_incremental_preamble}