max cut Revisited
• The NP-complete max cut seeks to partition the nodes of graph G = (V, E) into (S, V − S) so that there are as many edges as possible between S and V − S (p. 290).
• Local search starts from a feasible solution and
performs “local” improvements until none are possible.
A 0.5-Approximation Algorithm for max cut
1: S := ∅;
2: while ∃v ∈ V whose switching sides results in a larger cut do
3: Switch the side of v;
4: end while
5: return S;
• A 0.12-approximation algorithm exists.a
• 0.059-approximation algorithms do not exist unless NP = ZPP.
aGoemans and Williamson (1995).
Analysis
V3 V4
V2 V1
Optimal cut
Our cut
e12
e13
e24
e34 e14 e23
Analysis (continued)
• Partition V = V1 ∪ V2 ∪ V3 ∪ V4, where our algorithm returns (V1 ∪ V2, V3 ∪ V4) and the optimum cut is
(V1 ∪ V3, V2 ∪ V4).
• Let eij be the number of edges between Vi and Vj.
• Because no migration of nodes can improve the
algorithm’s cut, for each node in V1, its edges to V1 ∪ V2 are outnumbered by those to V3 ∪ V4.
• Considering all nodes in V1 together, we have 2e11 + e12 ≤ e13 + e14, which implies
e12 ≤ e13 + e14.
Analysis (concluded)
• Similarly,
e12 ≤ e23 + e24 e34 ≤ e23 + e13 e34 ≤ e14 + e24
• Adding all four inequalities, dividing both sides by 2, and adding the inequality
e14 + e23 ≤ e14 + e23 + e13 + e24, we obtain
e12 + e34 + e14 + e23 ≤ 2(e13 + e14 + e23 + e24).
• The above says our solution is at least half the optimum.
Approximability, Unapproximability, and Between
• knapsack, node cover, maxsat, and max cut have approximation thresholds less than 1.
– knapsack has a threshold of 0 (see p. 590).
– But node cover and maxsat have a threshold larger than 0.
• The situation is maximally pessimistic for tsp: It cannot be approximated unless P = NP (see p. 588).
– The approximation threshold of tsp is 1.
∗ The threshold is 1/3 if the tsp satisfies the triangular inequality.
– The same holds for independent set.
Unapproximability of tsp
aTheorem 74 The approximation threshold of tsp is 1 unless P = NP.
• Suppose there is a polynomial-time ǫ-approximation algorithm for tsp for some ǫ < 1.
• We shall construct a polynomial-time algorithm for the NP-complete hamiltonian cycle.
• Given any graph G = (V, E), construct a tsp with |V | cities with distances
dij =
1, if { i, j } ∈ E
|V |
1−ǫ, otherwise
aSahni and Gonzales (1976).
The Proof (concluded)
• Run the alleged approximation algorithm on this tsp.
• Suppose a tour of cost |V | is returned.
– This tour must be a Hamiltonian cycle.
• Suppose a tour with at least one edge of length 1−ǫ|V | is returned.
– The total length of this tour is > 1−ǫ|V | .
– Because the algorithm is ǫ-approximate, the optimum is at least 1 − ǫ times the returned tour’s length.
– The optimum tour has a cost exceeding | V |.
– Hence G has no Hamiltonian cycles.
knapsack Has an Approximation Threshold of Zero
aTheorem 75 For any ǫ, there is a polynomial-time ǫ-approximation algorithm for knapsack.
• We have n weights w1, w2, . . . , wn ∈ Z+, a weight limit W , and n values v1, v2, . . . , vn ∈ Z+.b
• We must find an S ⊆ {1, 2, . . . , n} such that P
i∈S wi ≤ W and P
i∈S vi is the largest possible.
• Let
V = max{v1, v2, . . . , vn}.
aIbarra and Kim (1975).
bIf the values are fractional, the result is slightly messier but the main conclusion remains correct. Contributed by Mr. Jr-Ben Tian (R92922045) on December 29, 2004.
The Proof (continued)
• For 0 ≤ i ≤ n and 0 ≤ v ≤ nV , define W (i, v) to be the minimum weight attainable by selecting some among the i first items, so that their value is exactly v.
• Start with W (0, v) = ∞ for all v.
• Then
W (i + 1, v) = min{W (i, v), W (i, v − vi+1) + wi+1}.
• Finally, pick the largest v such that W (n, v) ≤ W .
• The running time is O(n2V ), not polynomial time.
• Key idea: Limit the number of precision bits.
The Proof (continued)
• Given the instance x = (w1, . . . , wn, W, v1, . . . , vn), we define the approximate instance
x′ = (w1, . . . , wn, W, v1′ , . . . , vn′ ), where
vi′ = 2b j vi
2b k.
• Solving x′ takes time O(n2V /2b).
• The solution S′ is close to the optimum solution S:
X
i∈S
vi ≥ X
i∈S′
vi ≥ X
i∈S′
vi′ ≥ X
i∈S
vi′ ≥ X
i∈S
(vi − 2b) ≥ X
i∈S
vi − n2b.
The Proof (continued)
• Hence
X
i∈S′
vi ≥ X
i∈S
vi − n2b.
• Without loss of generality, wi ≤ W (otherwise item i is redundant).
• V is a lower bound on opt.
– Picking the item with value V alone is a legitimate choice.
• The relative error from the optimum is ≤ n2b/V as P
i∈S vi − P
i∈S′ vi
P
i∈S vi ≤
P
i∈S vi − P
i∈S′ vi
V ≤ n2b
V .
The Proof (concluded)
• Truncate the last b = ⌊log2 ǫV
n ⌋ bits of the values.
• The algorithm becomes ǫ-approximate (see Eq. (8) on p. 567).
• The running time is then O(n2V /2b) = O(n3/ǫ), a polynomial in n and 1/ǫ.
Pseudo-Polynomial-Time Algorithms
• Consider problems with inputs that consist of a
collection of integer parameters (tsp, knapsack, etc.).
• An algorithm for such a problem whose running time is a polynomial of the input length and the value (not length) of the largest integer parameter is a
pseudo-polynomial-time algorithm.a
• On p. 591, we presented a pseudo-polynomial-time algorithm for knapsack that runs in time O(n2V ).
• How about tsp (d), another NP-complete problem?
aGarey and Johnson (1978).
No Pseudo-Polynomial-Time Algorithms for tsp (d)
• By definition, a pseudo-polynomial-time algorithm becomes polynomial-time if each integer parameter is limited to having a value polynomial in the input length.
• Corollary 38 (p. 306) showed that hamiltonian path is reducible to tsp (d) with weights 1 and 2.
• As hamiltonian path is NP-complete, tsp (d) cannot have pseudo-polynomial-time algorithms unless P = NP.
• tsp (d) is said to be strongly NP-hard.
• Many weighted versions of NP-complete problems are strongly NP-hard.
Polynomial-Time Approximation Scheme
• Algorithm M is a polynomial-time approximation scheme (PTAS) for a problem if:
– For each ǫ > 0 and instance x of the problem, M runs in time polynomial (depending on ǫ) in | x |.
∗ Think of ǫ as a constant.
– M is an ǫ-approximation algorithm for every ǫ > 0.
Fully Polynomial-Time Approximation Scheme
• A polynomial-time approximation scheme is fully polynomial (FPTAS) if the running time depends polynomially on | x | and 1/ǫ.
– Maybe the best result for a “hard” problem.
– For instance, knapsack is fully polynomial with a running time of O(n3/ǫ) (p. 590).
Square of G
• Let G = (V, E) be an undirected graph.
• G2 has nodes {(v1, v2) : v1, v2 ∈ V } and edges
{{ (u, u′), (v, v′)} : (u = v ∧ { u′, v′ } ∈ E) ∨ { u, v } ∈ E}.
1
2
3
(1,1)
G
(1,2) (1,3)
(2,1) (2,2) (2,3)
(3,1) (3,2) (3,3)
G2
Independent Sets of G and G
2Lemma 76 G(V, E) has an independent set of size k if and only if G2 has an independent set of size k2.
• Suppose G has an independent set I ⊆ V of size k.
• {(u, v) : u, v ∈ I} is an independent set of size k2 of G2.
1
2
3
(1,1)
G
(1,2) (1,3)
(2,1) (2,2) (2,3)
(3,1) (3,2) (3,3)
G2
The Proof (continued)
• Suppose G2 has an independent set I2 of size k2.
• U ≡ {u : ∃v ∈ V (u, v) ∈ I2} is an independent set of G.
1
2
3
(1,1)
G
(1,2) (1,3)
(2,1) (2,2) (2,3)
(3,1) (3,2) (3,3)
G2
• | U | is the number of “rows” that the nodes in I2 occupy.
The Proof (concluded)
a• If | U | ≥ k, then we are done.
• Now assume | U | < k.
• As the k2 nodes in I2 cover fewer than k “rows,” there must be a “row” in possession of > k nodes of I2.
• Those > k nodes will be independent in G as each “row”
is a copy of G.
aThanks to a lively class discussion on December 29, 2004.
Approximability of independent set
• The approximation threshold of the maximum independent set is either zero or one (it is one!).
Theorem 77 If there is a polynomial-time ǫ-approximation algorithm for independent set for any 0 < ǫ < 1, then there is a polynomial-time approximation scheme.
• Let G be a graph with a maximum independent set of size k.
• Suppose there is an O(ni)-time ǫ-approximation algorithm for independent set.
The Proof (continued)
• By Lemma 76 (p. 600), the maximum independent set of G2 has size k2.
• Apply the algorithm to G2.
• The running time is O(n2i).
• The resulting independent set has size ≥ (1 − ǫ) k2.
• By the construction in Lemma 76 (p. 600), we can obtain an independent set of size ≥ p
(1 − ǫ) k2 for G.
• Hence there is a (1 − √
1 − ǫ)-approximation algorithm for independent set.
The Proof (concluded)
• In general, we can apply the algorithm to G2ℓ to obtain an (1 − (1 − ǫ)2−ℓ)-approximation algorithm for
independent set.
• The running time is n2ℓi.a
• Now pick ℓ = ⌈log log(1−ǫlog(1−ǫ)′)⌉.
• The running time becomes nilog(1−ǫ′)log(1−ǫ) .
• It is an ǫ′-approximation algorithm for independent set.
aIt is not fully polynomial.
Comments
• independent set and node cover are reducible to each other (Corollary 36, p. 286).
• node cover has an approximation threshold at most 0.5 (p. 573).
• But independent set is unapproximable (see the textbook).
• independent set limited to graphs with degree ≤ k is called k-degree independent set.
• k-degree independent set is approximable (see the textbook).
On P vs NP
Density
aThe density of language L ⊆ Σ∗ is defined as densL(n) = |{x ∈ L : | x | ≤ n}|.
• If L = {0, 1}∗, then densL(n) = 2n+1 − 1.
• So the density function grows at most exponentially.
• For a unary language L ⊆ {0}∗,
densL(n) ≤ n + 1.
– Because L ⊆ {ǫ, 0, 00, . . . ,
n
z }| {
00· · · 0, . . .}.
aBerman and Hartmanis (1977).
Sparsity
• Sparse languages are languages with polynomially bounded density functions.
• Dense languages are languages with superpolynomial density functions.
Self-Reducibility for sat
• An algorithm exploits self-reducibility if it reduces the problem to the same problem with a smaller size.
• Let φ be a boolean expression in n variables x1, x2, . . . , xn.
• t ∈ {0, 1}j is a partial truth assignment for x1, x2, . . . , xj.
• φ[ t ] denotes the expression after substituting the truth values of t for x1, x2, . . . , xt in φ.
An Algorithm for sat with Self-Reduction
We call the algorithm below with empty t.
1: if | t | = n then
2: return φ[ t ];
3: else
4: return φ[ t0 ] ∨ φ[ t1 ];
5: end if
The above algorithm runs in exponential time, by visiting all the partial assignments (or nodes on a depth-n binary tree).
NP-Completeness and Density
aTheorem 78 If a unary language U ⊆ {0}∗ is NP-complete, then P = NP.
• Suppose there is a reduction R from sat to U.
• We shall use R to guide us in finding the truth
assignment that satisfies a given boolean expression φ with n variables if it is satisfiable.
• Specifically, we use R to prune the exponential-time exhaustive search on p. 611.
• The trick is to keep the already discovered results φ[ t ] in a table H.
aBerman (1978).
1: if | t | = n then
2: return φ[ t ];
3: else
4: if (R(φ[ t ]), v) is in table H then
5: return v;
6: else
7: if φ[ t0 ] = “satisfiable” or φ[ t1 ] = “satisfiable” then
8: Insert (R(φ[ t ]), 1) into H;
9: return “satisfiable”;
10: else
11: Insert (R(φ[ t ]), 0) into H;
12: return “unsatisfiable”;
13: end if
14: end if
15: end if
The Proof (continued)
• Since R is a reduction, R(φ[ t ]) = R(φ[ t′ ]) implies that φ[ t ] and φ[ t′ ] must be both satisfiable or unsatisfiable.
• R(φ[ t ]) has polynomial length ≤ p(n) because R runs in log space.
• As R maps to unary numbers, there are only polynomially many p(n) values of R(φ[ t ]).
• How many nodes of the complete binary tree (of invocations/truth assignments) need to be visited?
• If that number is a polynomial, the overall algorithm runs in polynomial time and we are done.
The Proof (continued)
• A search of the table takes time O(p(n)) in the random access memory model.
• The running time is O(Mp(n)), where M is the total number of invocations of the algorithm.
• The invocations of the algorithm form a binary tree of depth at most n.
The Proof (continued)
• There is a set T = {t1, t2, . . .} of invocations (partial truth assignments, i.e.) such that:
– |T | ≥ (M − 1)/(2n).
– All invocations in T are recursive (nonleaves).
– None of the elements of T is a prefix of another.
VWVWHS'HOHWH OHDYHV0−
QRQOHDYHVUHPDLQLQJ
QGVWHS6HOHFWDQ\
ERWWRPXQGHOHWHG LQYRFDWLRQWDQGDGG LWWR7
UGVWHS'HOHWHDOOWV DWPRVWQDQFHVWRUV SUHIL[HVIURP
IXUWKHUFRQVLGHUDWLRQ
The Proof (continued)
• All invocations t ∈ T have different R(φ[ t ]) values.
– None of s, t ∈ T is a prefix of another.
– The invocation of one started after the invocation of the other had terminated.
– If they had the same value, the one that was invoked second would have looked it up, and therefore would not be recursive, a contradiction.
• The existence of T implies that there are at least (M − 1)/(2n) different R(φ[ t ]) values in the table.
The Proof (concluded)
• We already know that there are at most p(n) such values.
• Hence (M − 1)/(2n) ≤ p(n).
• Thus M ≤ 2np(n) + 1.
• The running time is therefore O(Mp(n)) = O(np2(n)).
• We comment that this theorem holds for any sparse language, not just unary ones.a
aMahaney (1980).