Ninety-nine bottles. Femte forelesning. I dagens forelesning: Mest matematiske verktøy. Først: Asymptotisk notasjon. Så: Rekurrensligninger.

Like dokumenter
Spenntrær, oppsummert: Kruskal: Traverserer ikke. Plukker kanter i hytt og vær Prim: Legger alltid til den noden som er nærmest treet

n/b log b n = (lg n) a log b n = n log b a

Kjøretidsanalyse. Hogne Jørgensen

Divide-and-Conquer II

deeegimnoorrrsstt Sjette forelesning

LO118D Forelesning 2 (DM)

Øvingsforelesning 3: Splitt og hersk. Daniel Solberg

Ukeoppgaver fra kapittel 10 & Induksjonsbevis

Algdat Redux. Fjortende forelesning. Repetisjon av utvalgte emner.

Divide-and-Conquer. Lars Vidar Magnusson

Analyse av Algoritmer

Grafteori. MAT1030 Diskret matematikk. Induksjonsbevis

MAT1030 Diskret matematikk

Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl

MAT1030 Forelesning 17

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)

Innføring i matematisk analyse av algoritmer

Anbefalte forkunnskaper Studentene forutsettes å kunne programmere, for eksempel ved å ha tatt TDT4100 Objektorientert programmering.

MAT1030 Diskret Matematikk

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

ALGORITMER OG DATASTRUKTURER

Rekurrens. MAT1030 Diskret matematikk. Rekurrens. Rekurrens. Eksempel. Forelesning 16: Rekurrenslikninger. Dag Normann

Heapsort. Lars Vidar Magnusson Kapittel 6 Heaps Heapsort Prioritetskøer

MAT1030 Diskret Matematikk

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

Introduksjon til Algoritmeanalyse

PG4200 Algoritmer og datastrukturer Forelesning 2

Algoritmer - definisjon

Forelesning 4 torsdag den 28. august

PG4200 Algoritmer og datastrukturer Forelesning 3 Rekursjon Estimering

INF2220: Forelesning 2

for bare trær Andre forelesning

Quicksort. Lars Vidar Magnusson Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort

Kompleksitetsanalyse

Løsningsforslag for Obligatorisk Oppgave 1. Algoritmer og Datastrukturer ITF20006

ALGORITMER OG DATASTRUKTURER

INF2220: Forelesning 1

INF2220: Forelesning 1

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer

Repetisjon. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 15: Rekursjon og induksjon. Roger Antonsen

Sekventkalkyle for utsagnslogikk

Forelesning 6 torsdag den 4. september

Kompleksitetsanalyse Helge Hafting Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk

Oppgaver fra forelesningene. MAT1030 Diskret matematikk. Oppgave (fra forelesningen 10/3) Definisjon. Plenumsregning 9: Diverse ukeoppgaver

Enkel matematikk for økonomer. Del 1 nødvendig bakgrunn. Parenteser og brøker

Mengder, relasjoner og funksjoner

ALGORITMER OG DATASTRUKTURER

Pensum: 3. utg av Cormen et al. Øvingstime: I morgen, 14:15

UNIVERSITETET I OSLO

for bare trær Andre forelesning

MAT1030 Diskret Matematikk

Biseksjonsmetoden. biseksjonsmetode. Den første og enkleste iterativ metode for ikke lineære likninger er den så kalt

TMA4140 Diskret Matematikk Høst 2018

deeegimnoorrrsstt Sjette forelesning

Algdat Eksamensforelesning. Nils Barlaug

Algoritmer og Datastrukturer IAI 21899

Algoritmer - definisjon

Forelesning 14. Rekursjon og induksjon. Dag Normann februar Oppsummering. Oppsummering. Beregnbare funksjoner

MAT1030 Diskret matematikk

Avanserte flytalgoritmer

Foilene legges ut her:

Ekstra ark kan legges ved om nødvendig, men det er meningen at svarene skal få plass i rutene på oppgavearkene. Lange svar teller ikke positivt.

Studentnummer: Side 1 av 1. Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005

Plenumsregning 9. Diverse ukeoppgaver. Roger Antonsen april Oppgaver fra forelesningene. Oppgave (fra forelesningen 10/3).

Eksamenshefte TDT4120 Algoritmer og datastrukturer

Forelesning 2 torsdag den 21. august

Underveiseksamen i MAT-INF 1100, 17. oktober 2003 Tid: Oppgave- og svarark

INF-MAT5370. Trianguleringer i planet (Preliminaries)

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Enkel matematikk for økonomer 1. Innhold. Parenteser, brøk og potenser. Ekstranotat, februar 2015

TMA4100 Matematikk 1 Høst 2014

Øvingsforelesning 7. Resten av kombinatorikk, litt modulusregning, rekurrenser og induksjon og MP13 eller MP18. TMA4140 Diskret Matematikk

Definisjon. I et binært tre har hver node enten 0, 1 eller 2 barn

R1 -Fagdag

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Lineære ligningssystemer og gausseliminasjon

Avsluttende eksamen i IT1105/TDT4120 Algoritmer og datastrukturer

MAT1030 Diskret Matematikk

Forelesning 27. MAT1030 Diskret Matematikk. Bevistrær. Bevistrær. Forelesning 27: Trær. Roger Antonsen. 6. mai 2009 (Sist oppdatert: :28)

Lineære ligningssystemer og gausseliminasjon

MAT1030 Diskret Matematikk

LO118D Forelesning 12 (DM)

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Repitisjon av Diverse Emner

Forelesning 7 mandag den 8. september

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

UNIVERSITETET I OSLO

MAT1030 Forelesning 19

Rekursjon og lister. Stephan Oepen & Erik Velldal. 1. februar, Universitetet i Oslo

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

Trianguleringer i planet.

MA1301 Tallteori Høsten 2014 Oversikt over pensumet

Et detaljert induksjonsbevis

MAT1030 Forelesning 25

MAT1030 Diskret Matematikk

Transkript:

I dagens forelesning: Mest matematiske verktøy. Først: Asymptotisk notasjon. Så: Rekurrensligninger. Hva slags kjøretid har denne sangen? Hvordan kan du formulere det som en rekurrensligning? Ninety-nine bottles Femte forelesning 1

?2

x lg y = y lg x lg x lg y = lg y lg x lg y lg x = lg x lg y QED 3

Asymptotisk notasjon «It s Greek to me» 4

O Ω Θ = 5

f O(g) 6

f(n) O(g(n)) 7

f.eks. 3n 2 + 9n + 2 f.eks. n 2 eller n 3 f(n) = O(g(n)) 8

9

[ n ] 2 i=1 x i 2 i,i+1 i+3 3

O(g(n)) = {f(n) c, n 0 > 0 [ n n 0 [ 0 f(n) cg(n) ] ]} 11

O(g(n)) = {f(n) c, n 0 > 0 [ n n 0 [ 0 f(n) cg(n) ] ]} 12

Ω: Omvendt av O 13

14

Θ = O Ω 15

På tavla: Asymptotisk notasjon i ligninger n + O(n) betyr n + f(n) for en eller annen funksjon, der f(n) = O(n) På tavla: Forenkling av pn^2 + qn + r pn^2 + qn^2 +rn^2 = (p + q + r)n^2. Sett c = p + q + r Siden cn^2 cn^3 er funksjonen også O(n^3). 16

Hvis ikke f(n)/g(n) : f er O(g) Nyttig ekstraverktøy. Her kan man f.eks. bruke l Hôpitals regel for å finne en løsning. Hvis ikke f(n)/g(n) 0: f er Ω(g) Hvis f(n)/g(n) c: f er Θ(g) Nyttig: For enhver b>1 og x>0 har vi: log_b n = O(n^x) Merk: Alle grunntall for logaritmer er ekvivalente (gir bare et konstantledd i forskjell). 17

Lineær tid Loglineær (O(n lg n)) Kvadratisk Kubisk O(nk ) Eksponentiell og sublineær tid 18

Hvem er raskest? n 2.5 (2n) 0.5 n + 10 10 n 100 n n 2 lg n (2n) 0.5 n + 10 n 2 lg n n 2.5 10 n 100 n n^2 lg n vs. n^2.5 tilsvarer lg n vs. sqrt(n) 19

http://boingboing.net/2008/02/08/color-tile-optical-i.html Samme farge Samme farge 20

recursive.jpg Kjøretidsberegninger for rekursive algoritmer. (Jfr. tidligere snakk om rekursjon og dekomponering men også induksjon.)! 21

22 Rekurrens-intuisjon på tavla? (Bruk av den rekursive definisjonen til å omskrive ledd i definisjonen selv )

T (L) = T ( L 2 ) + W (L) L 2 23 L

= = + = + 24

T (L) = T (L/2) + W (L) = [T (L/4) + W (L/2)] + W (L) = [[T (L/8) + W (N/4)] + W (N/2)] + W (L). = T (L/2 i ) + W (L/2 i 1 ) +... + W (L) Sett i = lg L = T (L/2 lg L ) + W (L/2 lg L 1 ) +... + W (L) = T (1) + W (2) +... + W (L) (Vi går videre snart... ) 25

T (L) = T (L/2) + W (L) = [T (L/4) + W (L/2)] + W (L) = [[T (L/8) + W (N/4)] + W (N/2)] + W (L). = T (L/2 i ) + W (L/2 i 1 ) +... + W (L) Sett i = lg L = T (L/2 lg L ) + W (L/2 lg L 1 ) +... + W (L) = T (1) + W (2) +... + W (L) (Vi går videre snart... ) 26

HUSK! n 1 n log 2 n n 2 n 2 = n 1 1 1 n 27

[ n ] 2 i=1 x i 2 i,i+1 i+3 3

T (n) = 1 if n = 1 2T (n/2) + n if n > 1 T (n) = n lg n + n 29

T (n) = 0 if n = 2 T ( n) + 1 if n > 2 T (n) = lg lg n 30

T (n) = 1 if n = 1 T (n/3) + T (2n/3) + n if n > 1 T (n) = (n lg n) 31

T (n) = 1 if n = 1 T (n 1) + 1 if n > 1 T (n) = n 32

«Simulering»: Iterasjonsmetoden/rekurrenstrær Forklarer iterasjonsmetoden her. Rekurrenstrær er bare en måte å tegne opp det som skjer på. Induksjon: Substitusjonsmetoden «Kokebok»: Masterteoremet Preprosessering: Variabelskifte (litt avansert) 33

Iterasjon 34

T (n) = T (n 1) + 1 = [T ([n 1] 1) + 1] + 1 = T (n 2) + 2 = T (n 3) + 3... = T (n i) + i Sett i = n 1 for å få T (1) = T (1) + n 1 = n 35

T (n) = T (n 1) + 1 = [T ([n 1] 1) + 1] + 1 = T (n 2) + 2 = T (n 3) + 3 T (x)... = T (x 1) + 1; x = n 1 = T (n i) + i Sett i = n 1 for å få T (1) = T (1) + n 1 = n 36

T (n) = T (n 1) + 1 = [T ([n 1] 1) + 1] + 1 = T (n 2) + 2 = T (n 3) + 3 T (x)... = T (x 1) + 1; x = n 1 = T (n i) + i Sett i = n 1 for å få T (1) = T (1) + n 1 = n 37

T (n) = T (n 1) + 1 = [T ([n 1] 1) + 1] + 1 = T (n 2) + 2 = T (n 3) + 3... = T (n i) + i Sett i = n 1 for å få T (1) = T (1) + n 1 = n 38

T (n) = 2T (n/2) + n = 2[2T ([n/2]/2) + [n/2]) + n = 4T (n/4) + 2n = 8T (n/8) + 3n... = 2 i T (n/2 i ) + in Sett i = lg n for å få T (1) = n (1) + n lg n = (n lg n) 39

T (n) = 2T (n/2) + n Hmm... = 2[2T ([n/2]/2) + [n/2]) + n = 4T (n/4) + 2n = 8T (n/8) + 3n... = 2 i T (n/2 i ) + in Sett i = lg n for å få T (1) = n (1) + n lg n = (n lg n) 40

Aha! n 1 n log 2 n n 2 n 2 = n Hva blir høyden multiplisert med radsummen her? 1 1 1 n Denne typen rekursjonstrær (og iterasjonsmetoden) kan brukes til å gjette løsninger som kan bevises med induksjon. 41

Substitusjon 42

«Gjett» en løsning Bevis korrekthet med induksjon 43

Induksjon Vil vise P(n) for vilkårlig n Bevis grunntilfelle, P(1) Anta P(k) for k < n Vis at dette medfører P(n) Vi har da P(1), og vet at det medfører P(2), som medfører P(3), osv. 44

T (n) = 1 if n = 1 T (n 1) + 1 if n > 1 Vil vise: T (n) = n Basis: T (1) = 1 Induksjonshypotese: T (k) = k, k < n 45

T (n) = T (n 1) + 1 IH: T (k) = k, der k = n 1 = n 1 + 1 = n QED 46

T (n) = T (n 1) + 1 IH: T (k) = k, der k = n 1 = n 1 + 1 = n QED 47

T (n) = 1 if n = 1 2T (n/2) + n if n > 1 Vil vise: T (n) = n lg n + n Basis: T (n) = 1 = 1 lg 1 + 1 Hypotese: T (k) = k lg k + k, k < n 48

T (n) = 2T ( n 2 ) + n = 2 n 2 lg n 2 + n 2 + n (IH.) = n lg n 2 + n + n = n(lg n lg 2) + n + n = n lg n n + n + n = n lg n + n QED Finurligheter og detaljer på tavla. 49

T (n) = 2T ( n 2 ) + n = 2 n 2 lg n 2 + n 2 + n (IH.) = n lg n 2 + n + n = n(lg n lg 2) + n + n = n lg n n + n + n = n lg n + n QED Finurligheter og detaljer på tavla. 50

Den eksakte formen må bevises! Hvis du ender opp med noe som er nesten det samme (f.eks. ved bruk av asymptotisk notasjon) er ikke beviset gyldig! 51

Ikke i Kleinberg men kan være nyttig for dem som har valgt Kleinberg likevel. Masterteoremet 52

T (n) = at (n/b) + f(n) Antall «barn»: Størrelse per «barn»: «Høyde»: a n/b log b n = (lg n) Rota har f(n) arbeid; hver løvnode har en konstant mengde arbeid. Hva vil dominere totalen? Det kommer an på forholdet mellom f(n) og antallet løvnoder. Antall «løvnoder»: a log b n = n log b a Husk uttrykket for antall løvnoder! 53

Tilfelle 1: Løvnodene dominerer Da blir kostnaden (n log b a ) Det skjer når f(n) = O(n log b a ) 54

Tilfelle 2: «Dødt løp» Da blir kostnaden Det skjer når (n log b a lg n) Samme kostnad i hvert nivå (dvs. det samme som løvnodene); vi ganger med høyden. f(n) = (n log b a ) 55

Det finnes en c < 1 s.a. af(n/b) cf(n), for store nok verdier n Det vil intuitivt si at f-en krymper nedover i treet. 56 f(n) er da regulær

Tilfelle 3: Rota dominerer Da blir kostnaden Det skjer når (f(n)) Regulariteten innebærer, for en c < 1 og store n: a*f(n/b) c*f(n). Trenger ikke sjekkes hvis f(n) er polynomisk (dvs. n^k). f(n) = (n log b a+ ) 57 f(n) må være regulær!

T (n) = 1 if n = 1 2T (n/2) + n if n > 1 a = 2 b = 2 log b a = 1 n log b a = n f(n) = n = (n log b a ) Her er det dødt løp, så vi får høyde * antall løvnoder = høyde * radsummen, som vi jo kjenner så godt fra treet vårt T (n) = (n log b a lg n) = (n lg n) 58

T (n) = 1 if n = 1 2T (n/2) + n if n > 1 a = 2 b = 2 log b a = 1 n log b a = n f(n) = n = (n log b a ) Her er det dødt løp, så vi får høyde * antall løvnoder = høyde * radsummen, som vi jo kjenner så godt fra treet vårt T (n) = (n log b a lg n) = (n lg n) 59

Variabelskifte 60

Flytter oss til «en enklere verden» Skift funksjon og variabel; går «opp i opp» T(n) = S(m) F.eks. m = lg n, S(m) = T(2m ) 61

T (n) = 2T ( n) + lg n [m = lg n] T (2 m ) = 2T (2 m/2 ) + m [S(m) = T (2 m )] S(m) = 2S(m/2) + m = O(m lg m) T (n) = O(lg n lg lg n) 62

T (n) = 2T ( n) + lg n [m = lg n] T (2 m ) = 2T (2 m/2 ) + m [S(m) = T (2 m )] S(m) = 2S(m/2) + m = O(m lg m) T (n) = O(lg n lg lg n) Legg merke til at alle venstresidene (og høyresidene, for den saks skyld) er like. 63