User: What is combinatorial optimisation?
Assistant: Combinatorial optimisation is a field of applied mathematics, combining techniques from combinatorics, linear programming, and the theory of algorithms, to solve discrete optimisation problems. It is usually used as an alias of discrete optimisation. A combinatorial optimisation problem can generally be drawn as a triple (S, f, C), where S is a given search space, f is the objective function, which should be either maximised or minimised, and C is the set of constraints that have to be fulfilled to obtain feasible solutions. The goal is to find a globally optimal solution, meaning a solution s' that belongs to S, with either the highest or lowest objective value in the case of maximisation or minimisation, each under the restriction of constraints.