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.