# Combinatorial optimization

In operations research, applied mathematics and theoretical computer science, combinatorial optimization is a topic that consists of finding an optimal object from a finite set of objects. In many such problems, exhaustive search is not tractable. It operates on the domain of those optimization problems in which the set of feasible solutions is discrete or can be reduced to discrete, and in which the goal is to find the best solution. Some common problems involving combinatorial optimization are the travelling salesman problem ("TSP"), the minimum spanning tree problem ("MST"), and the knapsack problem.

Combinatorial optimization is a subset of mathematical optimization that is related to operations research, algorithm theory, and computational complexity theory. It has important applications in several fields, including artificial intelligence, machine learning, auction theory, and software engineering.

Some research literature considers discrete optimization to consist of integer programming together with combinatorial optimization (which in turn is composed of optimization problems dealing with graph structures) although all of these topics have closely intertwined research literature. It often involves determining the way to efficiently allocate resources used to find solutions to mathematical problems.

## Applications

Applications for combinatorial optimization include, but are not limited to:

• Developing the best airline network of spokes and destinations
• Deciding which taxis in a fleet to route to pick up fares
• Determining the optimal way to deliver packages
• Working out the best allocation of jobs to people
• Determining the right attributes of concept elements prior to concept testing
• Logistics
• Supply chain optimization

## Methods

There is a large amount of literature on polynomial-time algorithms for certain special classes of discrete optimization, a considerable amount of it unified by the theory of linear programming. Some examples of combinatorial optimization problems that fall into this framework are shortest paths and shortest-path trees, flows and circulations, spanning trees, matching, and matroid problems.

For NP-complete discrete optimization problems, current research literature includes the following topics:

• polynomial-time exactly solvable special cases of the problem at hand (e.g. see fixed-parameter tractable)
• algorithms that perform well on "random" instances (e.g. for TSP)
• approximation algorithms that run in polynomial time and find a solution that is "close" to optimal
• solving real-world instances that arise in practice and do not necessarily exhibit the worst-case behavior inherent in NP-complete problems (e.g. TSP instances with tens of thousands of nodes).

Combinatorial optimization problems can be viewed as searching for the best element of some set of discrete items; therefore, in principle, any sort of search algorithm or metaheuristic can be used to solve them. However, generic search algorithms are not guaranteed to find an optimal solution first, nor are they guaranteed to run quickly (in polynomial time). Since some discrete optimization problems are NP-complete, such as the traveling salesman problem, this is expected unless P=NP.

## Formal definition

Formally, a combinatorial optimization problem $A$ is a quadruple $(I,f,m,g)$ , where

• $I$ is a set of instances;
• given an instance $x\in I$ , $f(x)$ is the finite set of feasible solutions;
• given an instance $x$ and a feasible solution $y$ of $x$ , $m(x,y)$ denotes the measure of $y$ , which is usually a positive real.
• $g$ is the goal function, and is either $\min$ or $\max$ .

The goal is then to find for some instance $x$ an optimal solution, that is, a feasible solution $y$ with

$m(x,y)=g\{m(x,y')\mid y'\in f(x)\}.$ For each combinatorial optimization problem, there is a corresponding decision problem that asks whether there is a feasible solution for some particular measure $m_{0}$ . For example, if there is a graph $G$ which contains vertices $u$ and $v$ , an optimization problem might be "find a path from $u$ to $v$ that uses the fewest edges". This problem might have an answer of, say, 4. A corresponding decision problem would be "is there a path from $u$ to $v$ that uses 10 or fewer edges?" This problem can be answered with a simple 'yes' or 'no'.

In the field of approximation algorithms, algorithms are designed to find near-optimal solutions to hard problems. The usual decision version is then an inadequate definition of the problem since it only specifies acceptable solutions. Even though we could introduce suitable decision problems, the problem is more naturally characterized as an optimization problem.

## NP optimization problem

An NP-optimization problem (NPO) is a combinatorial optimization problem with the following additional conditions. Note that the below referred polynomials are functions of the size of the respective functions' inputs, not the size of some implicit set of input instances.

• the size of every feasible solution $y\in f(x)$ is polynomially bounded in the size of the given instance $x$ ,
• the languages $\{\,x\,\mid \,x\in I\,\}$ and $\{\,(x,y)\,\mid \,y\in f(x)\,\}$ can be recognized in polynomial time, and
• $m$ is polynomial-time computable.

This implies that the corresponding decision problem is in NP. In computer science, interesting optimization problems usually have the above properties and are therefore NPO problems. A problem is additionally called a P-optimization (PO) problem, if there exists an algorithm which finds optimal solutions in polynomial time. Often, when dealing with the class NPO, one is interested in optimization problems for which the decision versions are NP-complete. Note that hardness relations are always with respect to some reduction. Due to the connection between approximation algorithms and computational optimization problems, reductions which preserve approximation in some respect are for this subject preferred than the usual Turing and Karp reductions. An example of such a reduction would be the L-reduction. For this reason, optimization problems with NP-complete decision versions are not necessarily called NPO-complete.

NPO is divided into the following subclasses according to their approximability:

• NPO(I): Equals FPTAS. Contains the Knapsack problem.
• NPO(II): Equals PTAS. Contains the Makespan scheduling problem.
• NPO(III): :The class of NPO problems that have polynomial-time algorithms which computes solutions with a cost at most c times the optimal cost (for minimization problems) or a cost at least $1/c$ of the optimal cost (for maximization problems). In Hromkovič's book, excluded from this class are all NPO(II)-problems save if P=NP. Without the exclusion, equals APX. Contains MAX-SAT and metric TSP.
• NPO(IV): :The class of NPO problems with polynomial-time algorithms approximating the optimal solution by a ratio that is polynomial in a logarithm of the size of the input. In Hromkovic's book, all NPO(III)-problems are excluded from this class unless P=NP. Contains the set cover problem.
• NPO(V): :The class of NPO problems with polynomial-time algorithms approximating the optimal solution by a ratio bounded by some function on n. In Hromkovic's book, all NPO(IV)-problems are excluded from this class unless P=NP. Contains the TSP and Max Clique problems.

An NPO problem is called polynomially bounded (PB) if, for every instance $x$ and for every solution $y\in f(x)$ , the measure $m(x,y)$ is bounded by a polynomial function of the size of $x$ . The class NPOPB is the class of NPO problems that are polynomially-bounded.