De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3005 deel 2 College 2 Cees Witteveen

Verwante presentaties


Presentatie over: "T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3005 deel 2 College 2 Cees Witteveen"— Transcript van de presentatie:

1 T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3005 deel 2 College 2 Cees Witteveen witt@cs.tudelft.nl

2 T U Delft Parallel and Distributed Systems group PGS Onderwerpen Reducties - definitie - eigenschappen - voorbeelden correctheidsbewijzen Complexiteitsklassen - definitie en klassen: P, NP, E, EXP P, NP en NP-complete problemen - eigenschappen polynomiale reducties - P versus NP - belang NP-complete problemen

3 T U Delft Parallel and Distributed Systems group PGS Reducties Notatie: A  B Betekenis: er is een algoritme om instanties van A op te lossen met behulp van (een algoritme voor) instanties van B. Belang: als de extra tijd/ruimte benodigd voor de reductie niet essentieel is, is A niet essentieel moeilijker dan B. (en daarom eventueel gemakkelijker). Karp reducties: polynomiale reducties voor beslissingsproblemen; worden ook wel many-one reducties genoemd;

4 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

5 T U Delft Parallel and Distributed Systems group PGS eigenschap (polynomiale) reducties Stel -A  m B-A  m B - reductie  m is tijdbegrensd door functie T  (.) - X B is algoritme voor B, tijdbegrensd door T B (.), dan geldt - er is 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.

6 T U Delft Parallel and Distributed Systems group PGS Correctheid reducties betrouwbaarheid - 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. polynomialiteit toon aan dat transformatie van iedere instantie I A in polynomiale tijd (polynomiaal in de lengte | I A | van I A ) kan worden uitgevoerd.

7 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 ] nxn met d ij  Z + ; een integer B  Z +. vraag:bestaat er een tour langs alle steden in S met totale afstand  B?

8 T U Delft Parallel and Distributed Systems group PGS reductie idee HAMC instantie G = ( V, E ) 1 1 1 1 1 1 1 1 TSP instantie ( V, D, |V| ) hamiltoons circuit tour met kosten  |V| 2 2 2 2 2

9 T U Delft Parallel and Distributed Systems group PGS HAMC  TSP input: HAMC-instantie G = (V,E) output: yes alss G in Y HAMC begin S := 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(S,D,B) ; end Algoritme voor TSP probleem

10 T U Delft Parallel and Distributed Systems group PGS HAMC  TSP (uitwerking) 1. Constructie reductie Laat I = ( G = (V,E)) een willekeurige instantie van HAMC zijn. Construeer de volgende instantie R(I) = (S, D, B) van TSP: 1. S := V ; 2. D := [ d ij ] |V| x |V| met d ij = 1 als { v i, v j }  E en d ij = 2 anders; 3. B := |V|; 2. Correctheid reductie a. Stel I = ( G = (V,E)) is een yes-instantie van HAMC. Dan is er een circuit (v i1, v i2, v i3,…, v in, v i1 ) dat alle knopen uit V bevat met  j=1,…,n-1: (v ij, v ij+1 )  E en (v in, v i1 )  E. Maar dan geldt onmiddellijk dat d vij,vi(j+1) = 1 en d vin,vi1 = 1 en derhalve is (v i1, v i2, v i3,…, v in, v i1 ) een tour in R(I) met kosten ≤ B. Derhalve is R(I) een yes-instantie van TSP.

11 T U Delft Parallel and Distributed Systems group PGS HAMC  TSP (uitwerking) b. Stel R(I) is een yes-instantie. Te bewijzen dat I een yes- instantie is. (Ga zelf na) 3. Polynomialiteit Bedenk dat I = |V| +|E|. S is te construeren in O(|V|) tijd. D is te construeren in O(|V| 2 x |E|)-tijd. Bepaling van B kost O(|V|)-tijd. Totaal: O(|V| 2 x|E|) ≤ O(|I| 3 )-tijd

12 T U Delft Parallel and Distributed Systems group PGS Complexiteitsklassen Definitie complexiteitsklassen Machinemodellen Onderscheid tussen klassen: hierarchiestellingen Onderscheid binnen complexiteitsklassen: geschikte reducties, complete problemen Eigenschappen polynomiale reducties

13 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 klasse problemen oplosbaar met DTM in polynomiale tijd; - NP : de klasse problemen oplosbaar met NDTM in polynomiale tijd.

14 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-deterministische Turingmachine: - voor gegeven input is meer dan 1 berekeningspad mogelijk; - berekening is succesvol als er tenminste één succesvol (eindig) berekeningspad is.

15 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 : deterministisch : niet-deterministisch

16 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

17 T U Delft Parallel and Distributed Systems group PGS Hierarchie stellingen lineaire speed-up: vooruitgang in technologie doet voor complexiteits klassen niet ter zake: - 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.

18 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

19 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) )

20 T U Delft Parallel and Distributed Systems group PGS Complexiteitsklassen: relaties L NL P P NP EXP (N)PolyL (N)PSPACE (N)EXPSPACE LkLk NL k is strict bevat in is bevat in

21 T U Delft Parallel and Distributed Systems group PGS Passende reducties en complexiteitsklassen Als C een complexiteitsklasse is en  een reductie, dan is  passend voor C als geldt C is “naar beneden gesloten” onder  dwz:  X,  Y: als X  Y en Y  C dan ook X  C intuitie “  passend voor C ”: tijd of ruimte benodigd voor uitvoering reductie valt binnen de tijd/ruimte begrenzingen van C Voorbeeld: polynomiale reducties zijn passend voor P en NP

22 T U Delft Parallel and Distributed Systems group PGS Geschikte reducties reducties passend 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

23 T U Delft Parallel and Distributed Systems group PGS De klasse NP geen polynomiale constructie van oplossing bekend er zijn geen algoritmen voorhanden om een oplossing in polynomiale tijd te construeren. (d.w.z. geen polynomiale DTM beschikbaar) wel polynomiale verificatie van oplossing bekend er kan in polynomiale tijd geverifieerd worden of een voorgestelde oplossing voldoet of niet. (d.w.z. wel polynomiale NDTM voorhanden)

24 T U Delft Parallel and Distributed Systems group PGS Twee definities van NP - standaard definitie: [niet-deterministisch gokken] A  NP als er een NDTM bestaat die iedere yes-instantie x van A oplost in polynomiale tijd, dwz. polynomiaal in de lengte |x| van x. - alternatieve definitie: [deterministisch verifieren] A  NP als er een DTM M bestaat en een polynoom p(.) zodat x  Y A desda - er bestaat een string c(x) (certificaat voor x) met |c(x)|  p(|x|); - M antwoordt ‘yes’ voor input (x, c(x)) in hoogstens p(|x|) stappen. We tonen aan dat deze definities equivalent zijn

25 T U Delft Parallel and Distributed Systems group PGS NDTM: een berekening 2 1 2 1 1 1 succesvolle berekeningfalende berekening certificaat c(x): 2 1 2 1 1 1 invoer x instructie keuze

26 T U Delft Parallel and Distributed Systems group PGS NDTM: input + certificaat 2 1 2 1 1 1 succesvolle berekeningfalende berekening deterministische berekening! invoer x + certificaat 212111

27 T U Delft Parallel and Distributed Systems group PGS NDTM anders bekeken We kunnen ons derhalve een NDTM ook voorstellen als een GOKMODULE + DTM : gokmodule DTM gokstring (mogelijk certificaat) yes no input x

28 T U Delft Parallel and Distributed Systems group PGS NDTM: simulatie met DTM p(|x|)

29 T U Delft Parallel and Distributed Systems group PGS Simulatie NDTM met DTM maximaal k>1 keuzes Deterministische simulatie van polyNDTM kost O(k p(|x|+1) ) = 2 |x | ^ O(1) - tijd Conclusie: P  NP  EXP ! k1k1 k2k2 k3k3 k p(|x|)  i=1..p(|x|) k i

30 T U Delft Parallel and Distributed Systems group PGS Eigenschappen NP NP  EXP: iedere polynomiale NDTM is in exponentiële tijd te simuleren met een DTM. voor alle NP-problemen zijn (exponentiële) backtracking algoritmen bekend. we weten niet of NP - P   of NP  P.

31 T U Delft Parallel and Distributed Systems group PGS Eigenschappen polynomiale reducties A  A (reflexiviteit) A  B en B  C impliceert A  C (transitiviteit) A C B   A  C (boven P) P B A B  C en A  B impliceert A  C (geslotenheid onder  )  

32 T U Delft Parallel and Distributed Systems group PGS Complete, hard en easy Stel C een complexiteitsklasse en  een (geschikte) reductie. - A is C -hard onder  voor iedere X in C geldt X  A - A is C -compleet onder  A is C -hard onder  en A  C - A is C -eenvoudig (easy) onder  voor een X  C geldt A  X

33 T U Delft Parallel and Distributed Systems group PGS Structuur van NP NPC P P         NPC = { A  NP |  X  NP [X  A] } moeilijker

34 T U Delft Parallel and Distributed Systems group PGS Eigenschappen NPC Als A  NPC, B  NP en A  B dan B  NPC. Als A  NPC  P dan P = NP. A NPC B P  NP (def.) NP  P : Neem X  NP. Dan X ≤ A. Derhalve (P gesloten) X  P.

35 T U Delft Parallel and Distributed Systems group PGS Waarom NPC belangrijk? Als we een polynomiaal algoritme voor een NPC-probleem A kunnen vinden ( A  P) dan geldt P = NP. Als we voor een NPC-probleem A kunnen aantonen dat A  P, dan geldt P  NP.

36 T U Delft Parallel and Distributed Systems group PGS Hoe A  NPC te bewijzen? Bewijs eerst A  NP: Toon aan dat voor iedere yes-instantie I A  Y A van A een polynomiale verificatie procedure bestaat. Toon aan dat B  A voor een bekend NPC probleem B. Kies een geschikt bekend NPC probleem B; construeer een polynomiale reductie B  A en laat zien dat deze correct is.

37 T U Delft Parallel and Distributed Systems group PGS Tot slot : om te oefenen Hamiltoons Pad (HAMP) instantie: G = (V,E) vraag: is er een simpel pad in G dat alle knopen uit V bevat? Toon nu aan: HAMP ≤ HAMC en HAMC ≤ HAMP

38 T U Delft Parallel and Distributed Systems group PGS HAMC ≤ HAMP HAMC instantie G = (V, E) HAMP instantie (V’, E’) hamiltoons circuithamiltoons pad

39 T U Delft Parallel and Distributed Systems group PGS Volgende week: een NPC probleem SAT... waarom het plaatsen van receiver stations voor mobiel telefoonverkeer een moeilijk probleem is... voorbeelden van handige reductietechnieken


Download ppt "T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3005 deel 2 College 2 Cees Witteveen"

Verwante presentaties


Ads door Google