1 Complexity of optimization problems
1.1 Optimization problems
The study of the complexity of solving optimization problems is an important practical aspect of complexity theory. A good textbook on this topic isthe one by Ausiello et al. [ACG
+
99]. The book by Vazirani [Vaz01] is alsorecommend, but its focus is on the algorithms side.
Deﬁnition 1.1.
An
optimization problem
P
is a 4tuple
(I
P
,
S
P
,
m
P
,
goal
P
)
where1.
I
P
⊆ {
0
,
1
}
∗
is the set of
valid instances
of
P
,2.
S
P
is a function that assigns to each valid instance
x
the set of
feasiblesolutions S
P
(
x
)
of
x
, which is a subset of
{
0
,
1
}
∗
.
1
3.
m
P
:
{
(
x,y
)

x
∈
I
P
and
y
∈
S
P
(
x
)
} →
N
+
is the
objective function
or
measure function
.
m
P
(
x,y
)
is the objective value of the feasiblesolution
y
(with respect to
x
).4.
goal
P
∈ {
min
,
max
}
speciﬁes the type of the optimization problem.Either it is a minimization or a maximization problem.
When the context is clear, we will drop the subscript
P
. Formally,an optimization problem is deﬁned over the alphabet
{
0
,
1
}
. But as usual,when we talk about concrete problems, we want to talk about graphs, nodes,weights, etc. In this case, we tacitly assume that we can always ﬁnd suitableencodings of the objects we talk about.Given an instance
x
of the optimization problem
P
, we denote by S
∗
P
(
x
)the set of all optimal solutions, that is, the set of all
y
∈
S
P
(
x
) such thatm
P
(
x,y
) = goal
{
m
P
(
x,z
)

z
∈
S
P
(
x
)
}
.
(Note that the set of optimal solutions could be empty, since the maximumneed not exist. The minimum always exists, since we m
P
only attains values in
N
+
. In the following we will assume that there are always optimal
1
Some authors also assume that for all
x
∈
I
P
, S
P
(
x
)
=
∅
. In this case the class
NPO
deﬁned in the next section would be equal to the class
exp

APX
(deﬁned somewhere else).
3