Académique Documents
Professionnel Documents
Culture Documents
In this brief report, we shall try to present some of the most important notions and
classes of problems of the
Complexity Theory, the theory of classifying specified discrete problems based on
how difficult they are to solve.
Polynomial-Time Algorithms
The basic idea for problem classification lies on whether there exists a polynomial-
time (computer) algorithm that can provide the solution to a problem. We say that
algorithms run in polynomial time if i.e., for a problem of size n, the time or number
of steps needed to find the solution is a polynomial function of n, so their time-
complexity function is a polynomial. These algorithms solve the so-called easy, or
tractable, problems. Algorithms for solving hard, or intractable, problems, on the
other hand, require times that are exponential functions of the problem size n. These
algorithms are said to take exponential time to resolve. Polynomial-time algorithms
are considered to be efficient, while exponential-time algorithms are considered
inefficient, because the execution times of the latter grow much more rapidly as the
problem size increases.
fact, be harder. The NP-hard class is a superset containing the NP-complete class (see
below); this class is potentially harder to solve than NP-complete problems because
although if any NP-complete problem is intractable then all NP-hard problems are
intractable, the reverse is not true.
gives the key to all others and insight into solving any one gives insight into solving a
vast array of problems of extraordinary practical and economic significance
So when the objective is to prove that a problem is NP-complete, all that has to be
done is to show that the problem belongs to the class of NP problems and find a
known NP-complete problem reducible to it.
A final comment regarding the subject presented, would be that understanding the
notion of NP-completeness and NP-complete problems is important for a good
algorithm designer. If a problem can be establish as NP-complete, a good evidence for
its intractability is thus provided, so one would do better spending their time
developing an approximation algorithm (returning near-optimal good-enough
solutions) rather than searching for a fast one that solves the problem exactly.