diff --git a/chapters/0_abstract.tex b/chapters/0_abstract.tex index a611d18..a7b9d34 100644 --- a/chapters/0_abstract.tex +++ b/chapters/0_abstract.tex @@ -2,15 +2,17 @@ \chapter{Abstract}\label{ch:abstract} %************************************************ -\noindent{}\Cmls{}, such as \glsxtrshort{ampl}, have long provided a \ldots{} way to model and solve real world problems. -In the field of Operations Research, their use is \ldots{} and used in areas such as scheduling, supply chain management, and transportation. +\vspace{-5em} + +\noindent{}\Cmls{} are a prominent way to model and solve real world problems. +Their use extends to areas such as scheduling, supply chain management, and transportation. In the past, these languages served mainly as a standardized interface between different \solvers{}. -The \gls{rewriting} required to translate an \instance{} of a \cmodel{} into a model to use as solver input was minimal. +The \gls{rewriting} required to translate an \instance{} of a \cmodel{} into a \gls{slv-mod} was negligible. However, \cmls{} have evolved to include functionality that is no longer directly supported by the target \solver{}. As such, the \gls{rewriting} process has become more important and complex. -\minizinc{}, one such language, was originally designed to target constraint programming \solvers{} where the result is a small number of highly complex \constraints{}. -The same \minizinc{} models now target mixed integer programming and Boolean satisfiability \solvers{}, resulting is a large number of very simple \constraints{}. +\minizinc{}, one such language, was originally designed for constraint programming \solvers{}, whose \glspl{slv-mod} contain small number of highly complex \constraints{}. +The same \minizinc{} models can now target mixed integer programming and Boolean satisfiability \solvers{}, resulting is a large number of very simple \constraints{}. Distinctively, the \minizinc{}'s \gls{rewriting} process is founded on its functional language. It generates \glspl{slv-mod} through the application of increasingly complex \minizinc{} functions from \solver{}-specific libraries. Consequently, the efficiency of the functional evaluation of the language can be a limiting factor. @@ -18,22 +20,15 @@ For many applications, the current \minizinc{} implementation now requires a sig This problem is exacerbated by the emerging use of \gls{meta-optimisation} algorithms, which require solving a sequence of closely related \instances{}. In this thesis we revisit the \gls{rewriting} of functional \cmls{} into \glspl{slv-mod}. -We design and evaluate an architecture for \cmls{} that can accommodate the modern uses of these languages. -At the core of the this architecture lies a formal execution model that allows us rewrite \cmodels{} efficiently and actively manage the \gls{slv-mod}. -We show how our architecture can better detect and eliminate parts of the model that have become unused. +We design and evaluate an architecture for \cmls{} that can accommodate its the modern uses. +At its core lies a formal execution model that allows us rewrite \cmodels{} efficiently and actively manage the \gls{slv-mod}. +We show how it can better detect and eliminate parts of the model that have become unused. The architecture is extended using a range of well-known simplification techniques to unsure the quality of the produced \glspl{slv-mod}. +In addition, we incorporate new analysis techniques to avoid the use of \glspl{reif} or replace them with \glspl{half-reif}, where possible. +Crucially, the architecture is designed to incorporate incremental \constraint{} modelling in two ways. +Primarily, the \gls{rewriting} process is fully incremental: changes made to the \instance{} through a provided interface require minimal addition \gls{rewriting} effort. +Moreover, we introduce \gls{rbmo}, a way to specify \gls{meta-optimisation} algorithms directly in \minizinc{}. +These specification are executed by a normal \minizinc{} \solver{}, requiring only a slight extension of its capabilities. -Crucially, this architecture should allow us to: - -\begin{itemize} - - \item easily integrate a range of well-known and new \textbf{optimisation and simplification} techniques, - - \item effectively manage the \gls{slv-mod} and \textbf{detect and eliminate} parts of the model that have become unused, - - \item formally \textbf{reason about \gls{reif}} to avoid it or use \gls{half-reif} where possible, and - - \item support \textbf{incremental usage} of the \cml{}. - -\end{itemize} +Together, the functionality of this architecture helps make \cmls{} a more powerful and attractive approach to solve real world problems.