diff --git a/chapters/1_introduction.tex b/chapters/1_introduction.tex index 3015f2d..5f05ab0 100644 --- a/chapters/1_introduction.tex +++ b/chapters/1_introduction.tex @@ -50,11 +50,6 @@ And, only one task of the same job can be scheduled at the same time. We assume that each job has a task for every machine. As an \gls{opt-prb}, our goal is to find a schedule that minimises the finishing time of the last task. -\begin{listing} - \pyfile{assets/listing/intro_open_shop.mod} - \caption{\label{lst:intro-open-shop} An \glsxtrshort{ampl} model of the open shop problem} -\end{listing} - \Cref{lst:intro-open-shop} shows an \glsxtrshort{ampl} model for the open shop problem. In order of occurence, \lrefrange{line:intro:param:start}{line:intro:param:end} show the declarations of the \prbpars{}. To create an \instance{} of the problem, the user provides the number of jobs and machines that are considered, and the duration of each task. @@ -63,6 +58,11 @@ Additionally, we declare the end time of the last task as a \variable{}, to ease This \variable{} is made to be our optimisation goal on \lref{line:intro:goal}. Finally, \lrefrange{line:intro:con:start}{line:intro:con:end} express the \constraints{} of our problem in terms of equations bound by logic. +\begin{listing} + \pyfile{assets/listing/intro_open_shop.mod} + \caption{\label{lst:intro-open-shop} An \glsxtrshort{ampl} model of the open shop problem} +\end{listing} + The \glsxtrshort{ampl} model provides a clear definition of the problem class, but it can be argued that its meaning is hard to decipher. \glsxtrshort{ampl} does not provide any way to capture common concepts, such as one task preceding another or that two tasks cannot overlap in our example. Additionally, the process to encode an \instance{} into a \gls{slv-mod} all happens ``behind the scenes''.