% Note: glossary entries for terms that are acronyms should be prefixed 'gls-' % so the non-prefixed reference is used to refer to the acronym % \newglossaryentry{gls-api}{ % name={API}, % description={An Application Programming Interface (API) is a particular set % of rules and specifications that a software program can follow to access and % make use of the services and resources provided by another particular software % program that implements that API}, % } \newglossaryentry{constraint}{ name={constraint}, description={A constraint is a relationship between two or more decision variables or problem parameters that has to present in any valid solution to a problem}, } \newglossaryentry{constraint-modelling}{ name={constraint modelling}, description={Constraint modelling is a technique used to describe combinatorial problems. In this paradigm the problem in terms of \glspl{decision-variable} that have an unknown value, but are potentially subject to certain \glspl{constraint}}, } \newglossaryentry{gls-cp}{ name={constraint programming}, description={Constraint Programming (CP) is a paradigm used to solve combinatorial problems. Its distinctive features are the declarative way in which the user creates a problem description, in this thesis referred to as \gls{constraint-modelling}, and its backtracking search that employs \gls{propagation} and customisable search heuristics}, } \newglossaryentry{gls-cse}{ name={common subexpression elimination}, description={Common Subexpression Elimination (CSE) is a technique used in the evaluation of programming languages to avoid redoing the same work. A description of how CSE works in \cmls\ can be found in \cref{sec:3-cse}}, } \newglossaryentry{decision-variable}{ name={decision variable}, description={A decision variable is a value that is yet to be determined. A problem defined as a constraint model is solved by assigning a value to each variable that does not violate any constraints in the model and, in case of an optimisation problem, optimises the objective function} } \newglossaryentry{flatzinc}{ name={Flat\-Zinc}, description={A subset of the \minizinc\ syntax that is used as input for \glspl{solver}}, } \newglossaryentry{global}{ name={global constraint}, description={A global constraint is a common \gls{constraint} pattern that can be described using simpler \glspl{constraint}. \Glspl{solver} sometimes provide dedicated algorithms or rewriting rules to better handle the global constraint}, } \newglossaryentry{gls-lns}{ name={large neighbourhood search}, description={Large Neighbourhood Search (LNS) is a meta-search algorithm that repeatedly restricts the search space, \ie applying a \gls{neighbourhood}, to quickly find better solutions to a problem}, } \newglossaryentry{meta-search}{ name={meta-search}, plural={meta-searches}, description={A search approach that repeatedly solves constraint models}, } \newglossaryentry{microzinc}{ name={Micro\-Zinc}, description={TODO}, } \newglossaryentry{minisearch}{ name={Mini\-Search}, description={TODO}, } \newglossaryentry{minizinc}{ name={Mini\-Zinc}, description={A high-level \gls{constraint-modelling} language with an extensive library of \glspl{global}}, } \newglossaryentry{nanozinc}{ name={Nano\-Zinc}, description={TODO}, } \newglossaryentry{neighbourhood}{ name={neighbourhood}, description={A neighbourhood is a restriction of the search space of the \gls{solver}}, } \newglossaryentry{restart}{ name={restart}, description={A restart takes place when a \gls{solver} abandons its current search position and start its search from the beginning}, } \newglossaryentry{solver}{ name={solver}, description={A solver is a dedicated program or algorithm that can be used to solve combinatorial problems, or a subset thereof}, } \newglossaryentry{problem-parameter}{ name={problem parameter}, description={A problem parameter is a constant value that helps define the problem. Its value can differ among different problem instances. Its exact value must be known when rewriting a constraint model, but is not required when compiling a constraint model into a executable program}, } \newglossaryentry{propagation}{ name={constraint propagation}, description={Constraint propagation is the inference that \glspl{decision-variable} can no longer take a certain values, lest they would violate a \gls{constraint}}, }