8.2 – Strong NP Completeness. Adam Jones firstname.lastname@example.org CSE 8813, Theory of Computation Fall 2008. General/Restricted Cases. There exists no known generalizable algorithm for tractably solving problems of the class NP.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
email@example.comCSE 8813, Theory of Computation
There exists no known generalizable algorithm for tractably solving problems of the class NP.
Though these problems are intractable, most of them have individual instances that can be solved in polynomial time.
For example, the Partition problem suddenly changes behavior when changing its element size to a unary encoding and can easily be solved with Dynamic Programming!
Such problems as the unary encoded Partition problem are known to be pseudo-polynomial.
Definition 8.2, page 302:An algorithm runs in pseudo-polynomial time on some problem if it runs in time polynomial in the length of the input encoded in unary.
Examples:Subset Sums, Knapsack, Binpacking into Two Bins
Using this unary encoding strategy can be quite useful for problems such as Subset Sums, Knapsack, Binpacking into Two Bins
Also, binary encodings are always no longer than unary encodings, which are the length of the input, it follows that all polynomial time algorithms are also pseudo-polynomial time as well.
There are certain stipulations:
Values cannot be of an arbitrary size
This must provide a reasonable unary encoding
Many problems can be reasonably encoded in unary!
Does this mean that if any problem can be reasonably encoded in unary that it is pseudo-polynomial?
Does this mean that if any problem can be reasonably encoded in unary that it is pseudo-polynomial?Nope...
There exist some problems that even with restricted cases and encodings can NEVER be solved in polynomial time.
These problems are known as Strongly NP-Complete problems.
Definition 8.3, page 303:An NP-Complete problem is Strongly NP-Complete if it cannot be solved in pseudo-polynomial time unless it is found that P = NP.
There are many problems that can be expressed in unary and are still quite hard. These typically deal (but not necessarily) with arbitrarily large input values and cannot be reasonably encoded in unary.
Examples:Satisfiability, Graph Three-Colorability, Vertex Cover, Hamiltonian Circuit, Set Cover
Proposition 8.2, page 304A problem П є NP is strongly NP-Complete if and only if there exists some polynomial p() such that the restriction of П to those instances max(I)≤p(len(I)) is itself NP-Complete.
The best way to show that a problem is Strongly NP-Complete is to construct a transformation that produces only small numbers and subsequently shows that these transformations are also NP-Complete.
Theorem 8.8, page 304:Subset Product is strongly NP-Complete. An instance of this problem is given by a finite set S, a size function s:S → N, and a bound B. The question is “Does there exist a subset S' of S such that the product of the sizes of the elements of S' is equal to B?”
Proof, page 304
Theorem 8.9, page 305:For each fixed k≥3, k-Partition is strongly NP-Complete. An instance of this problem (for k≥3) is given by a set of kn elements, each with a positive integer size; the sum of all the sizes is a multiple of n, say Bn, and the size s(x) of each element x obeys the inequality:B/(k+1) < s(x) < B/(k-1)
The k-Partition problem is very closely related to the Binpacking problem.
It can be expressed packing elements into k bins.
Both k-Partition and Binpacking are strongly NP-Complete in their general form.
However, under restrictions of the input size these can both be solved in pseudo-polynomial time.
Definition 8.4, page 305:A many-one reduction, f, from problem П to problem П' is a pseudo-polynomial transformation if there exists polynomials p(,), q1(), and q2(,), such that, for an arbitrary instance I of П:
f(I) can be computed in p(len(I), max(I)) time;
len(I) ≤ q1(len'(f(I))); and
max'(f(I)) ≤ q2(len(I), max(I)).
The main difference between a polynomial and pseudo-polynomial transformation is the first condition mentioned in the Definition 8.4.
The pseudo-polynomial transformation can take time polynomial in both len(I) and max(I), not just len(I), as with the polynomial transformation.
Proposition 8.3, page 306:If П is strongly NP-Complete, П' belongs to NP, and П reduces to П' through pseudo-polynomial transformation, then П' is strongly NP-Complete.