Lecture #3: Approximation Algorithms
Lecture #3: Approximation Algorithms
Text
In maximization case, the value of OPT(x) is the maximum value of the objective
function for a particular problem instance and for a minimization case, the value of
OPT(x) is the minimum value of the objective function for a particular problem instance.
In the preceding lectures we saw strong evidence to support the claim that no NP-hard
problem can be solved in polynomial time. A large number of the optimization problems
which are required to be solved in practice are NP-hard. Complexity theory tells us that
it is impossible to find efficient algorithms for such problems unless P=NP, and this is
very unlikely to be true. This does not obviate the need for solving these problems.
Observe that NP-hardness only means that, if P≠NP, we cannot find algorithms which
will find exactly the optimal solution to all instances of the problem in time which is
polynomial in the size of the input. If we relax this rather stringent requirement, it may
still be possible to solve the problem reasonably well.
Many NP-hard optimization problems have great practical importance and it is desirable
to solve large instances of these problems in a reasonable amount of time. The best-
known algorithms for NP-hard problems have a worst-case complexity that is
exponential in the number of inputs.
There are three possibilities for relaxing the requirements outlined above to consider a
problem well-solved in practice:
Super-polynomial time heuristics: We may no longer require that the problem be
solved in polynomial time. In some cases there are algorithms which are just
barely super-polynomial and run reasonably fast in practice. There are
techniques (heuristics) such as branch-and-bound or dynamic programming
which are useful from this point of view. For example, the Knapsack problem is
NP-complete but it is considered “easy" since there is a “pseudo-polynomial"
time algorithm for it. A problem with this approach is that very few problems are
susceptible to such techniques and for most NP-hard problems the best
algorithm we know run in truly exponential time.
In some situations, the last relaxation of the requirements for solving a problem appears
to be the most reasonable. This results in the notion of the “approximate" solution of an
optimization problem.