TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen
TU Delft Groep Parallelle en Gedistribueerde Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke en Ondoenlijke problemen - P versus NP - Inhoud Deel 2 Intro Complexiteitsthorie - Complexiteit van programma’s en problemen - Beslissingsproblemen - Karp reducties
TU Delft Groep Parallelle en Gedistribueerde Systemen Relatie Deel 1 en Deel 2 Alle problemen Berekenbare problemen Doenlijke problemen Deel 1 Deel 2
TU Delft Groep Parallelle en Gedistribueerde Systemen (On)Doenlijke problemen Doenlijke problemen Een probleem is doenlijk als het in polynomiale tijd op te lossen is (polynomiaal in de grootte van de invoer); P : klasse van polynomiaal oplosbare problemen Ondoenlijke problemen Een probleem is ondoenlijk als er geen polynomiaal algoritme voor het probleem bestaat. waarom onderscheid: kijk naar volgende tabel
TU Delft Groep Parallelle en Gedistribueerde Systemen Tijdcomplexiteits functies tijd complexiteit huidig systeem 10x sneller systeem 1000 x sneller systeem O(n)n1n1 10 n n 1 O(n 2 )n2n n n 2 O(n 3 )n3n n 3 10 n 3 O(2 n )n4n4 n n O(n!)n5n5 < n 5 +1 omvang grootste instantie oplosbaar in t tijdseenheden
TU Delft Groep Parallelle en Gedistribueerde Systemen Doenlijk (P) vss ondoenlijk voor ondoenlijke problemen is (constante) technologische speed-up van beperkt belang: Stel probleem heeft tijdcomplexiteit 2 n en speed up is c. Als een instantie ter grootte van m in een bepaalde hoeveelheid tijd kan worden opgelost, dan kan na de speed-up in dezelfde tijd een instantie ter grootte van < m + 2 log c opgelost worden. voor doenlijke problemen is speed-up van belang: Stel probleem heeft tijdcomplexiteit n k en speed up is c. Als een instantie ter grootte van m in een bepaalde hoeveelheid tijd kan worden opgelost, dan kan na de speed up in dezelfde tijd een instantie ter grootte van c 1/k.m opgelost worden.
TU Delft Groep Parallelle en Gedistribueerde Systemen Voorbeelden (on)doenlijke problemen problemen in P sorteren, lineair programmeren, kortste pad bepaling vermoedelijk ondoenlijke problemen langste pad bepaling, prop. vervulbaarheid ondoenlijke problemen bepalen van alle diagnoses in digitale circuits.
TU Delft Groep Parallelle en Gedistribueerde Systemen P en NP Eigenschap P-probleem oplossing in polynomiale tijd te construeren. oplossing in polynomiale tijd te verifiëren. Eigenschap NP-probleem (vermoedelijk ondoenlijk) niet bekend of oplossing in polynomiale tijd is te construeren. oplossing in polynomiale tijd te verifiëren. NP = niet-deterministisch polynomiale (tijd)
TU Delft Groep Parallelle en Gedistribueerde Systemen Vb NP-probleem Frequentietoewijzing Gegeven: - een k-tal verschillende frequenties f 1, …, f k, - een n-tal locaties l 1,l 2, …, l n van mobiele telefoons, met gegeven onderlinge afstanden d ij > 0; - een kritieke afstand D > 0. Vraag: - is er een toekenning T van frequenties aan locaties zodanig dat voor ieder tweetal locaties l i en l j met d ij ≤ D geldt: T(l i ) ≠ T(l j ).
TU Delft Groep Parallelle en Gedistribueerde Systemen instantie van freq. toewijzing D = 4 frequenties n =16 k = 6
TU Delft Groep Parallelle en Gedistribueerde Systemen instantie van freq. toewijzing D frequenties oplossing te verifieren in O(n 2 )-tijd k geen polynomiale constructie: best bekende algoritme kost O(k n )-tijd
TU Delft Groep Parallelle en Gedistribueerde Systemen Centraal probleem: P = NP? P = NP ? Voor NP problemen zijn tot nu toe alleen exponentiële algoritmen bekend; we weten niet of geldt dat P = NP of P ≠ NP. Belang: NP bevat groot aantal belangrijke problemen satisfiability van boolese formules padproblemen in grafen (TSP, Hamiltoons pad) cover problemen: set en vertex cover. rooster en schedulings problemen.
TU Delft Groep Parallelle en Gedistribueerde Systemen Inhoud colleges Deel 2 inleiding complexiteitstheorie - reducties, complexiteitsklassen doenlijk vss ondoenlijk: P versus NP - NP-complete problemen, voorbij NP praktische aspecten van NP-problemen - pseudopolynomiale algoritmen - heuristieken bijzondere onderwerpen - quantum computing - zero-knowledge proof systems
TU Delft Groep Parallelle en Gedistribueerde Systemen Literatuur en studiemateriaal Literatuur B.M. Moret, The Theory of Computation Hfst aanvullende informatie zie blackboard course IN3005 voor college overzichten; tentamens en uitwerkingen; voorbeelden Practicum twee opgaven: correctheidsbewijs van een gegeven reductie ontwerpen van een reductie + correctheidsbewijs
TU Delft Groep Parallelle en Gedistribueerde Systemen Practicum en tentamen practicum twee opgaven: correctheidsbewijs van een gegeven reductie ontwerpen van een reductie + correctheidsbewijs opgaven groepsindeling zoals voor deel 1 afronden voor einde kwartaal 3 opgave 2 wordt verstrekt na voltooiing opgave 1 correctie: assistenten Roman van der Krogt en Maja van der Werf (dinsdag uur) tentamen meerkeuzevragen (±10 ) + open vragen (1 tot 2)
TU Delft Groep Parallelle en Gedistribueerde Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke en Ondoenlijke problemen - P versus NP - Inhoud Deel 2 Intro Complexiteitsthorie - Complexiteit van programma’s en problemen - Beslissingsproblemen - Karp reducties
TU Delft Groep Parallelle en Gedistribueerde Systemen Complexiteit programma’s T(n) = O(2 n ) programma 1 procedure fibo1(n) begin if n < 2 then return 1 else return fibo(n-1)+fibo(n-2) end O(2 n ) 1 als n = 0, 1 fib(n-1) + fib(n-2) elders 1 als n = 0, 1 fib(n-1) + fib(n-2) elders fibonacci functie fib(n) = T(0) = 2; T(1) = 2; T(n) = 1 + T(n-1) + T(n-2) +1 voor n > 1 tijd complexiteit
TU Delft Groep Parallelle en Gedistribueerde Systemen Complexiteit programma’s programma 2 procedure fibo2(n) begin a:= 1; b:=1; k:=1; while k < n do z:= a; a:= b; b:= z+b; k:= k+1; return b; end programma 3 procedure fibo3(n) begin if n < 2 then return 1 else M := mat([1,1],[1,0]); Z:= matpower(M,n-1); return Z(1,1)+Z(1,2); end O(n)O(log n) 1 als n = 0, 1 fib(n-1) + fib(n-2) elders fib(n) =
TU Delft Groep Parallelle en Gedistribueerde Systemen Complexiteit algoritmen versus problemen tijdcomplexiteit algoritme: aantal elementaire rekenstappen als functie van grootte van de input tijdcomplexiteit probleem ≠ tijdcomplexiteit algoritme voor probleem: vb fibonacci probleem: gegeven n ≥ 0, bepaal fib(n) tijdcomplexiteit algoritmen fibo1: O(2 2^(log n) fibo2: O(2 log n) ) fibo3 : O(log n) tijdcomplexiteit fibonacci probleem ≤ O(m) Nb: size input: m = O( log n)
TU Delft Groep Parallelle en Gedistribueerde Systemen Complexiteit van probleem Complexiteit probleem maximale hoeveelheid tijd of ruimte die het beste algoritme voor oplossing van het probleem in het slechtste geval nodig heeft. Nb: complexiteit probleem doet uitspraak over complexiteit van alle algoritmen voor het probleem
TU Delft Groep Parallelle en Gedistribueerde Systemen Complexiteitstheorie klassificatie van problemen naar maximale hoeveelheid tijd/ruimte die het beste algoritme voor oplossing van het probleem in het slechtste geval nodig heeft. beperking (voorlopig) tot beslissings problemen
TU Delft Groep Parallelle en Gedistribueerde Systemen Beslissingsproblemen (1) Voorbeelden Satisfiability: Gegeven een propositionele formule F, is F vervulbaar? Clique: Gegeven een graaf G = (V, E) en een integer K > 0, heeft G een clique ter grootte van K? A is een beslissingsprobleem als alle instanties van A met “ja”(“yes”) of “nee”(“no”) beantwoord kunnen worden. Definitie
TU Delft Groep Parallelle en Gedistribueerde Systemen Beslissingsproblemen (2) Notatie I A instanties van A I A instanties van A D A verzameling van alle instanties van A Yes A alle yes-instanties van A No A alle no-instanties van A
TU Delft Groep Parallelle en Gedistribueerde Systemen Beslissingsproblemen: vb Vertex Cover (VC) - instantie: een graaf G = (V,E) en K Z + - vraag: heeft G een vertex cover V’ V ter grootte van K of minder, m.a.w. bestaat er een subset V’ ter grootte van hoogstens K zodat iedere kant e = {x,y} uit E tenminste een knoop uit V bevat? Traveling Sales Person (TSP) - instantie: een verzameling S van n steden, een intercity afstanden matrix D nxn met d ij Z + en een integer B Z + - vraag: bestaat er een tour langs alle steden met totale afstand B ?
TU Delft Groep Parallelle en Gedistribueerde Systemen Beslissingsproblemen: reducties Stel A en B beslissingsproblemen. A is niet essentieel moeilijker dan B ( A ≤ B ): er bestaat een efficiënte manier om A op te lossen met behulp van een algoritme voor B. idee reductie A naar B: fase 1: gebruik een polynomiaal algoritme om A instanties te transformeren naar B instanties; fase 2: gebruik een algoritme voor B om het antwoord te berekenen.
TU Delft Groep Parallelle en Gedistribueerde Systemen Eisen aan reductie reductie van A naar B moet efficient zijn (polynomiale tijd). reductie moet betrouwbaar zijn: dwz: als R transformatie is van A naar B dan moet gelden: als I A Y A dan R(I A ) Y B en als I A N A dan R(I A ) N B voor alle I A D A : I A Y A R(I A ) Y B
TU Delft Groep Parallelle en Gedistribueerde Systemen Karp-reducties m YBYB A m B: voor alle I A D A : I A Y A R(I A ) Y B algoritme voor B yesno NBNB A YAYA NBNB R R(Y A ) R(N A ) algoritme voor A B
TU Delft Groep Parallelle en Gedistribueerde Systemen Karp-reductie: vb reductie van VERTEX COVER (VC) naar CLIQUE: input: G = ( V, E ), K Z + ; output: yes alss VC ter grootte van K bestaat begin Laat G’ = ( V’, E’ ) met V’ = V en E’ = { { v,w } | v ≠ w V, {v,w} E }; K’ = | V | - K return CLIQUE(G’, K’) end Nb: CLIQUE is het algoritme voor het clique probleem; CLIQUE(G’, K’) = yes alss G’ een clique ter grootte van K’ bevat anders no
TU Delft Groep Parallelle en Gedistribueerde Systemen G G’ Zo werkt de reductie
TU Delft Groep Parallelle en Gedistribueerde Systemen vertex cover size 5 in G ( K ) clique size 3 in G’ ( |V| - K ) Zo werkt de reductie
TU Delft Groep Parallelle en Gedistribueerde Systemen Hoe correctheid te bewijzen ga na dat transformatie polynomiaal is ga na dat yes-instanties van VC worden getransformeerd naar yes-instanties van CLIQUE ga na dat een getransformeerde yes-instantie van CLIQUE altijd afkomstig is van een oorspronkelijke yes-instantie van VC.
TU Delft Groep Parallelle en Gedistribueerde Systemen Tot volgende week