240 likes | 359 Views
College in345 Deel 2. Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen. Overzicht Deel 2. Inhoud ondoenlijke en doenlijke problemen: praktische aspecten complexiteitstheorie Literatuur
E N D
College in345Deel 2 Cees WitteveenParallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen
Overzicht Deel 2 • Inhoud ondoenlijke en doenlijke problemen: praktische aspecten complexiteitstheorie • Literatuur Moret, The Theory of Computation Hfst 6 + 7 + 8 + 9 • Praktikum 2 opgaven: • bewijs correctheid gegeven een reductie • ontwerpen van een reductie + correctheidsbewijs
Organisatie • praktikumopgaven • groepsindeling zoals voor deel 1 • afronden voor einde kwartaal 3 • opgave 2 verstrekt na voltooiing opgave 1 • correctie: assistenten Zutt en Broekens • aanvullende informatie zie pds.twi.tudelft/vakken/in345 • tentamen meerkeuzevragen (5/6) + open vragen (1/2)
Onderwerpen (1) • Inleiding Complexiteitstheorie: • doenlijke, ondoenlijke en onoplosbare problemen • reductietechnieken • complexiteitsklassen • complete problemen, hierarchie-stellingen
Onderwerpen (2) • Doenlijk vss ondoenlijk: P versus NP • polynomiale reducties en polynomiale problemen • deterministiche vss niet-deterministische algoritmen • (N)P-volledige problemen • technieken voor constructie van reducties
Onderwerpen (3) • Praktische behandeling van NP problemen • complexiteit en grote getallen:getalproblemen, pseudo-polynomiale algoritmen en sterke NP-volledigheid • de waarde van heuristieken:voor welke problemen zijn er polynomiale approximatietechnieken
Onderwerpen (4) • Bijzondere onderwerpen • parallellisme: een oplossing voor ondoenlijkheid? • zero-knowledge proof systems waarom ondoenlijkheid ook een deugd kan zijn • speciale computationele modellen dna computing : de belofte van massief parallellisme quantum computing: natuurlijk indetermisme
Berekenbare problemen doenlijk in tijd doenlijk in ruimte Doenlijke problemen Complexiteitstheorie (1) Alle problemen
Ondoenlijk probleem? Diagnose:Gegeven: • een systeembeschrijving S, • een verzameling observaties O, • een verzameling mogelijke fouten (afwijkingen) F, • een positieve integer K Vraag: • is er een deelverzameling F’ van F met |F’| ≤ K zodanig dat S O F’ consistent is.
Diagnose is moeilijk • Tijdkritisch proces:fouten moeten snel gevonden worden ! • Rekenintensief proces:fouten opsporen kost veel tijd !
500 mogelijke fouten.diagnose: 1 uur 1000 mogelijke fouten.diagnose: 0.5 jr 5000 mogelijke fouten.diagnose: 1019 jr Ook moeilijk met snellere computers? met huidig systeem
500 mogelijke fouten.diagnose: 1 uur 1000 mogelijke fouten.diagnose: 0.5 jr 5000 onderdelen.diagnose: 1019 jr 10 x sneller: 503 onderdelen per uur. 10.000 x sneller:513 onderdelen per uur. Ook moeilijk met snellere computers? met huidig systeem met sneller systeem
Complexiteitstheorie (2) • Complexiteitstheorie:klassificatie van problemen naar • maximale hoeveelheid tijd of • maximale hoeveelheid benodigde ruimte die hetbeste algoritmevoor oplossing van het probleem in het slechtstegeval nodig heeft. • Voorbeeld: vinden van het maximum in rij : O(n)
Complexiteitstheorie (vb) • er zijn diverse algoritmen voor het sorteerprobleem: • bubble sort, insertion sort : O(n2) • quicksort : O(n2) • heapsort, mergesort : O( n log n) • we kunnen bewijzen dat ieder sorteer algoritme(n log n)- tijd nodig heeft. • complexiteit van hetsorteerprobleemisdusO(n log n).
Problemen • exacte ondergrenzen complexiteit voor weinig problemen bekend. • we kiezen daarom liever voor relatieve moeilijkheidsgraad:probleem A is niet essentieel moeilijker dan B. • O(n), O(n2) ... karakterizeringen niet robuust: afhankelijk eigenaardigheden comp. model. • we kiezen daarom hoofdzakelijk voor onderscheid polynomiale complexiteit vss exponentiële complexiteit
Voor relatieve complexiteit gebruiken we reducties: A B : A is niet essentieel moeilijker dan B ofB is op z’n minst zo moeilijk als A(onder reducties) nut: stel we weten dat A een moeilijk probleem is en A B dan is B minstens zo moeilijk als A Voor robuustheid maken we geen onderscheid meer tussen O(nk) voor k = 0,1,2 ... => complexiteitsklasse P : alle problemen oplosbaar in O(nO(1))Deze problemen vormen de doenlijke problemen. Oplossingen
algoritme voor A algoritme voor B Reducties • Algemeen: reductie van A naar B : manier om een algoritme voor A te verkrijgen door een algoritme voor B te gebruiken:
algoritme voor A algoritme voor B Reducties: nut • kosten(reductie) niet essentieel meer dan kosten(algoritme B) => A niet essentieel moeilijker dan B ( A B)(vb: polyn. reducties en polyn. algoritmen)
Typen reducties • Turing reducties:het (veronderstelde) algoritme voor B wordt als subroutine binnen het algoritme voor A gebruikt. Notatie: ATB • Voorbeeld:MINVC (minimale vertex cover) TVC • idee: ga na met binary search wat de kleinstewaarde van 1 K |V| is, waarvoor de graaf G een vertex cover ter grootte van K heeft.
Beslissingsproblemen (1) • Definitie:A is een beslissingsprobleem als alle instanties van A met “ja”(“yes”) of “nee”(“no”) beantwoord kunnen worden. • Voorbeelden:Satisfiability, Connectivity, TravelingSalesPerson
Beslissingsproblemen:voorbeelden • Vertex Cover (VC) • instantie: een graaf G = (V,E) en K Z+ • vraag: heeft G een vertex cover V’ V ter grootte van K of minder ? • Traveling Sales Person (TSP) • instantie: een verzameling S van n steden , een intercity afstanden matrix Dnxn met dij Z+ en een integer B Z+ • vraag: bestaat er een tour langs alle steden mettotale afstand B ?
Beslissingsproblemen (2) • Notaties domein van A DA instantie van A IA YesA NoA
YB Karp-reducties m A m B: voor alle IA DA: IA YAR(IA) YB R(YA) YA R(NA) B R A algoritme voor B yes no
Karp-reductie: vb • reductie van VERTEX COVER naar CLIQUE: input: G = ( V,E ), K Z+; output: yes alss VC ter grootte van K bestaat begin Laat G’ = ( V’, E’ ) met V’ = V en E’ = { { v,w } | v ≠ w V, {v,w} E } K’ = | V | - K output CLIQUE(G’, K’) end