Mathematical optimisation or programming deals with the determination of an optimal solution from a set of permissible solutions. The set of permissible solutions is generally defined by the so-called constraints on the decision-making variables. The „optimality“ is defined by specifying a so-called „objective function“ through the decision-making variables, which need to be maximised or minimised. Typical examples of this are cost minimisation or contribution margin maximisation.