T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 5 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Tentamenvraag (iii) Gegeven is het volgende probleem: Naam:Kortste Pad met Negatieve kosten (KPN) Instantie:Graaf G = (V,E) met voor iedere e E een kostenfactor k(e) Z en een geheel getal K Z. Vraag:Is er een simpel pad in G waarvan de totale kosten K of minder bedragen? Laat I = ( G= (V,E) ) een instantie zijn van HAMPAD en f(I) = (V', E', k: E’ -> Z, K) de gecreëerde KPN-instantie zijn. Dan is/zijn de volgende specificaties van f polynomiale-tijd transformaties: 1.V' = V, E' = E, k(e) = 1 voor alle e in E en K = |V| V' = V, E' = E, k(e) = -1 voor alle e in E en K = 1 - |V| 3.V' = V, E' = E, k(e) = -2 voor alle e in E en K = -2|V| 4.V' = V, E' = E, k(e) = 2 voor alle e in E en K = 2|V| - 2. ☐
T U Delft Parallel and Distributed Systems group PGS Overzicht college 5 Zoekproblemen en Turingreducties - Turing reducties - zelfreduceerbare problemen - De klasse NP-easy De polynomiale hierarchie - Tussen NP-easy en PSPACE - voorbeelden Circuits en circuit complexiteit - Boolese circuits: size en depth - de klasse NC
T U Delft Parallel and Distributed Systems group PGS Zoek- en optimaliserings problemen: complexiteit Laat C een complexiteitsklasse zijn voor beslissingsproblemen Dan is FC de klasse van alle functies berekenbaar met de tijd/ruimte begrenzing geassocieerd met C (zoekproblemen). Vb: - FP klasse van alle functies berekenbaar in polynomiale tijd. [ FPAD: Gegeven G = (V, E) en s,t V, vind s-t pad, FPAD FP ] - FNPklasse van alle functies berekenbaar in niet-deterministische polynomiale tijd. [ FSAT: Gegeven (U, C) vind een die C waarmaakt; FSAT FNP ] - probleem: hoe complexiteitsklassen C en FC aan elkaar te relateren?
T U Delft Parallel and Distributed Systems group PGS Vb: SAT en FSAT Stel A : algoritme voor FSAT. input: SAT-instantie (U,C) output: : U - {0,1} die C waarmaakt of anders nil Met A kan beslissingsprobleem SAT opgelost worden: begin ans := A( U, C ); % roep A aan voor instantie (U,C) if ans = nil then return “no” else return “yes” ; end Conclusie: Bovenstaand programma vormt een polynomiale reductie van SAT naar FSAT: Als A P dan SAT P. m.a.w. SAT is niet essentieel moeilijker dan FSAT. Bovenstaand programma is echter geen standaard (Karp) reductie!
T U Delft Parallel and Distributed Systems group PGS Turing reducties polynomiale turing reducties Een probleem A is polynomiaal turing reduceerbaar tot een probleem B (A T B) als er een algoritme X A voor A bestaat dat - een (hypothetisch) algoritme X B voor B als subroutine gebruikt en - een polynomiaal algoritme voor A zou zijn als alle X B -aanroepen O(1)-tijd zouden kosten. Vb: A = SAT, B = FSAT Het algoritme X B voor B wordt ook wel een orakel voor B genoemd begin : = X B ( ); : = X B ( );... end algoritme X A algoritme X B voor B als subroutine aanroep
T U Delft Parallel and Distributed Systems group PGS Turing reducties polynomiale turing reducties Een probleem A is polynomiaal turing reduceerbaar tot een probleem B (A T B) als er een algoritme X A voor A bestaat dat - een (hypothetisch) algoritme X B voor B als subroutine gebruikt en - een polynomiaal algoritme voor A zou zijn als alle X B -aanroepen O(1)-tijd zouden kosten. Vb: A = SAT, B = FSAT Het algoritme X B voor B wordt ook wel een orakel voor B genoemd Eigenschappen 1.A ≤ T A 2.A ≤ T B en B ≤ T A impliceert A ≤ T C
T U Delft Parallel and Distributed Systems group PGS Turingreducties (ii) voor beslissingsproblemen: - als A B dan ook A T B : poly-tijd reducties zijn te beschouwen als eenmalige aanroepen van een B-algoritme - voor iedere A geldt A T A c Stel A B met poly-tyd reductie f. algoritme X A : begin I B := f(I A ); return X B (I B ); end dus A T B X A is polynomiaal als X B O(1)-tijd kost een probleem A is NP-hard (onder T ) als voor iedere B NP, B T A NP-easy als A T B voor een B NP NP-equivalent als A NP-hard NP-easy een probleem A is NP-hard (onder T ) als voor iedere B NP, B T A NP-easy als A T B voor een B NP NP-equivalent als A NP-hard NP-easy Definities Deze klasse omvat NPC
T U Delft Parallel and Distributed Systems group PGS NP-easy en (co)-NP Eigenschappen van NP-easy NP-easy is gesloten onder T : als A NP-easy en B T A dan B NP-easy NP-easy omvat NP en co-NP: Laat A NP. 1. omdat A T A, geldt A NP-easy : dus NP NP-easy 2. omdat A c T A, geldt A c NP-easy: dus co-NP NP-easy
T U Delft Parallel and Distributed Systems group PGS NP-easy P, NP, Co-NP en NP-easy Co-NPC NPC NPCo-NP P
T U Delft Parallel and Distributed Systems group PGS Relatie C en FC beslissingsvariant A: Gegeven x 1,... x n, is er een y waarvoor E(y) geldt ? zoekvariant FA: Gegeven x 1,... x n, geef een y waarvoor E(y) geldt. Stelling voor elk beslissingsprobleem A geldt A T FA Bewijs: gebruik eerst algoritme voor FA om antwoord te bepalen; als er een y gevonden wordt, geef “ja” als antwoord, anders geef “nee” ( zie vb SAT ) Zijn zoekproblemen altijd moeilijker dan beslissingsproblemen?
T U Delft Parallel and Distributed Systems group PGS Zelfreduceerbaarheid Vb: FSAT T SAT m.a.w. FSAT is in polynomiale tijd oplosbaar als we een orakel voor SAT-problemen kunnen raadplegen. (Bewijs: zie volgende slide) Gevolg: Voor alle FNPC-problemen A geldt: A is NP-equivalent (onder T ) Als A een NPC-probleem is dan geldt FA T A. ( alle NPC-problemen zijn zelfreduceerbaar ) Stelling
T U Delft Parallel and Distributed Systems group PGS FSAT T SAT: constructie Notatie (x 1,x 2, ,x n ) propositie formule in CNF met variabelen x i i,b (x i+1,x i+2, , x n ) = i ( 1, , b, x i+1,x i+2, , x n ) de formule waarbij voor x 1, , x i-1 de waarheidswaarden 1, , zijn gekozen en voor x i de waarheidswaarde b begin ans := X SAT ( (x 1,x 2, ,x n ) ); % X SAT beslissingsalgoritme voor SAT if ans = “no” then return nil % is niet vervulbaar else % is vervulbaar for i = 1 to n do if X SAT ( i,1 (x i+1,x i+2, , x n )) = “yes” then i := 1 else i := 0 % breid de partiele toekenning uit return ( 1, , n ) % retourneer de gehele toekenning end FSAT T SAT
T U Delft Parallel and Distributed Systems group PGS Overzicht college 5 Zoekproblemen en Turingreducties - Turing reducties - zelfreduceerbare problemen - De klasse NP-easy De polynomiale hierarchie - Tussen NP-easy en PSPACE - voorbeelden Circuits en circuit complexiteit - Boolese circuits: size en depth - de klasse NC
T U Delft Parallel and Distributed Systems group PGS PSPACE ? ? Voorbij NP-easy? Co-NPC NPC P NP-easy Co-NP NP
T U Delft Parallel and Distributed Systems group PGS Motivatie: Hoe moeilijk zijn deze problemen? Instantie: verzameling U van propositie atomen en C van clauses over U; Vraag: Is er precies één waarheidstoekenning U -> {0,1} die C waarmaakt? Unique SAT MinBoolEquivalent Instantie: een boolese formule F; Vraag: is F een kortste formule onder alle formules equivalent aan F?
T U Delft Parallel and Distributed Systems group PGS Polynomiale hierarchie (1) Turing reducties kunnen ook beschouwd worden als aanroepen van een orakel mbv een deterministisch poly-tijd algoritme. NP-easy is dan te definiëren als de klasse van beslissings-problemen oplosbaar in polynomiale tijd met deterministisch poly-tijd algoritme dat gebruik maakt van orakel in NP. notatie: P NP NP NP : klasse van beslissingsproblemen oplosbaar in polynomiale tijd met een niet-deterministisch poly-tijd algoritme dat gebruik maakt van orakel in NP. zie ook blz Sipser
T U Delft Parallel and Distributed Systems group PGS Polynomiale hierarchie (2) P = P P P NP NP NP NP = NP P P NP bedenk dat NP, co-NP P NP Generalisatie
T U Delft Parallel and Distributed Systems group PGS Polynomiale Hierarchie (3) P ( NP co-NP ) NP-easy PH
T U Delft Parallel and Distributed Systems group PGS Vb: Minimale Boolese Expressie (MBE) in 2 Naam:MBE Instantie: een boolese formule F, Vraag: is F een kortste formule onder alle formules die equivalent zijn met F? MBE 2 = co-NP NP. Gegeven een instantie F van MBE: 1. gok een kortere boolese formule E. % we verifieren no-instanties 2. verifieer of F equivalent is aan E, door met een SAT-orakel na te gaan of ( (E F) (F E) ) vervulbaar is. % output “no” betekent % dat E equivalent is aan F 3. retourneer “no” als SAT-orakel “no” retourneert. bewijs
T U Delft Parallel and Distributed Systems group PGS Vb: Unieke oplossingen Unique SAT NP NP Instantie:verzameling U van propositie atomen, verzameling C van clauses over U Vraag:Is er precies één waarheidstoekenning die C waarmaakt ? Naam:Unique SAT Beschouw het volgende programma: input : SAT-instantie (U,C) begin 1. gok waarheidstoekenning voor C ; 2. if = C then z := SAT(C { { ¬x 1, …, ¬x n } | (x i ) = 1, x i U ¬ U } ); if z = “no” then return “yes” end bewijs
T U Delft Parallel and Distributed Systems group PGS Vb: minimale vertexcover MINCOVER P NP Instantie:Ongerichte graaf G= (V,E) Vraag:Vind een minimale vertex cover voor G Naam:MINCOVER Beschouw het volgende programma: input : MINCOVER-instantie G= (V, E) begin 1. max = |V|, min = 1 2. while max > min mid := (max+min)/2 if VC(V, E, mid) then max:= mid else min:= mid+1 3. return max end bewijs
T U Delft Parallel and Distributed Systems group PGS Overzicht college 5 Zoekproblemen en Turingreducties - Turing reducties - zelfreduceerbare problemen - De klasse NP-easy De polynomiale hierarchie - Tussen NP-easy en PSPACE - voorbeelden Circuits en circuit complexiteit - Boolese circuits: size en depth - de klasse NC
T U Delft Parallel and Distributed Systems group PGS Circuits en complexiteit Een circuit C m is een gerichte acyclische graaf (DAG). Knopen: m+n poorten (gates), verbonden door lijnen. De eerste m gates zijn input gates, de overige n gates zijn circuit gates, met g m+n de output gate. Iedere gate berekent een boolese functie , of ¬. ¬ input output
T U Delft Parallel and Distributed Systems group PGS Size en depth size(C) = aantal circuit gates van C depth(C) = lengte langste pad van input element naar output hardware sequentiële tijd parallelle tijd size = 9 depth = 5
T U Delft Parallel and Distributed Systems group PGS Voorbeeld: parity functie x1x1 x2x2 x3x3 x4x4 ¬ ¬ x4 ¬ ¬ ¬ ¬ size = O(n) depth = O(log n) f(x 1,x 2,x 3,x 4 ) = (x 1 +x 2 +x 3 +x 4 ) mod 2
T U Delft Parallel and Distributed Systems group PGS Circuit families (i) Een circuit familie C is een oneindige lijst C = ( C 1, C 2,..., C n, … ) van circuits waarbij iedere C n n input variabelen heeft. C beslist een taal L als geldt: ( x L |x| = n ) C n (x) = 1 size complexity (size(C)) [processor complexiteit] van C is functie f: N N met f(n) = size(C n ) depth complexity (depth(C) ) [parallelle tijd complexiteit] van C is functie g: N N met g(n) = lengte langste input-output pad in C n C heet uniform als er een Tm T bestaat die in S(n) = O(log n) ruimte het circuit C n produceert voor input 1 n L heeft size-depth complexiteit (f(n), g(n)) als er een uniforme C bestaat met size(C)=f(n) en depth(C) = g(n)
T U Delft Parallel and Distributed Systems group PGS Circuit families (ii) Waarom de eis van uniformiteit nodig is: Feit 1: Er bestaan niet beslisbare unaire talen L {1}* ( Neem een willekeurige niet-recursieve taal L en laat L’ = {1 index(x) | x L }. Dan is L’ niet beslisbaar.) Feit 2: Er zijn circuit families die niet beslisbare talen beslissen Neem voor een niet-beslisbare L {1}* de circuits C n met C n (1 n ) = 1 als 1 n L en C n (1 n ) = 0 als 1 n L. Deze circuits zijn voor elke n eenvoudig te realiseren. Dan beslist de familie C = (C 1, C 2,..., C n,.. ) de taal L. Conclusie: Om deze anomalie te verhinderen moeten we eisen dat de afzonderlijke circuits C n voor iedere n op een uniforme wijze d.i. door een algoritme of efficiente wijze gegenereerd kunnen worden.
T U Delft Parallel and Distributed Systems group PGS Nick’s class : NC Voor i≥ 1 is NC i de klasse talen die herkend wordt door een uniforme familie C van circuits met size depth complexiteit ( O(n O(1) ), O(log i (n) ). NC= ∪ i≥1 NC i. Eigenschappen: NC 1 ⊆ L en NL ⊆ NC 2 NC ⊆ P Opmerking De klasse NC staat voor de klasse van problemen die efficient parallelliseerbaar zijn. Het vermoeden is dat NC ≠ P en derhalve dat sommige P-problemen (P-complete problemen) niet efficient parallelliseerbaar zijn (vb depth-first search). Zulke problemen worden dan inherent sequentieel genoemd.
T U Delft Parallel and Distributed Systems group PGS Voorbeeld: boolese vectorbewerking Laat a = (a1, a2,..., an) een boolese vector zijn. Het bepalen van a1 ⋁ a2 ⋁,..., ⋁ an kan in (O(n), O(log n)) we construeren een binaire boom van or-gates met de n input gates als bladeren. De wortel van de boom is een output gate die de waarde 1 bevat alss ai = 1 voor een i. Er zijn in totaal O(n) gates nodig. De diepte van het circuit is O(log n) (de hoogte van de binaire boom)
T U Delft Parallel and Distributed Systems group PGS Relatie met Sipser Dit college is een uitgebreidere behandeling van orakels, de polynomiale hierarchie en circuits dan in Sipser wordt aangetroffen. We komen later nog op een alternatieve behandeling van PH in Sipser terug. Voor de hier gepresenteerde slides is van belang: 9.2pag 318, 319(orakels) 9.3pag (circuits) Bewijs van Thm 9.25 alleen lezen (is wel heel fraai) 10.5pag (NC) Bewijzen niet