Some reflowing of paragraphs

This commit is contained in:
Jip J. Dekker 2021-05-25 15:05:52 +10:00
parent bc7d05cc2d
commit 3edf8638bd
No known key found for this signature in database
GPG Key ID: 517DF4A00618C9C3

View File

@ -2,8 +2,8 @@
\chapter{Background}\label{ch:background}
%************************************************
A goal shared between all programming languages is to provide a certain level of
abstraction: an assembly language allows you to abstract from the binary
A goal shared between all programming languages is to provide a certain level
of abstraction: an assembly language allows you to abstract from the binary
instructions and memory positions; Low-level imperial languages, like FORTRAN,
were the first to allow you to abstract from the processor architecture of the
target machine; and nowadays writing a program requires little knowledge of the
@ -11,21 +11,22 @@ actual workings of the hardware on which the program is executed.
Freuder states that the ``Holy Grail'' of programming languages would be where
the user merely states the problem, and the computer solves it and that
\gls{constraint-modelling} is one of the biggest steps towards this goal to this
day \autocite*{freuder-1997-holygrail}. Different from imperative (and even
other declarative) languages, in a \cml{} the modeller does not describe how to
solve the problem, but rather provides the problem requirements. You could say
that a constraint model actually describes the solution to the problem.
\gls{constraint-modelling} is one of the biggest steps towards this goal to
this day \autocite*{freuder-1997-holygrail}. Different from imperative (and
even other declarative) languages, in a \cml{} the modeller does not describe
how to solve the problem, but rather provides the problem requirements. You
could say that a constraint model actually describes the solution to the
problem.
In a constraint model, instead of specifying the manner in which we can find the
solution, we give a concise description of the problem. We describe what we
already know, the \parameters{}, what we wish to know, the \variables{}, and the
relationships that should exist between them, the \constraints{}.
In a constraint model, instead of specifying the manner in which we can find
the solution, we give a concise description of the problem. We describe what we
already know, the \parameters{}, what we wish to know, the \variables{}, and
the relationships that should exist between them, the \constraints{}.
This type of combinatorial problem is typically called a \gls{csp}. The goal of
a \gls{csp} is to find values for the \variables{} that satisfy the
\constraints{} or prove that no such assignment exists. Many \cmls\ also support
the modelling of \gls{cop}, where a \gls{csp} is augmented with a
\constraints{} or prove that no such assignment exists. Many \cmls\ also
support the modelling of \gls{cop}, where a \gls{csp} is augmented with a
\gls{objective} \(z\). In this case the goal is to find a solution that
satisfies all \constraints{} while minimising (or maximising) \(z\).
@ -39,10 +40,10 @@ requirements of the model.
Let us consider the following scenario: Packing for a weekend trip, I have to
decide which toys to bring for my dog, Audrey. We only have a small amount of
space left in the car, so we cannot bring all the toys. Since Audrey gets enjoys
playing with some toys more than others, we can now try and pick the toys that
bring Audrey the most amount of joy, but still fit in the car. The following set
of equations describe this knapsack problem as a \gls{cop}:
space left in the car, so we cannot bring all the toys. Since Audrey gets
enjoys playing with some toys more than others, we can now try and pick the
toys that bring Audrey the most amount of joy, but still fit in the car. The
following set of equations describe this knapsack problem as a \gls{cop}:
\begin{equation*}
\text{maximise}~z~\text{subject to}~
@ -53,14 +54,14 @@ requirements of the model.
\end{cases}
\end{equation*}
In these equations \(S\) is set \variable{}. It contains the selection of toys
that will be packed for the trip. \(z\) is the objective \variable{} that is
maximised to find the optimal selections of toys to pack. The \parameter{}
\(T\) is the set of all the toys. The \(joy\) and \(space\) functions are
\parameters{} used to map toys, \( t \in T\), to a value depicting the amount
of enjoyment and space required respectively. Finally, the \parameter{} \(C\)
is that depicts the total space that is left in the car before packing the
toys.
In these equations \(S\) is set \variable{}. It contains the selection of
toys that will be packed for the trip. \(z\) is the objective \variable{}
that is maximised to find the optimal selections of toys to pack. The
\parameter{} \(T\) is the set of all the toys. The \(joy\) and \(space\)
functions are \parameters{} used to map toys, \( t \in T\), to a value
depicting the amount of enjoyment and space required respectively. Finally,
the \parameter{} \(C\) is that depicts the total space that is left in the
car before packing the toys.
This constraint model gives an abstract mathematical definition of the
\gls{cop} that would be easy to adjust to changes in the requirements. To