Prev: On The Question of Absolute Undecidability
Next: The real deal: Proof of Cook's Theorem in Unary - Thank you Sci.Math for your patience and kindness
From: Future_News on 22 Oct 2009 20:31 On Oct 22, 4:48 pm, Tegiri Nenashi <tegirinena...(a)gmail.com> wrote: > On Oct 21, 5:04 pm, cplxphil <cplxp...(a)gmail.com> wrote: > > > I'm not sure if you're disagreeing. If you are, my response is that > > you could argue that it preserves the same structure of the decision > > problem, but expressed as a formal language, it's technically > > different. It has to be proven that languages are basically > > equivalent (in terms of decidability, time complexity, and space > > complexity) and independent of encoding scheme, and this proof only > > applies to encoding schemes that use at least two symbols in the > > alphabet. > > I'm not comfortable with this alphabet symbols count. Do word > separators count as alphabet symbols or not? Why is the language is > assumed to be structured into sentences of words? This looks like ad- > hoc assumption from language theory perspective. > > > I guess something I should have mentioned earlier is that Cook's > > theorem would not be true if you use a unary alphabet, meaning that > > SAT would not be NP-complete in that case. If you think you can prove > > Cook's theorem for a unary alphabet, please share this proof. > > http://en.wikipedia.org/wiki/Cook%E2%80%93Levin_theorem > > The only place I noticed depending on the encoding appeared to be the > last sentence. Changing log into polynomial doesn't change anything > there. Is there another dependency I'm missing? <NP> 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss 34.1 Polynomial time 34.2 Polynomial-time verification 34.3 NP-completeness and reducibility 34.4 NP-completeness proofs 34.5 NP-complete problems 34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss .............. polynomial time.... ,.... worst case....... O(nk),.. n .. input size, k. constant. ... ............. polynomial time.. Turing.........: Halting problem,.................,.. .... polynomial time...... ..............,........ O(nk). Generally, we think of problems that are solvable by polynomial-time algorithms as being tractable, and problems that require superpolynomial time as being intractable. 34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss ...... polynomial time.....,... .. P......... polynomial time... ...........,.. NP.... .. 1971...... P = NP ?...,... .............. ........ NP-complete...,... NP ........,...... polynomial time ....,............. polynomial time.... 34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss ... NP-complete............ ,.... polynomial time....... ...... Shortest vs. Longest simple paths: 24.. ............ single source. shortest path...... O(VE).. longest simple paths....:..... ,........ simple path(..... path),...... k........:. ...... Hamiltonian path(...... path)..........,. NPcomplete ..... 34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss Euler tour vs. Hamiltonian cycle:.... ...,............. cycle,. .. Euler tour...,.. O(E)....... ......,.............. cycle,.. Hamiltonian cycle...... ......,. NP-complete.... 34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss 2-CNF satisfiability vs. 3-CNF satisfiability: .........,............ ... true,.. satisfiability....... .. .............. (x1 . -x2) . (-x1 x3) . (-x2 . -x3)....,.. 2 CNF(conjuctive normal form) satisfiability .... (........ or,...... .... and,............ );. ................,.. 3-CNF satisfiability.... 2-CNFsatisfiability. ...,. 3-CNF satisfiability..... NPcomplete ..... 34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss NP-completeness and the classes P and NP .....,.......:..... polynomial time.....,.... P......... polynomial time.............,. .. NP...,.. Hamiltonian cycle, 3-CNF. ... P . NP,...: P . NP?.......: P..... NP. .. NP-complete... NP.......,... .. NP-complete...... polynomial time. .....,.. NP....... polynomial time ..... 34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss ... NP-complete........ polynomial time....,....... ... polynomial time.... .....,...... P.NP,.. NP- complete............,. 1971. Cook..... NP-complete.. ...,.................. NP-complete... polynomial time.... ...............,...... .. 34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss .......... NP-complete.... ....,............ NPcomplete .. P.... NP......;.. NPcomplete .....,..... approximation algorithm;...... special case....,......... polynomial time.......... 34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss Overview of showing problems to be NP- complete ........ NP-complete........ ......,................ ........;........ NPcomplete .................. ............ O(n lg n)...... 34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss Decision problems vs. Optimization problems ....................,. ......... (optimization problems), ............: minimum spanning tree. shortest path.......... ...... decision problems,...... ...,....... (Yes/No)...:... .. weight..... 20. spanning tree.. ......... k. simple cycle. ..... decision.... optimization.. .......... NP-complete.,... decision problem....34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss Decision problems vs. Optimization problems .. Optimization......... decision .........:......... u, v. v ........... decision...... u, ........... k .......,. ............,.......... ......... k .... decision.... ..,.. decision......... optimization...... ... decision........,....... ...,.... polynomial time,.... decision problem... 34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss Reduction ............ reduction,..... ...... A. NP-complete. ......... A. polynomial time.. .......,...... polynomial time ............:..... A.... (instance)........ polynomial time ....... B ... .,.... ..... ............,.. A.... polynomial time... 1....... polynomial time. 2. ..... .....34 NP-Completeness 14 34 NP-Completeness 34 NP-Completeness34 NP-Completeness Reduction We call such a procedure a polynomial-time reduction algorithm. polynomial-time reduction algorithm polynomial-time algorithm to decide B .. . yes yes no no Polynomial-time algorithm to decide A 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss Reduction ......... NP-complete....... ........ polynomial time....., ........... reduction...... ......... A. NP-complete..... .. reduction...,......... NPcomplete .... B,. polynomial time... B. input reduce. A. input,.. A... ... B.... 34 NP-Completeness 3 334 44 NP NPNP-Co -Co-Com mmp pplet letletene eneenes sss ss .. reduce......,......... ... NP-complete..... ......:... NP-complete..... ........ .... NP-complete problem. Cook... .. satisfiability,........ NP... reduce. satisfiability...... satisfiability.... NP-complete problem. 34 NP-Completeness 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee ........ polynomial time..... ... tractable,....: 1. ... polynomial time........ ......,.. .(n100)....... ,... polynomial time....... ...... 2. Polynomial time........... model.... polynomial time... ,. RAM.... Turing machine.. ...... 3. Polynomial time ........... (closure),.............. ....34 NP-Completeness 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee We define an abstract problem Q to be a binary relation on a set I of problem instances and a set S of problem solutions. ...: shortest path......... G... u... v,... G. u. v .............. k. path.. .....,.... yes..... no,. .. decision problem.... Optimization problems......... ......,........ decision.. ..... 34 NP-Completeness 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee If a computer program is to solve an abstract problem, problem instances must be represented in a way that the program understands. An encoding of a set S of abstract objects is a mapping e from S to the set of binary strings. ....... polygons, graphs, functions, ordered pairs, programs..... binary strings. 34 NP-Completeness 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee A computer algorithm that "solves" come abstract decision problem actually takes an encoding of a problem instance as input. We ofcall a problem whose instance set is the set binary strings a concrete problem. An algorithm solves a concrete problem in time O(T(n)) if, when it is provided a problem instance i of length n = |i|, the algorithm can produce the solution in O(T(n)) time. A concrete problem is polynomial-time solvable, therefore, if there exists an algorithm to solve it in time O(nk) for some constant k. 34 NP-Completeness 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee The complexity class P is the set of concrete decision problems that are polynomial-time solvable. ............. k,. O(k).... ....,............. ...........,.. unary(... ). .......,.. O(n)...;... binary ........,........ O(2n). 34 NP-Completeness 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee We say that a function f: {0,1}* . {0,1}* is polynomial-time computable if there exists a polynomial-time algorithm A that, given any that input x . {0,1}*, produces as output f(x). For some set I of problem instances, we say two encodings e1 and e2 are polynomially related if there exist two polynomial-time computable functions f12 and ef21 such that for any i . I, we have f12(e1(i)) = 2(i) and f21(e2(i)) = e1(i). 34 NP-Completeness 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee Lemma 34.1 Let Q be an abstract decision problem on an instance set I, and let e1 and e2 be polynomially related encodings on I. Then, e1(Q) . P if and only if e2(Q) . P. Proof:... e1(i)...... O(nk)... e2(i)... e1(i).... O(nc).... e2(i) ..,.....:... e1(i)... e1(i)... ,.... O(nc+k),.. polynomial time.. .... 34 NP-Completeness 24 34.1 Polynomial time34.1 Polynomial time ........ polynomial time...... .....,........... P.... ............... binary code,. ............... 34 NP-Completeness 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee A formal-language framework ... formal language.... decision problem An alphabet S is a finite set of symbols. A language L over S is any set of strings made up of symbols from S. E.g, if S={0,1}, the set L={10,11,101,111,1011, 1101, 10001, ...} is the language of binary representations of prime numbers. empty string ., empty language Ø. The language of all strings over S is denoted by S*. 34 NP-Completeness 26 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee Languages. operations: union ., intersection n, complement L = S* L, concatenation, closure. The concatenation of two languages L1 and L2 isthelanguage L = {xx: x. Land x. L}. 1211 22 The closure or Kleene star of a language L is the language L* = {.} . L . L2 . L3 . ...., where Lk is the language obtained by concatenating L to itself k times. 34 NP-Completeness 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee From the point of view of language theory, the set of instances for any decision problem Q is simply the set S*, where S = {0,1}. Since Q is entirely characterized by those problem instances that produce a 1(yes) answer, we can view Q as a language L over S = {0,1}, whereL = {x .S* : Q(x) = 1}. ...: PATH = {<G,u,v,k> : G = (V,E) is an undirected graph, u, v . V, k = 0 is an integer, and there exists a path from u to v in G consisting of at most k edges}. 34 NP-Completeness 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee We say that an algorithm A accepts a string x .. {0,1}* if, given input x, the algorithm's output A(x) is 1. The language accepted by {0,1}* an algorithm A is the set of strings L = {x . : A(x) = 1}, that is, the set of strings that the algorithm accepts. An algorithm A rejects string x if A(x) = 0. 34 NP-Completeness 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee A language L is decided by an algorithm A if every binary string in L is accepted by A and every binary string not in L is rejected by A. A language L is accepted in polynomial time by an algorithm A if it is accepted by A and if in addition there is a constant k such that for any length-n string x . L, algorithm A accepts x in time O(nk). A language L is decided in polynomial time an algorithm A if there is a constant kby such that for any length-n string x . {0,1}*, the algorithm correctly decides whether x L in time O(nk). 34 NP-Completeness 30 We define languages, determined by 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee a complexity class as a set of membership in which is a complexity measure, such as running time, of an algorithm that 34 NP-Completeness determines whether a given string x belongs to language L. We can provide an alternative definition of the complexity class P: P = {L .{0,1}* : there exists an algorithm A that decides L in polynomial time}. 3 334 44.1 ..1.1 P PPo ooly lylyn nno oom mmia iaial ll tim timtime ee In fact, P is also the class of languages that can be accepted in polynomial time. Theorem 34.2 P = {L: L is accepted by a polynomial-time algorithm}. 34 NP-Completeness Ex ExExer ererc ccis isise ees ss 3 334 44.1 ..1.1 for 34.1-4 Is the dynamic-programming algorithm for the 0-1 knapsack problem that is asked in Exercise 16.2-2 a polynomial-time 16.2-2 Give algorithm ? Explain your answer. a dynamic-programming solution to the 0-1 knapsack problem that runs in O(n W) time, where n is number of items and W is the maximum weight of items that the thief can put in his knapsack. 34 NP-Completeness 33 Exercises34.1Exercises 34.1 34.1-6 Show that the class P, viewed as a set of languages, is closed under union, intersection, concatenation, complement, and Kleene star. That is, if L1, L2 .P, then L1 . L2 .P, etc. 34.1-6 Show that the class P, viewed as a set of languages, is closed under union, intersection, concatenation, complement, and Kleene star. That is, if L1, L2 .P, then L1 . L2 .P, etc. 34 NP-Completeness 34.234.234.234.2 Po PoPol lly yyno nonom mmi iia aal ll- --ti titim mme ee v vve eer rri iif ffi iic cca aati titio oon nn .... polynomial-time verification... ...... polynomial-time....... ..........,..... PATH.. ..,..... G... u... v,.. ... k,.... path,..... lineartime ........ path... u. v. path,......... k,.... polynomial-time verification. ...... polynomial-time......, ...... polynomial-time verification. ............. polynomial-time ....,...... polynomial-time verification....34 NP-Completeness 35 34.2 Polynomial-time verification34.2 Polynomial-time verification Hamiltonian cycle ............... hamiltonian cycle,............... hamiltonian cycle of an undirectedAgraph G = (V, E) is a simple cycle that contains each vertex in V. A graph that contains a hamiltonian cycle is said to be hamiltonian; otherwise, it is nonhamiltonian. Hamiltonian-cycle problem: "Does a graph G have a hamiltonian cycle ?" 34 NP-Completeness 36 34.2 Polynomial-time verification34.2 Polynomial-time verification ........... hamiltonian-cycle? ...... dodecahedron ....... bipartite graph 34 NP-Completeness 37 34.2 Polynomial-time verification34.2 Polynomial-time verification .. hamiltonian cycle....... polynomial time...,.... O(2n). Verification algorithms:.....,... ........,............ ........ G. cycle C,..... C .... hamiltonian cycle........ cycle,........,........ ,............ hamiltonian cycle,......:.......... ............. edge?.... simple cycle?.......... Yes,. .... hamiltonian cycle. 34 NP-Completeness 38 34.2 Polynomial-time verification34.2 Polynomial-time verification We define a verification algorithm as being a two-argument algorithm A, where one argument is an ordinary input string x certificate. and the other is a binary string y called a A two-argument algorithm A verifies an input string x if there exists a certificate y such that A(x, y) = 1. The language verified by a verification algorithm A is L = {x . {0,1}* : there exists y . {0,1}* such that A(x, y) = 1}. 34 NP-Completeness 34.234.234.234.2 Po PoPol lly yyno nonom mmi iia aal ll- --ti titim mme ee v vve eer rri iif ffi iic cca aati titio oon nn The complexity class NP ......... polynomial time....,.. hamiltonian-cycle problem.. NP.... ..... NP. NP. nondeterministic model polynomial ...,.... non-deterministic ...,.. polynomial time......, ... NP.... A language L . NP iff there exists a two-input polynomial-time algorithm A and constant c such that L = {x . {0,1}* : there exists a certificate y with |y| = O(|x|c) such that A(x, y) = 1}. The algorithm A verifies language L in polynomial time. 34 NP-Completeness 34.234.234.234.2 Po PoPol lly yyno nonom mmi iia aal ll- --ti titim mme ee v vve eer rri iif ffi iic cca aati titio oon nn ...... hamiltonian cycle..... NP. ...,..... L ... P... L.... .. NP,.... L ............. ...,.. P . NP. ....... P= NP........,... ......... P . NP. 34 NP-Completeness 34.234.234.234.2 Po PoPol lly yyno nonom mmi iia aal ll- --ti titim mme ee v vve eer rri iif ffi iic cca aati titio oon nn ... P.... NP..,.......... ....,.. NP...... complement. .......... L . NP..... L . NP. NPWe can define the complexity class co-NP as the set of languages L such that L . NP. ............. NP.... coNP ..... P = NP = co-NP NP = co-NP P co-NP NPP = NP nco-NP co-NP NPNP nco-NP P ........ 34 NP-Completeness E EEx xxe eer rrc cci iis sse ees ss 34 3434.2 ..2.2 42 34.2-1 Consider ISOMORPHISM isomorphic graphs}. Prove that GRAPH- ISOMORPHISM .NP by describing a polynomial-time algorithm to verify the language. 34.2-2 Prove that if G is an undirected bipartite graph with an odd number of vertices, then G is nonhamiltonian. the language GRAPH={< G,G> :Gand Gare 121 2 34 NP-Completeness E EEx xxe eer rrc cci iis sse ees ss 34 3434.2 ..2.2 34.2-4 Prove that the class NP of languages is closed under union, intersection, 34.2-6 concatenation, and Kleene star. Discuss the closure of NP under complement. A hamiltonian path in a graph is a simple path that visits every vertex exactly once. Show that the language HAM-PATH = { <G, u, v> : there is a hamiltonian path from u to v in graph G} belongs to NP. 34 NP-Completeness E EEx xxe eer rrc cci iis sse ees ss 34 3434.2 ..2.2 34.2-7 Show that the hamiltonian-path problem can be solved in polynomial time on 34.2-11 directed acyclic graphs. Give an efficient algorithm for the problem. Let G be a connected, undirected graph with at least 3 vertices, and let G3 be the graph obtained by connecting all pairs of vertices that are connected by a path in G of length most 3. Prove that G3 is hamiltonian. (Hint: Construct a spanning tree at for G, and use an inductive argument.) 34 NP-Completeness 34.3 34.334.3 N NNP PP- --c cco oom mmp ppl lle eet tte een nne ees sss ss a aand ndnd r rre eed dduc ucuci iib bbi iil lli iity tyty ...... P . NP........ NPcomplete ....,.... NP-complete ....... polynomial time....., NP....... polynomial time.. .....,... P = NP......... ,..... NP-complete....... ...... polynomial time..... ... Hamiltonian cycle..... NPcomplete ....,..... polynomial time.... Hamiltonian cycle..., ... NP....... polynomial time ...... 34 NP-Completeness 46 34.3 NP-completeness and reducibility34.3 NP-completeness and reducibility .....,.. NP P.......,.. Hamiltonian cycle....... NP P. ..... NP-complete.... NP... .... ....... polynomial-time reducibility ....... NP-complete...... 34 NP-Completeness 47 34.3 NP-completeness and reducibility34.3 NP-completeness and reducibility L1 is polynomial-time reducible to L2, written L1 =P L2,.. L2 . P. L1 . P. A ...: L2. sorting...,. L1.... .....,. L1 =PL2. language L1 is polynomial-time reducible to a language L2, written L1 =P L2, if there exists a polynomial-time computable function f : {0,1}* . {0,1}* such that for all x . {0,1}*, x . L1 if and only if f(x) . L2. 34 NP-Completeness 48 Lemma 34.3 If Lsuch that L 34.3 34.334.3 N NNP PP- --c cco oom mmp ppl lle eet tte een nne ees sss ss a aand ndnd r rre eed dduc ucuci iib bbi iil lli iity tyty 1, L2 . {0,1}* are languages =L,thenL. P implies L. 1P22 1 P. 34 NP-Completeness A1 A2F f(x)x yes, f(x) .L2 no, f(x) .L2 yes, x .L1 no, x .L1 49 34.3 NP-completeness and reducibility34.3 NP-completeness and reducibility NP-completeness Polynomial-time reductions provide a formal means for showing that one We problem is at least as hard as another, to within a polynomial-time factor. define the set of NP-complete languages, which are the hardest problems in NP. A language L . {0,1}* is NP-complete if 1. L . NP, and 2. L' =P L for every L' . NP. 34 NP-Completeness 34.3 34.334.3 N NNP PP- --c cco oom mmp ppl lle eet tte een nne ees sss ss a aand ndnd r rre eed dduc ucuci iib bbi iil lli iity tyty .. L . NP-complete...,. L . NP, ...... NP... L' =P L. ........... NP... L' =P L.. ...., L .. NP-hard.... ..... NPC.. NP-complete languages. .. L1 =PL2.,.. L1. NP-complete. L2.... NP-hard. 34 NP-Completeness 51 34.3 NP-completeness and reducibility34.3 NP-completeness and reducibility Theorem 34.4 If any NP-complete problem is polynomial-time solvable, then P = NP. Equivalently, if any problem in NP is not complete solvable. polynomial-time solvable, then no NP- problem is polynomial-time ....... P .NP NP P NP-Complete 34 NP-Completeness 34.3 34.334.3 N NNP PP- --c cco oom mmp ppl lle eet tte een nne ees sss ss a aand ndnd r rre eed dduc ucuci iib bbi iil lli iity tyty Circuit satisfiability .... NP-complete .......,.... ... reducibility............ NP- Thus, complete.... we now focus on demonstrating the existence of an NP-complete problem: the circuit-satisfiability problem. A boolean combinational element is any circuit element that has a constant number of boolean inputs and outputs and that performs a well-defined function. ........ 0. 1, 0.. FALSE. 1.. TRUE. 34 NP-Completeness 53 34.3 NP-completeness and reducibility34.3 NP-completeness and reducibility A boolean combinational circuit consists of one or more boolean combinational elements interconnected by wires. not and or 34 NP-Completeness 54 34.3 NP-completeness and reducibility34.3 NP-completeness and reducibility x1 x2 x3 34 NP-Completeness 3 334.3 N 4.3 N4.3 NP- P-P-c cco oom mmp ppl lle eet tte eene nenes sss ss a aand ndndre rered dduc ucuci iib bbi iil lli iity tyty A truth assignment for a boolean combinational circuit is a set of boolean input values. We say that a one-output boolean combinational circuit is satisfiable if it has a satisfying assignment: a truth assignment that causes the output of the circuit to be 1. 34 NP-Completeness 3 334.3 N 4.3 N4.3 NP- P-P-c cco oom mmp ppl lle eet tte eene nenes sss ss a aand ndndre rered dduc ucuci iib bbi iil lli iity tyty The circuit-satisfiability problem is, "Given a boolean combinational circuit composed of AND, OR, and NOT gates, is it satisfiable?" ....... size. circuit. combinational element...... CIRCUIT-SAT = {<C> : C is a satisfiable boolean combinational circuit}. ................. true. false ...,.....,............. .. .(2n),...... n... 34 NP-Completeness 3 334.3 N 4.3 N4.3 NP- P-P-c cco oom mmp ppl lle eet tte eene nenes sss ss a aand ndndre rered dduc ucuci iib bbi iil lli iity tyty ..... CIRCUIT-SAT. NP-Complete... . Lemma 34.5 The circuit-satisfiability problem ... belongs to the class NP. lemma............ circuit,..... truth assignment,... .. linear time....... assignment. ..... truth assignment... circuitsatisfiability .. NP.... 34 NP-Completeness Circuit-satisfiability problem is NP-complete (cont.) Lemma 34.6: (page 991) CIRCUIT-SAT is NP-hard. Proof: Suppose X is any problem in NP construct a poly-time algorithm F maps every problem instance x in X to a circuit C=f(x) such that the answer to x is YES if and only if CÎCIRCUIT-SAT (is satisfiable). Circuit-satisfiability problem is NP-hard (cont.) F runs in poly time. Poly space: Size of x is n. Size of A is constant, independent of x. Size of y is O(nk). Amount of working storage is poly in n since A runs at most O(nk). M has size poly in length of configuration, which is poly in O(nk), and hence is poly in n. C consists of at most O(nk) copies of M, and hence is poly in n. Thus, the C has poly space. The construction of C takes at most O(nk) steps and each step takes poly time, so F takes poly time to construct C from x. Circuit-satisfiability problem is NP-hard (cont.) Since XÎNP, there is a poly-time algorithm A which verifies X. Suppose the input length is n and let T(n) denote the worst-case running time. Let k be the constant such that T(n)=O(nk) and the length of the certificate is O(nk). Circuit-satisfiability problem is NP-hard (cont.) Idea is to represent the computation of A as a sequence of configurations, c0, c1, ,ci,ci+1, ,cT(n), each ci can be broken into (program for A, program counter PC, auxiliary machine state, input x, certificate y, working storage) and ci is mapped to ci+1 by the combinational circuit M implementing the computer hardware. The output of A: 0 or 1 is written to some designated location in working storage. If the algorithm runs for at most T(n) steps, the output appears as one bit in cT(n). Note: A(x,y)=1 or 0. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 62 Circuit-satisfiability problem is NP-hard (cont.) The reduction algorithm F constructs a single combinational circuit C as follows: Paste together all T(n) copies of the circuit M. The output of the ith circuit, which produces ci, is directly fed into the input of the (i+1)st circuit. All items in the initial configuration, except the bits corresponding to certificate y, are wired directly to their known values. The bits corresponding to y are the inputs to C. All the outputs to the circuit are ignored, except the one bit of cT(n) corresponding to the output of A. Circuit-satisfiability problem is NP-hard (cont.) Two properties remain to be proven: F correctly constructs the reduction, i.e., C is satisfiable if and only if there exists a certificate y, such that A(x,y)=1. ÜSuppose there is a certificate y, such that A(x,y)=1. Then if we apply the bits of y to the inputs of C, the output of C is the bit of A(x,y), that is C(y)= A(x,y) =1, so C is satisfiable. ÞSuppose C is satisfiable, then there is a y such that C(y)=1. So, A(x,y)=1. F runs in poly time. 34.3 NP-completeness and reducibility Theorem 34.7 The circuit-satisfiability problem is NP-complete. Exercises 34.3 34.3-2 Show that the =P relation is a transitive relation on languages. That is, showthatifL=LandL=L,thenL= 1P2 2P31P L3. 34.4 NP-completeness proofs ........ NP-complete....... circuit-satisfiability problem....... NP.... reduce. circuit-satisfiability ....,............ Lemma 34.8 If L is a language such that L' =P L for some L' . NPC, then L is NP-hard. Moreover, if L . NP, then L . NPC. ... =P. transitive...,...... NP... L''=PL' =P L,.. L. NP-hard ..... 34.4 NP-completeness proofs .. Lemma 34.8........... NPcomplete ....... 1. Prove L . NP. 2. Select a know NP-complete language L'. 3. Describe an algorithm that computes a function f mapping every instance x . {0,1}* of L' to an instance f(x) of L. 4.Prove that the function f satisfies x . L' if and only if f(x) . L for all x . {0,1}*. 5.Prove that the algorithm computing f runs in polynomial time. 34.4 NP-completeness proofs ..... 2~5......... NP-hard. ............. NP... reduce ............ CIRCUIT-SAT. NPcomplete ........ ............ NP-complete.., ...............,....... ... NP-complete........ 34.4 NP-completeness proofs Formula satisfiability ........ formula satisfiability problem,...... NP-complete. An instance of SAT is a boolean formula . composed of 1. n boolean variables: x1, x2, ..., xn; 2. m boolean connectives: any boolean function with one or two inputs and one output, such as ., ., ¬, .(imply), .(iff) 3.parentheses. 34.4 NP-completeness proofs Boolean formula ... encode.... O(m+n). A truth assignment for a boolean formula . is a set of values for the variables of ., and a satisfying assignment is a truth assignment that causes it to evaluate to 1. A formula with a satisfying assignment is a satisfiable formula. SAT = {<.> : . is a satisfiable boolean formula}. 34.4 NP-completeness proofs ...: .= ((x1 . x2) . ¬ ((¬x1 . x3) . x4)) . ¬ x2,.. satisfying assignment. x1 = 0, x2 = 0, x3 = 1, x4 = 1,. ..= ((0 . 0) . ¬ ((¬0 . 1) . 1)) . ¬0 = (1 . ¬ (1 . 1)) . 1 = (1 . 0) . 1 =1 SAT...... n...,.... 2n.. ......,............ formula.. true,........... . (2n). 34.4 NP-completeness proofs Theorem 34.9 Satisfiability of boolean formulas is NP-complete. .. Lemma 34.8 ......,... SAT. NP...,...... truth assignment,.......... formula ..... 1,......... polynomial time,.. SAT.. NP. ....... CIRCUIT-SAT =P SAT,.... ... CIRCUIT-SAT............ ,....... size........... 34.4 NP-completeness proofs .. =x. (x. ¬x) . (x. (x. x)) . (x. 104 35126 ¬x) . (x. (x. x. x)) . (x. (x. x)) . 47124856 (x. (x. x)) . (x. (x. x. x)). 9 6710 789 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 34.4 NP-completeness proofs .................... polynomial time........ formula ... satisfiable..,... CIRCUIT-SAT ... satisfiable,..... ... SAT..... NP-complete. 34.4 NP-completeness proofs 3-CNF satisfiability ........: A literal in a boolean formula is an occurrence of a variable or its negation. A boolean formula is in conjunctive normal form, or CNF, if it is expressed as an AND of clauses, each of which is the OR of one or more literals. A boolean formula is in 3-conjunctive normal form, or 3-CNF, if each clause has exactly three distinct literals. 77 34.4 NP-completeness proofs ...: (x1 . ¬x1 . ¬x2) . (x3 . x2 . x4) . (¬x1 .. ¬x3 . ¬x4).... 3-CNF. In 3-CNF-SAT, we are asked whether a given boolean formula . in 3-CNF is satisfiable. Theorem 34.10 Satisfiability of boolean formulas in 3-conjunctive normal form is NP-complete. 34.4 NP-completeness proofs Theorem 34.10 Satisfiability of boolean formulas in 3-conjunctive normal form is NP-complete. 3-CNF-SAT . NP.... SAT . NP.... ......... SAT =P 3-CNF-SAT. ... SAT... reduce. 3-CNF-SAT.. ..,.... SAT. input. polynomial time.... 3-CNF-SAT. input,... .......... 3-CNF,........ .... 34.4 NP-completeness proofs ... SAT... reduce. 3-CNF-SAT.. ..,.... SAT. input. polynomial time.... 3-CNF-SAT. input,... .......... 3-CNF,........ .... ....... SAT input formula. binary tree. 34.4 NP-completeness proofs ........., . = ((x. x) . ¬((¬x. x) 12 13 .. x4)) . ¬x2,... binary tree..: ...... ... .' = y1 .. (y. (y. ¬x)) . (y. 1222 (y. y)) . (y. (x. 3431 x)) . (y. ¬y) . (y. 2455 (y. x)) . (y. (¬x. 646 1 x3)) y1 y2 .. y. .. ¬ .. .. y¬x2 3 4 y5 xx 1 2y6 x 4 ¬xx 13 34.4 NP-completeness proofs ...... .'....... and,.... ...... and.............. ....... or.. y. (y. ¬x)... 12 y1 y2 x2 .. y1 . (y2 . ¬x2) = 11 1110 ¬((y. y. x) . (y 1221 101 .. ¬y2 . x2) . (y1 . 100 011 ¬y. ¬x) . (¬y. 221 010 y. ¬x)) 22001 000 = (¬y. ¬y. ¬x) . (¬y. y 12212 (¬y. y. x) . (y. ¬y. x) 1221 22 2 ..y1 ..y2.-x2 .. 0 1 0 0 1 0 1 1 .. ¬x2) . 82 34.4 NP-completeness proofs .... .'............,... CNF .... ."............. ..................... (xi .. xj)..,... (xi . xj . p) . (xi . xj . ¬p)............ (x),... (x .. p . q) . (x . ¬p . q) . (x . p . ¬q) . (x . ¬p . ¬q). .............. 3-CNF formula ..''',.... satisfiable if and only if.. ....... satisfiable... 3-CNF-SAT. NP-complete. Exercises 34-4 34.4-6 Suppose that someone gives you a polynomial-time algorithm to decide formula satisfiability. Describe how to use this algorithm to find satisfying assignments in polynomial time. 34.4-7 Let 2-CNF-SAT be the set of satisfiable boolean formulas in CNF with exactly 2 literals per clause. Show that 2-CNF-SAT . P. Make your algorithm as efficient as possible.(Hint: Observe that x . y is equivalent to ¬x . y. Reduce 2-CNF-SAT to a problem on a directed graph that is efficiently solvable.) 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss NP-complete problems arise in diverse domains: boolean logic, graphs, arithmetic, network design, sets and storage and retrieval, partitions, sequencing and scheduling, mathematical programming, algebra and number theory, games and puzzles, automata and language theory, program optimization, biology, chemistry, physics, and more. ............. NP-complete. 34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss CIRCUIT-SAT SAT 3-CNF-SAT SUBSET-SUMCLIQUE VERTEX-COVER HAM-CYCLE TSP 34 NP-Completeness 86 34.5 NP-complete problems34.5 NP-complete problems 34.5-1 The clique problem A clique in an undirected graph G = (V, E) is a subset V' . V of vertices, each pair of other which is connected by an edge in E. In words, a clique is a complete subgraph of G. The size of a clique is the number of vertices it contains. The clique problem is the optimization problem of finding a clique of maximum size in a graph. 34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss 34.5-1 The clique problem As a decision problem, we ask simply whether a clique of a given size k exists in graph. The formal definition isthe CLIQUE = {<G,k> : G is a graph with a clique of size k}. ................ G. k . ...........,.... complete graph,.......... .(k2* C(|V|, k)),.. C(|V|, k). |V|........ k .....,......... polynomial time.34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss Theorem 34.11 The clique problem is NP- complete. ...... CLIQUE . NP,..... V', k. ...... polynomial time.. V'... ...........,. |V'|...... ......... 3-CNF-SAT =P CLIQUE, ....... 3-CNF-SAT. input... CLIQUE. input,.........,. ........... k ... clique., 3-CNF-SAT.. satisfiable,...... .......:34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss .. 3-CNF-SAT.... .=(x1 . ¬x2 . ¬x3) .. (¬x1 . x2 . x3) . (x1 . x2 . x3),....: (¬x. (x. ¬x. ¬x) 123 2 . x3) 1 34 NP-Completeness ¬x1 x2 x1 2¬x3 x1 x2 x2 .x3) (x1 .xx3 ¬x2 x3 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss .......... k ... clique ... 3-CNF-SAT... k . clause..... ... satisfiable... CLIQUE.... NP-complete. 34 NP-Completeness 91 34.5 NP-complete problems34.5 NP-complete problems 34.5.2 The vertex-cover problem A vertex cover of an undirected graph G = (V, E) is a subset V' . V such that if (u, and v) . E, then u . V' or v . V'(or both). That is, each vertex "cover" its incident edges, a vertex cover for G is a set of vertices that covers all the edges in E. The size of a vertex cover is the number of vertices in it. The vertex-cover problem is to find a vertex cover of minimum size in a given graph. 34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss Restating this optimization problem as a decision problem, we wish to determine whether a graph has a vertex cover of a given size k. As a language, we define VERTEX-COVER = {<G,k> : graph G has a vertex cover of size k}. Theorem 34.12 The vertex-cover problem is NP-complete. .......... NP...,... G= (V,E)... k..... V' . V,... |V'| =k....,... E..... (u,v), ... u . V'. v . V'........ 34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss ...... vertex-cover .... NPhard, ......... CLIQUE =P VERTEX-COVER. ............. complement, Given an undirected graph G = (V, E), we define the complement of G as G = (V, E), where E = {(u, v) : u, v . V, u . v, and (u, v) . E}.... G ........ G.,. ... G..... G... 34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss .......... complement. u v z w y x u v z w y x CLIQUE =P VERTEX-COVER.....:. .... clique problem. instance <G,k>, ..... G. complement G,... vertex-cover .. <G,|V|-k>...,... .... clique...... 34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss The graph G has a clique of size k if and only if the graph G has a vertex cover of size |V| -k. V'. G..... clique,. G. V'. ..............,... G.. ....... V V'......,.. V V'. vertex cover. .. G. V V'. vertex cover,. V'.. .........,... G.. V'... .. clique. 34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss ... VERTEX-COVER.... NPcomplete, ............. polynomial time....... approximation algorithm.,..... polynomial time..........,.. ............ ........ NP-complete... approximation algorithm. 34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss 34.5.3 The hamiltonian-cycle problem Theorem 34.13 The hamiltonian cycle problem is NP-complete. ................ NP..., ...... G = (V, E),.... hamiltonian cycle C,.. C...... .....,... C........... E..... ..... VERTEX-COVER =HAM-CYCLE P .... hamiltonian cycle.... NPhard .. 34 NP-Completeness [u,v,1] [u,v,2] [u,v,3] [u,v,4] [u,v,5] [u,v,6] Wu v (a) [v,u,1] [v,u,6] [u,v,1] [u,v,6] Wuv 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss [v,u,1] [v,u,2] [v,u,3] [v,u,4] [v,u,5] [v,u,6] [v,u,1] [v,u,6] [u,v,1] [u,v,6] Wuv [v,u,1] [v,u,6] [u,v,1] [u,v,6] Wuv (b) (c) (d) Given an undirected graph G = (V, E) and an integer k, we construct an undirected graph G' = (V', E') that has a hamiltonian cycle if and only if G has a vertex cover of size k. G'....:. G.... (u,v).. .... 14 ..........: [u,v,1] ~ [u,v,6],. [v,u,1]~[v,u,6]. 34 NP-Completeness 99 34 NP-Completeness (a) (b) w z x y [x,w,1] [x,w,6] [w,x,1] [w,x,6] Wuv [y,x,1] [y,x,6] [x,y,1] [x,y,6] Wuv [y,w,1] [y,w,6] [w,y,1] [w,y,6] Wuv [z,w,1] [z,w,6] [w,z,1] [w,z,6] Wuv 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss ...............,.... k . selector verteices s1, s2, ..., sk. .... u.. degree(u)...,..... .......... u(1), u(2), ..., u(degree(u)),. ... {([u,u(i),6], [u,u(i+1),1]) : 1 = i = degree(u) 1}... ..... vertex cover .. hamiltonian cycle.,.... vertex cover ..... .......... si.... 34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss ........., {(sj, [u,u(1),1]) : u . V , [u,u(degree(u)),6]) : u . V and1 =j= k} . {(sj and 1 = j = k}. ..........,... |V'| = 12|E| + k = 12|E| + |V|,... |E'| = 14|E| + (2|E| | V|) + (2k|V|) = 16|E| + (2k-1)|V| .......... polynomial time. 34 NP-Completeness 34.5.4 The traveling-salesman problem Traveling-salesman problem(TSP): A salesman must visit n cities. We can say 34.5 NP-complete problems34.5 NP-complete problems visiting to that the salesman wishes to make a tour, each city exactly once and finishing at the city he starts from. There is an integer cost c(i, j) to travel from city i city j, and the salesman wishes to make the tour whose total cost is minimum, where the total cost is the sum of the individual costs along the edges of the tour. 34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss TSP = {<G,c,k> : G = (V, E) is a complete graph, c is a function from V × V . Z, k . Z, and G has a traveling-salesman tour Theorem with cost at most k}. 34.14 The traveling-salesman problem is NP-complete. ..... TSP..... NP,..... TSP...,..... polynomial time ...................,.. .......... cost...... k. 34 NP-Completeness 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss ...... NP-complete... reduce. TSP...,.... Hamiltonian cycle =P TSP. ...... G = (V, E),..... complete.. G' = (V, E'), E' = {(i,j) : i, j . V and i . j},... (i,j) . E. c(i,j) = 0,. (i,j) . E. c(i,j) = 1. The graph G has a hamiltonian cycle if and only if graph G' has a tour of cost at most 0. 34 NP-Completeness 105 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss 34.5.5 The subset-sum problem ..... subset-sum problem, We are given a finite set S . N and a target t . N. ... We ask whether there is a subset S' . S whose elements sum to t. S = {1, 2, 7, 14, 49, 98, 343, 686, 2409, 2793, 16808, 17206, 117705, 117993}. t = 138457,. S' = {1, 2, 7, 98, 343, 686, 2409, 17206, 117705}.. .... SUBSET-SUM = {<S,t> : there exists a subset S' . S such that t = S s}. s.S'34 NP-Completeness 106 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss Theorem 34.15 The subset-sum problem is NP-complete. ......... NP...,..... S' , ... S'............ t.... ... polynomial time......,... ...... NP. ..... 3-CNF-SAT =P SUBSET-SUM.. ....... NP-hard. 34 NP-Completeness 34.5 NP-complete problems34.5 NP-complete problems 107 Given a 3-CNF formula . over variables x, x, ..., x with clauses C, C, ..., C, 12n 12k each containing exactly three distinct the reduction algorithm an instance <S,t> of the problem such that . is literals, constructs subset-sum satisfiable if and only if there is a subset of S whose sum is exactly t. 34 NP-Completeness 108 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss .................,. .= C1 . C2 . C3 . C4,.. C1 = (x1 . ¬x2 . ¬x),C=(¬x. ¬x. ¬x) C=(¬x. 32 1233 1 .. x),C=(x. x. x) 234 123 ¬x ....... satisfying assignment. x1 = 0, x2= 0, x3 = 1. ...... subset-sum..: 34 NP-Completeness 109 34 NP-Completeness x1 x2 x3 C1 C2 C3 C4 v1 = 1 0 0 1 0 0 1 v1 = 1 0 0 0 1 1 0 v2 = 0 1 0 0 0 0 1 v2 = 0 1 0 1 1 1 0 v3 = 0 0 1 0 0 1 1 v3 = 0 0 1 1 1 0 0 s1 = 0 0 0 1 0 0 0 s1 = 0 0 0 2 0 0 0 s2 = 0 0 0 0 1 0 0 s2 = 0 0 0 0 2 0 0 s3 = 0 0 0 0 0 1 0 s3 = 0 0 0 0 0 2 0 s4 = 0 0 0 0 0 0 1 s4 = 0 0 0 0 0 0 2 t = 1 1 1 4 4 4 4 110 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss ..............,....... ... vi. vi',.. xi. Cj...., vi ..... Cj..... 1.... 0, ¬xi Cj...., vi'.... Cj...... 1.... 0. ........... si. si',.. si. Ci ..... 1.... 0,. si'. Ci.... 2.... 0. t..... n. digits. 1.. k . digits. 4. ..........34 NP-Completeness 111 3 334.5 N 4.5 N4.5 NP- P-P-c cco oom mmp ppl lle eet tte ee p ppr rro oob bbl lle eem mms ss ............. subset... t ...,....... satisfiable. ... subset-sum.... NP-complete. 34 NP-Completeness E EEx xxe eerc rcrci iis sse ees ss 34.5 34.534.5 112 34.5-1 The subgraph-isomorphism problem takes two graphs G1 and G2 and asks whether G1 is isomorphic to a subgraph of G2. Show that the subgraph-isomorphism problem is NP-complete. 34.5-5 The set-partition problem takes as input a set S of numbers. The question is whether the numbers can be partitioned 34 NP-Completeness into two sets A and S A such that Sx.Ax = Sx (.S-A)x. Show that the set-partition problem is NP-complete. E EEx xxe eerc rcrci iis sse ees ss 34.5 34.534.5 34.5-6 Show that the hamiltonian-path problem is NP-complete. 34.5-7 The longest-simple-cycle problem is problem of determining a simplethe cycle(no repeated vertices) of maximum length in a graph. Show that this problem is NP-complete. 34 NP-Completeness <.NP>
From: Future_News on 22 Oct 2009 21:03 On Oct 22, 8:31 pm, Future_News <future_n...(a)brew-master.com> wrote: > On Oct 22, 4:48 pm, Tegiri Nenashi <tegirinena...(a)gmail.com> wrote: > > > On Oct 21, 5:04 pm, cplxphil <cplxp...(a)gmail.com> wrote: > > > > I'm not sure if you're disagreeing. If you are, my response is that > > > you could argue that it preserves the same structure of the decision > > > problem, but expressed as a formal language, it's technically > > > different. It has to be proven that languages are basically > > > equivalent (in terms of decidability, time complexity, and space > > > complexity) and independent of encoding scheme, and this proof only > > > applies to encoding schemes that use at least two symbols in the > > > alphabet. > > > I'm not comfortable with this alphabet symbols count. Do word > > separators count as alphabet symbols or not? Why is the language is > > assumed to be structured into sentences of words? This looks like ad- > > hoc assumption from language theory perspective. > > > > I guess something I should have mentioned earlier is that Cook's > > > theorem would not be true if you use a unary alphabet, meaning that > > > SAT would not be NP-complete in that case. If you think you can prove > > > Cook's theorem for a unary alphabet, please share this proof. > > >http://en.wikipedia.org/wiki/Cook%E2%80%93Levin_theorem > > > The only place I noticed depending on the encoding appeared to be the > > last sentence. Changing log into polynomial doesn't change anything > > there. Is there another dependency I'm missing? > > <NP> > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > 34.1 Polynomial time > 34.2 Polynomial-time verification > 34.3 NP-completeness and reducibility > 34.4 NP-completeness proofs > 34.5 NP-complete problems > 34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > ............. polynomial time.... > ,.... worst case....... O(nk),.. n > . input size, k. constant. > .. > ............ polynomial time.. > Turing.........: Halting > problem,.................,.. > ... polynomial time...... > .............,........ O(nk). > > Generally, we think of problems that are solvable > by polynomial-time algorithms as being tractable, > and problems that require superpolynomial time > as being intractable. > > 34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > ..... polynomial time.....,... > . P......... polynomial time... > ..........,.. NP.... > > . 1971...... P = NP ?...,... > > ............. > ....... NP-complete...,... NP > .......,...... polynomial time > ...,............. polynomial > time.... > > 34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > .. NP-complete............ > ,.... polynomial time....... > ..... > > Shortest vs. Longest simple paths: 24.. > ........... single source. > shortest path...... O(VE).. > > longest simple paths....:..... > ,........ simple path(..... > path),...... k........:. > ..... Hamiltonian path(...... > path)..........,. NPcomplete > .... > > 34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > Euler tour vs. Hamiltonian cycle:.... > ..,............. cycle,. > . Euler tour...,.. O(E)....... > .....,.............. > cycle,.. Hamiltonian cycle...... > .....,. NP-complete.... > > 34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > 2-CNF satisfiability vs. 3-CNF satisfiability: > > ........,............ > .. true,.. satisfiability....... > . > ............. (x1 . -x2) . (-x1 > > x3) . (-x2 . -x3)....,.. 2 > > CNF(conjuctive normal form) satisfiability > > ... (........ or,...... > > ... and,............ );. > > ...............,.. 3-CNF > > satisfiability.... 2-CNFsatisfiability. > ..,. 3-CNF satisfiability..... NPcomplete > .... > 34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > NP-completeness and the classes P and NP > > ....,.......:..... polynomial > time.....,.... P......... > polynomial time.............,. > . NP...,.. Hamiltonian cycle, 3-CNF. > .. P . NP,...: P . NP?.......: > P..... NP. > . NP-complete... NP.......,... > . NP-complete...... polynomial time. > ....,.. NP....... polynomial time > .... > > 34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > .. NP-complete........ > polynomial time....,....... > .. polynomial time.... > > ....,...... P.NP,.. NP- > complete............,. > 1971. Cook..... NP-complete.. > ..,.................. > NP-complete... polynomial time.... > ..............,...... > . > > 34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > ......... NP-complete.... > ...,............ NPcomplete > . > > P.... NP......;.. NPcomplete > ....,..... > approximation algorithm;...... > special case....,......... > polynomial time.......... > > 34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > Overview of showing problems to be NP- > complete > > ....... NP-complete........ > .....,................ > .......;........ NPcomplete > ................. > ........... O(n lg n)...... > 34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > Decision problems vs. Optimization problems > > ...................,. > ........ (optimization problems), > ...........: minimum spanning > > tree. shortest path.......... > ..... decision problems,...... > ..,....... (Yes/No)...:... > . weight..... 20. spanning tree.. > ........ k. simple cycle. > > .... decision.... optimization.. > ......... NP-complete.,... > decision problem....34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > Decision problems vs. Optimization problems > > . Optimization......... decision > ........:......... u, v. > v > .......... decision...... u, > .......... k .......,. > ...........,.......... > ........ k .... decision.... > .,.. decision......... > optimization...... > > .. decision........,....... > ..,.... polynomial time,.... > decision problem... > 34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > Reduction > > ........... reduction,..... > ..... A. NP-complete. > ........ A. polynomial time.. > ......,...... polynomial time > ...........:..... A.... > (instance)........ polynomial time > ...... B ... .,.... ..... > ...........,.. A.... > polynomial time... > > 1....... polynomial time. > 2. ..... .....34 NP-Completeness > > 14 > 34 NP-Completeness > 34 NP-Completeness34 NP-Completeness > Reduction > We call such a procedure a polynomial-time > reduction algorithm. > polynomial-time > reduction algorithm > polynomial-time > algorithm to decide B > . . > yes yes > no no > Polynomial-time algorithm to decide A > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > Reduction > > ........ NP-complete....... > ....... polynomial time....., > .......... reduction...... > ........ A. NP-complete..... > . reduction...,......... NPcomplete > ... B,. polynomial time... > B. input reduce. A. input,.. A... > .. B.... > > 34 NP-Completeness > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > . reduce......,......... > .. NP-complete..... > .....:... NP-complete..... > ....... > ... NP-complete problem. Cook... > . satisfiability,........ NP... > reduce. satisfiability...... > satisfiability.... NP-complete > problem. > > 34 NP-Completeness > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > ....... polynomial time..... > .. tractable,....: > > 1. > .. polynomial time........ > .....,.. .(n100)....... > ,... polynomial time....... > ..... > 2. Polynomial time........... > model.... polynomial time... > ,. RAM.... Turing machine.. > ..... > > 3. Polynomial time > .......... > (closure),.............. > ...34 NP-Completeness > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > We define an abstract problem Q to be a > binary relation on a set I of problem > instances and a set S of problem > > solutions. > ..: shortest path......... > G... u... v,... G. u. v > ............. k. path.. > ....,.... yes..... no,. > . decision problem.... > > Optimization problems......... > .....,........ decision.. > .... > > 34 NP-Completeness > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > If a computer program is to solve an > abstract problem, problem instances must > be represented in a way that the program > understands. An encoding of a set S of > abstract objects is a mapping e from S to > the set of binary strings. > ...... polygons, graphs, functions, > ordered pairs, programs..... binary > strings. > 34 NP-Completeness > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > A computer algorithm that "solves" come > abstract decision problem actually takes an > encoding of a problem instance as input. We > ofcall a problem whose instance set is the set > > binary strings a concrete problem. An > algorithm solves a concrete problem in time > O(T(n)) if, when it is provided a problem > instance i of length n = |i|, the algorithm can > produce the solution in O(T(n)) time. A > concrete > > problem is polynomial-time > solvable, therefore, if there exists an > algorithm to solve it in time O(nk) for some > constant k. > 34 NP-Completeness > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > The complexity class P is the set of concrete > decision problems that are polynomial-time > solvable. > > ............ > k,. O(k).... > > ...,............. > ..........,.. unary(... > ). > ......,.. O(n)...;... binary > .......,........ O(2n). > > 34 NP-Completeness > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > We say that a function f: {0,1}* . > {0,1}* is > polynomial-time computable if there exists a > polynomial-time algorithm A that, given any > that > input x . > {0,1}*, produces as output f(x). > > For some set I of problem instances, we say > > two encodings e1 and e2 are > > polynomially related if there exist two > > polynomial-time computable functions f12 and > > ef21 such that for any i . > I, we have f12(e1(i)) = > 2(i) and f21(e2(i)) = e1(i). > > 34 NP-Completeness > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > Lemma 34.1 Let Q be an abstract decision > problem on an instance set I, and let e1 and > e2 be polynomially related encodings on I. > Then, e1(Q) . > P if and only if e2(Q) . > P. > > Proof:... e1(i)...... O(nk)... > e2(i)... e1(i).... O(nc).... > e2(i) > .,.....:... e1(i)... e1(i)... > ,.... O(nc+k),.. polynomial time.. > > ... > > 34 NP-Completeness > > 24 > 34.1 Polynomial time34.1 Polynomial time > ....... polynomial time...... > ....,........... P.... > .............. binary code,. > .............. > 34 NP-Completeness > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > A formal-language framework > > .. formal language.... > decision problem > An alphabet S > is a finite set of symbols. A > language L over S > is any set of strings made up > of symbols from S. E.g, if S={0,1}, the set > L={10,11,101,111,1011, 1101, 10001, ...} is > the language of binary representations of > > prime numbers. > empty string ., empty language Ø. The > language of all strings over S > is denoted by S*. > > 34 NP-Completeness > > 26 > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > Languages. operations: union ., > intersection n, complement L = S* L, > concatenation, closure. > The concatenation of two languages L1 and L2 > isthelanguage L = {xx: x. > Land x. > L}. > > 1211 22 > > The closure or Kleene star of a language L is > the language L* = {.} . > L . > L2 . > L3 . > ..., where > Lk is the language obtained by concatenating > L to itself k times. > > 34 NP-Completeness > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > From the point of view of language theory, > the set of instances for any decision problem > Q is simply the set S*, where S > = {0,1}. Since > Q is entirely characterized by those problem > instances that produce a 1(yes) answer, we > can view Q as a language L over S > = {0,1}, > whereL = {x .S* : Q(x) = 1}. > ..: PATH = {<G,u,v,k> > : G = (V,E) is an > undirected graph, u, v . > V, k = 0 is an > integer, and there exists a path from u to v in > G consisting of at most k edges}. > > 34 NP-Completeness > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > We say that an algorithm A accepts a string x > . > {0,1}* if, given input x, the algorithm's > output A(x) is 1. The language accepted by > {0,1}* > an algorithm A is the set of strings L = {x . > : A(x) = 1}, that is, the set of strings > > that the algorithm accepts. An algorithm A > > rejects string x if A(x) = 0. > > 34 NP-Completeness > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > A language L is decided by an algorithm A if > every binary string in L is accepted by A and > every binary string not in L is rejected by A. > A language L is accepted in polynomial time > by an algorithm A if it is accepted by A and if > in addition there is a constant k such that for > any length-n string x . > L, algorithm A accepts > x in time O(nk). > A language L is decided in polynomial time > > an algorithm A if there is a constant kby > such that for any length-n string x . > {0,1}*, > the algorithm correctly decides whether x L > in time O(nk). 34 NP-Completeness > > 30 > We define > languages, > determined by > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > a complexity class as a set of > membership in which is > a complexity measure, such > as running time, of an algorithm that > > 34 NP-Completeness > > determines whether a given string x belongs > to language L. > We can provide an alternative definition of > the complexity class P: P = {L .{0,1}* : > there exists an algorithm A that decides L in > polynomial time}. > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > In fact, P is also the class of languages that > can be accepted in polynomial time. > Theorem 34.2 P = {L: L is accepted by a > > polynomial-time algorithm}. > 34 NP-Completeness > > Ex > ExExer > ererc > ccis > isise > ees > ss 3 > 334 > 44.1 > .1.1 > > for > 34.1-4 Is the dynamic-programming algorithm > for the 0-1 knapsack problem that is asked > in Exercise 16.2-2 a polynomial-time > > 16.2-2 Give > algorithm ? Explain your answer. > > a dynamic-programming solution > to the 0-1 knapsack problem that runs in O(n > W) time, where n is number of items and W is > the maximum weight of items that the thief > can put in his knapsack. > > 34 NP-Completeness > > 33 > Exercises34.1Exercises 34.1 > 34.1-6 Show that the class P, viewed as a set of > languages, is closed under union, > intersection, concatenation, complement, > and Kleene star. That is, if L1, L2 .P, then L1 . > L2 .P, etc. > 34.1-6 Show that the class P, viewed as a set of > languages, is closed under union, > intersection, concatenation, complement, > and Kleene star. That is, if L1, L2 .P, then L1 . > L2 .P, etc. > 34 NP-Completeness > > 34.234.234.234.2 Po > PoPol > lly > yyno > nonom > mmi > iia > aal > ll- > --ti > titim > mme > ee v > vve > eer > rri > iif > ffi > iic > cca > aati > titio > oon > nn > ... polynomial-time verification... > ..... polynomial-time....... > .........,..... PATH.. > .,..... G... u... v,.. > .. k,.... path,..... lineartime > ....... path... u. v. > path,......... k,.... > polynomial-time verification. > ..... polynomial-time......, > ..... polynomial-time verification. > ............ polynomial-time > ...,...... polynomial-time > verification....34 NP-Completeness > > 35 > 34.2 Polynomial-time verification34.2 Polynomial-time verification > Hamiltonian cycle > > .............. hamiltonian > cycle,............... > hamiltonian cycle of an undirectedAgraph G = (V, E) is a simple cycle > that > contains each vertex in V. A graph that > contains a hamiltonian cycle is said to be > hamiltonian; otherwise, it is > nonhamiltonian. > > Hamiltonian-cycle problem: "Does a graph > G have a hamiltonian cycle ?" > > 34 NP-Completeness > > 36 > 34.2 Polynomial-time verification34.2 Polynomial-time verification > .......... hamiltonian-cycle? > > ..... > dodecahedron > ...... bipartite graph > > 34 NP-Completeness > > 37 > 34.2 Polynomial-time verification34.2 Polynomial-time verification > . hamiltonian cycle....... > polynomial time...,.... O(2n). > Verification algorithms:.....,... > .......,............ > ....... G. cycle C,..... > C > ... hamiltonian cycle........ > cycle,........,........ > ,............ hamiltonian > cycle,......:.......... > > ............ edge?.... > simple cycle?.......... Yes,. > ... hamiltonian cycle. > 34 NP-Completeness > > 38 > 34.2 Polynomial-time verification34.2 Polynomial-time verification > We define a verification algorithm as > being a two-argument algorithm A, where > one argument is an ordinary input string x > certificate. > and the other is a binary string y called a > > A two-argument algorithm A > verifies an input string x if there exists a > certificate y such that A(x, y) = 1. The > language verified by a verification > algorithm A is L = {x . > {0,1}* : there > exists y . > {0,1}* such that A(x, y) = 1}. > > 34 NP-Completeness > > 34.234.234.234.2 Po > PoPol > lly > yyno > nonom > mmi > iia > aal > ll- > --ti > titim > mme > ee v > vve > eer > rri > iif > ffi > iic > cca > aati > titio > oon > nn > The complexity class NP > > ........ polynomial time....,.. > hamiltonian-cycle problem.. NP.... > .... NP. NP. nondeterministic > model > polynomial ...,.... non-deterministic > ..,.. polynomial time......, > .. NP.... > > A language L . > NP iff there exists a two-input > polynomial-time algorithm A and constant c such > that L = {x . > {0,1}* : there exists a certificate y > with |y| = O(|x|c) such that A(x, y) = 1}. > The algorithm A verifies language L in polynomial > time. > > 34 NP-Completeness > > 34.234.234.234.2 Po > PoPol > lly > yyno > nonom > mmi > iia > aal > ll- > --ti > titim > mme > ee v > vve > eer > rri > iif > ffi > iic > cca > aati > titio > oon > nn > ..... hamiltonian cycle..... NP. > ..,..... L ... P... L.... > . NP,.... L ............. > ..,.. P . > NP. > ...... P= > NP........,... > ........ P . NP. > > 34 NP-Completeness > > 34.234.234.234.2 Po > PoPol > lly > yyno > nonom > mmi > iia > aal > ll- > --ti > titim > mme > ee v > vve > eer > rri > iif > ffi > iic > cca > aati > titio > oon > nn > .. P.... NP..,.......... > ...,.. NP...... complement. > ......... L . > NP..... L . > NP. > NPWe can define the complexity class co-NP as > the set of languages L such that L . > NP. > ............ NP.... coNP > .... > > P = NP = co-NP NP = co-NP > P > co-NP NPP = NP nco-NP co-NP NPNP nco-NP > P > ....... > 34 NP-Completeness > > E > EEx > xxe > eer > rrc > cci > iis > sse > ees > ss 34 > 3434.2 > .2.2 > > 42 > 34.2-1 Consider > ISOMORPHISM > isomorphic graphs}. Prove that GRAPH- > ISOMORPHISM .NP by describing a > polynomial-time algorithm to verify the > language. > 34.2-2 Prove that if G is an undirected bipartite > graph with an odd number of vertices, then G > is nonhamiltonian. > the language GRAPH={< > G,G> > :Gand Gare > > 121 2 > > 34 NP-Completeness > > E > EEx > xxe > eer > rrc > cci > iis > sse > ees > ss 34 > 3434.2 > .2.2 > > 34.2-4 Prove that the class NP of languages is > closed under union, intersection, > 34.2-6 > concatenation, and Kleene star. Discuss the > closure of NP under complement. > > A hamiltonian path in a graph is a > simple path that visits every vertex exactly > once. Show that the language HAM-PATH = { > <G, u, v> > : there is a hamiltonian path from u > to v in graph G} belongs to NP. > > 34 NP-Completeness > > E > EEx > xxe > eer > rrc > cci > iis > sse > ees > ss 34 > 3434.2 > .2.2 > > 34.2-7 Show that the hamiltonian-path > problem can be solved in polynomial time on > 34.2-11 > directed acyclic graphs. Give an efficient > algorithm for the problem. > > Let G be a connected, undirected > graph with at least 3 vertices, and let G3 be > the graph obtained by connecting all pairs of > vertices that are connected by a path in G of > length > > most 3. Prove that G3 is > hamiltonian. (Hint: Construct a spanning tree > at > for G, and use an inductive argument.) > > 34 NP-Completeness > > 34.3 > 34.334.3 N > NNP > PP- > --c > cco > oom > mmp > ppl > lle > eet > tte > een > nne > ees > sss > ss a > aand > ndnd r > rre > eed > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > ..... P . NP........ NPcomplete > ...,.... NP-complete > ...... polynomial time....., > NP....... polynomial time.. > ....,... P = NP......... > ,..... NP-complete....... > ..... polynomial time..... > .. Hamiltonian cycle..... NPcomplete > ...,..... polynomial > time.... Hamiltonian cycle..., > .. NP....... polynomial time > ..... > > 34 NP-Completeness > > 46 > 34.3 NP-completeness and reducibility34.3 NP-completeness and > reducibility > ....,.. NP P.......,.. > Hamiltonian cycle....... NP > P. > > .... NP-complete.... NP... > > ... > ...... polynomial-time reducibility > ...... NP-complete...... > > 34 NP-Completeness > > 47 > 34.3 NP-completeness and reducibility34.3 NP-completeness and > reducibility > L1 is polynomial-time reducible to L2, > > written L1 =P L2,.. L2 . P. L1 . P. > A > ..: L2. sorting...,. L1.... > ....,. L1 =PL2. > > language L1 is polynomial-time > reducible to a language L2, written L1 =P > L2, if there exists a polynomial-time > computable function f : {0,1}* . > {0,1}* > > such that for all x . > {0,1}*, x . > L1 if and > > only if f(x) . > L2. > > 34 NP-Completeness > > 48 > Lemma 34.3 If Lsuch that L > 34.3 > 34.334.3 N > NNP > PP- > --c > cco > oom > mmp > ppl > lle > eet > tte > een > nne > ees > sss > ss a > aand > ndnd r > rre > eed > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > > 1, L2 . > {0,1}* are languages > =L,thenL. > P implies L. > > 1P22 1 > > P. > > 34 NP-Completeness > A1 > A2F > f(x)x > yes, f(x) .L2 > no, f(x) .L2 > yes, x .L1 > no, x .L1 > > 49 > 34.3 NP-completeness and reducibility34.3 NP-completeness and > reducibility > NP-completeness > > Polynomial-time reductions provide a > formal means for showing that one > We > problem is at least as hard as another, to > within a polynomial-time factor. > > define the set of NP-complete > > languages, which are the hardest > > problems in NP. > > A language L . > {0,1}* is NP-complete if > > 1. L . > NP, and > 2. L' =P L for every L' . > NP. > 34 NP-Completeness > > 34.3 > 34.334.3 N > NNP > PP- > --c > cco > oom > mmp > ppl > lle > eet > tte > een > nne > ees > sss > ss a > aand > ndnd r > rre > eed > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > . L . NP-complete...,. L . NP, > ..... NP... L' =P L. > .......... NP... L' =P L.. > ..., L .. NP-hard.... > .... NPC.. > NP-complete > languages. > . L1 =PL2.,.. L1. NP-complete. > L2.... NP-hard. > > 34 NP-Completeness > > 51 > 34.3 NP-completeness and reducibility34.3 NP-completeness and > reducibility > Theorem 34.4 If any NP-complete problem > is polynomial-time solvable, then P = NP. > Equivalently, if any problem in NP is not > complete > solvable. > polynomial-time solvable, then no NP- > > problem is polynomial-time > > ...... P .NP > > NP > P > NP-Complete > 34 NP-Completeness > > 34.3 > 34.334.3 N > NNP > PP- > --c > cco > oom > mmp > ppl > lle > eet > tte > een > nne > ees > sss > ss a > aand > ndnd r > rre > eed > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > Circuit satisfiability > > ... NP-complete .......,.... > .. reducibility............ NP- > Thus, > complete.... > we now focus on demonstrating the > existence of an NP-complete problem: the > circuit-satisfiability problem. > A boolean combinational element is any > circuit element that has a constant number > of boolean inputs and outputs and that > performs a well-defined function. > ....... 0. > 1, 0.. > FALSE. 1.. > TRUE. > > 34 NP-Completeness > > 53 > 34.3 NP-completeness and reducibility34.3 NP-completeness and > reducibility > A boolean combinational circuit consists > of one or more boolean combinational > elements interconnected by wires. > > not and or > > 34 NP-Completeness > > 54 > 34.3 NP-completeness and reducibility34.3 NP-completeness and > reducibility > x1 > x2 > x3 > 34 NP-Completeness > > 3 > 334.3 N > 4.3 N4.3 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > eene > nenes > sss > ss a > aand > ndndre > rered > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > > A truth assignment for a boolean > combinational circuit is a set of boolean input > values. We say that a one-output boolean > combinational circuit is satisfiable if it has a > satisfying assignment: a truth assignment > that causes the output of the circuit to be 1. > 34 NP-Completeness > > 3 > 334.3 N > 4.3 N4.3 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > eene > nenes > sss > ss a > aand > ndndre > rered > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > The circuit-satisfiability problem is, "Given a > boolean combinational circuit composed of > AND, OR, and NOT gates, is it satisfiable?" > ...... size. circuit. combinational > element...... > CIRCUIT-SAT = {<C> : C is a satisfiable > boolean combinational circuit}. > ................ true. false > > ..,.....,............. > . .(2n),...... n... > > 34 NP-Completeness > > 3 > 334.3 N > 4.3 N4.3 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > eene > nenes > sss > ss a > aand > ndndre > rered > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > .... CIRCUIT-SAT. NP-Complete... . > Lemma 34.5 The circuit-satisfiability problem > .. > belongs to the class NP. > lemma............ > circuit,..... truth assignment,... > . linear time....... > assignment. > .... truth assignment... circuitsatisfiability > . NP.... > > 34 NP-Completeness > > Circuit-satisfiability > problem is NP-complete > (cont.) > > Lemma 34.6: (page 991) > CIRCUIT-SAT is NP-hard. > Proof: Suppose X is any problem in NP > construct a poly-time algorithm F maps > every problem instance x in X to a circuit > C=f(x) such that the answer to x is YES if > and only if CÎCIRCUIT-SAT (is satisfiable). > > Circuit-satisfiability problem is NP-hard > (cont.) > > > F runs in poly time. > > Poly space: > > Size of x is n. > > Size of A is constant, independent of x. > > Size of y is O(nk). > > Amount of working storage is poly in n since A runs at > most O(nk). > > M has size poly in length of configuration, which is poly > in O(nk), and hence is poly in n. > > C consists of at most O(nk) copies of M, and hence is poly > in n. > > Thus, the C has poly space. > > The construction of C takes at most O(nk) steps and > each step takes poly time, so F takes poly time to > construct C from x. > > Circuit-satisfiability problem is NP-hard > (cont.) > > > Since XÎNP, there is a poly-time > algorithm A which verifies X. > > Suppose the input length is n and let T(n) > denote the worst-case running time. Let k > be the constant such that T(n)=O(nk) and > the length of the certificate is O(nk). > > Circuit-satisfiability problem is NP-hard > (cont.) > > > Idea is to represent the computation of A > as a sequence of configurations, c0, c1, > ,ci,ci+1, ,cT(n), each ci can be broken into > > > (program for A, program counter PC, auxiliary machine > state, input x, certificate y, working storage) and > > ci is mapped to ci+1 by the combinational circuit > M implementing the computer hardware. > > The output of A: 0 or 1 is written to some > designated location in working storage. If the > algorithm runs for at most T(n) steps, the > output appears as one bit in cT(n). > > Note: A(x,y)=1 or 0. > > Copyright © The McGraw-Hill Companies, Inc. Permission required for > reproduction or display. > > 62 > > Circuit-satisfiability problem is NP-hard (cont.) > > > The reduction algorithm F constructs a > single combinational circuit C as follows: > Paste together all T(n) copies of the circuit > M. > > The output of the ith circuit, which produces > ci, is directly fed into the input of the (i+1)st > circuit. > > > All items in the initial configuration, except > the bits corresponding to certificate y, are > wired directly to their known values. > > The bits corresponding to y are the inputs to > C. > All the outputs to the circuit are ignored, > except the one bit of cT(n) corresponding to > the output of A. > > Circuit-satisfiability problem is NP-hard (cont.) > > Two properties remain to be proven: > F correctly constructs the reduction, i.e., C > is satisfiable if and only if there exists a > certificate y, such that A(x,y)=1. > ÜSuppose there is a certificate y, such > that A(x,y)=1. Then if we apply the bits > of y to the inputs of C, the output of C is > the bit of A(x,y), that is C(y)= A(x,y) =1, > so C is satisfiable. > ÞSuppose C is satisfiable, then there is a > y such that C(y)=1. So, A(x,y)=1. > F runs in poly time. > > 34.3 NP-completeness and > reducibility > Theorem 34.7 The circuit-satisfiability > problem is NP-complete. > > Exercises 34.3 > > 34.3-2 Show that the =P relation is a > > transitive relation on languages. That is, > > showthatifL=LandL=L,thenL= > > 1P2 2P31P > > L3. > > 34.4 NP-completeness proofs > ....... NP-complete....... > circuit-satisfiability problem....... > NP.... reduce. circuit-satisfiability > ...,............ > Lemma 34.8 If L is a language such that L' =P > L for some L' . > NPC, then L is NP-hard. > Moreover, if L . > NP, then L . > NPC. > .. =P. transitive...,...... > NP... L''=PL' =P L,.. L. NP-hard > .... > > 34.4 NP-completeness proofs > . > Lemma 34.8........... NPcomplete > ...... > 1. Prove L . > NP. > 2. Select a know NP-complete language L'. > 3. Describe an algorithm that computes a > function f mapping every instance x . > {0,1}* of L' to an instance f(x) of L. > 4.Prove that the function f satisfies x . > L' if > and only if f(x) . > L for all x . > {0,1}*. > 5.Prove that the algorithm computing f > runs in polynomial time. > > 34.4 NP-completeness proofs > .... 2~5......... NP-hard. > ............ NP... reduce > ........... CIRCUIT-SAT. NPcomplete > ....... > ........... NP-complete.., > ..............,....... > .. NP-complete........ > > 34.4 NP-completeness proofs > Formula satisfiability > > ....... formula satisfiability > problem,...... NP-complete. > An instance of SAT is a boolean formula . > composed of > 1. n boolean variables: x1, x2, ..., xn; > 2. m boolean connectives: any boolean > function with one or two inputs and one > output, such as ., ., ¬, .(imply), .(iff) > 3.parentheses. > > 34.4 NP-completeness proofs > Boolean formula ... encode.... > O(m+n). A truth assignment for a boolean > formula . is a set of values for the variables > of ., and a satisfying assignment is a truth > assignment that causes it to evaluate to 1. > A formula with a satisfying assignment is a > satisfiable formula. > SAT = {<.> : . is a satisfiable boolean > formula}. > > 34.4 NP-completeness proofs > ..: .= ((x1 . > x2) . > ¬ ((¬x1 . > x3) . > x4)) . > ¬ x2,.. satisfying assignment. x1 = 0, > x2 = 0, x3 = 1, x4 = 1,. > .= ((0 . > 0) . > ¬ ((¬0 . > 1) . > 1)) . > ¬0 > = (1 . > ¬ (1 . > 1)) . > 1 = (1 . > 0) . > 1 =1 > SAT...... n...,.... 2n.. > .....,............ > formula.. true,........... . > (2n). > > 34.4 NP-completeness proofs > Theorem > 34.9 Satisfiability of boolean > formulas is NP-complete. > . Lemma 34.8 ......,... SAT. > NP...,...... truth > assignment,.......... > formula > .... 1,......... polynomial > time,.. SAT.. NP. > > ...... CIRCUIT-SAT =P SAT,.... > .. CIRCUIT-SAT............ > ,....... size........... > > 34.4 NP-completeness proofs > . =x. > (x. > ¬x) . > (x. > (x. > x)) . > (x. > 104 35126 > > ¬x) . > (x. > (x. > x. > x)) . > (x. > (x. > x)) . > > 47124856 > > (x. > (x. > x)) . > (x. > (x. > x. > x)). > > 9 6710 789 > > x1 > x2 > x3 x4 > x5 > x6 > x7 > x8 > x9 > x10 > > 34.4 NP-completeness proofs > ................... > polynomial time........ formula > .. satisfiable..,... CIRCUIT-SAT > .. satisfiable,..... > .. SAT..... NP-complete. > > 34.4 NP-completeness proofs > 3-CNF satisfiability > > .......: A literal in a boolean > formula is an occurrence of a variable or its > negation. A boolean formula is in > conjunctive normal form, or CNF, if it is > expressed as an AND of clauses, each of > which is the OR of one or more literals. A > boolean formula is in 3-conjunctive normal > form, or 3-CNF, if each clause has exactly > three distinct literals. > > 77 > > 34.4 NP-completeness proofs > ..: (x1 . > ¬x1 . > ¬x2) . > (x3 . > x2 . > x4) . > (¬x1 > . > ¬x3 . > ¬x4).... 3-CNF. > > In 3-CNF-SAT, we are asked whether a > given boolean formula . in 3-CNF is > satisfiable. > Theorem 34.10 Satisfiability of boolean > formulas in 3-conjunctive normal form is > NP-complete. > > 34.4 NP-completeness proofs > Theorem > 34.10 Satisfiability of boolean > formulas in 3-conjunctive normal form is > NP-complete. > 3-CNF-SAT . > NP.... SAT . > NP.... > ........ SAT =P 3-CNF-SAT. > > .. SAT... reduce. 3-CNF-SAT.. > .,.... SAT. input. polynomial > time.... 3-CNF-SAT. input,... > ......... 3-CNF,........ > ... > > 34.4 NP-completeness proofs > .. SAT... reduce. 3-CNF-SAT.. > .,.... SAT. input. polynomial > time.... 3-CNF-SAT. input,... > ......... 3-CNF,........ > ... > ...... SAT input formula. binary > tree. > > 34.4 NP-completeness proofs > > ........, . = > ((x. > x) . > ¬((¬x. > x) > > 12 13 > > . > x4)) . > ¬x2,... > binary tree..: > > ..... ... .' = y1 > > . > (y. > (y. > ¬x)) . > (y. > > 1222 > > (y. > y)) . > (y. > (x. > > 3431 > > x)) . > (y. > ¬y) . > (y. > > 2455 > > (y. > x)) . > (y. > (¬x. > > 646 1 > > x3)) > > y1 > > y2 > . > y. > . > ¬ > . > . > y¬x2 > > 3 > > 4 > > y5 > > xx > > 1 2y6 > > x > > 4 > > ¬xx > > 13 > > 34.4 NP-completeness proofs > ..... .'....... > and,.... > ..... and.............. > ...... or.. y. > (y. > ¬x)... > 12 > > y1 y2 x2 > > . y1 . > (y2 . > ¬x2) = 11 > 1110 > ¬((y. > y. > x) . > (y > > 1221 101 > . > ¬y2 . > x2) . > (y1 . > 100 > 011 > > ¬y. > ¬x) . > (¬y. > > 221 010 > > y. > ¬x)) > > 22001 > 000 > > = (¬y. > ¬y. > ¬x) . > (¬y. > y > > 12212 > > (¬y. > y. > x) . > (y. > ¬y. > x) > > 1221 22 > > 2 > > .y1 ..y2.-x2 .. > > 0 > 1 > 0 > 0 > 1 > 0 > 1 > 1 > > . > ¬x2) . > > 82 > > 34.4 NP-completeness proofs > ... .'............,... > CNF .... ."............. > .................... (xi > . > xj)..,... (xi . > xj . > p) . > (xi . > xj . > ¬p)............ (x),... (x > . > p . > q) . > (x . > ¬p . > q) . > (x . > p . > ¬q) . > (x . > ¬p . > ¬q). > ............. 3-CNF formula > .''',.... satisfiable if and only if.. > ...... satisfiable... 3-CNF-SAT. > NP-complete. > > Exercises 34-4 > > 34.4-6 Suppose that someone gives you a > polynomial-time algorithm to decide > formula satisfiability. Describe how to use > this algorithm to find satisfying > assignments in polynomial time. > > 34.4-7 Let 2-CNF-SAT be the set of satisfiable > boolean formulas in CNF with exactly 2 > literals per clause. Show that 2-CNF-SAT . > > P. Make your algorithm as efficient as > possible.(Hint: Observe that x . > y is > equivalent to ¬x . > y. Reduce 2-CNF-SAT to > a problem on a directed graph that is > efficiently solvable.) > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > NP-complete problems arise in diverse > > domains: boolean logic, graphs, > > arithmetic, network design, sets and > storage and retrieval, > > partitions, > sequencing and scheduling, mathematical > > programming, algebra and number > > theory, games and puzzles, automata and > > language theory, program optimization, > > biology, chemistry, physics, and more. > > ............ NP-complete. > > 34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > CIRCUIT-SAT > SAT > 3-CNF-SAT > SUBSET-SUMCLIQUE > VERTEX-COVER > HAM-CYCLE > TSP > 34 NP-Completeness > > 86 > 34.5 NP-complete problems34.5 NP-complete problems > 34.5-1 The clique problem > A clique in an undirected graph G = (V, E) > is a subset V' . > V of vertices, each pair of > > other > which is connected by an edge in E. In > > words, a clique is a complete > subgraph of G. The size of a clique is the > number of vertices it contains. The clique > problem is the optimization problem of > finding a clique of maximum size in a > graph. > > 34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > 34.5-1 The clique problem > > As a decision problem, we ask simply > whether a clique of a given size k exists in > graph. The formal definition isthe > CLIQUE = {<G,k> : G is a graph with a > clique of size k}. > > ............... G. k . > ..........,.... complete > graph,.......... .(k2* C(|V|, > k)),.. C(|V|, k). |V|........ > k .....,......... > polynomial time.34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > Theorem > 34.11 The clique problem is NP- > complete. > ..... CLIQUE . > NP,..... V', > k. > ..... polynomial time.. > V'... > ..........,. |V'|...... > > ........ 3-CNF-SAT =P CLIQUE, > ...... 3-CNF-SAT. input... > CLIQUE. input,.........,. > .......... k ... clique., > 3-CNF-SAT.. satisfiable,...... > ......:34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > . 3-CNF-SAT.... .=(x1 . > ¬x2 . > ¬x3) > . > (¬x1 . > x2 . > x3) . > (x1 . > x2 . > x3),....: > > (¬x. > (x. > ¬x. > ¬x) > > 123 > > 2 . > x3) > > 1 > > 34 NP-Completeness > > ¬x1 > x2 > x1 2¬x3 > x1 > x2 > x2 .x3) (x1 .xx3 > ¬x2 > x3 > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ......... k ... clique ... > 3-CNF-SAT... k . clause..... > .. satisfiable... CLIQUE.... > NP-complete. > > 34 NP-Completeness > > 91 > 34.5 NP-complete problems34.5 NP-complete problems > 34.5.2 The vertex-cover problem > A vertex cover of an undirected graph G > = (V, E) is a subset V' . > V such that if (u, > and > v) . > E, then u . > V' or v . > V'(or both). That > is, each vertex "cover" its incident edges, > a vertex cover for G is a set of > vertices that covers all the edges in E. > The size of a vertex cover is the number > of vertices in it. > > The vertex-cover problem is to find a > vertex cover of minimum size in a given > graph. > > 34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > Restating this optimization problem as a > decision problem, we wish to determine > whether a graph has a vertex cover of a > given size k. As a language, we define > VERTEX-COVER = {<G,k> : graph G has a > vertex cover of size k}. > Theorem 34.12 The vertex-cover problem is > NP-complete. > ......... NP...,... G= > (V,E)... k..... V' . > V,... > |V'| > =k....,... > E..... (u,v), > .. u . > V'. v . > V'........ > > 34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ..... vertex-cover .... NPhard, > ........ CLIQUE =P > VERTEX-COVER. > > ............ complement, > Given an undirected graph G = (V, E), we > define the complement of G as G = (V, E), > where E = {(u, v) : u, v . > V, u . v, and (u, > > v) . > E}.... G > ....... G.,. > .. G..... G... > > 34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ......... complement. > u v > z w > y x > u v > z w > y x > CLIQUE =P VERTEX-COVER.....:. > ... clique problem. instance <G,k>, > .... G. complement G,... > vertex-cover .. <G,|V|-k>...,... > > ... clique...... > > 34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > The graph G has a clique of size k if and > only if the graph G has a vertex cover of > size |V| -k. > > V'. G..... clique,. G. V'. > .............,... G.. > ...... V V'......,.. V > V'. vertex cover. > > . G. V V'. vertex cover,. V'.. > ........,... G.. V'... > . clique. > 34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > .. VERTEX-COVER.... NPcomplete, > ............ > polynomial time....... > approximation algorithm.,..... > polynomial time..........,.. > ........... > > ....... NP-complete... > approximation algorithm. > > 34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > 34.5.3 The hamiltonian-cycle problem > Theorem > 34.13 The hamiltonian cycle > problem is NP-complete. > > ............... NP..., > ..... G = (V, E),.... > hamiltonian cycle C,.. > C...... > > ....,... > C........... > E..... > .... VERTEX-COVER =HAM-CYCLE > > P > ... hamiltonian cycle.... NPhard > . > 34 NP-Completeness > > [u,v,1] > [u,v,2] > [u,v,3] > [u,v,4] > [u,v,5] > [u,v,6] > Wu v > (a) > [v,u,1] > [v,u,6] > [u,v,1] > [u,v,6] > Wuv > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > [v,u,1] > > [v,u,2] > > [v,u,3] > > [v,u,4] > > [v,u,5] > > [v,u,6] > > [v,u,1] > [v,u,6] > [u,v,1] > [u,v,6] > Wuv > [v,u,1] > [v,u,6] > [u,v,1] > [u,v,6] > Wuv > (b) (c) (d) > Given an undirected graph G = (V, E) and > an integer k, we construct an undirected > graph G' = (V', E') that has a hamiltonian > cycle if and only if G has a vertex cover of > size k. G'....:. G.... (u,v).. > ... 14 ..........: [u,v,1] ~ > [u,v,6],. [v,u,1]~[v,u,6]. > > 34 NP-Completeness > > 99 > 34 NP-Completeness > (a) > (b) > w > z > x > y > [x,w,1] > [x,w,6] > [w,x,1] > [w,x,6] > Wuv > [y,x,1] > [y,x,6] > [x,y,1] > [x,y,6] > Wuv > [y,w,1] > [y,w,6] > [w,y,1] > [w,y,6] > Wuv > [z,w,1] > [z,w,6] > [w,z,1] > [w,z,6] > Wuv > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ..............,.... > k . > selector verteices s1, s2, ..., sk. > ... u.. degree(u)...,..... > ......... u(1), u(2), ..., u(degree(u)),. > .. > {([u,u(i),6], [u,u(i+1),1]) : 1 = i = > degree(u) 1}... > .... vertex cover .. hamiltonian > cycle.,.... vertex cover ..... > ......... si.... > 34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ........, {(sj, [u,u(1),1]) : u . > V > , [u,u(degree(u)),6]) : u . > V > and1 =j= k} . > {(sj > and 1 = j = k}. > > .........,... |V'| = 12|E| + k > = 12|E| + |V|,... |E'| = 14|E| + (2|E| | > V|) + (2k|V|) = 16|E| + (2k-1)|V| > ......... polynomial time. > > 34 NP-Completeness > > 34.5.4 The traveling-salesman problem > Traveling-salesman problem(TSP): A > salesman must visit n cities. We can say > 34.5 NP-complete problems34.5 NP-complete problems > visiting > to > that the salesman wishes to make a tour, > each city exactly once and > finishing at the city he starts from. There > is an integer cost c(i, j) to travel from city > i city j, and the salesman wishes to > make the tour whose total cost is > > minimum, where the total cost is the sum > of the individual costs along the edges of > the tour. > > 34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > TSP = {<G,c,k> : G = (V, E) is a complete > graph, c is a function from V × V . > Z, k . > Z, and G has a traveling-salesman tour > Theorem > with cost at most k}. > 34.14 The traveling-salesman > problem is NP-complete. > .... TSP..... NP,..... > TSP...,..... polynomial time > ..................,.. > ......... cost...... k. > 34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ..... NP-complete... reduce. > TSP...,.... Hamiltonian cycle > =P TSP. > ..... G = (V, E),..... > complete.. G' = (V, E'), E' = {(i,j) : i, > j . > V and i . j},... (i,j) . > E. c(i,j) = > 0,. (i,j) . > E. c(i,j) = 1. > The graph G has a hamiltonian cycle if > and only if graph G' has a tour of cost at > most 0. > > 34 NP-Completeness > > 105 > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > 34.5.5 The subset-sum problem > .... > subset-sum problem, We are > given a finite set S . > N and a target t . > N. > .. > We ask whether there is a subset S' . > S > whose elements sum to t. > > S = {1, 2, 7, 14, 49, 98, 343, 686, > 2409, 2793, 16808, 17206, 117705, > 117993}. t = 138457,. S' = {1, 2, 7, > 98, 343, 686, 2409, 17206, 117705}.. > ... > > SUBSET-SUM = {<S,t> : there exists a > > subset S' . > S such that t = S > s}. > > s.S'34 NP-Completeness > > 106 > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > Theorem 34.15 The subset-sum problem is > NP-complete. > ........ NP...,..... S' , > .. > S'............ t.... > .. polynomial time......,... > ..... NP. > > .... 3-CNF-SAT =P SUBSET-SUM.. > ...... NP-hard. > 34 NP-Completeness > > 34.5 NP-complete problems34.5 NP-complete problems > 107 > Given a 3-CNF formula . over variables > x, x, ..., x with clauses C, C, ..., C, > > 12n 12k > > each containing exactly three distinct > > the reduction algorithm > an instance <S,t> of the > > problem such that . is > > literals, > constructs > subset-sum > satisfiable if and only if there is a subset > > of S whose sum is exactly t. > > 34 NP-Completeness > > 108 > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ................,. .= > C1 . > C2 . > C3 . > C4,.. C1 = (x1 . > ¬x2 . > ¬x),C=(¬x. > ¬x. > ¬x) C=(¬x. > > 32 1233 1 > > . > x),C=(x. > x. > x) > > 234 123 > > ¬x > ...... satisfying assignment. x1 > = 0, x2= 0, x3 = 1. > ..... subset-sum..: > > 34 NP-Completeness > > 109 > 34 NP-Completeness > x1 x2 x3 C1 C2 C3 C4 > v1 = 1 0 0 1 0 0 1 > v1 = 1 0 0 0 1 1 0 > v2 = 0 1 0 0 0 0 1 > v2 = 0 1 0 1 1 1 0 > v3 = 0 0 1 0 0 1 1 > v3 = 0 0 1 1 1 0 0 > s1 = 0 0 0 1 0 0 0 > s1 = 0 0 0 2 0 0 0 > s2 = 0 0 0 0 1 0 0 > s2 = 0 0 0 0 2 0 0 > s3 = 0 0 0 0 0 1 0 > s3 = 0 0 0 0 0 2 0 > s4 = 0 0 0 0 0 0 1 > s4 = 0 0 0 0 0 0 2 > t = 1 1 1 4 4 4 4 > > 110 > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > .............,....... > .. vi. vi',.. xi. Cj...., vi > .... > Cj..... 1.... 0, ¬xi > > Cj...., vi'.... > Cj...... > 1.... 0. > .......... si. si',.. si. Ci > .... 1.... 0,. si'. Ci.... > 2.... 0. > > t..... n. digits. 1.. k . > digits. 4. > .........34 NP-Completeness > > 111 > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ............ subset... t > ..,....... satisfiable. > .. subset-sum.... NP-complete. > 34 NP-Completeness > > E > EEx > xxe > eerc > rcrci > iis > sse > ees > ss 34.5 > 34.534.5 > > 112 > 34.5-1 The subgraph-isomorphism problem > takes two graphs G1 and G2 and asks > whether G1 is isomorphic to a subgraph of > G2. Show that the subgraph-isomorphism > problem is NP-complete. > 34.5-5 The set-partition problem takes as > input a set S of numbers. The question is > whether the numbers can be partitioned > 34 NP-Completeness > into two sets A and S A such that Sx.Ax = > Sx (.S-A)x. Show that the set-partition > problem is NP-complete. > > E > EEx > xxe > eerc > rcrci > iis > sse > ees > ss 34.5 > 34.534.5 > > 34.5-6 Show that the hamiltonian-path > problem is NP-complete. > > 34.5-7 The longest-simple-cycle problem is > > problem of determining a simplethe > cycle(no repeated vertices) of maximum > length in a graph. Show that this problem > is NP-complete. > > 34 NP-Completeness > > <.NP> This proof is correct: -This proof was correct when a snail scrunches does he become a 'snali'?
From: http://alexslemonade.org on 22 Oct 2009 21:04
This proof is correct: Future_News wrote: > On Oct 22, 4:48 pm, Tegiri Nenashi <tegirinena...(a)gmail.com> wrote: > > On Oct 21, 5:04 pm, cplxphil <cplxp...(a)gmail.com> wrote: > > > > > I'm not sure if you're disagreeing. If you are, my response is that > > > you could argue that it preserves the same structure of the decision > > > problem, but expressed as a formal language, it's technically > > > different. It has to be proven that languages are basically > > > equivalent (in terms of decidability, time complexity, and space > > > complexity) and independent of encoding scheme, and this proof only > > > applies to encoding schemes that use at least two symbols in the > > > alphabet. > > > > I'm not comfortable with this alphabet symbols count. Do word > > separators count as alphabet symbols or not? Why is the language is > > assumed to be structured into sentences of words? This looks like ad- > > hoc assumption from language theory perspective. > > > > > I guess something I should have mentioned earlier is that Cook's > > > theorem would not be true if you use a unary alphabet, meaning that > > > SAT would not be NP-complete in that case. If you think you can prove > > > Cook's theorem for a unary alphabet, please share this proof. > > > > http://en.wikipedia.org/wiki/Cook%E2%80%93Levin_theorem > > > > The only place I noticed depending on the encoding appeared to be the > > last sentence. Changing log into polynomial doesn't change anything > > there. Is there another dependency I'm missing? > > <NP> > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > 34.1 Polynomial time > 34.2 Polynomial-time verification > 34.3 NP-completeness and reducibility > 34.4 NP-completeness proofs > 34.5 NP-complete problems > 34 NP-Completeness > > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > > ............. polynomial time.... > ,.... worst case....... O(nk),.. n > . input size, k. constant. > .. > ............ polynomial time.. > Turing.........: Halting > problem,.................,.. > ... polynomial time...... > .............,........ O(nk). > > > Generally, we think of problems that are solvable > by polynomial-time algorithms as being tractable, > and problems that require superpolynomial time > as being intractable. > > 34 NP-Completeness > > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > > ..... polynomial time.....,... > . P......... polynomial time... > ..........,.. NP.... > > . 1971...... P = NP ?...,... > > ............. > ....... NP-complete...,... NP > .......,...... polynomial time > ...,............. polynomial > time.... > > > 34 NP-Completeness > > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > > .. NP-complete............ > ,.... polynomial time....... > ..... > > Shortest vs. Longest simple paths: 24.. > ........... single source. > shortest path...... O(VE).. > > > > longest simple paths....:..... > ,........ simple path(..... > path),...... k........:. > ..... Hamiltonian path(...... > path)..........,. NPcomplete > .... > > 34 NP-Completeness > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > > Euler tour vs. Hamiltonian cycle:.... > ..,............. cycle,. > . Euler tour...,.. O(E)....... > .....,.............. > cycle,.. Hamiltonian cycle...... > .....,. NP-complete.... > > > 34 NP-Completeness > > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > 2-CNF satisfiability vs. 3-CNF satisfiability: > > ........,............ > .. true,.. satisfiability....... > . > ............. (x1 . -x2) . (-x1 > > x3) . (-x2 . -x3)....,.. 2 > > > CNF(conjuctive normal form) satisfiability > > ... (........ or,...... > > ... and,............ );. > > ...............,.. 3-CNF > > satisfiability.... 2-CNFsatisfiability. > ..,. 3-CNF satisfiability..... NPcomplete > .... > 34 NP-Completeness > > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > NP-completeness and the classes P and NP > > > > ....,.......:..... polynomial > time.....,.... P......... > polynomial time.............,. > . NP...,.. Hamiltonian cycle, 3-CNF. > .. P . NP,...: P . NP?.......: > P..... NP. > . NP-complete... NP.......,... > . NP-complete...... polynomial time. > ....,.. NP....... polynomial time > .... > > 34 NP-Completeness > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > > .. NP-complete........ > polynomial time....,....... > .. polynomial time.... > > ....,...... P.NP,.. NP- > complete............,. > 1971. Cook..... NP-complete.. > ..,.................. > NP-complete... polynomial time.... > ..............,...... > . > > > 34 NP-Completeness > > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > ......... NP-complete.... > ...,............ NPcomplete > . > > P.... NP......;.. NPcomplete > ....,..... > approximation algorithm;...... > special case....,......... > polynomial time.......... > > > 34 NP-Completeness > > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > Overview of showing problems to be NP- > complete > > > ....... NP-complete........ > .....,................ > .......;........ NPcomplete > ................. > ........... O(n lg n)...... > 34 NP-Completeness > > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > Decision problems vs. Optimization problems > > > > ...................,. > ........ (optimization problems), > ...........: minimum spanning > > > tree. shortest path.......... > ..... decision problems,...... > ..,....... (Yes/No)...:... > . weight..... 20. spanning tree.. > ........ k. simple cycle. > > .... decision.... optimization.. > ......... NP-complete.,... > decision problem....34 NP-Completeness > > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > Decision problems vs. Optimization problems > > > . Optimization......... decision > ........:......... u, v. > v > .......... decision...... u, > .......... k .......,. > ...........,.......... > ........ k .... decision.... > .,.. decision......... > optimization...... > > > .. decision........,....... > ..,.... polynomial time,.... > decision problem... > 34 NP-Completeness > > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > Reduction > > > ........... reduction,..... > ..... A. NP-complete. > ........ A. polynomial time.. > ......,...... polynomial time > ...........:..... A.... > (instance)........ polynomial time > ...... B ... .,.... ..... > ...........,.. A.... > polynomial time... > > 1....... polynomial time. > 2. ..... .....34 NP-Completeness > > 14 > 34 NP-Completeness > 34 NP-Completeness34 NP-Completeness > Reduction > We call such a procedure a polynomial-time > reduction algorithm. > polynomial-time > reduction algorithm > polynomial-time > algorithm to decide B > . . > yes yes > no no > Polynomial-time algorithm to decide A > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > Reduction > > > ........ NP-complete....... > ....... polynomial time....., > .......... reduction...... > ........ A. NP-complete..... > . reduction...,......... NPcomplete > ... B,. polynomial time... > B. input reduce. A. input,.. A... > .. B.... > > > 34 NP-Completeness > > > > 3 > 334 > 44 NP > NPNP-Co > -Co-Com > mmp > pplet > letletene > eneenes > sss > ss > > > . reduce......,......... > .. NP-complete..... > .....:... NP-complete..... > ....... > ... NP-complete problem. Cook... > . satisfiability,........ NP... > reduce. satisfiability...... > satisfiability.... NP-complete > problem. > > > 34 NP-Completeness > > > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > ....... polynomial time..... > .. tractable,....: > > 1. > .. polynomial time........ > .....,.. .(n100)....... > ,... polynomial time....... > ..... > 2. Polynomial time........... > model.... polynomial time... > ,. RAM.... Turing machine.. > ..... > > 3. Polynomial time > .......... > (closure),.............. > ...34 NP-Completeness > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > We define an abstract problem Q to be a > binary relation on a set I of problem > instances and a set S of problem > > > solutions. > ..: shortest path......... > G... u... v,... G. u. v > ............. k. path.. > ....,.... yes..... no,. > . decision problem.... > > > Optimization problems......... > .....,........ decision.. > .... > > 34 NP-Completeness > > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > If a computer program is to solve an > abstract problem, problem instances must > be represented in a way that the program > understands. An encoding of a set S of > abstract objects is a mapping e from S to > the set of binary strings. > ...... polygons, graphs, functions, > ordered pairs, programs..... binary > strings. > 34 NP-Completeness > > > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > A computer algorithm that "solves" come > abstract decision problem actually takes an > encoding of a problem instance as input. We > ofcall a problem whose instance set is the set > > binary strings a concrete problem. An > algorithm solves a concrete problem in time > O(T(n)) if, when it is provided a problem > instance i of length n = |i|, the algorithm can > produce the solution in O(T(n)) time. A > concrete > > > problem is polynomial-time > solvable, therefore, if there exists an > algorithm to solve it in time O(nk) for some > constant k. > 34 NP-Completeness > > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > The complexity class P is the set of concrete > decision problems that are polynomial-time > solvable. > > ............ > k,. O(k).... > > ...,............. > ..........,.. unary(... > ). > ......,.. O(n)...;... binary > .......,........ O(2n). > > > 34 NP-Completeness > > > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > We say that a function f: {0,1}* . > {0,1}* is > polynomial-time computable if there exists a > polynomial-time algorithm A that, given any > that > input x . > {0,1}*, produces as output f(x). > > For some set I of problem instances, we say > > two encodings e1 and e2 are > > polynomially related if there exist two > > polynomial-time computable functions f12 and > > ef21 such that for any i . > I, we have f12(e1(i)) = > 2(i) and f21(e2(i)) = e1(i). > > > 34 NP-Completeness > > > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > Lemma 34.1 Let Q be an abstract decision > problem on an instance set I, and let e1 and > e2 be polynomially related encodings on I. > Then, e1(Q) . > P if and only if e2(Q) . > P. > > Proof:... e1(i)...... O(nk)... > e2(i)... e1(i).... O(nc).... > e2(i) > .,.....:... e1(i)... e1(i)... > ,.... O(nc+k),.. polynomial time.. > > ... > > 34 NP-Completeness > > > > 24 > 34.1 Polynomial time34.1 Polynomial time > ....... polynomial time...... > ....,........... P.... > .............. binary code,. > .............. > 34 NP-Completeness > > > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > A formal-language framework > > > .. formal language.... > decision problem > An alphabet S > is a finite set of symbols. A > language L over S > is any set of strings made up > of symbols from S. E.g, if S={0,1}, the set > L={10,11,101,111,1011, 1101, 10001, ...} is > the language of binary representations of > > > prime numbers. > empty string ., empty language Ø. The > language of all strings over S > is denoted by S*. > > > 34 NP-Completeness > > > > 26 > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > Languages. operations: union ., > intersection n, complement L = S* L, > concatenation, closure. > The concatenation of two languages L1 and L2 > isthelanguage L = {xx: x. > Land x. > L}. > > 1211 22 > > The closure or Kleene star of a language L is > the language L* = {.} . > L . > L2 . > L3 . > ..., where > Lk is the language obtained by concatenating > L to itself k times. > > 34 NP-Completeness > > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > From the point of view of language theory, > the set of instances for any decision problem > Q is simply the set S*, where S > = {0,1}. Since > Q is entirely characterized by those problem > instances that produce a 1(yes) answer, we > can view Q as a language L over S > = {0,1}, > whereL = {x .S* : Q(x) = 1}. > ..: PATH = {<G,u,v,k> > : G = (V,E) is an > undirected graph, u, v . > V, k = 0 is an > integer, and there exists a path from u to v in > G consisting of at most k edges}. > > 34 NP-Completeness > > > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > We say that an algorithm A accepts a string x > . > {0,1}* if, given input x, the algorithm's > output A(x) is 1. The language accepted by > {0,1}* > an algorithm A is the set of strings L = {x . > : A(x) = 1}, that is, the set of strings > > that the algorithm accepts. An algorithm A > > rejects string x if A(x) = 0. > > > 34 NP-Completeness > > > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > A language L is decided by an algorithm A if > every binary string in L is accepted by A and > every binary string not in L is rejected by A. > A language L is accepted in polynomial time > by an algorithm A if it is accepted by A and if > in addition there is a constant k such that for > any length-n string x . > L, algorithm A accepts > x in time O(nk). > A language L is decided in polynomial time > > an algorithm A if there is a constant kby > such that for any length-n string x . > {0,1}*, > the algorithm correctly decides whether x L > in time O(nk). 34 NP-Completeness > > > > 30 > We define > languages, > determined by > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > a complexity class as a set of > membership in which is > a complexity measure, such > as running time, of an algorithm that > > 34 NP-Completeness > > determines whether a given string x belongs > to language L. > We can provide an alternative definition of > the complexity class P: P = {L .{0,1}* : > there exists an algorithm A that decides L in > polynomial time}. > > 3 > 334 > 44.1 > .1.1 P > PPo > ooly > lylyn > nno > oom > mmia > iaial > ll tim > timtime > ee > In fact, P is also the class of languages that > can be accepted in polynomial time. > Theorem 34.2 P = {L: L is accepted by a > > polynomial-time algorithm}. > 34 NP-Completeness > > > > Ex > ExExer > ererc > ccis > isise > ees > ss 3 > 334 > 44.1 > .1.1 > > for > 34.1-4 Is the dynamic-programming algorithm > for the 0-1 knapsack problem that is asked > in Exercise 16.2-2 a polynomial-time > > 16.2-2 Give > algorithm ? Explain your answer. > > a dynamic-programming solution > to the 0-1 knapsack problem that runs in O(n > W) time, where n is number of items and W is > the maximum weight of items that the thief > can put in his knapsack. > > > 34 NP-Completeness > > > > 33 > Exercises34.1Exercises 34.1 > 34.1-6 Show that the class P, viewed as a set of > languages, is closed under union, > intersection, concatenation, complement, > and Kleene star. That is, if L1, L2 .P, then L1 . > L2 .P, etc. > 34.1-6 Show that the class P, viewed as a set of > languages, is closed under union, > intersection, concatenation, complement, > and Kleene star. That is, if L1, L2 .P, then L1 . > L2 .P, etc. > 34 NP-Completeness > > > > 34.234.234.234.2 Po > PoPol > lly > yyno > nonom > mmi > iia > aal > ll- > --ti > titim > mme > ee v > vve > eer > rri > iif > ffi > iic > cca > aati > titio > oon > nn > ... polynomial-time verification... > ..... polynomial-time....... > .........,..... PATH.. > .,..... G... u... v,.. > .. k,.... path,..... lineartime > ....... path... u. v. > path,......... k,.... > polynomial-time verification. > ..... polynomial-time......, > ..... polynomial-time verification. > ............ polynomial-time > ...,...... polynomial-time > verification....34 NP-Completeness > > 35 > 34.2 Polynomial-time verification34.2 Polynomial-time verification > Hamiltonian cycle > > > .............. hamiltonian > cycle,............... > hamiltonian cycle of an undirectedAgraph G = (V, E) is a simple cycle > that > contains each vertex in V. A graph that > contains a hamiltonian cycle is said to be > hamiltonian; otherwise, it is > nonhamiltonian. > > Hamiltonian-cycle problem: "Does a graph > G have a hamiltonian cycle ?" > > 34 NP-Completeness > > > > 36 > 34.2 Polynomial-time verification34.2 Polynomial-time verification > .......... hamiltonian-cycle? > > > > ..... > dodecahedron > ...... bipartite graph > > 34 NP-Completeness > > > > 37 > 34.2 Polynomial-time verification34.2 Polynomial-time verification > . hamiltonian cycle....... > polynomial time...,.... O(2n). > Verification algorithms:.....,... > .......,............ > ....... G. cycle C,..... > C > ... hamiltonian cycle........ > cycle,........,........ > ,............ hamiltonian > cycle,......:.......... > > ............ edge?.... > simple cycle?.......... Yes,. > ... hamiltonian cycle. > 34 NP-Completeness > > > > 38 > 34.2 Polynomial-time verification34.2 Polynomial-time verification > We define a verification algorithm as > being a two-argument algorithm A, where > one argument is an ordinary input string x > certificate. > and the other is a binary string y called a > > A two-argument algorithm A > verifies an input string x if there exists a > certificate y such that A(x, y) = 1. The > language verified by a verification > algorithm A is L = {x . > {0,1}* : there > exists y . > {0,1}* such that A(x, y) = 1}. > > 34 NP-Completeness > > > > 34.234.234.234.2 Po > PoPol > lly > yyno > nonom > mmi > iia > aal > ll- > --ti > titim > mme > ee v > vve > eer > rri > iif > ffi > iic > cca > aati > titio > oon > nn > The complexity class NP > > > ........ polynomial time....,.. > hamiltonian-cycle problem.. NP.... > .... NP. NP. nondeterministic > model > polynomial ...,.... non-deterministic > ..,.. polynomial time......, > .. NP.... > > > A language L . > NP iff there exists a two-input > polynomial-time algorithm A and constant c such > that L = {x . > {0,1}* : there exists a certificate y > with |y| = O(|x|c) such that A(x, y) = 1}. > The algorithm A verifies language L in polynomial > time. > > 34 NP-Completeness > > > > 34.234.234.234.2 Po > PoPol > lly > yyno > nonom > mmi > iia > aal > ll- > --ti > titim > mme > ee v > vve > eer > rri > iif > ffi > iic > cca > aati > titio > oon > nn > ..... hamiltonian cycle..... NP. > ..,..... L ... P... L.... > . NP,.... L ............. > ..,.. P . > NP. > ...... P= > NP........,... > ........ P . NP. > > > 34 NP-Completeness > > > > 34.234.234.234.2 Po > PoPol > lly > yyno > nonom > mmi > iia > aal > ll- > --ti > titim > mme > ee v > vve > eer > rri > iif > ffi > iic > cca > aati > titio > oon > nn > .. P.... NP..,.......... > ...,.. NP...... complement. > ......... L . > NP..... L . > NP. > NPWe can define the complexity class co-NP as > the set of languages L such that L . > NP. > ............ NP.... coNP > .... > > > P = NP = co-NP NP = co-NP > P > co-NP NPP = NP nco-NP co-NP NPNP nco-NP > P > ....... > 34 NP-Completeness > > > > E > EEx > xxe > eer > rrc > cci > iis > sse > ees > ss 34 > 3434.2 > .2.2 > > 42 > 34.2-1 Consider > ISOMORPHISM > isomorphic graphs}. Prove that GRAPH- > ISOMORPHISM .NP by describing a > polynomial-time algorithm to verify the > language. > 34.2-2 Prove that if G is an undirected bipartite > graph with an odd number of vertices, then G > is nonhamiltonian. > the language GRAPH={< > G,G> > :Gand Gare > > 121 2 > > 34 NP-Completeness > > > E > EEx > xxe > eer > rrc > cci > iis > sse > ees > ss 34 > 3434.2 > .2.2 > > > 34.2-4 Prove that the class NP of languages is > closed under union, intersection, > 34.2-6 > concatenation, and Kleene star. Discuss the > closure of NP under complement. > > A hamiltonian path in a graph is a > simple path that visits every vertex exactly > once. Show that the language HAM-PATH = { > <G, u, v> > : there is a hamiltonian path from u > to v in graph G} belongs to NP. > > > 34 NP-Completeness > > > > E > EEx > xxe > eer > rrc > cci > iis > sse > ees > ss 34 > 3434.2 > .2.2 > > > 34.2-7 Show that the hamiltonian-path > problem can be solved in polynomial time on > 34.2-11 > directed acyclic graphs. Give an efficient > algorithm for the problem. > > Let G be a connected, undirected > graph with at least 3 vertices, and let G3 be > the graph obtained by connecting all pairs of > vertices that are connected by a path in G of > length > > most 3. Prove that G3 is > hamiltonian. (Hint: Construct a spanning tree > at > for G, and use an inductive argument.) > > 34 NP-Completeness > > > > 34.3 > 34.334.3 N > NNP > PP- > --c > cco > oom > mmp > ppl > lle > eet > tte > een > nne > ees > sss > ss a > aand > ndnd r > rre > eed > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > ..... P . NP........ NPcomplete > ...,.... NP-complete > ...... polynomial time....., > NP....... polynomial time.. > ....,... P = NP......... > ,..... NP-complete....... > ..... polynomial time..... > .. Hamiltonian cycle..... NPcomplete > ...,..... polynomial > time.... Hamiltonian cycle..., > .. NP....... polynomial time > ..... > > > 34 NP-Completeness > > > > 46 > 34.3 NP-completeness and reducibility34.3 NP-completeness and > reducibility > ....,.. NP P.......,.. > Hamiltonian cycle....... NP > P. > > .... NP-complete.... NP... > > ... > ...... polynomial-time reducibility > ...... NP-complete...... > > > 34 NP-Completeness > > > > 47 > 34.3 NP-completeness and reducibility34.3 NP-completeness and > reducibility > L1 is polynomial-time reducible to L2, > > written L1 =P L2,.. L2 . P. L1 . P. > A > ..: L2. sorting...,. L1.... > ....,. L1 =PL2. > > language L1 is polynomial-time > reducible to a language L2, written L1 =P > L2, if there exists a polynomial-time > computable function f : {0,1}* . > {0,1}* > > such that for all x . > {0,1}*, x . > L1 if and > > only if f(x) . > L2. > > 34 NP-Completeness > > > > 48 > Lemma 34.3 If Lsuch that L > 34.3 > 34.334.3 N > NNP > PP- > --c > cco > oom > mmp > ppl > lle > eet > tte > een > nne > ees > sss > ss a > aand > ndnd r > rre > eed > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > > 1, L2 . > {0,1}* are languages > =L,thenL. > P implies L. > > 1P22 1 > > P. > > 34 NP-Completeness > A1 > A2F > f(x)x > yes, f(x) .L2 > no, f(x) .L2 > yes, x .L1 > no, x .L1 > > 49 > 34.3 NP-completeness and reducibility34.3 NP-completeness and > reducibility > NP-completeness > > > Polynomial-time reductions provide a > formal means for showing that one > We > problem is at least as hard as another, to > within a polynomial-time factor. > > define the set of NP-complete > > languages, which are the hardest > > > problems in NP. > > A language L . > {0,1}* is NP-complete if > > 1. L . > NP, and > 2. L' =P L for every L' . > NP. > 34 NP-Completeness > > > > 34.3 > 34.334.3 N > NNP > PP- > --c > cco > oom > mmp > ppl > lle > eet > tte > een > nne > ees > sss > ss a > aand > ndnd r > rre > eed > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > . L . NP-complete...,. L . NP, > ..... NP... L' =P L. > .......... NP... L' =P L.. > ..., L .. NP-hard.... > .... NPC.. > NP-complete > languages. > . L1 =PL2.,.. L1. NP-complete. > L2.... NP-hard. > > > 34 NP-Completeness > > > > 51 > 34.3 NP-completeness and reducibility34.3 NP-completeness and > reducibility > Theorem 34.4 If any NP-complete problem > is polynomial-time solvable, then P = NP. > Equivalently, if any problem in NP is not > complete > solvable. > polynomial-time solvable, then no NP- > > problem is polynomial-time > > > ...... P .NP > > > NP > P > NP-Complete > 34 NP-Completeness > > > > 34.3 > 34.334.3 N > NNP > PP- > --c > cco > oom > mmp > ppl > lle > eet > tte > een > nne > ees > sss > ss a > aand > ndnd r > rre > eed > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > Circuit satisfiability > > > ... NP-complete .......,.... > .. reducibility............ NP- > Thus, > complete.... > we now focus on demonstrating the > existence of an NP-complete problem: the > circuit-satisfiability problem. > A boolean combinational element is any > circuit element that has a constant number > of boolean inputs and outputs and that > performs a well-defined function. > ....... 0. > 1, 0.. > FALSE. 1.. > TRUE. > > > 34 NP-Completeness > > > > 53 > 34.3 NP-completeness and reducibility34.3 NP-completeness and > reducibility > A boolean combinational circuit consists > of one or more boolean combinational > elements interconnected by wires. > > > not and or > > > > 34 NP-Completeness > > > > 54 > 34.3 NP-completeness and reducibility34.3 NP-completeness and > reducibility > x1 > x2 > x3 > 34 NP-Completeness > > > > 3 > 334.3 N > 4.3 N4.3 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > eene > nenes > sss > ss a > aand > ndndre > rered > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > > A truth assignment for a boolean > combinational circuit is a set of boolean input > values. We say that a one-output boolean > combinational circuit is satisfiable if it has a > satisfying assignment: a truth assignment > that causes the output of the circuit to be 1. > 34 NP-Completeness > > > > 3 > 334.3 N > 4.3 N4.3 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > eene > nenes > sss > ss a > aand > ndndre > rered > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > The circuit-satisfiability problem is, "Given a > boolean combinational circuit composed of > AND, OR, and NOT gates, is it satisfiable?" > ...... size. circuit. combinational > element...... > CIRCUIT-SAT = {<C> : C is a satisfiable > boolean combinational circuit}. > ................ true. false > > ..,.....,............. > . .(2n),...... n... > > 34 NP-Completeness > > > 3 > 334.3 N > 4.3 N4.3 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > eene > nenes > sss > ss a > aand > ndndre > rered > dduc > ucuci > iib > bbi > iil > lli > iity > tyty > .... CIRCUIT-SAT. NP-Complete... . > Lemma 34.5 The circuit-satisfiability problem > .. > belongs to the class NP. > lemma............ > circuit,..... truth assignment,... > . linear time....... > assignment. > .... truth assignment... circuitsatisfiability > . NP.... > > > 34 NP-Completeness > > > > Circuit-satisfiability > problem is NP-complete > (cont.) > > > Lemma 34.6: (page 991) > CIRCUIT-SAT is NP-hard. > Proof: Suppose X is any problem in NP > construct a poly-time algorithm F maps > every problem instance x in X to a circuit > C=f(x) such that the answer to x is YES if > and only if CÎCIRCUIT-SAT (is satisfiable). > > Circuit-satisfiability problem is NP-hard > (cont.) > > > > F runs in poly time. > > Poly space: > > Size of x is n. > > Size of A is constant, independent of x. > > Size of y is O(nk). > > Amount of working storage is poly in n since A runs at > most O(nk). > > M has size poly in length of configuration, which is poly > in O(nk), and hence is poly in n. > > C consists of at most O(nk) copies of M, and hence is poly > in n. > > Thus, the C has poly space. > > The construction of C takes at most O(nk) steps and > each step takes poly time, so F takes poly time to > construct C from x. > > Circuit-satisfiability problem is NP-hard > (cont.) > > > > Since XÎNP, there is a poly-time > algorithm A which verifies X. > > Suppose the input length is n and let T(n) > denote the worst-case running time. Let k > be the constant such that T(n)=O(nk) and > the length of the certificate is O(nk). > > Circuit-satisfiability problem is NP-hard > (cont.) > > > > Idea is to represent the computation of A > as a sequence of configurations, c0, c1, > ,ci,ci+1, ,cT(n), each ci can be broken into > > > (program for A, program counter PC, auxiliary machine > state, input x, certificate y, working storage) and > > ci is mapped to ci+1 by the combinational circuit > M implementing the computer hardware. > > The output of A: 0 or 1 is written to some > designated location in working storage. If the > algorithm runs for at most T(n) steps, the > output appears as one bit in cT(n). > > Note: A(x,y)=1 or 0. > > Copyright © The McGraw-Hill Companies, Inc. Permission required for > reproduction or display. > > 62 > > Circuit-satisfiability problem is NP-hard (cont.) > > > > The reduction algorithm F constructs a > single combinational circuit C as follows: > Paste together all T(n) copies of the circuit > M. > > The output of the ith circuit, which produces > ci, is directly fed into the input of the (i+1)st > circuit. > > > All items in the initial configuration, except > the bits corresponding to certificate y, are > wired directly to their known values. > > The bits corresponding to y are the inputs to > C. > All the outputs to the circuit are ignored, > except the one bit of cT(n) corresponding to > the output of A. > > > Circuit-satisfiability problem is NP-hard (cont.) > > > Two properties remain to be proven: > F correctly constructs the reduction, i.e., C > is satisfiable if and only if there exists a > certificate y, such that A(x,y)=1. > ÜSuppose there is a certificate y, such > that A(x,y)=1. Then if we apply the bits > of y to the inputs of C, the output of C is > the bit of A(x,y), that is C(y)= A(x,y) =1, > so C is satisfiable. > ÞSuppose C is satisfiable, then there is a > y such that C(y)=1. So, A(x,y)=1. > F runs in poly time. > > 34.3 NP-completeness and > reducibility > Theorem 34.7 The circuit-satisfiability > problem is NP-complete. > > > Exercises 34.3 > > > 34.3-2 Show that the =P relation is a > > transitive relation on languages. That is, > > showthatifL=LandL=L,thenL= > > > 1P2 2P31P > > L3. > > > 34.4 NP-completeness proofs > ....... NP-complete....... > circuit-satisfiability problem....... > NP.... reduce. circuit-satisfiability > ...,............ > Lemma 34.8 If L is a language such that L' =P > L for some L' . > NPC, then L is NP-hard. > Moreover, if L . > NP, then L . > NPC. > .. =P. transitive...,...... > NP... L''=PL' =P L,.. L. NP-hard > .... > > > 34.4 NP-completeness proofs > . > Lemma 34.8........... NPcomplete > ...... > 1. Prove L . > NP. > 2. Select a know NP-complete language L'. > 3. Describe an algorithm that computes a > function f mapping every instance x . > {0,1}* of L' to an instance f(x) of L. > 4.Prove that the function f satisfies x . > L' if > and only if f(x) . > L for all x . > {0,1}*. > 5.Prove that the algorithm computing f > runs in polynomial time. > > > 34.4 NP-completeness proofs > .... 2~5......... NP-hard. > ............ NP... reduce > ........... CIRCUIT-SAT. NPcomplete > ....... > ........... NP-complete.., > ..............,....... > .. NP-complete........ > > 34.4 NP-completeness proofs > Formula satisfiability > > > ....... formula satisfiability > problem,...... NP-complete. > An instance of SAT is a boolean formula . > composed of > 1. n boolean variables: x1, x2, ..., xn; > 2. m boolean connectives: any boolean > function with one or two inputs and one > output, such as ., ., ¬, .(imply), .(iff) > 3.parentheses. > > > 34.4 NP-completeness proofs > Boolean formula ... encode.... > O(m+n). A truth assignment for a boolean > formula . is a set of values for the variables > of ., and a satisfying assignment is a truth > assignment that causes it to evaluate to 1. > A formula with a satisfying assignment is a > satisfiable formula. > SAT = {<.> : . is a satisfiable boolean > formula}. > > 34.4 NP-completeness proofs > ..: .= ((x1 . > x2) . > ¬ ((¬x1 . > x3) . > x4)) . > ¬ x2,.. satisfying assignment. x1 = 0, > x2 = 0, x3 = 1, x4 = 1,. > .= ((0 . > 0) . > ¬ ((¬0 . > 1) . > 1)) . > ¬0 > = (1 . > ¬ (1 . > 1)) . > 1 = (1 . > 0) . > 1 =1 > SAT...... n...,.... 2n.. > .....,............ > formula.. true,........... . > (2n). > > 34.4 NP-completeness proofs > Theorem > 34.9 Satisfiability of boolean > formulas is NP-complete. > . Lemma 34.8 ......,... SAT. > NP...,...... truth > assignment,.......... > formula > .... 1,......... polynomial > time,.. SAT.. NP. > > > ...... CIRCUIT-SAT =P SAT,.... > .. CIRCUIT-SAT............ > ,....... size........... > > > > 34.4 NP-completeness proofs > . =x. > (x. > ¬x) . > (x. > (x. > x)) . > (x. > 104 35126 > > ¬x) . > (x. > (x. > x. > x)) . > (x. > (x. > x)) . > > 47124856 > > (x. > (x. > x)) . > (x. > (x. > x. > x)). > > 9 6710 789 > > x1 > x2 > x3 x4 > x5 > x6 > x7 > x8 > x9 > x10 > > 34.4 NP-completeness proofs > ................... > polynomial time........ formula > .. satisfiable..,... CIRCUIT-SAT > .. satisfiable,..... > .. SAT..... NP-complete. > > 34.4 NP-completeness proofs > 3-CNF satisfiability > > > .......: A literal in a boolean > formula is an occurrence of a variable or its > negation. A boolean formula is in > conjunctive normal form, or CNF, if it is > expressed as an AND of clauses, each of > which is the OR of one or more literals. A > boolean formula is in 3-conjunctive normal > form, or 3-CNF, if each clause has exactly > three distinct literals. > > 77 > > 34.4 NP-completeness proofs > ..: (x1 . > ¬x1 . > ¬x2) . > (x3 . > x2 . > x4) . > (¬x1 > . > ¬x3 . > ¬x4).... 3-CNF. > > > In 3-CNF-SAT, we are asked whether a > given boolean formula . in 3-CNF is > satisfiable. > Theorem 34.10 Satisfiability of boolean > formulas in 3-conjunctive normal form is > NP-complete. > > > 34.4 NP-completeness proofs > Theorem > 34.10 Satisfiability of boolean > formulas in 3-conjunctive normal form is > NP-complete. > 3-CNF-SAT . > NP.... SAT . > NP.... > ........ SAT =P 3-CNF-SAT. > > > .. SAT... reduce. 3-CNF-SAT.. > .,.... SAT. input. polynomial > time.... 3-CNF-SAT. input,... > ......... 3-CNF,........ > ... > > 34.4 NP-completeness proofs > .. SAT... reduce. 3-CNF-SAT.. > .,.... SAT. input. polynomial > time.... 3-CNF-SAT. input,... > ......... 3-CNF,........ > ... > ...... SAT input formula. binary > tree. > > 34.4 NP-completeness proofs > > > ........, . = > ((x. > x) . > ¬((¬x. > x) > > > 12 13 > > . > x4)) . > ¬x2,... > binary tree..: > > ..... ... .' = y1 > > . > (y. > (y. > ¬x)) . > (y. > > > 1222 > > (y. > y)) . > (y. > (x. > > > 3431 > > x)) . > (y. > ¬y) . > (y. > > > 2455 > > (y. > x)) . > (y. > (¬x. > > > 646 1 > > x3)) > > y1 > > y2 > . > y. > . > ¬ > . > . > y¬x2 > > 3 > > 4 > > y5 > > xx > > 1 2y6 > > x > > 4 > > ¬xx > > 13 > > > > 34.4 NP-completeness proofs > ..... .'....... > and,.... > ..... and.............. > ...... or.. y. > (y. > ¬x)... > 12 > > y1 y2 x2 > > . y1 . > (y2 . > ¬x2) = 11 > 1110 > ¬((y. > y. > x) . > (y > > 1221 101 > . > ¬y2 . > x2) . > (y1 . > 100 > 011 > > ¬y. > ¬x) . > (¬y. > > 221 010 > > y. > ¬x)) > > 22001 > 000 > > = (¬y. > ¬y. > ¬x) . > (¬y. > y > > > 12212 > > (¬y. > y. > x) . > (y. > ¬y. > x) > > 1221 22 > > 2 > > .y1 ..y2.-x2 .. > > 0 > 1 > 0 > 0 > 1 > 0 > 1 > 1 > > . > ¬x2) . > > > > 82 > > 34.4 NP-completeness proofs > ... .'............,... > CNF .... ."............. > .................... (xi > . > xj)..,... (xi . > xj . > p) . > (xi . > xj . > ¬p)............ (x),... (x > . > p . > q) . > (x . > ¬p . > q) . > (x . > p . > ¬q) . > (x . > ¬p . > ¬q). > ............. 3-CNF formula > .''',.... satisfiable if and only if.. > ...... satisfiable... 3-CNF-SAT. > NP-complete. > > > Exercises 34-4 > > > 34.4-6 Suppose that someone gives you a > polynomial-time algorithm to decide > formula satisfiability. Describe how to use > this algorithm to find satisfying > assignments in polynomial time. > > 34.4-7 Let 2-CNF-SAT be the set of satisfiable > boolean formulas in CNF with exactly 2 > literals per clause. Show that 2-CNF-SAT . > > > P. Make your algorithm as efficient as > possible.(Hint: Observe that x . > y is > equivalent to ¬x . > y. Reduce 2-CNF-SAT to > a problem on a directed graph that is > efficiently solvable.) > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > NP-complete problems arise in diverse > > > domains: boolean logic, graphs, > > > arithmetic, network design, sets and > storage and retrieval, > > partitions, > sequencing and scheduling, mathematical > > programming, algebra and number > > theory, games and puzzles, automata and > > language theory, program optimization, > > > biology, chemistry, physics, and more. > > > ............ NP-complete. > > > 34 NP-Completeness > > > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > CIRCUIT-SAT > SAT > 3-CNF-SAT > SUBSET-SUMCLIQUE > VERTEX-COVER > HAM-CYCLE > TSP > 34 NP-Completeness > > > > 86 > 34.5 NP-complete problems34.5 NP-complete problems > 34.5-1 The clique problem > A clique in an undirected graph G = (V, E) > is a subset V' . > V of vertices, each pair of > > > other > which is connected by an edge in E. In > > words, a clique is a complete > subgraph of G. The size of a clique is the > number of vertices it contains. The clique > problem is the optimization problem of > finding a clique of maximum size in a > graph. > > > 34 NP-Completeness > > > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > 34.5-1 The clique problem > > > As a decision problem, we ask simply > whether a clique of a given size k exists in > graph. The formal definition isthe > CLIQUE = {<G,k> : G is a graph with a > clique of size k}. > > > ............... G. k . > ..........,.... complete > graph,.......... .(k2* C(|V|, > k)),.. C(|V|, k). |V|........ > k .....,......... > polynomial time.34 NP-Completeness > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > Theorem > 34.11 The clique problem is NP- > complete. > ..... CLIQUE . > NP,..... V', > k. > ..... polynomial time.. > V'... > ..........,. |V'|...... > > > > ........ 3-CNF-SAT =P CLIQUE, > ...... 3-CNF-SAT. input... > CLIQUE. input,.........,. > .......... k ... clique., > 3-CNF-SAT.. satisfiable,...... > ......:34 NP-Completeness > > > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > . 3-CNF-SAT.... .=(x1 . > ¬x2 . > ¬x3) > . > (¬x1 . > x2 . > x3) . > (x1 . > x2 . > x3),....: > > (¬x. > (x. > ¬x. > ¬x) > > 123 > > 2 . > x3) > > 1 > > 34 NP-Completeness > > ¬x1 > x2 > x1 2¬x3 > x1 > x2 > x2 .x3) (x1 .xx3 > ¬x2 > x3 > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ......... k ... clique ... > 3-CNF-SAT... k . clause..... > .. satisfiable... CLIQUE.... > NP-complete. > > > 34 NP-Completeness > > > > 91 > 34.5 NP-complete problems34.5 NP-complete problems > 34.5.2 The vertex-cover problem > A vertex cover of an undirected graph G > = (V, E) is a subset V' . > V such that if (u, > and > v) . > E, then u . > V' or v . > V'(or both). That > is, each vertex "cover" its incident edges, > a vertex cover for G is a set of > vertices that covers all the edges in E. > The size of a vertex cover is the number > of vertices in it. > > > The vertex-cover problem is to find a > vertex cover of minimum size in a given > graph. > > 34 NP-Completeness > > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > Restating this optimization problem as a > decision problem, we wish to determine > whether a graph has a vertex cover of a > given size k. As a language, we define > VERTEX-COVER = {<G,k> : graph G has a > vertex cover of size k}. > Theorem 34.12 The vertex-cover problem is > NP-complete. > ......... NP...,... G= > (V,E)... k..... V' . > V,... > |V'| > =k....,... > E..... (u,v), > .. u . > V'. v . > V'........ > > > 34 NP-Completeness > > > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ..... vertex-cover .... NPhard, > ........ CLIQUE =P > VERTEX-COVER. > > ............ complement, > Given an undirected graph G = (V, E), we > define the complement of G as G = (V, E), > where E = {(u, v) : u, v . > V, u . v, and (u, > > v) . > E}.... G > ....... G.,. > .. G..... G... > > > 34 NP-Completeness > > > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ......... complement. > u v > z w > y x > u v > z w > y x > CLIQUE =P VERTEX-COVER.....:. > ... clique problem. instance <G,k>, > .... G. complement G,... > vertex-cover .. <G,|V|-k>...,... > > ... clique...... > > 34 NP-Completeness > > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > The graph G has a clique of size k if and > only if the graph G has a vertex cover of > size |V| -k. > > > V'. G..... clique,. G. V'. > .............,... G.. > ...... V V'......,.. V > V'. vertex cover. > > > . G. V V'. vertex cover,. V'.. > ........,... G.. V'... > . clique. > 34 NP-Completeness > > > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > .. VERTEX-COVER.... NPcomplete, > ............ > polynomial time....... > approximation algorithm.,..... > polynomial time..........,.. > ........... > > ....... NP-complete... > approximation algorithm. > > > 34 NP-Completeness > > > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > 34.5.3 The hamiltonian-cycle problem > Theorem > 34.13 The hamiltonian cycle > problem is NP-complete. > > ............... NP..., > ..... G = (V, E),.... > hamiltonian cycle C,.. > C...... > > > > ....,... > C........... > E..... > .... VERTEX-COVER =HAM-CYCLE > > P > ... hamiltonian cycle.... NPhard > . > 34 NP-Completeness > > > [u,v,1] > [u,v,2] > [u,v,3] > [u,v,4] > [u,v,5] > [u,v,6] > Wu v > (a) > [v,u,1] > [v,u,6] > [u,v,1] > [u,v,6] > Wuv > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > [v,u,1] > > [v,u,2] > > [v,u,3] > > [v,u,4] > > [v,u,5] > > [v,u,6] > > [v,u,1] > [v,u,6] > [u,v,1] > [u,v,6] > Wuv > [v,u,1] > [v,u,6] > [u,v,1] > [u,v,6] > Wuv > (b) (c) (d) > Given an undirected graph G = (V, E) and > an integer k, we construct an undirected > graph G' = (V', E') that has a hamiltonian > cycle if and only if G has a vertex cover of > size k. G'....:. G.... (u,v).. > ... 14 ..........: [u,v,1] ~ > [u,v,6],. [v,u,1]~[v,u,6]. > > > 34 NP-Completeness > > > 99 > 34 NP-Completeness > (a) > (b) > w > z > x > y > [x,w,1] > [x,w,6] > [w,x,1] > [w,x,6] > Wuv > [y,x,1] > [y,x,6] > [x,y,1] > [x,y,6] > Wuv > [y,w,1] > [y,w,6] > [w,y,1] > [w,y,6] > Wuv > [z,w,1] > [z,w,6] > [w,z,1] > [w,z,6] > Wuv > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ..............,.... > k . > selector verteices s1, s2, ..., sk. > ... u.. degree(u)...,..... > ......... u(1), u(2), ..., u(degree(u)),. > .. > {([u,u(i),6], [u,u(i+1),1]) : 1 = i = > degree(u) 1}... > .... vertex cover .. hamiltonian > cycle.,.... vertex cover ..... > ......... si.... > 34 NP-Completeness > > > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ........, {(sj, [u,u(1),1]) : u . > V > , [u,u(degree(u)),6]) : u . > V > and1 =j= k} . > {(sj > and 1 = j = k}. > > > .........,... |V'| = 12|E| + k > = 12|E| + |V|,... |E'| = 14|E| + (2|E| | > V|) + (2k|V|) = 16|E| + (2k-1)|V| > ......... polynomial time. > > > 34 NP-Completeness > > > > 34.5.4 The traveling-salesman problem > Traveling-salesman problem(TSP): A > salesman must visit n cities. We can say > 34.5 NP-complete problems34.5 NP-complete problems > visiting > to > that the salesman wishes to make a tour, > each city exactly once and > finishing at the city he starts from. There > is an integer cost c(i, j) to travel from city > i city j, and the salesman wishes to > make the tour whose total cost is > > > minimum, where the total cost is the sum > of the individual costs along the edges of > the tour. > > 34 NP-Completeness > > > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > TSP = {<G,c,k> : G = (V, E) is a complete > graph, c is a function from V × V . > Z, k . > Z, and G has a traveling-salesman tour > Theorem > with cost at most k}. > 34.14 The traveling-salesman > problem is NP-complete. > .... TSP..... NP,..... > TSP...,..... polynomial time > ..................,.. > ......... cost...... k. > 34 NP-Completeness > > > > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ..... NP-complete... reduce. > TSP...,.... Hamiltonian cycle > =P TSP. > ..... G = (V, E),..... > complete.. G' = (V, E'), E' = {(i,j) : i, > j . > V and i . j},... (i,j) . > E. c(i,j) = > 0,. (i,j) . > E. c(i,j) = 1. > The graph G has a hamiltonian cycle if > and only if graph G' has a tour of cost at > most 0. > > > 34 NP-Completeness > > > > 105 > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > 34.5.5 The subset-sum problem > .... > subset-sum problem, We are > given a finite set S . > N and a target t . > N. > .. > We ask whether there is a subset S' . > S > whose elements sum to t. > > S = {1, 2, 7, 14, 49, 98, 343, 686, > 2409, 2793, 16808, 17206, 117705, > 117993}. t = 138457,. S' = {1, 2, 7, > 98, 343, 686, 2409, 17206, 117705}.. > ... > > SUBSET-SUM = {<S,t> : there exists a > > subset S' . > S such that t = S > s}. > > s.S'34 NP-Completeness > > > > 106 > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > Theorem 34.15 The subset-sum problem is > NP-complete. > ........ NP...,..... S' , > .. > S'............ t.... > .. polynomial time......,... > ..... NP. > > > .... 3-CNF-SAT =P SUBSET-SUM.. > ...... NP-hard. > 34 NP-Completeness > > > > 34.5 NP-complete problems34.5 NP-complete problems > 107 > Given a 3-CNF formula . over variables > x, x, ..., x with clauses C, C, ..., C, > > > 12n 12k > > each containing exactly three distinct > > > the reduction algorithm > an instance <S,t> of the > > > problem such that . is > > literals, > constructs > subset-sum > satisfiable if and only if there is a subset > > > of S whose sum is exactly t. > > > 34 NP-Completeness > > > > 108 > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ................,. .= > C1 . > C2 . > C3 . > C4,.. C1 = (x1 . > ¬x2 . > ¬x),C=(¬x. > ¬x. > ¬x) C=(¬x. > > 32 1233 1 > > . > x),C=(x. > x. > x) > > 234 123 > > ¬x > ...... satisfying assignment. x1 > = 0, x2= 0, x3 = 1. > ..... subset-sum..: > > > 34 NP-Completeness > > > > 109 > 34 NP-Completeness > x1 x2 x3 C1 C2 C3 C4 > v1 = 1 0 0 1 0 0 1 > v1 = 1 0 0 0 1 1 0 > v2 = 0 1 0 0 0 0 1 > v2 = 0 1 0 1 1 1 0 > v3 = 0 0 1 0 0 1 1 > v3 = 0 0 1 1 1 0 0 > s1 = 0 0 0 1 0 0 0 > s1 = 0 0 0 2 0 0 0 > s2 = 0 0 0 0 1 0 0 > s2 = 0 0 0 0 2 0 0 > s3 = 0 0 0 0 0 1 0 > s3 = 0 0 0 0 0 2 0 > s4 = 0 0 0 0 0 0 1 > s4 = 0 0 0 0 0 0 2 > t = 1 1 1 4 4 4 4 > > 110 > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > .............,....... > .. vi. vi',.. xi. Cj...., vi > .... > Cj..... 1.... 0, ¬xi > > Cj...., vi'.... > Cj...... > 1.... 0. > .......... si. si',.. si. Ci > .... 1.... 0,. si'. Ci.... > 2.... 0. > > > t..... n. digits. 1.. k . > digits. 4. > .........34 NP-Completeness > > > 111 > 3 > 334.5 N > 4.5 N4.5 NP- > P-P-c > cco > oom > mmp > ppl > lle > eet > tte > ee p > ppr > rro > oob > bbl > lle > eem > mms > ss > ............ subset... t > ..,....... satisfiable. > .. subset-sum.... NP-complete. > 34 NP-Completeness > > > > E > EEx > xxe > eerc > rcrci > iis > sse > ees > ss 34.5 > 34.534.5 > > 112 > 34.5-1 The subgraph-isomorphism problem > takes two graphs G1 and G2 and asks > whether G1 is isomorphic to a subgraph of > G2. Show that the subgraph-isomorphism > problem is NP-complete. > 34.5-5 The set-partition problem takes as > input a set S of numbers. The question is > whether the numbers can be partitioned > 34 NP-Completeness > into two sets A and S A such that Sx.Ax = > Sx (.S-A)x. Show that the set-partition > problem is NP-complete. > > E > EEx > xxe > eerc > rcrci > iis > sse > ees > ss 34.5 > 34.534.5 > > 34.5-6 Show that the hamiltonian-path > problem is NP-complete. > > 34.5-7 The longest-simple-cycle problem is > > > problem of determining a simplethe > cycle(no repeated vertices) of maximum > length in a graph. Show that this problem > is NP-complete. > > > 34 NP-Completeness > > > > <.NP> |