We determined that inversion, search, and NP types of problems are equivalent. Nobody knows whether all such problems are solvable in P-time (i.e. belong to P). This question (called P=?NP) is probably the most famous one in Theoretical Computer Science. All such problems are solvable in exponential time but it is unknown whether any better algorithm generally exists. For many problems the task of finding an efficient algorithm may seem hopeless, while similar or slightly relaxed problems can be solved. Examples:
Solution: The Dantzig's Simplex algorithm finds x quickly for most A. Some A, however, take exponential time. After long frustrating efforts, a worst case P-time Ellipsoid Algorithm was finally found in [Yudin Nemirovsky 1976].
Solution: A bad (exponential time) way is to try all
possible integer factors of
p. More sophisticated algorithms, however, run fast (see section
5.1).
and
, is
isomorphic to
? i.e. Can the vertices of
be re-numbered so that it becomes equal
?
Solution: Checking all
enumerations of vertices is not practical (for n = 100, this
exceeds the number of particles in the known Universe).
[Luks 1980] found an
steps
algorithm where d is the degree.
This is a P-time for
.
Solution: Max flow algorithm solves a bi-party graph case. The general case is solved by a sophisticated algorithm by J. Edmonds.
Many other problems have been battled for decades or centuries and no P-time solution has been found. Even modifications of the previous three examples have no known answers:
. Seems very hard: Centuries
of quest for fast algorithm were unsuccessful.
We learned the proofs that Linear Chess and some other games have exponential complexity. None of the above or any other search/inversion/NP problem, however, have been proven to require super-P-time. When, therefore, do we stop looking for an efficient solution?
to
iff
, for all x.
is NP-complete if all NP
problems can be reduced to it. Thus, each NP-complete problem is as
least as worst case hard as all other NP problems. This may be a good
reason to give up on fast algorithms for it. Any P-time algorithm for
one NP-complete problem would yield one for all other NP (or inversion,
or search) problems. No such solution has been discovered yet and this
is left as a homework (10 years deadline). What do we do when faced with
an NP-complete problem? Sometimes one can restate the problem, find a
similar one which is easier but still gives the information we really
want, or allow more powerful means. Both of these we will do in the next
section for factoring. Now we proceed with an example of
NP-completeness.