T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 4 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Tentamenvraag Geef aan welke van onderstaande uitspraken juist zijn: a.ieder NP-probleem kan in exponentiële tijd opgelost worden. b.als P NP kunnen sommige NP-problemen in polynomiale tijd opgelost worden, maar niet alle NP-problemen. c.ook als P = NP zijn niet alle NP-problemen ook NP-volledige problemen. d.co-NP en P hebben een niet-lege doorsnede.
T U Delft Parallel and Distributed Systems group PGS Overzicht college 4 Oefenopgaven - Dubbel Sat - Half Clique Ruimte en Tijdklassen - definities - relaties - hierarchie stellingen
T U Delft Parallel and Distributed Systems group PGS Opgaven Het DUBBELSAT probleem is het probleem gegeven een SAT-instantie (U,C) te bepalen of er tenminste twee waarheidstoekenningen zijn die C waarmaken. HALF-CLIQUE is het probleem om na te gaan of een gegeven graaf G = (V, E) een clique heeft met minstens 0.5 x |V| knopen. Laat zien dat DUBBELSAT en HALF-CLIQUE NPC problemen zijn.
T U Delft Parallel and Distributed Systems group PGS Uitwerking DUBBELSAT C’ = C { {u n+1, u n+1 } } U = { u 1, u 2,..., u n } C = { c 1, c 2,..., c m } SAT instantie (U,C) vervulbaar ⇒ : U {0,1} maakt C waar ⇒ : {u n+1 0} en {u n+1 1} maken C’ waar ⇒ (U’, C’) is dubbel vervulbaar. (U,C) yes-instantie SAT (U’, C’) yes-instantie DSAT D(ubbel)SAT instantie U’ = U { u n+1 } u n+1 U
T U Delft Parallel and Distributed Systems group PGS Uitwerking DUBBELSAT C’ = C { {u n+1, u n+1 } } U = { u 1, u 2,..., u n } C = { c 1, c 2,..., c m } SAT instantie (U’, C’) is dubbel vervulbaar ⇒ ’: U {u n+1 } {0,1} maakt C {{u n+1, u n+1 }} waar ⇒ : U {0,1} maakt C waar ⇒ (U,C) is vervulbaar. (U,C) yes-instantie SAT (U’, C’) yes-instantie DSAT D(ubbel)SAT instantie U’ = U { u n+1 } u n+1 U
T U Delft Parallel and Distributed Systems group PGS Uitwerking HALF CLIQUE Clique instantie Half Clique instantie G heeft clique ter grootte van K G’ heeft clique ter grootte van K+ (2n - 2K) = 2n - K G’ heeft clique ter grootte van 0.5 x |V’| G heeft clique ter grootte van K G’ heeft clique ter grootte van K+ (2n - 2K) = 2n - K G’ heeft clique ter grootte van 0.5 x |V’| |V’| = 4n - 2K G’ | V| = n ( = 3) K ( = 1) G G 2 =I n |V 2 | = n (= 3) alle knopen uit G worden met alle knopen uit G1 verbonden |V 1 |=2n-2K (= 4) G1G1 G
T U Delft Parallel and Distributed Systems group PGS Prolog voor NPC is_CLIQUE(V,E,K) :- subset(V1,V), size(V1,K), clique(V1,E). clique(V1,E):- not(unconnected_pair(V1,E)). unconnected_pair(V1,E) :- member(V,V1),member(W,V1), not(V = W), not(member([V,W],E)), not( member([W,V],E)). G = (V,E) heeft clique ter grootte van K :- er bestaat een subset V1 van V ter grootte van K die de clique eigenschap heeft V1 is een clique in E als er geen enkel paar van knopen bestaat dat niet verbonden is V1 bevat een paar van knopen dat niet verbonden is als er knopen V W te vinden zijn in V1 waarvoor geldt dat noch [V,W] noch [W,V] een edge in E is. meer programma’s via web site
T U Delft Parallel and Distributed Systems group PGS Overzicht college 4 Opgaven - dubbel sat - half clique Ruimte en Tijdklassen - overzicht complexiteitsklassen, definities - relaties - hierarchie stellingen
T U Delft Parallel and Distributed Systems group PGS SPACE( f(n) ) = { L : L wordt geaccepteerd door een DTM die O(f(n)) ruimte gebruikt } NSPACE( f(n) ) = { L : L wordt geaccepteerd door een NTM die O(f(n) ruimte gebruikt } PSPACE = n≥0 SPACE(n k ) NPSPACE = n≥0 NSPACE(n k ) Ruimte complexiteit
T U Delft Parallel and Distributed Systems group PGS O(n)-space Voorbeeld: SAT SPACE(n) input (U = {u 1, u 2,..., u k }, C = {C 1, …, C l }) outputtrue if C is satisfiable, false else begin := ( 0, 0,..., 0 ); final := ; sat := false; while sat = false and ≠ final sat := checksat( , C); := succ( ); return sat end Ruimte complexiteit O(n)-space succ( 01 j ) = 10 j, j = 0,..., k-1 succ(1 k ) = O(n)-space checksat( , C) = true alss iedere clause C i in C tenminste een literal bevat die waargemaakt wordt door O(n)-space n = | input |
T U Delft Parallel and Distributed Systems group PGS Complexiteitsklassen: tijd en ruimte Tijdklassen - P O( n O(1) ) - NP - EO(2 O(n) ) - NE - EXPO(2 n^O(1) ) - NEXP Ruimteklassen - L O(log n) - NL - PolyLO(log O(1) n) NPolyL - PSPACE O(n O(1) ) NPSPACE - EXPSPACE O(2 n^O(1) ) NEXPSPACE : deterministisch : niet-deterministisch
T U Delft Parallel and Distributed Systems group PGS Een probleem in PSPACE BF (boolese formules) : opgebouwd uit propositieatomen, ⋏, ⋁ en ¬. QBF: quantified boolean formulas Vb: ∀ x ∃ y ∀ z [ x ⋏ y ⋁ ¬ z] TQBF = { φ | φ is een QBF die waar is } Stelling: TQBF is PSPACE-compleet
T U Delft Parallel and Distributed Systems group PGS Relaties tussen tijd en ruimte klassen
T U Delft Parallel and Distributed Systems group PGS SPACE( f(n) ) NSPACE( f(n) ), TIME( f(n) ) NTIME( f(n) ) Bewijs: iedere deterministische machine is een (speciale) niet- deterministische machine. NTIME( f(n) ) SPACE( f(n) ) Bewijs: simuleer een NTM N met een DTM M die per simulatierun een f(n)-lange reeks van integers tussen 0 en d-1 (d: maximum aantal instructie-keuze mogelijkheden van N ) genereert en vervolgens N simuleert. Er zijn exponentieel veel mogelijke runs, in het slechtste geval moet iedere run uitgevoerd worden. Iedere run kost echter O(f(n))-ruimte. Ruimte kan na iedere run gereclaimd worden. Totale simulatie kost daarom O(f(n))-ruimte. Tijd versus Ruimte Gevolg: P NP PSPACE
T U Delft Parallel and Distributed Systems group PGS NSPACE(f(n)) TIME( 2 O(f(n)) ) voor f(n) ≥ log n Bewijs: Laat M een k-tape NTM zijn en laat de configuraties van M voor x op tijdstip 1, 2, …, t gelijk zijn aan c 1, c 2,..., c t waarbij t de runtijd is van M(x). Al deze configuraties zijn verschillend. Het totaal aantal mogelijke configuraties van M voor x met |x| = n is hoogstens |toestanden| x |posities kop op tape| x |(inhoud) tapes| = O(1) x n x |Σ| f(n) = 2 O(f(n))+log n = 2 O(f(n)) Daarom is t naar boven toe gebonden door 2 O(f(n)) Tijd versus Ruimte Gevolg: PSPACE NPSPACE EXP
T U Delft Parallel and Distributed Systems group PGS EXP tijdcomplexiteits hierarchie Co-NPC NPC P PSPACE Co-NP NP
T U Delft Parallel and Distributed Systems group PGS Relaties tussen tijd en ruimte complexiteitsklassen L NL P P NP EXP (N)PolyL (N)PSPACE (N)EXPSPACE LkLk NL k is strict bevat in is bevat in
T U Delft Parallel and Distributed Systems group PGS Niet-deterministische ruimte versus deterministische ruimte
T U Delft Parallel and Distributed Systems group PGS Laat G = (V, E) een graaf zijn en x, y in V. PAD(x, y, k) pad van x naar y ter lengte van ≤ k. [ Als |V| = n geldt PAD(x, y, n) alss pad van x naar y in G ] Ruimtekosten Padprobleem PAD(x, y, k) if k = 1 then return (x=y or {x,y} E ) else W := V - {x,y}; pad := false; while W ≠ and pad = false choose v from W; pad := PAD(x, v, k/2) and PAD(v, y, k/2) W := W - {v}; return pad algoritme ruimtecomplexiteit S(1) = O(log n) S(k) = O(log n)+S(k/2) S(n) = O(log 2 n) Voor relaties zullen we gebruik maken van het volgende probleem: voor toelichting zie volgende slide
T U Delft Parallel and Distributed Systems group PGS Geheugengebruik algoritme stack diepte log n size stack record : O(log n) v 1, y, n/2 x, v 1, n/2 v 2, v 1, n/2 2 pad(x, y, n): ruimtebeslag wordt bepaald door omvang stack v 1, y, n/2 x, y, n x, v 2, n/2 2 v 2, v 1, n/2 2 x, v 3, n/2 3 v 3, v 2, n/2 3 v 1, y, n/2 v 2, v 1, n/2 2 x, v k, n/ 2 k v 3, v 2, n/2 3 v k,v k-1, n/ 2 k totaal ruimte beslag = maximale stackdiepte x grootte stackrecord = O(log n) x O(log n) = O(log 2 n) stap 2stap 1stap 3stap 4stap k
T U Delft Parallel and Distributed Systems group PGS NSPACE( f(n)) SPACE( f 2 (n) ) voor f(n) ≥ n Laat G(M,x) de configuratiegraaf zijn van de NTM M die x met |x| = n accepteert in NSPACE( f(n) ). De configuratiegraaf G(M,x) bevat 2 cf(n) knopen. Het pad algoritme voor PAD(c 0, c f, k) kan worden gebruikt om te checken of er een pad is in G(M,x) van de beginconfiguratie c 0 naar een eindconfiguratie c acc. Omdat het langste pad 2 O(f(n)) knopen bevat geldt k ≤ log 2 O(f(n)) = O(f(n)). Volgens vorige stelling geldt nu dat het bestaan van zo’n pad (i.e. de acceptatie van x door M) gecheckt kan worden in O(f (n) x |triple|) ruimte. Ieder triple bestaat uit twee configuraties en een integer ≤ f(n). Iedere configuratie kan nooit meer dan f(n)-ruimte in nemen. Derhalve geldt: x is te accepteren door een TM in SPACE( f (n) x f(n) ) = SPACE ( f 2 (n) ). NPSPACE vss PSPACE Gevolg: PSPACE = NPSPACE stelling van Savitch
T U Delft Parallel and Distributed Systems group PGS Hierarchie stellingen
T U Delft Parallel and Distributed Systems group PGS Tijd indifferentie lineaire speed-up: vooruitgang in technologie is niet van belang voor complexiteitsklassen: - als f(n) = (g(n)) en A is een probleem oplosbaar in f(n) [of g(n)]- tijd, dan is A ook oplosbaar in g(n) [of f(n)] -tijd. voorbeeld: - als A oplosbaar is in 100 x n 2 -tijd, dan is A ook oplosbaar in n 2 -tijd. f(n) = (g(n)) : f(n) = O(g(n)) en g(n) = O(f(n))
T U Delft Parallel and Distributed Systems group PGS Ruimte separatie ruimte-onderscheid: - als f(n) en g(n) ‘nette’ ruimtebegrenzingen zijn en lim n inf f(n)/g(n) = 0 dan is er een berekenbaar probleem in ruimte begrensd door g(n), maar niet door f(n). Voorbeeld: - L L 2 want lim n inf {log(n) / log 2 (n)}= 0
T U Delft Parallel and Distributed Systems group PGS tijd separatie - als f(n) en g(n) ‘nette’ tijdbegrenzingen zijn en lim n inf {f(n) / g(n)} = 0 dan is er een probleem dat oplosbaar is in g(n) log(g(n)) - tijd, maar niet in f(n)-tijd. voorbeeld - P EXP : lim n inf n k / 2 n = 0 en 2 n x n O(2 O(n) )
T U Delft Parallel and Distributed Systems group PGS Relatie met Sipser De oefenopgaven zijn de problems 7.19 en 7.21 (eind Chapter 7) Van Chapter 8 is voor dit college van belang pag def 8.12 ( pag. 295) De rest van Hfst 8 wordt overgeslagen. De laatste 2 hier behandelde hierarchiestellingen komen overeen met Theorem 9.3 (p. 307) en Theorem 9.10 (p. 311) uit Chapter 9. Voor beide stellingen geldt dat de bewijzen niet, maar de gevolgen wel gekend moeten worden.
T U Delft Parallel and Distributed Systems group PGS Relatie met Sipser De oefenopgaven zijn de problems 7.19 en 7.21 (eind Chapter 7) Van Chapter 8 is voor dit college van belang pag def 8.12 ( pag. 295) U dient zelf het bewijs van de PSPACE-volledigheid van het Generalized Geography probleem te bestuderen. De rest van Hfst 8 wordt overgeslagen. De laatste 2 hier behandelde hierarchiestellingen komen overeen met Theorem 9.3 (p. 307) en Theorem 9.10 (p. 311) uit Chapter 9. Voor beide stellingen geldt dat de bewijzen niet, maar de gevolgen wel gekend moeten worden.
T U Delft Parallel and Distributed Systems group PGS Relatie met Sipser Via blackboard zal ruim voor het tentamen een precieze opgave van te bestuderen gedeelten uit Sipser bekend worden gemaakt. In ieder geval zal de college stof in z’n geheel tot de te bestuderen leerstof voor het tentamen behoren.