Definitions

Optimization problem

In mathematics and computer science, an optimization problem is the problem of finding the best solution from all feasible solutions. More formally, an optimization problem $A$ is a quadruple $\left(I, f, m, g\right)$, where

• $I$ is a set of instances;
• given an instance $x in I$, $f\left(x\right)$ is the set of feasible solutions;
• given an instance $x$ and a feasible solution $y$ of $x$, $m\left(x, y\right)$ 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\left(x, y\right) = g \left\{ m\left(x, y\text{'}\right) mid y\text{'} in f\left(x\right) \right\} .$

For each 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 problems

An NP-optimization problem (NPO) is an optimization problem with the following additional conditions.

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-hard. 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 Hromkovic'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, excluded from this class are all NPO(III)-problems save if 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, excluded from this class are all NPO(IV)-problems save if P=NP. Contains the TSP and Max Clique problems.

Another class of interest is NPOPB, NPO with polynomially bounded cost functions. Problems with this condition has many desirable properties.