Tommy Färnqvist, IDA, Linköpings universitet

Relevanta dokument
TDDI16 Datastrukturer och algoritmer. Algoritmanalys

Datastrukturer och algoritmer

Analys av algoritmer. Beräkningsbar/hanterbar. Stora Ordo. O(definition) Datastrukturer och algoritmer. Varför analysera algoritmer?

Tommy Färnqvist, IDA, Linköpings universitet. 2 Rekursion i C Implementation av rekursion Svansrekursion En till övning...

Genomsnittligt sökdjup i binära sökträd

Induktion LCB Rekursion och induktion; enkla fall. Ersätter Grimaldi 4.1

MS-A0409 Grundkurs i diskret matematik Sammanfattning, del I

Tentamen i Sannolikhetsteori III 13 januari 2000

Statistisk analys. Vilka slutsatser kan dras om populationen med resultatet i stickprovet som grund? Hur säkra uttalande kan göras om resultatet?

vara ett polynom där a 0, då kallas n för polynomets grad och ibland betecknas n grad( P(

Uppgifter 3: Talföljder och induktionsbevis

ENDIMENSIONELL ANALYS B1 FÖRELÄSNING VI. Föreläsning VI. Mikael P. Sundqvist

Föreläsning 10: Kombinatorik

H1009, Introduktionskurs i matematik Armin Halilovic POLYNOM, POLYNOMDIVISION, ALGEBRAISKA EKVATIONER, PARTIALBRÅKSUPPDELNING. vara ett polynom där a

Egna funktioner. Vad är sin? sin är namnet på en av många inbyggda funktioner i Ada (och den återfinns i paketet Ada.Numerics.Elementary_Functions)

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Borel-Cantellis sats och stora talens lag

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU

MS-A0409 Grundkurs i diskret matematik I

Föreläsningar 7,8 sept 24, sept 26 v 39). delvis DD Chapter 6.

Design mönster. n n n n n n. Command Active object Template method Strategy Facade Mediator

SANNOLIKHETER. Exempel. ( Tärningskast) Vi har sex möjliga utfall 1, 2, 3, 4, 5 och 6. Därför är utfallsrummet Ω = {1, 2, 3, 4, 5,6}.

c n x n, där c 0, c 1, c 2,... är givna (reella eller n=0 c n x n n=0 absolutkonvergent om x < R divergent om x > R n n lim = 1 R.

Uppsala Universitet Matematiska Institutionen Bo Styf. Genomgånget på föreläsningarna Föreläsning 26, 9/2 2011: y + ay + by = h(x)

Vad är det okända som efterfrågas? Vilka data är givna? Vilka är villkoren?

Sannolikheten. met. A 3 = {2, 4, 6 }, 1 av 11

b 1 och har för olika värden på den reella konstanten a.

Programkonstruktion och Datastrukturer

F10 ESTIMATION (NCT )

Digital signalbehandling Fönsterfunktioner

Minsta kvadrat-metoden, MK. Maximum likelihood-metoden, ML. Medelfel. E(X i ) = µ i (θ) MK-skattningen av θ fås genom att minimera

Inledande matematisk analys. 1. Utred med bevis vilket eller vilka av följande påståenden är sana:

Tommy Färnqvist, IDA, Linköpings universitet

DEL I. Matematiska Institutionen KTH

Digitalteknik F6. Några sammansatta digitala komponenter och lite designmetodik. Digitalteknik F6 bild 1

Inledande matematisk analys (TATA79) Höstterminen 2016 Föreläsnings- och lekionsplan

Bertrands postulat. Kjell Elfström

Sannolikhetslära. c 2015 Eric Järpe Högskolan i Halmstad

Sökning och sortering

Induktion och Binomialsatsen. Vi fortsätter att visa hur matematiska påståenden bevisas med induktion.

H1009, Introduktionskurs i matematik Armin Halilovic. använder vi oftast induktionsbevis.

Skattning / Inferens. Sannolikhet och statistik. Skattning / Inferens. Vad är det som skattas?

Systemdesign fortsättningskurs

Linjär Algebra (lp 1, 2016) Lösningar till skrivuppgiften Julia Brandes

Block 2: Linjära system

Grundläggande matematisk statistik

Algoritmanalys. Inledning. Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016

1. Hur gammalt är ditt barn?

Innehåll Grafräknaren och diskret matematik...1 Vad handlar diskret matematik om?...1 Permutationer och kombinationer...3 Något om heltalsräkning...

Lösningar och kommentarer till uppgifter i 1.1

Tentamen i Statistik, STA A13 Deltentamen 2, 5p 20 januari 2007, kl

Tentamen i Linjär Algebra, SF december, Del I. Kursexaminator: Sandra Di Rocco. Matematiska Institutionen KTH

Asymptotisk komplexitetsanalys

1. Hur gammalt är ditt barn?

Tommy Färnqvist, IDA, Linköpings universitet

a) Beräkna E (W ). (2 p)

Enkel slumpvandring. Sven Erick Alm. 9 april 2002 (modifierad 8 mars 2006) 2 Apan och stupet Passagesannolikheter Passagetider...

Tentamen Metod C vid Uppsala universitet, , kl

Kontrollskrivning 3 i SF1676, Differentialekvationer med tillämpningar. Tisdag kl 8:15-10

vara ett polynom där a 0, då kallas n för polynomets grad och ibland betecknas n = grad( P(

SAMMANFATTNING TAMS79 Matematisk statistik, grundkurs

Anmärkning: I några böcker använder man följande beteckning ]a,b[, [a,b[ och ]a,b] för (a,b), [a,b) och (a,b].

Kompletterande kurslitteratur om serier

Datorövning 2 Fördelningar inom säkerhetsanalys

Digital signalbehandling Alternativa sätt att se på faltning

LÖSNINGAR TILL. Räkningar: (z i z) 2 = , Δ = z = 1 n. n 1. Konfidensintervall:

REGULJÄRA SPRÅK (8p + 6p) 1. DFA och reguljära uttryck (6 p) Problem. För följande NFA över alfabetet {0,1}:

Introduktion till statistik för statsvetare

2. Konfidensintervall för skillnaden mellan två proportioner.

Datorövning 2 Fördelningar inom säkerhetsanalys

Duo HOME Duo OFFICE. Programmerings manual SE

Tentamen CD5370 Algoritmanalys, 5 p 8 aug 2002 kl

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

1. (a) Eftersom X och Y har samma fördelning så har de även samma väntevärde och standardavvikelse. E(X 2 ) = k

Algoritmer, datastrukturer och komplexitet

101. och sista termen 1

Tentamenskrivning, , kl SF1625, Envariabelanalys för CINTE1(IT) och CMIEL1(ME ) (7,5hp)

Magnus Nielsen, IDA, Linköpings universitet

Föreläsning G04: Surveymetodik

1. Test av anpassning.

Tentamen i Statistik STG A01 (12 hp) 5 mars 2010, kl

RESTARITMETIKER. Avsnitt 4. När man adderar eller multiplicerar två tal som t ex

Stokastiska variabler

S0005M V18, Föreläsning 10

Hambley avsnitt 12.7 (även 7.3 för den som vill läsa lite mer om grindar)

Vikingen FutureLook. Delphi Finansanalys AB

Databaser - Design och programmering. Databasdesign. Funktioner. Relationsmodellen. Relationsmodellen. Funktion = avbildning (mappning) Y=X 2

Kontrakt baserad design. Design by contract

Föreläsning 5 Innehåll

4. Uppgifter från gamla tentor (inte ett officiellt urval) 6

Lycka till! I(X i t) 1 om A 0 annars I(A) =

Återanvändning. Två mekanismer. Nedärvning av egenskaper (inheritance) Objekt komposition

TAMS79: Föreläsning 9 Approximationer och stokastiska processer

Programmering för språkteknologer II, HT2014. Rum

Föreläsning 6: Introduktion av listor

(a) om vi kan välja helt fritt? (b) om vi vill ha minst en fisk av varje art? (c) om vi vill ha precis 3 olika arter?

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Matematisk statistik TMS063 Tentamen

Föreläsning 2 Datastrukturer (DAT037)

b) Bestäm det genomsnittliga antalet testade enheter, E (X), samt även D (X). (5 p)

Transkript:

Föreläsig 2 Algoritmaalys TDDC70/91: DALG Utskriftsversio av föreläsig i Datastrukturer och algoritmer 5 september 2013 Tommy Färqvist, IDA, Liköpigs uiversitet 2.1 Iehåll Iehåll 1 Aalys av värsta fallet 1 1.1 Iterativa algoritmer...................................... 2 1.2 Rekursiva algoritmer..................................... 3 1.3 Valiga tillväxttakter..................................... 4 2 Aalys av medelfallet 4 2.1 Amorterad aalys....................................... 5 2.2 Olika tekiker Fråga gäller: tillväxttakte hos... miesavädig exekverigstid Situatioer att aalysera: värsta fallet, bästa fallet, förvätade fallet, amorterat: e sekves av arop till algoritme Tekiker: algebraiskt (räka iteratioer) lös rekurresrelatioer (rekursiva algoritmer) probabilistisk aalys (lista ut beteedet i medelfallet) 2.3 1 Aalys av värsta fallet Algoritmaalys hur då? E algoritm bör (ormalt) fugera för idata av godtycklig storlek. Beskriv resursförbrukige (tid/mie) som e icke avtagade fuktio av idatastorlek. Fokusera på beteedet i värsta fallet! Igorera kostata faktorer aalyse bör vara maskioberoede; kraftfullare CPU uppsabbig med kostat faktor. Studera skalbarhet/asymptotiskt beteede för stora problemstorlekar: igorera lägre ordiges termer, fokusera på domierade termer. 2.4 1

1.1 Iterativa algoritmer Exekverigstid för iterativa algoritmer Elemetära operatioer: begräsade av kostat tid tilldela ett värde till e variabel aropa e fuktio/metod/procedur utföra e aritmetisk operatio jämföra två tal idexera i e array följa e objektreferes returera frå e fuktio/metod/procedur Sekveser av operatioer: summa av kompoetera Loop (for... och while... ): tide (i värsta fallet) av villkoret plus kroppe gåger atalet iteratioer (i värsta fallet) N: t while = N (t cod +t body ) Villkorssats (if... the... else): tide (i värsta fallet) för att evaluera villkoret plus de maximala tide (i värsta fallet) av de två greara t i f = t cod + max(t the,t else ) Algoritmaalys hur i praktike? 1: fuctio FIND(A[1,...,],t) 2: for i 1 to do 3: if A[i] == t the 4: retur true 5: retur false Hur ser värstafallsistase ut? Exempel: Två loopar 1: fuctio FIND(A[1,...,],B[1,...,],t) 2: for i 1 to do 3: if A[i] == t the 4: retur true 5: for i 1 to do 6: if B[i] == t the 7: retur true 8: retur false Hur ser värstafallsistase ut? Exempel: Två ästlade loopar 1: fuctio COMMON(A[1,...,],B[1,...,]) 2: for i 1 to do 3: for j 1 to do 4: if A[i] == B[ j] the 5: retur true 6: retur false Hur ser värstafallsistase ut? Exempel: Två adra ästlade loopar 1: fuctio DUPLICATE(A[1,..., ]) 2: for i 1 to do 3: for j i + 1 to do 4: if A[i] == A[ j] the 5: retur true 6: retur false Hur ser värstafallsistase ut? 2.5 2.6 2.7 2.8 2.9 2

Exempel: Biärsökig Trivialt att implemetera? Första algoritme publicerad 1946; första buggfria publicerad 1962. Java-bugg i Arrays.biarysearch() upptäckt 2006. Värstafallstid: c 1 + maxit c 2 + c 3, där maxit är maximalt atal iteratioer av while-loope. 2.10 1.2 Rekursiva algoritmer Exekverigstid för rekursiva algoritmer Karakterisera exekverigstide med e rekurresrelatio Fi e lösig (på slute form) till rekurresrelatioe Om du ite käer ige rekurresrelatioe ka du Rulla upp relatioe ågra gåger för att få fram e hypotes om e möjlig lösig: T () =... Bevisa hypotese om T () med matematisk iduktio. Om det ite går bra, modifiera hypotese och prova ige... 2.11 Exempel: Fakultetsfuktioe fuctio FACT() if = 0 the retur 1 else retur FACT( 1) Exekverigstid: tid för jämförelse: t c tid multiplikatio: t m tid för arop och retur försummas Total exekverigs tid T (). T (0) = t c T () = t c +t m + T ( 1), om > 1 Alltså, för > 0: T () = (t c +t m ) + (t c +t m ) + T ( 2) = = (t c +t m ) + (t c +t m ) + (t c +t m ) + T ( 3) =... = = (t c +t m ) +... + (t c +t m ) +t c = (t c +t m ) +t c O() }{{} ggr 2.12 Exempel: Biärsökig fuctio BINSEARCH(v[a,..., b],x) if a < b the m a+b 2 if v[m].key < x the retur BINSEARCH(v[m + 1,...,b],x) else retur BINSEARCH(v[a,...,m],x) if v[a].key = x the retur a else retur ot foud 3

Låt T () vara tide, i värsta fall, att söka blad tal med BINSEARCH. { Θ(1) om = 1 T () = T ( 2 ) + Θ(1) om > 1 Om = 2 m får vi Vi ka då sluta oss till att T () = Θ(log). { Θ(1) om = 1 T () = T ( ) 2 + Θ(1) om > 1 2.13 Mästarmetode Sats 1 ( Master theorem ). Om a 1, b > 1, d > 0 så har rekurresrelatioe { T () = ( at b ) + f () T (1) = d de asymptotiska lösige T () = Θ( log b a ) om f () = O( log b a ε ) för ågot ε > 0 T () = Θ( log b a log) om f () = Θ( log b a ) T () = Θ( f ()) om f () = Ω( log b a+ε ) för ågot ε > 0 och a f ( b ) c f () för ågo kostat c < 1 för alla tillräckligt stora. 2.14 1.3 Valiga tillväxttakter Valiga tillväxttakter tillväxttakt typisk kod beskrivig exempel T (2)/T () 1 a = b + c sats lägga ihop två tal 1 log 2 while ( > 1) dela på { = / 2;...} hälfte biärsökig 1 for (it i = 0; i <, i++) hitta loop maximum 2 log 2 se föreläsig om mergesort divide ad coquer mergesort 2 for (it i = 0; i <, i++) dubbel kolla 2 for (it j = 0; j <, j++) loop alla par 4 for (it i = 0; i <, i++) for (it j = 0; j <, j++) trippel- kolla alla 3 for (it k = 0; k <, k++) loop tripplar 8 2 se sista föreläsige totalsökig kolla alla delmägder T () 2.15 2 Aalys av medelfallet Medelfallsaalys Betrakta TABLESEARCH: sekvesiell sökig i e tabell Idata: ett av tabellelemete, atag att det är valt med likformig saolikhet över alla elemet. fuctio TABLESEARCH(T [0,..., 1],K) for i 0 to 1 do if T [i] = K the retur i. Förvätad söktid t c + 2t c + 3t c +... + t c = = (1 + 2 + 3 +... + )t c ( + 1) t c = + 1 2 2 t c O() = 2.16 4

2.1 Amorterad aalys E utökigsbar array Vi vill ha e y typ av array som ökar si storlek är de blivit full (atalet elemet isatta,, är samma som kapacitete, N). Atag att isättig hela tide sker i arrayes första lediga positio. Vi aväder följade strategi: Allokera e y array B med kapacitet 2N Kopiera A[i] till B[i], för i = 0,...,N 1 Låt A = B, dvs vi låter B ta över rolle A har haft. I termer av effektivitet kaske det här sättet att utöka arraye verkar lågsamt. Me, tide för att lägga till ett ytt elemet blir O(1) i de flesta falle O() för kopierig av elemet och O(1) för isättig är reallokerig behövs. 2.17 Amorterad aalys Geom att aväda amorterig ka vi visa att körtide för e sekves av operatioe att lägga till ett elemet till vår utökigsbara array faktiskt är gaska effektiv. Propositio 2 (6.2 i kursboke). Låt S vara e tabell implemeterad med hjälp av e utökigsbar array A, som ova. De totala tide för att sätta i elemet i S, med start frå e tom tabell S (vilket betyder att A har kapacitet N = 1) är O(). 2.18 5