Download presentation

Presentation is loading. Please wait.

1
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.1 Lecture 10-11 NP-Completeness Jan Maluszynski, IDA, 2007 http://www.ida.liu.se/~janma janma @ ida.liu.se

2
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.2 Outline Lecture 9-10 : NP-completeness (Sipser 7.4 – 7.5) 1.Motivation P vs. NP 2.NP-complete problems definition & intuition 3.3-SAT 4.Polynomial time reducibility 5.Cook-Levin theorem 6.A survey of NP-complete problems

3
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.3 The class NP NTIME(t(n)) = {L | L is a language decided by a O(t(n)) time nondeterministic Turing Machine} A language is in NP iff it is decided by a nondeterministic polynomial time Turing Machine A verifier for L is an algorithm (deterministic TM) V: where L = {w | V accepts for some string c} Intuitively c (certificate) gives an evidence that w is in L which can be checked by V. A language is in NP iff it has a polynomial time ( wrt to the size of w) verifier.

4
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.4 Example of an NP problem. A Hamiltonian path in a directed graph G is a path where every node of G appears exactly once. HAMPATH = { | G is a directed graph with a Hamiltonian path connecting s and t } HAMPATH is in NP: a NTM T constructs pathes of G that at s and have no repeated nodes; T accepts if a constructed path is Hamiltonian. HAMPATH Verifier: on input checks if c is a Hamiltonian path from s to t in G. Can be done in polynomial time on the size of G. Explain how to construct polynomial-time verifier!

5
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.5 HAMPATH verifier is polynomial Input: G, s, t, c 1. Check if c is a path from s to t in G: PATH is in P 2. Check if c is Hamiltonian; use 2-tape TM: list of nodes in c on tape 1; list of nodes in G on tape 2 For each element x of find x in : reject if x not in or if marked ; otherwise mark x in, O(|n| 2 ) Check if all nodes in are marked O(|n|) runs in O(|n| 2 ) on two-tape TM

6
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.6 More examples of NP problems A clique in an undirected graph is a subgraph where every two nodes are connected by an edge. CLIQUE ={ |G is a graph with a k nodes clique} A Boolean formula is constructed from variables by using operators: e.g. (x y) ( x z) A formula is satisfiable iff some assignment of 0’s and 1’s to variables makes it evaluate to 1. SAT = { | is a satisfiable Boolean formula}

7
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.7 P vs. NP It is not known if P=NP ? Conjecture: it doesn’t. We know NP EXPTIME Since nondeterministic polynomial time TM decider T can be transformed to a deterministic TM that explores breadth-first all computation branches of T.

8
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.8 Polynomial time reducibility Intuition: composition of efficient algorithms is efficient! Having: a polynomial time decider for a language B a polynomial time reduction f of A to B We can decide w A in polynomial time by 1.Transforming w to f(w) (in polynomial time) 2.Deciding f(w) B (in polynomial time) Th: If A p.t.r to B and B P then A P

9
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.9 Polynomial time reducibility A function f: * * is polynomial time computable if some polynomial time TM M on every input w halts with f(w) on its tape Language A is polynomial time mapping reducible to B written A P B if there is a computable function f s.that for every w w A f(w) B f is called polynomial time reduction of A to B.

10
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.10 Polynomial-time reduction: example 3-cnf formulae: Literal: x or x, where x is a variable Clause: disjunction of literals eg. (x y z) Cnf- formula: conjunction of clauses eg. (x y z) (z x) 3-cnf formula: each clause has 3 literals 3SAT problem: satisfiability of 3-cnf formulae. Theorem: 3SAT is polynomial-time reducible to CLIQUE Proof: construction of a graph with nodes corresponding to the literals of a 3-cnf formula

11
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.11 Definition of NP-completeness A language B is NP-complete iff: B is in NP Every language A in NP is polynomial time reducible to B Intution: most time-consuming problems in NP. If B is NP-complete and B is in P, then P=NP. If B is NP-complete, C is NP, and B is polynomial time reducible to C then C is NP-complete

12
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.12 Proving a language to be NP-complete How to prove that an NP language B is NP-complete: Directly from definition (difficult: all NP-languages are to be considered) Knowing one NP-complete language A find a polynomial time reduction from A to B. Find one NP-complete problem!!!

13
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.13 Cook-Levin Theorem Cook-Levin Theorem: SAT is NP-complete. Proof idea (p.281). For any string in NP language there is an accepting polynomial-time computation. Represent it as a tableau. The tableau can be characterized by a satisfiable Boolean formula (also by 3cnf-formula). Corollary: 3SAT is NP-complete

14
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.14 More examples of NP-complete problems 3SAT proved directly CLIQUE: existence of a clique of size k in a given graph, proved by reduction from 3SAT VERTEX-COVER (p.288): existence of a set C of k nodes in a graph s.that every edge has a node in C, proved by reduction from 3SAT HAMPATH existence of a Hamiltonian path in a directed graph, proved by reduction from 3SAT UHAMPATH existence of a Hamiltonian path in an undirected graph, reduction from HAMPATH SUBSET-SUM given a set of integers is there a subset whose sum equals a given number

15
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.15 Importance of time-complexity analysis Polynomial-time complexity preserved by realistic models of computations. P is a class of problems that can be realistically solved on a computer. The notion of NP-completeness based on P; relevant for practical computing.

16
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 200710.16 Importance of time-complexity analysis The notion of NP-completeness identifies computationally expensive problems. Many of them appear in practice e.g. scheduling and resource allocation problems. NP-completeness of a problem shows that no algorithm will behave well in worst case; for some data an algorithm may still be efficient.

Similar presentations

© 2021 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google