Fundamentele Informatica IN3120
description
Transcript of Fundamentele Informatica IN3120
![Page 1: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/1.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Fundamentele Informatica Fundamentele Informatica
IN3120 IN3120
Cees Witteveen
Parallelle en Gedistribueerde Systemen
Faculteit EWI
College 1College 1
![Page 2: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/2.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Relatie in3110 en in3120Relatie in3110 en in3120Relatie in3110 en in3120Relatie in3110 en in3120Alle problemenAlle problemen
Berekenbare problemenBerekenbare problemen
Doenlijke problemen
in3110in3110
in3120in3120
![Page 3: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/3.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Literatuur en studiemateriaalLiteratuur en studiemateriaal• Literatuur
M. Sipser, Introduction to the Theory of Computation Part III: Hfst 7 + 8 + 9 + 10
• aanvullende informatiezie blackboard course IN3100 voor
college overzichten; tentamens en uitwerkingen voorbeelden
• practicumtwee opgaven:• correctheidsbewijs van een gegeven reductie• ontwerpen van een reductie + correctheidsbewijs
![Page 4: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/4.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Practicum en tentamenPracticum 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)
• tentamenmeerkeuzevragen (±10 ) + open vragen (1 tot 2)
![Page 5: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/5.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
OverzichtOverzicht
• 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
![Page 6: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/6.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
wat kost een algoritme?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}*:
1. scan input tape en verwerp als er een a rechts van een b wordt gevonden;
2. zolang als er zowel a’s als b’s op de tape staan
• scan de tape en verwijder een a en een b
3. accepteer als alle a’s verwijderd zijn; anders verwerp.
Vraag: hoeveel tijd kost dit algoritme ?
![Page 7: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/7.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Tijd complexiteit van algoritmeTijd 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
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.
worst case tijdcomplexiteit
![Page 8: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/8.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Tijd complexiteit van algoritmeTijd complexiteit van algoritme
Grote O-notatie
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)
Laat f : N R+ en g : 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) ]
kies c = 9, n0 = 5
c = a/log2k, n0 = 1
c = a+1, n0 = k
![Page 9: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/9.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Tijdcomplexiteit van algoritmenTijdcomplexiteit van algoritmen
Polynomiale algoritmen
Een algoritme A met tijdcomplexiteit f(n) heet polynomiaal (begrensd) als geldt f(n) = O(nc) voor een constante c > 0.
Exponentiële algoritmen
Een algoritme A met tijdcomplexiteit f(n) heet exponentieel begrensd als geldt f(n) = O(2n^c) voor een constante c > 0.
![Page 10: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/10.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Tijdcomplexiteit van algoritmenTijdcomplexiteit van algoritmen
Laat f : N R+ en g : N R+ .
Dan geldt f(n) = o( g(n) ) als limn f(n) / g(n) = 0
Kleine o-notatie
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)
![Page 11: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/11.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Toepassing: analyse TM MToepassing: analyse TM M11
Neem de volgende TM die de taal L = { am bn : 0 ≤ m ≤ n } accepteert:
algoritme voor M1
voor input x in {a, b}*:
1. scan input tape en reject als er een a rechts van een b wordt gevonden;
2. zolang als er zowel a’s als b’s op de tape staan
• scan de tape en verwijder een a en een b
3. accept als alle a’s verwijderd zijn; anders reject.
Vraag: hoeveel tijd kost dit algoritme ?
Neem |x| = n
O(n)
O(n) x O(n)=O(n2)
O(n)
O(n) + O(n2) + O(n) = O(n2)
![Page 12: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/12.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Een beter algoritme voor LEen 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;
1. Vergelijk de verkregen bitrijtjes voor de a’s en de b’s;
2. accepteer als het bitrijtje van de b’s minstens zo groot is als die van de a’s; anders verwerp.
![Page 13: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/13.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Een beter algoritme voor LEen 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
1. Vergelijk de verkregen bitrijtjes voor de a’s en de b’s
2. 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(n log n)
O(log n)
O(1)
O(1)
Totaal O(n log n)
![Page 14: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/14.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Complexiteit en machine modelComplexiteit 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 machines Voor 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.
![Page 15: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/15.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Complexiteit en machine modelComplexiteit en machine model
• Equivalentie stelling
Alle redelijke deterministische berekeningsmodellen zijn polynomiaal equivalent (vb: RAM, Registermachines, Turingmachines)
![Page 16: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/16.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Tijdcomplexiteits klassenTijdcomplexiteits klassen
Complexiteits klasse TIME(t(n))
als t : 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 tot TIME(n log n)]
![Page 17: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/17.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Tijdcomplexiteits klassenTijdcomplexiteits klassen
Complexiteits klasse P
P = ∪k TIME( nk ) = { L : L wordt beslist door
een Tm in polynomiale tijd }
= de verzameling van alle talen beslist in
polynomiale tijd
Nb: P is onafhankelijk van het precieze
deterministische machine model,
dwz P is een robuuste complexiteitsklasse)
![Page 18: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/18.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Tijdcomplexiteits klassenTijdcomplexiteits klassen
Complexiteits klasse NP
NP = ∪k NTIME( 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
![Page 19: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/19.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Complexiteit van probleemComplexiteit van probleem
Nb: complexiteit probleem doet uitspraak over complexiteit van alle algoritmen voor het probleem
Complexiteit beslissings probleem Probl
worst-case complexiteit van het beste algoritme voor
oplossing van Probl :
fProbl(n) = min { fA(n) : A is een algoritme voor Probl }
![Page 20: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/20.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
(On)Doenlijke problemen(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 polynomiaal algoritme voor het probleem bestaat.
• waarom onderscheid: kijk naar volgende tabel
![Page 21: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/21.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Tijdcomplexiteits functiesTijdcomplexiteits functies
tijd
complexiteit
huidig systeem 10x sneller systeem
1000 x sneller
systeem
O(n) n1 10 n1 1000 n1
O(n2) n2 3.16 n2 31.6 n2
O(n3) n3 2.15 n3 10 n3
O(2n) n4 n4 + 3.32 n4 + 9.97
O(n!) n5 < n5+1
(voor n >10)
< n5+1
(voor n >1000)
omvang grootste instantie oplosbaar in t tijdseenheden
![Page 22: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/22.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Doenlijk (P) vss ondoenlijkDoenlijk (P) vss ondoenlijk
• 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.
• voor doenlijke problemen is speed-up wel van belang:
Stel probleem heeft tijdcomplexiteit nk 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 c1/k.m opgelost worden.
![Page 23: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/23.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Centraal probleem: P = NP?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.
![Page 24: Fundamentele Informatica IN3120](https://reader036.fdocuments.in/reader036/viewer/2022081515/5681489a550346895db5af36/html5/thumbnails/24.jpg)
TU
Delft
Gro
ep P
ara
llelle
en G
edis
trib
ueerd
e S
yst
em
en
Wat doen we hierna?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