% 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{gls-cbls}{ name={constraint-based local search}, description={\jip{todo}}, } \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{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:4-cse}}, } \newglossaryentry{gls-csp}{ name={constraint satisfaction problem}, description={TODO}, } \newglossaryentry{gls-cop}{ name={constraint optimisation problem}, description={TODO}, } \newglossaryentry{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{domain}{ name={domain}, description={The domain of a \gls{variable} is the set of values that it can still take to arrive at a solution to the problem.}, } \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{linear-programming}{ name={linear programming}, description={Linear programming is a method to optimise an linear objective function under the condition of a set of constraints which are all in the form of linear equations}, } \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{gls-mip}{ name={Mixed Integer Programming}, description={A form of \gls{linear-programming} where at least one of the variable can only take an integer value}, } \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{objective}{ name={objective}, description={The objective in a constraint model is a designated \gls{variable} or function. The goal of the solver is to find the solution that maximises or minimises the valuation of the objective} } \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{gls-sat}{ name={boolean satisfiability}, description={\jip{todo}}, } \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{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{variable} can no longer take a certain values, lest they would violate a \gls{constraint}}, } \newglossaryentry{reification}{ name={reification}, description={Instead of enforcing a particular relationship, a reification of a constraint predicate will report whether a relationship is present in the solution}, }