Combinatorial Optimization")?> Optimization concentrates on finding an optimal element among a given set of elements according to some optimality criterion. There exist a lot of different formulations of this task, each resulting in different questions.
In linear programming, a set of elements is given by a system of linear inequations. Feasible solutions are evaluated by an objective function in order to find an element that minimizes or maximizes the function (if such an element exists).
Integer programming is characterized by demanding the feasible solutions to be an integer. Frequently this condition arises in addition to linear conditions mentioned above, resulting in integer linear programming. In this context, network flow problems are of particular importance.
Complexity theory tries to answer questions on the difficulty of optimization problems. Additionally, approximation theory deals with the approximate solution of optimization problems that are too difficult to be solved exactly.