Difference between revisions of "Chapter 11"
Jump to navigation
Jump to search
Line 55: | Line 55: | ||
− | :[[11.13]] | + | :[[11.13]].In the minimum element set cover problem, we seek a set cover <math>S \subseteq C</math> of a universal set <math>U = {1, . . . , n}</math> such that sum of the sizes of the subsets in <math>S</math> is at most <math>k</math>. |
+ | ::(a) Show that <math>C = {{1, 2, 3}, {1, 3, 4}, {2, 3, 4}, {3, 4, 5}}</math> has a cover of size 6, but none of size 5 because of a repeated element. | ||
+ | ::(b) Prove that this problem is NP-hard. (Hint: set cover remains hard if all subsets are of the same size.) | ||
+ | [[11.13|Solution]] | ||
− | :11.14 | + | :11.14. The ''half-Hamiltonian cycle problem'' is, given a graph <math>G</math> with <math>n</math> vertices, determine whether <math>G</math> has a simple cycle of length exactly <math>[n/2]</math>, where the floor function rounds its input down to the nearest integer. Prove that this problem is NP-hard. |
− | :[[11.15]] | + | :[[11.15]]. The 3-phase power balance problem asks for a way to partition a set of n positive integers into three sets <math>A</math>, <math>B</math>, or <math>C</math> such that <math>\sum_{i} a_i = \sum_{i} b_i = \sum_{i} c_i</math>. Prove that this problem is NP-hard using a reduction from integer partition or subset sum (see Section 10.5 (page 329)). |
+ | [[11.15|Solution]] | ||
− | :11.16 | + | :11.16. Show that the following problem is NP-complete: |
+ | :* ''Problem:'' Dense subgraph | ||
+ | :* ''Input:'' A graph <math>G</math>, and integers <math>k</math> and <math>y</math>. | ||
+ | :* ''Output:'' Does <math>G</math> contain a subgraph with exactly <math>k</math> vertices and at least <math>y</math> edges? | ||
− | :[[11.17]] | + | :[[11.17]]. Show that the following problem is NP-complete: |
+ | :* ''Problem:'' Clique, no-clique | ||
+ | :* ''Input:'' An undirected graph <math>G=(V,E)</math> and an integer <math>k</math>. | ||
+ | :* ''Output:'' Does <math>G</math> contain both a clique of size <math>k</math> and an independent set of size <math>k</math>. | ||
+ | [[11.17|Solution]] | ||
− | :11.18 | + | :11.18. n ''Eulerian cycle'' is a tour that visits every edge in a graph exactly once. An ''Eulerian subgraph'' is a subset of the edges and vertices of a graph that has an Eulerian cycle. Prove that the problem of finding the number of edges in the largest Eulerian subgraph of a graph is NP-hard. (Hint: the Hamiltonian circuit problem is NP-hard even if each vertex in the graph is incident upon exactly three edges.) |
− | :[[11.19]] | + | :[[11.19]]. Show that the following problem is NP-hard: |
+ | :*''Problem:'' Maximum Common Subgraph | ||
+ | :*''Input:'' Two graphs <math>G_1 = (V_1, E_1)</math> and <math>G_2 = (V_2, E_2)</math>, and a budget <math>b</math>. | ||
+ | :*Output: Two sets of nodes <math>S_1 \subseteq V_1</math> and <math>S_2 \subseteq V_2</math> whose deletion leaves at least <math>b</math> nodes in each graph, and makes the two graphs identical. | ||
+ | [[11.19|Solution]] | ||
− | :11.20 | + | :11.20. A ''strongly independent'' set is a subset of vertices <math>S</math> in a graph <math>G</math> such that for any two vertices in <math>S</math>, there is no path of length two in <math>G</math>. Prove that strongly independent set is NP-hard. |
− | :[[11.21]] | + | :[[11.21]]. A ''kite'' is a graph on an even number of vertices, say <math>2n</math>, in which <math>n</math> of the vertices form a clique and the remaining <math>n</math> vertices are connected in a tail that consists of a path joined to one of the vertices of the clique. Given a graph and a goal g, the ''max kite'' problem asks for a subgraph that is a kite and contains <math>2g</math> nodes. Prove that ''max kite'' is NP-hard. |
+ | [[11.21|Solution]] | ||
===Creatvie Reductions=== | ===Creatvie Reductions=== |
Revision as of 18:55, 11 September 2020
Contents
NP-Completeness
Transformations and Satisfiability
- 11.1. Give the 3-SAT formula that results from applying the reduction of SAT to 3-SAT for the formula:
- [math]\displaystyle{ (x\or y \or \overline z \or w \or u \or \overline v) \and (\overline x \or \overline y \or z \or \overline w \or u \or v) \and (x \or \overline y \or \overline z \or w \or u \or \overline v)\and (x \or \overline y) }[/math]
- 11.2. Draw the graph that results from the reduction of 3-SAT to vertex cover for the expression
- [math]\displaystyle{ (x \or \overline y \or z) \and (\overline x \or y \or \overline z) \and(\overline x \or y \or z) \and (x \or \overline y \or \overline x) }[/math]
- 11.3. Prove that 4-SAT is NP-hard.
- 11.4. Stingy SAT is the following problem: given a set of clauses (each a disjunction of literals) and an integer [math]\displaystyle{ k }[/math], find a satisfying assignment in which at most [math]\displaystyle{ k }[/math] variables are true, if such an assignment exists. Prove that stingy SAT is NP-hard.
- 11.5. The Double SAT problem asks whether a given satisfiability problem has at least two different satisfying assignments. For example, the problem [math]\displaystyle{ {{v1, v2}, {v_1, v_2}, {v_1, v_2}} }[/math] is satisfiable, but has only one solution [math]\displaystyle{ (v_1 =F, v_2 = T) }[/math]. In contrast, [math]\displaystyle{ {{v_1, v_2}, {v_1, v_2}} }[/math] has exactly two solutions. Show that Double-SAT is NP-hard.
- 11.6. Suppose we are given a subroutine that can solve the traveling salesman decision problem on page 357 in (say) linear time. Give an efficient algorithm to find the actual TSP tour by making a polynomial number of calls to this subroutine.
- 11.7. Implement a SAT to 3-SAT reduction that translates satisfiability instances into equivalent 3-SAT instances.
- 11.8. Design and implement a backtracking algorithm to test whether a set of clause sets is satisfiable. What criteria can you use to prune this search?
- 11.9. Implement the vertex cover to satisfiability reduction, and run the resulting clauses through a satisfiability solver code. Does this seem like a practical way to compute things?
Basic Reductions
- 11.10. An instance of the set cover problem consists of a set [math]\displaystyle{ X }[/math] of [math]\displaystyle{ n }[/math] elements, a family [math]\displaystyle{ F }[/math] of subsets of [math]\displaystyle{ X }[/math], and an integer [math]\displaystyle{ k }[/math]. The question is, does there exist [math]\displaystyle{ k }[/math] subsets from [math]\displaystyle{ F }[/math] whose union is [math]\displaystyle{ X }[/math]? For example, if [math]\displaystyle{ X = \{1,2,3,4\} }[/math] and [math]\displaystyle{ F = \{ \{1,2\}, \{2,3\}, \{4\}, \{2,4\} \} }[/math], there does not exist a solution for [math]\displaystyle{ k=2 }[/math], but there does for [math]\displaystyle{ k=3 }[/math] (for example, [math]\displaystyle{ \{1,2\}, \{2,3\}, \{4\} }[/math]). Prove that set cover is NP-complete with a reduction from vertex cover.
- 11.11. The baseball card collector problem is as follows. Given packets [math]\displaystyle{ P_1, \ldots, P_m }[/math], each of which contains a subset of this year's baseball cards, is it possible to collect all the year's cards by buying [math]\displaystyle{ \leq k }[/math] packets? For example, if the players are [math]\displaystyle{ \{Aaron, Mays, Ruth, Steven \} }[/math] and the packets are
- [math]\displaystyle{ \{ \{Aaron,Mays\}, \{Mays,Ruth\}, \{Steven\}, \{Mays,Steven\} \}, }[/math]
- there does not exist a solution for [math]\displaystyle{ k=2 }[/math], but there does for [math]\displaystyle{ k=3 }[/math], such as
- [math]\displaystyle{ \{Aaron,Mays\}, \{Mays,Ruth\}, \{Steven\} }[/math]
- Prove that the baseball card collector problem is NP hard using a reduction from vertex cover.
- 11.12. The low-degree spanning tree problem is as follows. Given a graph [math]\displaystyle{ G }[/math] and an integer [math]\displaystyle{ k }[/math], does [math]\displaystyle{ G }[/math] contain a spanning tree such that all vertices in the tree have degree at most [math]\displaystyle{ k }[/math] (obviously, only tree edges count towards the degree)? For example, in the following graph, there is no spanning tree such that all vertices have a degree less than three.
\fixedfigsize{pictures/lowdegree.png}{1.0in}
- Prove that the low-degree spanning tree problem is NP-hard with a reduction from Hamiltonian path.
- Now consider the high-degree spanning tree problem, which is as follows. Given a graph [math]\displaystyle{ G }[/math] and an integer [math]\displaystyle{ k }[/math], does [math]\displaystyle{ G }[/math] contain a spanning tree whose highest degree vertex is at least [math]\displaystyle{ k }[/math]? In the previous example, there exists a spanning tree with a highest degree of 8. Give an efficient algorithm to solve the high-degree spanning tree problem, and an analysis of its time complexity.
- 11.13.In the minimum element set cover problem, we seek a set cover [math]\displaystyle{ S \subseteq C }[/math] of a universal set [math]\displaystyle{ U = {1, . . . , n} }[/math] such that sum of the sizes of the subsets in [math]\displaystyle{ S }[/math] is at most [math]\displaystyle{ k }[/math].
- (a) Show that [math]\displaystyle{ C = {{1, 2, 3}, {1, 3, 4}, {2, 3, 4}, {3, 4, 5}} }[/math] has a cover of size 6, but none of size 5 because of a repeated element.
- (b) Prove that this problem is NP-hard. (Hint: set cover remains hard if all subsets are of the same size.)
- 11.14. The half-Hamiltonian cycle problem is, given a graph [math]\displaystyle{ G }[/math] with [math]\displaystyle{ n }[/math] vertices, determine whether [math]\displaystyle{ G }[/math] has a simple cycle of length exactly [math]\displaystyle{ [n/2] }[/math], where the floor function rounds its input down to the nearest integer. Prove that this problem is NP-hard.
- 11.15. The 3-phase power balance problem asks for a way to partition a set of n positive integers into three sets [math]\displaystyle{ A }[/math], [math]\displaystyle{ B }[/math], or [math]\displaystyle{ C }[/math] such that [math]\displaystyle{ \sum_{i} a_i = \sum_{i} b_i = \sum_{i} c_i }[/math]. Prove that this problem is NP-hard using a reduction from integer partition or subset sum (see Section 10.5 (page 329)).
- 11.16. Show that the following problem is NP-complete:
- Problem: Dense subgraph
- Input: A graph [math]\displaystyle{ G }[/math], and integers [math]\displaystyle{ k }[/math] and [math]\displaystyle{ y }[/math].
- Output: Does [math]\displaystyle{ G }[/math] contain a subgraph with exactly [math]\displaystyle{ k }[/math] vertices and at least [math]\displaystyle{ y }[/math] edges?
- 11.17. Show that the following problem is NP-complete:
- Problem: Clique, no-clique
- Input: An undirected graph [math]\displaystyle{ G=(V,E) }[/math] and an integer [math]\displaystyle{ k }[/math].
- Output: Does [math]\displaystyle{ G }[/math] contain both a clique of size [math]\displaystyle{ k }[/math] and an independent set of size [math]\displaystyle{ k }[/math].
- 11.18. n Eulerian cycle is a tour that visits every edge in a graph exactly once. An Eulerian subgraph is a subset of the edges and vertices of a graph that has an Eulerian cycle. Prove that the problem of finding the number of edges in the largest Eulerian subgraph of a graph is NP-hard. (Hint: the Hamiltonian circuit problem is NP-hard even if each vertex in the graph is incident upon exactly three edges.)
- 11.19. Show that the following problem is NP-hard:
- Problem: Maximum Common Subgraph
- Input: Two graphs [math]\displaystyle{ G_1 = (V_1, E_1) }[/math] and [math]\displaystyle{ G_2 = (V_2, E_2) }[/math], and a budget [math]\displaystyle{ b }[/math].
- Output: Two sets of nodes [math]\displaystyle{ S_1 \subseteq V_1 }[/math] and [math]\displaystyle{ S_2 \subseteq V_2 }[/math] whose deletion leaves at least [math]\displaystyle{ b }[/math] nodes in each graph, and makes the two graphs identical.
- 11.20. A strongly independent set is a subset of vertices [math]\displaystyle{ S }[/math] in a graph [math]\displaystyle{ G }[/math] such that for any two vertices in [math]\displaystyle{ S }[/math], there is no path of length two in [math]\displaystyle{ G }[/math]. Prove that strongly independent set is NP-hard.
- 11.21. A kite is a graph on an even number of vertices, say [math]\displaystyle{ 2n }[/math], in which [math]\displaystyle{ n }[/math] of the vertices form a clique and the remaining [math]\displaystyle{ n }[/math] vertices are connected in a tail that consists of a path joined to one of the vertices of the clique. Given a graph and a goal g, the max kite problem asks for a subgraph that is a kite and contains [math]\displaystyle{ 2g }[/math] nodes. Prove that max kite is NP-hard.
Creatvie Reductions
- 11.22
- 11.24
- 11.26
- 11.28
- 11.30
Algorithms for Special Cases
- 11.32
- 11.34
Back to Chapter List