T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 2 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Onderwerpen Reducties: - definitie en correctheid Complexiteitsklassen - machine modellen: DTM, NDTM - P, NP, E, EXP, PSPACE P, NP en polynomiale reducties - complete en harde problemen: NPC, NP-Hard - eigenschappen van NPC
T U Delft Parallel and Distributed Systems group PGS Reducties - notatie: A B - betekenis: als de tijd/ruimte benodigd voor de reductie niet essentieel is, is A niet essentieel moeilijker dan B (en evt. gemakkelijker) - we concentreren ons op many-one reducties (Karp-reducties) voor beslissingsproblemen. - we geven aan hoe de correctheid van reducties bewezen wordt
T U Delft Parallel and Distributed Systems group PGS Algoritme voor A YBYB Karp-reducties m YAYA A m B: voor alle I A D A : I A Y A R(I A ) Y B algoritme B yes iff R(I) Y B no iff R(I) Y B A I B R yes iff I Y A no iff I Y A
T U Delft Parallel and Distributed Systems group PGS Correctheid reducties Neem een willekeurige instantie I A Y A en toon aan dat R( I A ) Y B. Neem een willekeurige instantie I B R(Y A ) en toon aan dat voor alle instanties I A met R(I A ) = I B geldt: I A Y A.
T U Delft Parallel and Distributed Systems group PGS Reductie: vb Hamiltoons Circuit (HAMC) instantie: G =(V,E) vraag: is er een simpel circuit in G dat alle knopen uit V bevat? Traveling Sales Person (TSP) instantie: verzameling S van n steden; afstandenmatrix D = [d ij ] met d ij Z + ; een integer B Z +. vraag: bestaat er een tour langs alle steden in S met totale afstand B?
T U Delft Parallel and Distributed Systems group PGS Voorbeeld: HAMC TSP input: HAMC-instantie G = (V,E) output: yes alss G in Y HAMC begin C := V ; D := [ d ij ] |V| x |V| where d ij = 1 if { v i, v j } E and d ij = 2 else; B := |V|; return TSP(C,D,B) end algoritme voor het TSP probleem
T U Delft Parallel and Distributed Systems group PGS Voorbeeld: reductie idee HAMC instantie G = (V, E) TSP instantie (V, D, |V| )
T U Delft Parallel and Distributed Systems group PGS Correctheid reductie Stel I = (G = (V,E)) Y HAMC ; we bewijzen dat R(I) = (V, D, |V|) Y TSP ; Stel R(I) = (V,D, |V|) Y TSP ; we bewijzen dat I = ( G = (V,E) ) Y HAMC (bewijs op college)
T U Delft Parallel and Distributed Systems group PGS Complexiteitsklassen Definitie van complexiteitsklassen Machinemodellen Onderscheid tussen klassen: hierarchiestellingen Onderscheid binnen complexiteitsklassen: geschikte reducties, complete problemen Eigenschappen polynomiale reducties
T U Delft Parallel and Distributed Systems group PGS Complexiteitsklassen Complexiteitsklasse Een complexiteitsklasse C gegeven een - machine model M - tijd/ruimte begrenzing B is de verzameling problemen oplosbaar met M in tijd/ruimte begrenzing B. Voorbeelden: - P: de klase problemen oplosbaar met DTM in polynomiale tijd; - NP : de klasse problemen oplosbaar met NDTM in polynomiale tijd.
T U Delft Parallel and Distributed Systems group PGS Machine modellen Deterministiche Turingmachine: - voor iedere input is er precies 1 (succesvol / falend / oneindig) berekeningspad. Niet-deterministiche Turingmachine: - voor gegeven input is meer dan 1 berekeningspad mogelijk; berekening is succesvol als er tenminste een succesvol (eindig) berekeningspad is.
T U Delft Parallel and Distributed Systems group PGS Complexiteitsklassen Tijdklassen - P O( n O(1) ) - NP - EO(2 O(n) ) - NE - EXPO(2 n^O(1) ) - NEXP Ruimteklassen - L : O(log n) - NL: - PolyL:O(log O(1) n) NPolyL - PSPACE O(n O(1) ) NPSPACE - EXPSPACE O(2 n^O(1) ) NEXPSPACE
T U Delft Parallel and Distributed Systems group PGS Onderscheid tussen klassen We onderscheiden P, E, EXP etc. Er geldt in ieder geval: P E EXP Maar geldt ook P E en E EXP? Hiervoor gebruiken we hierarchiestellingen
T U Delft Parallel and Distributed Systems group PGS Hierarchie stellingen lineaire speed-up: vooruitgang in technologie doet niet ter zake: - als f(n) = (g(n)) en A een probleem is oplosbaar in f(n) [g(n)]- tijd, dan is A ook oplosbaar in g(n) [f(n)] -tijd. voorbeeld: - als A oplosbaar is in 100 x n 2 -tijd, dan is A ook oplosbaar in n 2 -tijd.
T U Delft Parallel and Distributed Systems group PGS Hierarchie stellingen 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 Hierarchie stellingen (2) tijdseparatie: - 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 E : lim n inf n k / 2 n = 0 en 2 n x n O(2 O(n) ) - E EXP: lim n inf 2 cn / 2 n^k = 0 en 2 n ^k x n k O(2 n^O(1) )
T U Delft Parallel and Distributed Systems group PGS Complexiteitsklassen: relaties L NL P NP EXP (N)PolyL (N)PSPACE (N)EXPSPACE LkLk NL k
T U Delft Parallel and Distributed Systems group PGS Geschikte reducties en complexiteitsklassen Als C een complexiteitsklasse is en een reductie, dan is geschikt voor C als geldt dat C “naar beneden gesloten” is onder dwz: voor alle X, Y: als X Y en Y C dan ook X C intuitie “ geschikt voor C”: tijd of ruimte benodigd voor uitvoering reductie valt binnen de begrenzingen van C
T U Delft Parallel and Distributed Systems group PGS Complete problemen Stel C een complexiteitsklasse en ≤ een (geschikte) reductie. Een probleem A is - C -hard onder als voor iedere X in C geldt X A - C -compleet onder als A is C -hard onder en A C - C -een voudig onder als voor een X C geldt A X
T U Delft Parallel and Distributed Systems group PGS Geschikte reducties reducties geschikt voor complexiteitsklassen die P omvatten: - polynomiale reducties: reducties uit te voeren in O(n O(1) ) - tijd - logspace reducties: reducties uit te voeren in O(log n) - ruimte
T U Delft Parallel and Distributed Systems group PGS Vb: (polynomiale) reducties Stel - A m B - reductie is tijdbegrensd door functie T (.) - X B is algoritme voor B tijdbegrensd door T B (.), dan - is er ook een algoritme X A voor A, begrensd door T A (n)= T (n) + T B (n + T (n) ) conclusie: - als T en T B polynomiaal begrensd zijn dan is T A ook polynomiaal begrensd.