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 Tentamenvraag Het probleem om voor een graaf G = (V, E) en een integer K>1 te bepalen of de minimum vertex cover van G exact K knopen bevat is a.een NP-probleem b.een co-NP-probleem c.een probleem waarvan iedere instantie bestaat uit de conjunctie van een instantie van een NP-probleem en een instantie van een co-NP probleem d.een probleem in P NP G heeft een minimale vc met K knopen ≡ G heeft een vc met K knopen ∧ G heeft geen vc met k-1 knopen
T U Delft Parallel and Distributed Systems group PGS Onderwerpen Approximatiealgoritmen - Optimaliseringsproblemen - Goed benaderbare problemen - Slecht benaderbare problemen Interactieve bewijssystemen - Interactive proof systems - Zero-knowledge proof systems Lerende machines - Turingmacines voor onoplosbare problemen - mind changes
T U Delft Parallel and Distributed Systems group PGS Optimaliseringsproblemen c(y): waarde van oplossing y polynomiaal berekenbaar A is een optimaliserings probleem: Gegeven x in * bepaal een y in F(x) met minimale/maximale kosten c(y). ( y = opt(x) ) x ** F(x): verzameling van alle oplossingen voor x y
T U Delft Parallel and Distributed Systems group PGS Approximatie-algoritmen we zijn geinteresseerd in de kleinste waarvoor er een polynomiaal -approximatie algoritme voor A bestaat! ∀ I A R M (I A ) = | c(M( I A )) - opt( I A ) | max { opt(I A ), c(M(I A ) } M is een -approximatie algoritme voor A M IA *AIA *A M( I A ) F(I A ) M is een algoritme voor een optimaliserings probleem A
T U Delft Parallel and Distributed Systems group PGS Benaderingsalgoritmen: vb MINCOVER: gegeven G = (V,E), geef een minimum vertex cover voor G. input :G = (V, E) output: vc C voor G begin C := ; while E do kies een { u,v } E; C := C { u, v }; E : = E { { x, y } E : { u, v } { x, y } } end verwijder alle kanten uit E die incident zijn met u of v
T U Delft Parallel and Distributed Systems group PGS Prestatie MinCover benaderingsalgoritme begin C := ; while E do kies een {u,v} E; C := C {u,v}; E : = E { {x,y} E : {u,v} {x,y} } end Conclusie: benaderingsalgoritme garandeert dat gevonden vertexcover C nooit meer dan 2 maal zo groot is als optimale vertex cover: MINCOVER heeft derhalve een 0.5-benaderingsalgoritme C is cover van G. C bestaat uit paren van knopen afkomstig van kanten {u,v}. Laat C E verzameling geselecteerde kanten zijn => |C E | = 0.5 x |C| Als e,e’ C E dan e e’ = . Dus elke kant e uit C E moet in elke cover vertegenwoordigd zijn | C E | | Mincover | Maar dan geldt | C | = 2 x | C E | 2 x | Mincover |
T U Delft Parallel and Distributed Systems group PGS Benaderingsalgoritmen voor MinCover Er bestaat een polynomiaal approximatie-algoritme dat een cover C vindt met: | C | / | Mincover | 2 - (log log V )/ (2 log V ) (Monien & Speckenmeyer 1985) Er bestaat geen polynomiaal approximatie-algoritme (tenzij P = NP) dat een cover C vindt waarvoor geldt: | C | / | Mincover | (Hästad 1997)
T U Delft Parallel and Distributed Systems group PGS Verbetering voor VC (i) ? MINCOVER garandeert een bovengrens op de ratio (c(gevonden oplossing))/ c(optimale oplossing) Mooier zou zijn een bovengrens op het verschil: | c(gevonden oplossing) - c(optimale oplossing)| Het vinden van een polynomiaal constant verschil benaderingsalgoritme is net zo moeilijk als het oplossen van P = NP!
T U Delft Parallel and Distributed Systems group PGS Verbetering voor VC ? (ii) Stel wel en kies een k. Laat I = (G = (V,E)). Stel opt(G) = m. Maak nieuwe graaf G k+1 : bestaat uit k+1 niet verbonden kopieën van G: => opt(G k+1 ) = (k+1)m. Gebruik A voor G k+1 : geeft cover met (k+1)m + k knopen. Iedere kopie van G moet echter minstens m knopen bevatten. => |A(G k+1 )| (k+1)m. Er kunnen derhalve nog maximaal k knopen verdeeld worden over k+1 grafen: er is derhalve een kopie G’ van graaf G die exact m knopen in de vc heeft => Vind G’ en concludeer dat dit benaderingsalgoritme VC oplost! Stelling: Tenzij P = NP bestaat er geen k > 0 en een polynomiaal approximatie algoritme A zodat voor alle instanties I van VC geldt: | A(I) - opt(I) | k.
T U Delft Parallel and Distributed Systems group PGS ETSP: een benadering van een optimale tour MST < OPT-tour a b c e f h ig d d ef d de +d df 2 x MST < 2 OPT-tour MST-TSP < 2 x OPT-tour MST-TSP < 2 x MST-tour MST: minimal spanning tree
T U Delft Parallel and Distributed Systems group PGS Approximatie ETSP Euclidische TSP : d ij = d ji d ij d ik + d kj Benaderingsalgoritme (Rosenkrantz) input: ETSP instantie C, D = [d ij ] nxn output: benadering van optimale tour begin T C := minimaal omspannende boom van (C,D); kosten := 0; bezocht := ; stad := c 1 ; while bezocht C if {stad, newstad} T c and newstad bezocht then skip else newstad:= eerstvolgende stad via T C bezocht; kosten := kosten + d stad,newstad ; stad := newstad; kosten := kosten + d stad,c1 ; return kosten end runtijd algoritme O(n 2 )
T U Delft Parallel and Distributed Systems group PGS TSP-OPT benaderbaar? Stel TSP-OPT heeft een polynomiaal approximatie algoritme A met < 1. Dan geldt: c(A(I) ) - opt(I) c(A(I)) en derhalve opt(I) c(A(I)) opt(I) / (1- ) We laten nu zien dat er in dit geval een reductie van HAMC naar TSP-OPT mogelijk is, zodanig dat met A HAMC beslist kan worden !
T U Delft Parallel and Distributed Systems group PGS Reductie van HAMC G =( V, E) G heeft HAMC ⇒ TSP-OPT heeft tour met lengte n ⇒ c ( A(I)) opt(I) /(1- ) = n /(1- ) G heeft geen ⇒ TSP-OPT heeft tour met lengte minimaal HAMC (n-1) + n/(1- ) ⇒ c ( A(I)) > n /(1- ) a = n /(1- ) a a a a a Gevolg: polynomiale beslissingsprocedure voor HAMC!
T U Delft Parallel and Distributed Systems group PGS Reductie van HAMC G =( V, E) a = n /(1- ) a a a a a Conclusie: TSP-opt goed benaderbaar alss P = NP HAMC-instantie ITSP-instantie f(I)algoritme A c(A(I)) c( A(I)) > n/(1- ) c( A(I)) ≤ n/(1- ) I yes-instantie I no-instantie polynomiaal algoritme
T U Delft Parallel and Distributed Systems group PGS Onderwerpen Approximatiealgoritmen - Optimaliseringsproblemen - Goed benaderbare problemen - Slecht benaderbare problemen Interactieve bewijssystemen - Interactive proof systems - Zero-knowledge proof systems Lerende machines - Turingmacines voor onoplosbare problemen - mind changes
T U Delft Parallel and Distributed Systems group PGS Interactieve bewijssystemen Algemenere karakterizering: Twee partijen P(rover) : maakt bewijzen voor yes-instanties; heeft onbeperkte rekenkracht V(erifier): controleert bewijzen; heeft polynomiaal begrensde rekenkracht NP = klasse van problemen met efficiënte bewijzen voor yes-instanties NP karakterizering: beslissingsproblemen waarvoor Prover certificaat kan construeren waarmee Verifier in poly-tijd kan vaststellen of instantie yes-instantie is.
T U Delft Parallel and Distributed Systems group PGS Interactieve bewijsystemen Uitbreiding 1. Probabilistische verificatie: Verifier controleert bewijzen probabilistisch in poly-tijd) 2. Interactie in meer rondes Prover en Verifier kunnen interacteren in een twee- zijdige dialoog 3. probleem ∏ is oplosbaar met interactief bewijs als er een V en een > 0 bestaat zodat er een P* bestaat zodat V iedere yes-instantie met kans ≥ accepteert voor iedere P, V een no-instantie met kans ≥ verwerpt.
T U Delft Parallel and Distributed Systems group PGS Interactive proof systems IP (Interactive Proof) is de klasse van alle problemen die oplosbaar zijn met een interactief bewijs waarbij niet meer dan een polynomiaal aantal rondes/boodschappen worden uitgewisseld
T U Delft Parallel and Distributed Systems group PGS Vb: GraphNonIsomorfisme Graaf Nonisomorfisme: Gegeven twee grafen G en H, zijn G en H niet isomorf? NP? niet bekend Laat (G1, G2) instantie zijn van GraphNonIso. IP Protocol In het algemeen: IP NP co-NP 1.V selecteert at random G1 of G2, 2.V maakt isomorfe graaf H door random herlabeling van knopen en stuurt H naar P; 3.P moet vervolgens meedelen of H afkomstig is van G1 of G2; 4.stappen 1-3 kunnen naar believen herhaald worden
T U Delft Parallel and Distributed Systems group PGS Interactive proof systems Formeel: V is een functie die op basis van input I, een random input R en een message history H = een volgende boodschap m k+1 bepaalt die of naar de prover gestuurd wordt of een eindtoestand q {accept, reject} is. P is een functie die op basis van I en H = een volgende boodschap m k+1 naar V stuurt (V,P) (I,R) = accept als er een message history H bestaat die eindigt met accept voor een polynomiaal gebonden H en R. Pr( (V,P) (I) = accept ) = Pr ((V,P) (I,R) = accept ) voor een random R van polynomiale lengte
T U Delft Parallel and Distributed Systems group PGS Interactive proof systems Formeel (vervolg) Een probleem A is een IP probleem als er een polynomiale functie V bestaat en een willekeurige functie P zodat voor elke functie P* geldt: I is een yes-instantie van A Pr[ (V,P) (I) = accept ] ≥ 2/3 I is een no-instantie van A Pr[ ((V,P*) (I) = accept ] ≤ 1/3 Resultaat: IP = PSPACE
T U Delft Parallel and Distributed Systems group PGS Zero Knowledge Interactive Proofs probleem: A (Prover) wil B (Verifier) ervan overtuigen dat hij/zij in het bezit is van informatie X zonder X prijs te geven. [ vgl gebruik pinpas: er gaat (weliswaar versleutelde) informatie X van Prover naar Verifier (Bank). In principe kan deze informatie gebruikt worden om pincode X te achterhalen.] oplossing: Zero knowledge proof systems
T U Delft Parallel and Distributed Systems group PGS Vb: 3-kleurbaarheid Naam3-kleurbaarheid (NPC probleem) Instantie G = (V, E) Vraagis G 3-kleurbaar, dwz. is er een functie f: V {1,2,3} zodat voor alle {u,v} E geldt f(u) f(v)?
T U Delft Parallel and Distributed Systems group PGS Zero-Knowledge Prover moet Verifier ervan overtuigen dat hij kleuring van G kent zonder kleuring aan Verifier te onthullen. dit is een kleuring geconstrueerd door Prover
T U Delft Parallel and Distributed Systems group PGS Prover verbergt kleuring …. en toont G aan Verifier (Prover kan kleuring echter niet meer veranderen!)
T U Delft Parallel and Distributed Systems group PGS Verifier mag nu willekeurige kant e = {u,v} kiezen en Prover moet zijn kleuring van u en kleuring van v onthullen…. ? u v
T U Delft Parallel and Distributed Systems group PGS Prover onthult kleuring van u en v …. Verifier weet nu alleen dat voor e de kleuring goed is...
T U Delft Parallel and Distributed Systems group PGS Merk op: Pr [ kleuring is geen 3 kleuring | kleur u kleur v ] 1 - 1/ |E| Verifier heeft derhalve na 1 ronde kans 1 - 1/ |E| om Prover te ontmaskeren als deze kleuring niet kent.
T U Delft Parallel and Distributed Systems group PGS Verifier is nog niet overtuigd. Prover start nieuwe ronde door random permutatie van kleuring te kiezen …. ( ) =
T U Delft Parallel and Distributed Systems group PGS Prover verbergt kleuring voor Verifier en laat G opnieuw zien...
T U Delft Parallel and Distributed Systems group PGS ? Verifier kiest opnieuw een willekeurige kant e
T U Delft Parallel and Distributed Systems group PGS Prover laat opnieuw kleuring eindpunten zien. Nb: opnieuw kan Verifier alleen afleiden dat kleuring voor deze kant ok is.
T U Delft Parallel and Distributed Systems group PGS Na 2 ronden: Pr [ kleuring is geen 3 kl’ring | kleur u kleur v ] (1 - 1/ |E|) 2 en algemeen: Pr(kleuring is geen 3-kl’ring| m rondes goed) (1-1/|E|) m kans op bedrog ≤ dan m log / log (1-1/|E|)
T U Delft Parallel and Distributed Systems group PGS Zero-Knowledge: analyse ? Verifier wil zich ervan overtuigen dat Prover niet vals speelt. Verifier wil daarom hoogstens een kans lopen dat zij bedrogen wordt door Prover. Voor m rondes geldt nu Pr( Prover kent geen opl. | m rondes goed) (1-1/|E|) m hieruit volgt voor gekozen : m log / log (1-1/|E|) rondes volstaan om Verifier ervan te overtuigen dat Prover 3-kleuring kent, zonder dat Verifier kleuring kent.
T U Delft Parallel and Distributed Systems group PGS Zero Knowledge Proofs: details (i) Stel instantie G =(V,E) gegeven en P weet kleuring f voor G, P maakt allereerst een permutatie f’ van f, verzegelt alle kleuringen van knopen v i in boxen b i en stuurt de gelockte boxen naar V; V selecteert at random een kant {v i,v j } uit E en vraagt P om de sleutels van box i en box j P stuurt sleutels k i en k j
T U Delft Parallel and Distributed Systems group PGS Zero Knowledge Proofs details (ii) V opent b i en b j met k i en k j en controleert of 1. f’ (v i ) {1,2,3}, f’(v j ) {1,2,3} 2. f’(v i )) f’(v j ) Als f’ geen oplossing is ( P probeert V te beduvelen) dan loopt P een kans 1/|E| om ontmaskerd te worden.
T U Delft Parallel and Distributed Systems group PGS Zero Knowledge proofs details (iii) Als we deze informatie uitwisseling een aantal verschillende ronden ( zeg m ronden ) met verse boxen, sleutels en verse permutaties f’ uitvoeren dan is de kans dat P een kleuring kent als m ronden goed verlopen gelijk aan 1 - (1 - 1/ |E|) m Deze kans nadert tot 1 als m . V verkrijgt geen informatie over de kleuring f: per keer overtuigt hij zich er alleen maar van dat knopen van gekozen kanten verschillend zijn!
T U Delft Parallel and Distributed Systems group PGS Onderwerpen Approximatiealgoritmen - Optimaliseringsproblemen - Goed benaderbare problemen - Slecht benaderbare problemen Interactieve bewijssystemen - Interactive proof systems - Zero-knowledge proof systems Lerende machines - Turingmacines voor onoplosbare problemen - mind changes
T U Delft Parallel and Distributed Systems group PGS Turingmachines en onberekenbaarheid Turingmachine model om te bepalen wat berekenbaar is en wat doenlijk is om te berekenen. onberekenbare problemen zijn er interessante problemen die onberekenbaar zijn? kunnen we machines definieren die deze problemen oplossen ? Er zijn Turingmachines voor niet-berekenbare functies
T U Delft Parallel and Distributed Systems group PGS Leren van functies f(n) g(n) h(n) n n f(n) = n de priemgetal g(1) = 1 g(n) = i=1,2,3; n-i >0 g(n-i), n >1 h(n) = (n-1)(n-2)(n-3)(n-4)
T U Delft Parallel and Distributed Systems group PGS en meer … open functie-inductie ? n f(n) zes acht twaalf tien
T U Delft Parallel and Distributed Systems group PGS en meer … n f(n) ? ieder rijtje wordt gevormd door het voorgaande rijtje uit te spreken: een een, twee enen, een twee een een, etc.
T U Delft Parallel and Distributed Systems group PGS nodig: mind changing machines n-trial machine Turing machine die n verschillende outputs mag geven en waarbij det laatst geproduceerde output als antwoord telt. resultaten 2-trial machines kunnen het STOP-probleem voor turing machines oplossen voor iedere eindige n is er een berekenbare functie f zodat f niet geidentificeerd kan worden door een n-trial Tm.
T U Delft Parallel and Distributed Systems group PGS Vb: tm voor stop-probleem input : ( turingmachine M, invoer x voor M) output : “yes” als M(x) stopt voor x, anders “no” 1. print “no” op output tape; 2. simuleer M voor input x; 3. als simulatie stopt (dwz M(x) stopt voor x), print “yes” op output tape. laatste antwoord gegeven door deze 2-trial machine is correct ! Solve Stop
T U Delft Parallel and Distributed Systems group PGS en wat zegt de theorie... zwak lerend P is zwak lerend als P oneindig lang doorgaat met voorspellen; vanaf een zeker tijdstip steeds een juiste voorspelling doet. P is zwak lerend als P oneindig lang doorgaat met voorspellen; vanaf een zeker tijdstip steeds een juiste voorspelling doet. sterk lerend P is sterk lerend als P oneindig lang doorgaat met voorspellen; oneindig vaak een juiste voorspelling doet (maar af en toe de mist in gaat). P is sterk lerend als P oneindig lang doorgaat met voorspellen; oneindig vaak een juiste voorspelling doet (maar af en toe de mist in gaat). kunnen niet alle berekenbare functies leren kunnen alle berekenbare functies leren
T U Delft Parallel and Distributed Systems group PGS Onverwachte conclusies resultaat uit leertheorie er zijn oneindig veel alternatieve verzamelingen van (lerende) machines M’ met kennisproducen K’ zodat K’ K = en M’ M = een verzameling speciale kennisproducten K bereikt met speciale zwak lerende machines M. wetenschap volgens leertheorie Conclusie de kans dat we resultaten van een buitenaardse beschaving kennen en/of hun methoden begrijpen is praktisch 0 !
T U Delft Parallel and Distributed Systems group PGS Voorlopige conclusie wat is de waarde van IQ-tests? wat is de waarde van het oordeel van een Tm (testconstructie+afname) over een niet-berekenbaar proces (inductie)?
T U Delft Parallel and Distributed Systems group PGS Relatie met Sipser Approximatiealgoritmen worden behandeld in Hfst 10.1, blz ; Bestudeer het MAX-CUT algoritme! Interactive proof systems worden besproken in 10.4, blz Het bewijs van Theorema [ vanaf blz 357 (lemma 10.26) t/m blz 366 ] kan overgeslagen worden.