1 / 24

Fundamentele Informatica IN3120

Fundamentele Informatica IN3120. College 1. Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI. in3110. Berekenbare problemen. Doenlijke problemen. in3120. Relatie in3110 en in3120. Alle problemen. Literatuur en studiemateriaal. Literatuur

raleigh
Télécharger la présentation

Fundamentele Informatica IN3120

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fundamentele Informatica IN3120 College 1 Cees WitteveenParallelle en Gedistribueerde Systemen Faculteit EWI

  2. in3110 Berekenbare problemen Doenlijke problemen in3120 Relatie in3110 en in3120 Alle problemen

  3. Literatuur en studiemateriaal • Literatuur M. Sipser, Introduction to the Theory of ComputationPart III: Hfst 7 + 8 + 9 + 10 • aanvullende informatie zie blackboard course IN3100 voor college overzichten; tentamens en uitwerkingen voorbeelden • practicum twee opgaven: • correctheidsbewijs van een gegeven reductie • ontwerpen van een reductie + correctheidsbewijs

  4. Practicum en tentamen • practicum twee opgaven: • correctheidsbewijs van een gegeven reductie • ontwerpen van een reductie + correctheidsbewijs • opgaven • groepsindeling zoals voor deel 1 • afronden voor einde kwartaal 3 • opgave 2 wordt verstrekt na voltooiing opgave 1 • correctie: assistenten Michel (dinsdagochtend) en Leon (woensdagmiddag) • tentamen meerkeuzevragen (±10 ) + open vragen (1 tot 2)

  5. Overzicht • wat kosten algoritmen • tijdcomplexiteit • asymptotische complexiteit: grote O en kleine o • complexiteit van algoritmen en machinemodellen • twee algoritmen voor herkennen van talen • machinemodellen en complexiteit • tijdcomplexiteitsklassen • complexiteit van problemen • doenlijke en ondoenlijke problemen • de klasse van polynomiale problemen P • P versus NP

  6. wat kost een algoritme? Neem de volgende TM die de taal L = {am bn : 0 ≤ m ≤ n } accepteert: algoritme voor M1 • voor input x in {a, b}*: • scan input tape en verwerp als er een a rechts van een b wordt gevonden; • zolang als er zowel a’s als b’s op de tape staan • scan de tape en verwijder een a en een b • accepteer als alle a’s verwijderd zijn; anders verwerp. Vraag: hoeveel tijd kost dit algoritme ?

  7. worst case tijdcomplexiteit tijdcomplexiteit van een algoritme A is een functie f : N  N waarbij f(n) het grootste aantal stappen (instructies) is dat A nodig heeft voor een input ter grootte van n. Tijd complexiteit van algoritme Exacte bepaling is vaak lastig, onnodig en (te) machine-afhankelijk. Daarom gebruiken we een asymptotische analyse: grote O-notatie en kleine o-notatie

  8. Tijd complexiteit van algoritme Grote O-notatie Laat f : N  R+eng : N  R+ . Dan geldt f(n) = O(g(n)) als er integers c en n0 bestaan waarvoor geldt n ≥ n0[ f(n) ≤ c x g(n) ] Voorbeelden f(n) = 2n2+9n+100===>f(n) = O(n2) f(n) = a logk n ===> f(n) = O(log2 n) f(n) = 2an+k ===> f(n) = 2O(n) kies c = 9, n0 = 5 c = a/log2k, n0 = 1 c = a+1, n0 = k

  9. Tijdcomplexiteit van algoritmen Polynomiale algoritmen Een algoritme A met tijdcomplexiteit f(n) heet polynomiaal (begrensd) alsgeldt f(n) = O(nc)voor een constante c > 0. Exponentiële algoritmen Een algoritme A met tijdcomplexiteit f(n) heet exponentieel begrensd alsgeldt f(n) = O(2n^c)voor een constante c > 0.

  10. Tijdcomplexiteit van algoritmen Kleine o-notatie Laat f : N  R+eng : N  R+ . Dan geldt f(n) = o( g(n) ) als limn f(n) / g(n) = 0 Voorbeelden f(n) = 2n2+9n+100 ===> f(n) = o(n3) f(n) = c logk n ===> f(n) = o(n) f(n) = n n===> f(n) = o(n2)

  11. Toepassing: analyse TM M1 Neem de volgende TM die de taal L = {am bn : 0 ≤ m ≤ n } accepteert: algoritme voor M1 • voor input x in {a, b}*: • scan input tape en reject als er een a rechts van een b wordt gevonden; • zolang als er zowel a’s als b’s op de tape staan • scan de tape en verwijder een a en een b • accept als alle a’s verwijderd zijn; anders reject. Neem |x| = n O(n) O(n) x O(n) =O(n2) O(n) O(n) + O(n2) + O(n) =O(n2) Vraag: hoeveel tijd kost dit algoritme ?

  12. Een beter algoritme voor L Neem de volgende TM die de taal L = {am bn : 0 ≤ m ≤ n } accepteert: algoritme voor M2 voor input x in {a, b}*: scan input tape en verwerp als er een a rechts van een b wordt gevonden; bepaal aantal a’s en schrijf binair aan eind van tape; sluit binaire rijtje af met #; bepaal aantal b’s en schrijf binair aan eind van tape; Vergelijk de verkregen bitrijtjes voor de a’s en de b’s; accepteer als het bitrijtje van de b’s minstens zo groot is als die van de a’s; anders verwerp.

  13. Een beter algoritme voor L Neem de volgende TM die de taal L = {am bn : 0 ≤ m ≤ n } accepteert: algoritme voor M2 Totaal O(n log n) voor input x in {a, b}*: scan input tape en verwerp als er een a rechts van een b wordt gevonden; bepaal aantal a’s en schrijf binair aan eind van tape sluit binaire rijtje af met # bepaal aantal b’s en schrijf binair aan eind van tape Vergelijk de verkregen bitrijtjes voor de a’s en de b’s accepteer als het bitrijtje van de b’s minstens zo groot is als die van de a’s; anders verwerp. O(n) O(n log n) O(1) O(n log n) O(log n) O(1)

  14. Complexiteit en machine model • Single en multi-tape TuringmachinesVoor elke multi-tape Turingmachine die een probleem oplost in t(n)-tijd, bestaat er een single-tape Tm die hetzelfde probleem oplost in O(t2(n))-tijd • Deterministische en niet-deterministische machinesVoor elke niet-deterministische Turingmachine die een probleem oplost in t(n)-tijd, bestaat er een single-tape Tm die hetzelfde probleem oplost in 2O(t (n))-tijd ConclusieTussen deterministische Tm’s bestaan polynomiale verschillen, tussen deterministische en niet-deterministische modellen bestaan exponentiële verschillen in tijdcomplexiteit.

  15. Complexiteit en machine model • Equivalentie stellingAlle redelijke deterministische berekeningsmodellen zijn polynomiaal equivalent (vb: RAM, Registermachines, Turingmachines)

  16. Tijdcomplexiteits klassen Complexiteits klasse TIME(t(n)) alst : N  N functie is dan is TIME( t(n) ) = { L : L wordt beslist door een deterministische Tm in O(t(n))-tijd } = de verzameling van alle talen beslist door O(t(n))-DTm’s Voorbeeld:we hebben gezien dat de taal L = {am bn : 1 ≤ m ≤ n } tot TIME(n2) behoort. [ maar ook totTIME(n log n)]

  17. Tijdcomplexiteits klassen Complexiteits klasse P P = ∪kTIME( nk ) = { L : L wordt beslist door een Tm in polynomiale tijd } = de verzameling van alle talen beslist in polynomiale tijdNb: P is onafhankelijk van het precieze deterministische machine model, dwz P is een robuuste complexiteitsklasse)

  18. Tijdcomplexiteits klassen Complexiteits klasse NP NP = ∪kNTIME( nk ) = { L : L wordt beslist door een niet- deterministische Tm in polynomiale tijd } = de verzameling van alle talen beslist door NTM’s in polynomiale tijd

  19. Complexiteit van probleem Complexiteit beslissings probleem Probl worst-case complexiteitvan hetbeste algoritme voor oplossing van Probl :fProbl(n) = min { fA(n) : A is eenalgoritme voorProbl} Nb: complexiteit probleem doet uitspraak over complexiteit van alle algoritmen voor het probleem

  20. (On)Doenlijke problemen • Doenlijke problemenEen probleem is doenlijk als het in polynomiale tijd op te lossen is (polynomiaal in de grootte van de invoer).P = kTime(nk): klasse van polynomiaal oplosbare problemen. • Ondoenlijke problemenEen probleem is ondoenlijk als er geen polynomiaalalgoritme voor het probleem bestaat. • waarom onderscheid: kijk naar volgende tabel

  21. Tijdcomplexiteits functies omvang grootste instantie oplosbaar in t tijdseenheden

  22. voor ondoenlijke problemen is (constante) technologische speed-up van beperkt belang:Stel probleem heeft tijdcomplexiteit 2n en speed up is c. Als een instantie ter grootte van m in een bepaalde hoeveelheid tijd kan worden opgelost, dan kan na de speed-up in dezelfde tijd een instantie ter grootte van < m + 2log c opgelost worden. voordoenlijke problemen is speed-up wel van belang:Stel probleem heeft tijdcomplexiteit nken speed up is c. Als een instantie ter grootte van m in een bepaalde hoeveelheid tijd kan worden opgelost, dan kan na de speed up in dezelfde tijd een instantie ter grootte van c1/k.m opgelost worden. Doenlijk (P) vss ondoenlijk

  23. Centraal probleem: P = NP? • P = NP ?Voor NP problemen zijn tot nu toe alleen exponentiële algoritmen bekend; we weten niet of P=NP of P≠NP. • Belang:NP bevat groot aantal belangrijke problemen • satisfiability van boolese formules • padproblemen in grafen (TSP, Hamiltoons pad) • cover problemen: set en vertex cover. • rooster en schedulings problemen. • etc.

  24. Wat doen we hierna? • doenlijk vss ondoenlijk: P versus NP • de klasse NP • NP-complete problemen, voorbij NP • praktische aspecten van NP-problemen • pseudopolynomiale algoritmen • heuristieken • bijzondere onderwerpen • quantum computing • zero-knowledge proof systems

More Related