Optimization problem

In mathematics and computer science, an optimization problem is the problem of finding the best solution from all feasible solutions. Optimization problems can be divided into two categories depending on whether the variables are continuous or discrete. An optimization problem with discrete variables is known as a discrete optimization. In a discrete optimization problem, we are looking for an object such as an integer, permutation or graph from a countable set. Problems with continuous variables include constrained problems and multimodal problems.

Continuous optimization problem

The standard form of a continuous optimization problem is[1]

{\displaystyle {\begin{aligned}&{\underset {x}{\operatorname {minimize} }}&&f(x)\\&\operatorname {subject\;to} &&g_{i}(x)\leq 0,\quad i=1,\dots ,m\\&&&h_{j}(x)=0,\quad j=1,\dots ,p\end{aligned}}}

where

• ${\displaystyle f:\mathbb {R} ^{n}\to \mathbb {R} }$ is the objective function to be minimized over the n-variable vector ${\displaystyle x}$,
• ${\displaystyle g_{i}(x)\leq 0}$ are called inequality constraints
• ${\displaystyle h_{j}(x)=0}$ are called equality constraints, and
• ${\displaystyle m\geq 0\ and\ p\geq 0}$.

If ${\displaystyle m}$ and ${\displaystyle p}$ equal 0, the problem is an unconstrained optimization problem. By convention, the standard form defines a minimization problem. A maximization problem can be treated by negating the objective function.

Combinatorial optimization problem

Formally, a combinatorial optimization problem ${\displaystyle A}$ is a quadruple[citation needed] ${\displaystyle (I,f,m,g)}$, where

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

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

${\displaystyle 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 ${\displaystyle m_{0}}$. For example, if there is a graph ${\displaystyle G}$ which contains vertices ${\displaystyle u}$ and ${\displaystyle v}$, an optimization problem might be "find a path from ${\displaystyle u}$ to ${\displaystyle 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 ${\displaystyle u}$ to ${\displaystyle 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.[2]