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

Slides:



Advertisements
Verwante presentaties
Les 2 klassediagrammen II
Advertisements

Algoritmische problemen Onbeslisbaar / niet-berekenbaar Geen algoritme mogelijk Tegel- of domino-problemen Woordcorrespondentie-probleem Syntactisch equivalentie.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3 005 Deel 2 College 5 Cees Witteveen
Hoofdstuk 8: Recursie.
PM zijn de Principia Mathematica. Deze vormen een formeel systeem voor de wiskunde. Ze zijn beschreven door A.N. Whitehead and B. Russell. Gödel bepaalt.
Uitwerking tentamen Functioneel Programmeren 29 januari 2009.
Datastructuren Analyse van Algoritmen en O
Datastructuren Analyse van Algoritmen en O
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3005 deel 2 College 2 Cees Witteveen
Oppervlakten berekenen
Computationele complexiteit: NP-volledigheid
Project D2: Kempenland Sander Verkerk Jeffrey van de Glind
Automatisch Redeneren in de praktijk
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Fibonacci & Friends Met dank aan Gerard Tel.
Datastructuren Zoekbomen
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)
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 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
1 Datastructuren Skiplists. 2 Skiplists  Vrij eenvoudige datastructuur  “Makkelijker” dan gebalanceerde bomen  Kunnen hetzelfde als gebalanceerde bomen.
Optuigen van datastructuren
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
Datastructuren Sorteren, zoeken en tijdsanalyse
Eenvoudig voorbeeld: Steden in Belgie
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
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 4 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
Representatie & Zoeken
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.
Grafentheorie Graaf Verzameling knopen al dan niet verbonden door takken, bijv:
Recursie…. De Mandelbrot Fractal De werking… De verzameling natuurlijke getallen… 0 ∞-∞
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
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.
Heuristieken en benaderingsalgoritmen Algoritmiek.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Datastructuren voor grafen Algoritmiek. 2 Grafen Model van o.a.: –Wegennetwerk –Elektrische schakeling –Structuur van een programma –Computernetwerk –…
Gerandomiseerde algoritmes
Doorzoeken van grafen Algoritmiek.
Netwerkstroming Algoritmiek.
NP-volledigheid Algoritmiek.
All-Pairs Shortest paths
Minimum Opspannende Bomen
Benaderingsalgoritmen
Recursie in de wiskunde
Programmeren woensdag 4 oktober 2017.
Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver
Modderdorp UNPLUGGED Bron: csunplugged.org.
Modderdorp UNPLUGGED Bron: csunplugged.org.
Implementatie Zoekboom
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 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