T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 4 Cees Witteveen

Slides:



Advertisements
Verwante presentaties
Inleiding programmeren in C++ Life Science & Technology 1 maart Universiteit Leiden.
Advertisements

Havo5 WA Extra opgaven.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3 005 Deel 2 College 5 Cees Witteveen
Uitwerking tentamen Functioneel Programmeren 29 januari 2009.
Datastructuren Analyse van Algoritmen en O
Datastructuren Analyse van Algoritmen en O
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3005 deel 2 College 2 Cees Witteveen
Graph Begrippen: knoop, vertices kant, zijde, edge
Computationele complexiteit: NP-volledigheid
Automatisch Redeneren in de praktijk
Hoofdstuk 6: Controle structuren
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Fibonacci & Friends Met dank aan Gerard Tel.
1 Datastructuren Zoekbomen II Invoegen en weglaten.
NP-volledigheid Algoritmiek © Hans Bodlaender, Oktober 2002.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Visibility-based Probabilistic Roadmaps for Motion Planning Tim Schlechter 13 februari 2003.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Werkgroep video prototyping V1 blok 2 Maaike van Cruchten b ‘FAKE IT ‘TILL YOU MAKE IT’
Probleem P 1 is reduceerbaar tot P 2 als  afbeelding  :P 1  P 2 zo dat: I yes-instantie van P 1   (I) yes-instantie van P 2 als ook:  polytime-algoritme,
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen.
TU Delft Groep Parallelle en Gedistribueerde Systemen Voorbeeld uitwerking reductie bewijs in3120 Cees Witteveen.
Fundamentele Informatica IN3120
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in3005 Deel 2 College 6 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Oplossing Langste Pad Probleem Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN 3005 Deel 2 Laatste College ! Cees Witteveen
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen.
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 Fundamentele Informatica IN 3120 College 7 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3 005 Deel 2 College 4 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in3005 Deel 2 College 6 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3005 Deel 2 College 3 Cees Witteveen
Approximate Cell Decomposition
1 Complexiteit Bij motion planning is er sprake van drie typen van complexiteit –Complexiteit van de obstakels (aantal, aantal hoekpunten, algebraische.
Motion planning with complete knowledge using a colored SOM Jules Vleugels, Joost N. Kok, & Mark Overmars Presentatie: Richard Jacobs.
1 Datastructuren Skiplists. 2 Skiplists  Vrij eenvoudige datastructuur  “Makkelijker” dan gebalanceerde bomen  Kunnen hetzelfde als gebalanceerde bomen.
1 Optuigen van datastructuren 2 Dynamische order statistics (2)
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
Indeling Inleiding op PRM-planners & Medial Axis Retraction van configuraties op de Medial Axis Verbetering van retraction Verbetering van sampling Expliciete.
Toegepaste mechanica voor studenten differentiatie Constructie
Datastructuren Sorteren, zoeken en tijdsanalyse
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
Cooperative Transport Planning
T U Delft Groep Parallelle en Gedistribueerde Systemen PGS College in345 Deel 2 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Laatste College ! Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 3 Cees Witteveen.
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 Fundamentele Informatica In3120 College 3 Cees Witteveen
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica IN3120 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI,
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 4 Cees Witteveen
Intermezzo: Queries op zoekbomen Datastructuren. Queries: hoe op te lossen We hebben: – Een zoekboom (gewoon, rood-zwart, AVL,…) – Een vraag / querie.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
MBR AtT1 College 7 : covering theorie (Deel 2) model MAB-diagnose: College 6: Covering theorie College 7: Algoritme voor covering theorie werkelijk.
In een reguliere taal… zin yxz S E A B vuwuwxzvuwxzvvuwxzvvvuwxzvvv lengte  n.
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Codetuts Academy Les 6 Module 2a Php Fundamentals 1.
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
Doorzoeken van grafen Algoritmiek. Algoritmiek: Divide & Conquer2 Vandaag Methoden om door grafen te wandelen –Depth First Search –Breadth First Search.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Gerandomiseerde algoritmes
Doorzoeken van grafen Algoritmiek.
Netwerkstroming Algoritmiek.
NP-volledigheid Algoritmiek.
Recursie in de wiskunde
Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver
Modderdorp UNPLUGGED Bron: csunplugged.org.
Doolhof. doolhof doolhof Maak een routine die de ‘hekken’ tussen de cellen weghaalt Maak een 2-dimensionale array met kolommen en rijen aangeklikt.
Transcript van de presentatie:

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.