From bd6a9f9d4405d1e4a716046c0e73153fc6094da5 Mon Sep 17 00:00:00 2001 From: "Jip J. Dekker" Date: Sun, 25 Jul 2021 10:43:41 +1000 Subject: [PATCH] Small changes to a few files --- assets/acronyms.tex | 4 ++-- assets/packages.tex | 1 - assets/table/half_flat_gecode.tex | 4 ++-- assets/table/half_flat_linear.tex | 4 ++-- assets/table/half_flat_sat.tex | 4 ++-- chapters/4_half_reif.tex | 14 +++++++------- chapters/A2_benchmark.tex | 2 +- dekker_preamble.tex | 2 +- 8 files changed, 17 insertions(+), 18 deletions(-) diff --git a/assets/acronyms.tex b/assets/acronyms.tex index 402713b..3d42d79 100644 --- a/assets/acronyms.tex +++ b/assets/acronyms.tex @@ -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} diff --git a/assets/packages.tex b/assets/packages.tex index e703896..360bc90 100644 --- a/assets/packages.tex +++ b/assets/packages.tex @@ -56,7 +56,6 @@ style=apa, backend=biber, ]{biblatex} -\DeclareLanguageMapping{australian}{english-apa} \usepackage[noabbrev]{cleveref} % Tables diff --git a/assets/table/half_flat_gecode.tex b/assets/table/half_flat_gecode.tex index e598361..1657567 100644 --- a/assets/table/half_flat_gecode.tex +++ b/assets/table/half_flat_gecode.tex @@ -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 diff --git a/assets/table/half_flat_linear.tex b/assets/table/half_flat_linear.tex index 1c84094..029a27e 100644 --- a/assets/table/half_flat_linear.tex +++ b/assets/table/half_flat_linear.tex @@ -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 diff --git a/assets/table/half_flat_sat.tex b/assets/table/half_flat_sat.tex index a4a6495..fbb48fa 100644 --- a/assets/table/half_flat_sat.tex +++ b/assets/table/half_flat_sat.tex @@ -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 diff --git a/chapters/4_half_reif.tex b/chapters/4_half_reif.tex index bbad812..2841989 100644 --- a/chapters/4_half_reif.tex +++ b/chapters/4_half_reif.tex @@ -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}. diff --git a/chapters/A2_benchmark.tex b/chapters/A2_benchmark.tex index 1357c02..b86c406 100644 --- a/chapters/A2_benchmark.tex +++ b/chapters/A2_benchmark.tex @@ -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} diff --git a/dekker_preamble.tex b/dekker_preamble.tex index ec669e4..97e13ed 100644 --- a/dekker_preamble.tex +++ b/dekker_preamble.tex @@ -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}