-算法和程序设计-NP问题-精选_第1页
-算法和程序设计-NP问题-精选_第2页
-算法和程序设计-NP问题-精选_第3页
-算法和程序设计-NP问题-精选_第4页
-算法和程序设计-NP问题-精选_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、NP and ComputationalIntractability叶德仕yedeshigmail1 Decision ProblemsDecision problem. (the answer is simply yes or no ) X is a set of strings. Instance: string s.Algorithm A solves problem X: A(s) = yes iff s X.Optimization problems. in which each feasible (i.e., legal) solution has an associated va

2、lue, and we wish to find the feasible solution with the best value.2Polynomial time. Algorithm A runs in poly-time if for every string s, A(s) terminates in at most p(|s|) steps, where p(.) is some polynomial.Certification algorithm intuition.Certifier views things from managerial viewpoint.Certifie

3、r doesnt determine whether s X on its own; rather, it checks a proposed certificate t that s X.i.e., certifier verify the proposed solution t and the instance s whether C(s,t) is yes.3Def. Algorithm C(s, t) is a certifier for problem X if for every string s, s X iff there exists a string t such that

4、 C(s, t) = yes.NP. Decision problems for which there exists a poly-time certifier.Remark. NP stands for nondeterministic poly-time. 4 Certifiers and Certificates: Composite (合数)COMPOSITES. Given an integer s, is s composite?Certificate. A nontrivial factor t of s. Note that such a certificate exists

5、 iff s is composite. Moreover |t| |s|.Certifier.boolean C(s, t) if (t 1 or t s) return falseelse if (s is a multiple of t) return trueelse return false5ExampleInstance. s = 437,669.Certificate. t = 541 or 809.Conclusion. COMPOSITES is in NP.6 Certifiers and Certificates: 3-SatisfiabilitySAT. Given a

6、 CNF formula , is there a satisfying assignment?Certificate. An assignment of truth values to the n boolean variables.Certifier. Check that each clause in has at least one true literal. Instance:Certificate:Conclusion. SAT is in NP.7 Certifiers and Certificates: Hamiltonian CycleHAM-CYCLE. Given an

7、undirected graph G = (V, E), does there exist a simple cycle C that visits every node?Certificate. A permutation of the n nodes.Certifier. Check that the permutation contains each node in V exactly once, and that there is an edge between each pair of adjacent nodes in the permutation.Conclusion. HAM

8、-CYCLE is in NP.8P, NP, EXPP. Decision problems for which there is a poly-time algorithm.EXP. Decision problems for which there is an exponential-time algorithm.NP. Decision problems for which there is a poly-time certifier.9Claim. Pf. Consider any problem X in P. By definition, there exists a poly-

9、time algorithm A(s) that solves X. Certificate: certifier C(s, t) = A(s). Claim. Pf. Consider any problem X in NP.By definition, there exists a poly-time certifier C(s, t) for X. To solve input s, run C(s, t) on all strings t with |t| p(|s|).Return yes, if C(s, t) returns yes for any of these. !10Th

10、e Main Question: P Versus NPDoes P = NP? Cook 1971, Edmonds, Levin, Yablonski, GdelIs the decision problem as easy as the certification problem?Clay $1 million prize.EXP NPPEXP P = NPIf P = NPIf P NP11A formual-language FrameworkAn alphabet is a finite set of symbols.A language L over is any set of

11、strings made up of symbols from .For example, = 0, 1, L = 10, 11, 101, 111, 1011, 1101, 10001,.L is the language of binary representations of prime numbers Denote empty string by Denote empty language by 12The language of all strings over is denoted *. For example = 0, 1, then * = , 0, 1, 00, 01, 10

12、, 11, 000,. is the set of all binary strings. Every language L over is a subset of *. 13Set-theoretic operations complement of L by *- L. The concatenation of two languages L1 and L2 is the language L = x1x2 : x1 L1 and x2 L2.The closure or Kleene star of a language L is the language L*= L L2 L3 , w

13、here Lk is the language obtained by concatenating L to itself k times.14Decision problem and languagethe set of instances for any decision problem Q is simply the set *, where = 0, 1. Since Q is entirely characterized by those problem instances that produce a 1 (yes) answer, we can view Q as a langu

14、age L over = 0, 1, where L = x *: Q(x) = 1.Example: 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.15We say that an algorithm A accepts a string x 0, 1* if, given input x, the algorithms output

15、A(x) is 1. The language accepted by an algorithm A is the set of strings L = x 0, 1*: A(x) = 1 An algorithm A rejects a string x if A(x) = 0. 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. 16A language L is ac

16、cepted 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 by an algorithm A if there is a constant k such that for any length-n str

17、ing x 0, 1*, the algorithm correctly decides whether x L in time O(nk). To accept a language, an algorithm need only worry about strings in L, but to decide a language, it must correctly accept or reject every string in 0, 1*.17Class PP = L 0, 1* : there exists an algorithm A that decides L in polyn

18、omial time 18Polynomial-time verification For example, suppose that for a given instance G, u, v, k of the decision problem PATH, We are also given a path p from u to v. We can easily check whether the length of p is at most k.So, we can view p as a certificate that the instance indeed belongs to PA

19、TH. 19 Verification algorithms define a verification algorithm as being a two-argument algorithm A, where one argument is an ordinary input string x and the other is a binary string y called a certificate. A two-argument algorithm A verifies an input string x if there exists a certificate y such tha

20、t 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.20Class NPThe complexity class NP is the class of languages that can be verified by a polynomial-time algorithm More precisely, a language L belongs to NP if and only if the

21、re exist 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.We say that algorithm A verifies language L in polynomial time. 21class co-NP That is, does L NP imply We can define the complexity class co-N

22、P as the set of languages L such that P=NP=co-NPNP=co-NPPco-NPP=NP co-NPNPco-NPNP co-NPNPP22NP-completeness and reducibility Polynomial TransformationDef. Problem X polynomial reduces (Cook) to problem Y if arbitrary instances of problem X can be solved using:Polynomial number of standard computatio

23、nal steps, plusPolynomial number of calls to oracle that solves problem Y.Def. Problem X polynomial transforms (Karp) to problem Y if given anyinput x to X, we can construct an input y in polynomial time such that x is a yes instance of X iff y is a yes instance of Y.23we say that a language L1 is p

24、olynomial-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*, We call the function f the reduction function, and a polynomial-time algorithm F that computes f is called a reduction algorithm.24NP-CompleteNP

25、-complete. A problem Y in NP with the property that for every problem X in NP, X P Y.A language L 0, 1* is NP-complete ifL NP, andL P L for every L NP.25Lemma. If L1, L2 0,1* are languages such that L1 P L2, then L2 P implies L1 P.FA2xf (x)A126Theorem. If any NP-complete problem is polynomial-time s

26、olvable, then P = NP.Pf. Suppose that L P and also that L NPC. For any L NP, we have L P L by property 2 of the definition of NP-completeness. Thus, by above Lemma , we also have that L P, which proves the theorem. NPPNPCIf P NP27 Circuit SatisfiabilityCIRCUIT-SAT. Given a combinational circuit buil

27、t out of AND, OR, and NOT gates, is there a way to set the circuit inputs so that the output is 1?10?Yes: 101Output28The First NP-Complete ProblemTheorem. CIRCUIT-SAT is NP-complete. Cook 1971, Levin 1973Pf. The circuit-satisfiability problem belongs to the class NP. show that every language in NP i

28、s polynomial-time reducible to CIRCUIT-SAT. 29 Establishing NP-CompletenessMethod for showing that a problem Y is NP-complete Show that Y is in NP.Choose an NP-complete problem X.X P Y Justification. If X is a problem such that Y P X for some Y NPC, then X is NP-hard. Moreover, if X NP, then L NPC.3

29、0 3-SAT is NP-CompleteTheorem. 3-SAT is NP-complete.Pf. Suffices to show that CIRCUIT-SAT P 3-SAT since 3-SAT is in NP.Let K be any circuitCreate a 3-SAT variable xi for each circuit element i.x5x4x3x1x2x031Proof. Con.32Proof. Con.Final step: turn clauses of length 3 into clauses of length exactly 3

30、!If C has 3 distinct literals, done.If C has 2 distinct literals if C = (L1 L2), then include (L1 L2 p) (L1 L2 p) If C has just 1 distinct literal l(l p q) (l p q) (l p q) (l p q) 33 3-CNF satisfiability A boolean formula is in conjunctive normal form, or CNF, if it is expressed as an AND of clauses

31、, each of which is the OR of one or more literals. 3-CNF, if each clause has exactly three distinct literals. Example:(x1 x1 x2) (x3 x2 x4) (x1 x3 x4)34Theorem. Satisfiability of boolean formulas in 3-conjunctive normal form is NP-complete. 35 The clique problem A clique in an undirected graph G = (

32、V, E) is a subset V V of vertices, each pair of which is connected by an edge in E. In other 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. As a de

33、cision problem, we ask simply whether a clique of a given size k exists in the graph. The formal definition is CLIQUE = G, k : G is a graph with a clique of size k.36Clique problemTheorem. The clique problem is NP-complete.Pf. CLIQUE is in NP, for a given graph G = (V, E), we use the set V V of vert

34、ices in the clique as a certificate for G. Checking whether V is a clique can be accomplished in polynomial time by checking whether, for each pair u, v V, the edge (u, v) belongs to E. next prove that 3-CNF-SAT P CLIQUE reduction algorithm: Let = C1 C2 Ck be a boolean formula in 3-CNF with k clause

35、s. We shall construct a graph G such that is satisfiable if and only if G has a clique of size k. 37 Construct of graph GThe graph G = (V, E) is constructed as follows. For each clause Cr=(r1, r2, r3), we place a triple of vertices vr1, vr2, vr3 in V. We put an edge between two vertices vri, vsj if

36、both of the following hold: vri and vsj are in different triples, that is, r s, their corresponding literals are consistent, that is ri is not the negation of sj.This graph can easily be computed from in polynomial time 38Example = (x1 x2 x3) (x1 x2 x3) (x1 x2 x3), 39Proof. Con.We must show that thi

37、s transformation of into G is a reduction First, suppose that has a satisfying assignment. Then each clause Cr contains at least one literal rj that is assigned 1. and each such literal corresponds to a vertex vrj. Picking one such true literal from each clause yields a set V of k vertices. We claim

38、 that V is a clique. For any two vertices vri, vsj where r s, both corresponding literals ri rand sj are mapped to 1 by the given satisfying assignment, and thus the literals cannot be complements.40Proof. Con.Conversely, suppose that G has a clique V of size k. No edges in G connect vertices in the

39、 same triple, and so V contains exactly one vertex per triple.We can assign 1 to each literal ri such that vrj V , then assigning 1 to both a literal and its complement can not happen, since G contains no edges between inconsistent literals.Each clause is satisfied, and so is satisfiedAny variables

40、that do not correspond to a vertex in the clique may be set arbitrarily 41 The vertex-cover problem A vertex cover of an undirected graph G = (V, E) is a subset V V such that if (u, v) E, then u V or v V (or both). A vertex cover for G is a set of vertices that covers all the edges in E.As a decisio

41、n problem, we defineVERTEX-COVER = G, k : graph G has a vertex cover of size k.42 Vertex-cover is NPCTheorem. The vertex-cover problem is NP-complete. We first show that VERTEX-COVER NP. Given a graph G = (V, E) and an integer k. Certificate is the vertex cover V V itself. The verification algorithm

42、 affirms that |V| = k, and then it checks, for each edge (u, v) E, that u V or v V. This verification can be performed straightforwardly in polynomial time. 43The vertex-cover problem is NP-hard by showing that CLIQUE P VERTEX-COVER This reduction is based on the notion of the complement of a graph.

43、 Given an undirected graph G = (V, E), we define the complement of G, the graph containing exactly those edges that are not in G. 44Example: complement of G45Vertex-coverThe reduction algorithm takes as input an instance G, k of the clique problem . It computes the complement , which is easily done

44、in polynomial time. The output of the reduction algorithm is the instance of the vertex-cover problem.The graph G has a clique of size k if and only if the graph has a vertex cover of size |V | - k. 46Vertex-coverSuppose that G has a clique V V with |V| = k . We claim that V - V is a vertex cover in

45、 .Let (u, v) be any edge in . Then, (u, v) E, which implies that at least one of u or v does not belong to V, since every pair of vertices in V is connected by an edge of E. Equivalently, at least one of u or v is in V - V, which means that edge (u, v) is covered by V - V. Hence, the set V - V, whic

46、h has size |V | - k, forms a vertex cover for 47Vertex-cover con.Conversely, suppose that has a vertex cover V V , where |V| = |V| - k.Then, for all u, v V, if (u, v) , then u V or v V or both.For all u, v V, if u V and v V, then (u, v) E. In other word, V -V is a clique, and it has size |V |-|V| =

47、k. 48Hamiltonian CycleHAM-CYCLE: given an undirected graph G = (V, E), does there exist a simple cycle that contains every node in V.YES: vertices and faces of a dodecahedron.49Hamiltonian CycleHAM-CYCLE: given an undirected graph G = (V, E), does there exist a simple cycle that contains every node

48、in V.NO: bipartite graph with odd number of nodes.50Directed Hamiltonian CycleDIR-HAM-CYCLE: given a digraph G = (V, E), does there exists a simple directed cycle that contains every node in V?Claim. DIR-HAM-CYCLE P HAM-CYCLE.VVinVoutV513-SAT Reduces to Directed Hamiltonian CycleClaim. 3-SAT P DIR-H

49、AM-CYCLE523-SAT Reduces to Directed Hamiltonian CycleClaim. 3-SAT P DIR-HAM-CYCLEPf. Given an instance of 3-SAT, we construct an instance of DIRHAM-CYCLE that has a Hamiltonian cycle iff is satisfiable.Construction. First, create graph that has 2n Hamiltonian cycles which correspond in a natural way

50、 to 2n possible truth assignments.Intuition: traverse path i from left to right iff set variable xi = 1.53Hamiltonian PathHAM-CYCLE p HAM-PATH:54Longest PathSHORTEST-PATH. Given a digraph G = (V, E), does there exists a simple path of length at most k edges?LONGEST-PATH. Given a digraph G = (V, E),

51、does there exists a simple path of length at least k edges?55Longest PathClaim. HAM-CYCLE p Longest-PathLet G=(V,E) be an instance of HAM-CYCLE.If the longest-simple-cycle in G is of length |V|, then every vertex was visited and thus there is a Hamiltonian cycle in G.Reduction:Compute the longest-si

52、mple-cycle in G.If the length of this cycle=|V|,There is a Hamiltonian cycle.Else, there is no Hamiltonian cycle.56The longest path I have been hard working for so long.I swear its right, and he marks it wrong.Some how Ill feel sorry when its done:GPA 2.1Is more than I hope for.Garey, Johnson, Karp

53、and other men (and women)Tried to make it order N log N.Am I a mad foolIf I spend my life in grad school,Forever following the longest path?Woh-oh-oh-oh, find the longest path!Woh-oh-oh-oh, find the longest path!Woh-oh-oh-oh, find the longest path.Woh-oh-oh-oh, find the longest path!Woh-oh-oh-oh, fi

54、nd the longest path!If you said P is NP tonight,There would still be papers left to write,I have a weakness,Im addicted to completeness,And I keep searching for the longest path.The algorithm I would like to seeIs of polynomial degree,But its elusive:Nobody has found conclusiveEvidence that we can f

55、ind a longest path.Lyrics. Copyright 1988 by Daniel J. Barrett.Music. Sung to the tune of The Longest time by Billy Joel.Recorded by Dan Barrett while a grad student at Johns Hopkins during a difficult algorithms final.57 The traveling-salesman problem (TSP)Traveling-salesman problem: A salesman spe

56、nds his time visiting n cities (or nodes) cyclically. In one tour he visits each city just once, and finishes up where he started. In what order should he visit them to minimise the distance travelled?There is an integer cost c(i, j) to travel from city i to city j, 58TSP: NPCTheorem. The traveling-salesman problem is NP-complete. Pf. HAM-CYCLE P TSP. Let G =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论