© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 6 Asymtotisk analys.

Slides:



Advertisements
Liknande presentationer
Idéer för ett bredare entreprenörskap
Advertisements

Talföljder formler och summor
MaB: Andragradsfunktioner
F3 Matematikrep Summatecknet Potensräkning Logaritmer Kombinatorik.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 4.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning
Numeriska beräkningar i Naturvetenskap och Teknik
Funktioner och programorganisation
2D1311 Programmeringsteknik med PBL
Programmeringsteknik Föreläsning 13 Skolan för Datavetenskap och kommunikation.
DAB752: Algoritmteori Leif Grönqvist
Föreläsning 7 Analys av algoritmer T(n) och ordo
P-uppgiften: regler, planering och specifikation
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 4.
Föreläsning 1.
Algoritmer och datastrukturer
Programmeringsteknik K och Media
DoA VT -07 © Anders Broberg, Lena Kallin Westin, P = ((C,F,3), (B,D,3), (C,G,4),(A,F,4), (A,R,4), (C,D,5), (E,G,6), (B,R,6), (A,E,6), (A,C,8)) A.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 1.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 1.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 7 Träd.
Realtidsprog. - Anders Arvidsson1 Realtidsprogrammering En introduktion – Implementering (med exempel från PIC)
Algoritm analys och rekursiva metoder kap 5,7
Metodmöte den 8 juni 2007 Definitioner TSV Pirjo Svedberg MMS.
Ljus och Färger Ljuskällors egenskaper Olika typer av ljuskällor
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Eleven i centrum Mille Millnert. 2 juni Hur har jag tänkt för att utforma LiU:s strategi Nuläge Utmaningar och trender Något om strategier Strategisk.
Detection of similarity between documents Axel Bengtsson Ola Olsson
1 ITK:P1 Föreläsning 7 Algoritmer och datastrukturer DSV Marie Olsson.
Språkteknologiska metoder Språkteknologisk forskning och utveckling (HT 2006)
Felkalkyl Ofta mäter man inte direkt den storhet som är den intressanta, utan en grundläggande variabel som sedan används för att beräkna det som man är.
Grundlägande statistik,ht 09, AN1 F5 Kombinatorik (KW 1.6) Ex.: På en matsedel finns tre förrätter, två huvudrätter och två efterrätter. På hur många olika.
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Diskreta, deterministiska system Projekt 1.2; Vildkatt
Algoritmer. Ordet kommer från en persisk författare som kom från al’Khowârizmi (engelskans algorithm). Han skrev boken ’Kitab al jabr w’al-muqabala’.
Experimentell utvärdering Språkteknologisk forskning och utveckling (HT 2006)
Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Bredden-först exempel ABCD EFGH IJKL MNOP = Obesökt.
För utveckling av verksamhet, produkter och livskvalitet. -Algoritmer och Datastrukturer- -Algoritm analys och sökning algoritmer- Kap 5 -Algoritmer och.
Centrala Gränsvärdessatsen:
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
Fysikexperiment 5p Föreläsning Korrelationer Ett effektivt sätt att beskriva sambandet mellan två variabler (ett observationspar) är i.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 11 Trie, Sökning och Sökträd.
Logikprogrammering 21/10 Binära träd
Datastrukturer och algoritmer
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 16.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 13.
Föreläsning 11 Logik med tillämpningar Innehåll u Generell resolution u Kapitel i Ben-Ari.
Föreläsning 9 Logik med tillämpningar Innehåll u Semantiska tablåer i predikatlogiken u Klausulform u Herbrandmodeller u Kapitel 3.5,
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Satslogik, forts. DAA701/716 Leif Grönqvist 5:e mars, 2003.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Sorterings algoritmer.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 9 Grafalgoritmer.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 13 Sortering.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 10.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 14.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 8 Relationer, prioritetsköer och grafer.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 16.
Algoritmer och loopar Algoritmer, beräkningsbarhet
Lars Madej  Talmönster och talföljder  Funktioner.
Algoritmer och datastrukturer Föreläsning 8 Tidskomplexitet (Weiss kap
Kap 1 - Algebra och funktioner
Beräkningsvetenskap I
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003
Y 4.5 Uttryck med potenser 3 ∙ 3 ∙ 3 ∙ 3 ∙ 3 = 35 x ∙ x ∙ x ∙ x = x4
Presentationens avskrift:

© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 6 Asymtotisk analys

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Innehåll  Sammanfattning experimentell analys  Asymtotisk analys  Lite matte  Analysera pseudokoden  O-notation oStrikt o”Okulärbesiktning”

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Mäta tidsåtgången  Hur ska vi mäta tidsåtgången?  Experimentell analys oImplementera algoritmen oKör programmet med varierande datamängd –Storlek –Sammansättning oAnvänd metoder för tidtagning så som System.currentTimeMillis() oPlotta uppmätt data

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Alla (mattematiska)problem Beräkningsbar/hanterbar BeräkningsbaraEj beräkningsbara Icke hanterbara - superpolynom (n!, n n, …) Hanterbara - polynom 1+n 2 +3*n

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Exekveringstider - en dator med 1 MIPS, 1*10 6 op/sek N2N2 1/100001/25001/4001/1009/100 N5N5 1/103.2 sek.5.2 min.2.8 tim.28.1 dag. 2N2N 1/10001 s35.7 år40000 billioner år 7500 siffror år N 2.8 tim.3.3 billioner år 7000 siffror år siffror år siffror år Drygt 10 miljarder  s på en dag 1*10 24  s sedan ”Big Bang”

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Experimentell analys…  Begränsningar med metoden  Måste implementera och testa algoritmen  Svårt att veta om programmet har stannat eller fast i beräkningarna. T ex. 2 n ; n=100 => billioner år  Experimenten kan endast utföras på en begränsad mängd av data, man kan missa viktiga testdata  Hårdvaran och mjukvaran måste vara den samma för alla implementationer

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Generellare metod behövs  Som använder en högnivåbeskrivning av algoritmerna istället för en implementation av den  Tar hänsyn till alla möjliga indata  Analys oberoende av hårdvaran och mjukvaran

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Asymtotisk analys  Utgår från pseudokoden  Räkna operationer  Ställ upp ett uttryck för antalet operationer beroende av problemstorleken  Förenkla tidsuttrycket  Ta fram en funktion som begränsar tidsuttrycket ovanifrån…

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Lite matematik behövs…  Logaritmer  log b (xy) = log b (x) + log b (y)  log b (x/y) = log b (x) - log b (y)  log b (x  ) =  log b (x)  log b (a) =log a (x)/log a (b)

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Kanske lite mer…  Exponenter

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Och ännu mer matte…  Summor är bra att kunna…  Generell definition  Geometrisk utveckling (n≥0 och 0<a ≠ 1) oVäxer exponentiellt

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Sista matten för denna gång…  Aritmetisk tillväxt, summera alla tal från 1 t o m n0123n n 1 n+1 01n/2

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Analys av algoritmer  Primitiva operationer  Lågnivå beräkningar som är i stort sett oberoende av programspråk och kan definieras i termer av pseudokod: oAnropa en metod/funktion oReturnera från en metod/funktion oUtföra en aritmetisk operation (+, -, …) oJämföra två tal, etc. oReferera till en/ett variabel/objekt oIndexera i en array

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Mer analys av algoritmer…  Inspektera pseudokoden och räkna antalet primitiva operationer.  Väldig abstraktion, vi bortser från hårdvaran, och att olika operationer tar olika lång tid, …  Alternativet är att titta på de verkliga tiderna för de olika operationerna  Ger en maskinberoende analys

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Exempel Algorithm arrayMax(A,n) input: An array A storing n integers output: The maximum element in A currentMax  A[0] for i  1 to n-1 do if currentMax < A[i] then currentMax  A[i] return currentMax //1+1+n(1+1+1)+(n-1)*([]+1) //1+1 //1+1 ?? //1+1+1 // ?? T max (n)= 5+3n+(n-1)*8 +1 = 11n-2 T min (n)= 5+3n+(n-1)*5 +1 = 8n+1

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Jämföra T(n) -egen OH-bild  Rita kurvor för T(n) och jämför…svårt…  Alternativet är asymtotisk notation/analys  Förenkla jämförelsen genom att avrunda T(n)  ≈ 1  3n 2 ≈ n 2

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Stora Ordo Storlek på indata cg(n) f(n) n0n0 f(n) ≤ c*g(n) => f(n) är av O(g(n))

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, O(definition) Definition: Givet funktionerna f(n) och g(n) säger vi att f(n) är O(g(n)) omm f(n) ≤ c*g(n) för n ≥ n 0 och c >0 och n 0 ≥1

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, f(n) är O(g(n))  Varför inte f(n) ≈ O(g(n)) eller f(n) ≈ O(g(n))  Borde vara  f(n) tillhör O(g(n)) ty O(g(n)) är en mängd funktioner, oSe bilden.  Men vi skriver f(n) är O(g(n))

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Mer ordo  f(n) = 7n -3 hitta en funktion som begränsar f(n)?  Oändligt många, hitta den ”minsta”  Droppa allt utom den ledande termen dvs. lägre ordningens termer och konstanter o7n-3 är O(n) o8n 2 log(n) + 5n 2 +n är O(n 2 log(n))  Konstanterna c och n 0 ?  Vi återkommer

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Specialla klasser av algoritmer  LogaritmiskaO(log(n))  LinjäraO(n)  KvadradiskaO(n 2 )  PolynomaO(n k ); k≥1  ExponentiellaO(a n ); n≥1  log(n) <<n<<n 2 <<n 3 <<2 n

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Exempel  F(n) = 7n-3 är O(n)  Hitta c  n 0 ?  7n-3≤8n; n 0 =1?  Ok!  Alternativ  Addera de positiva termerna

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, O(sammanfattning)  O(n) används för att utrycka antalet primitiva operationer som utförs som en funktion av storleken på indata  En övre gräns för tillväxt  arrayMax är en linjär algoritm dvs O(n)  En algoritm som körs på O(n) är bättre än en O(n 2 ), men O(log(n)) är bättre än O(n)  log(n) <<n<<n 2 <<n 3 <<2 n

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, O(varning)  Var aktsam, stora konstanter ställer till det  T(n)= n är en linjär algoritm O(n), men i många fall mycket mindre effektiv på data mängder än en algoritm med T(n) = 2n 2 som är O(n 2 )  O-notationen är en stor förenkling, dvs en övre gräns, det finns släktingar som begränsar nedåt  Samt tagit bort kopplingen till hårdvaran.

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, O(genväg)  Man kan många gånger skippa vägen över T(n)  Väldigt grov uppskattning av tillväxten  Man gör en okulärbesiktning av algoritmen oInitiera en array är O(n) oNästlade loopar är O(n)*O(n)*…*O(n)≈O(n k )

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, O(exempel 1) Algorithm prefixAv1(X); Input: An n-element Array of numbers Output: An n-element Array of numbers such that A[i] is the average of X[0],…,X[i]. Let A be an array of numbers for i  0 to n-1 do a  0 for j  0 to i do a  a+X[j] A[i]  a/(i+1) return A Analys: T b (n) = ? T w (n) = ? Men algoritmen är av O(n 2 )

Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, O(exempel 2) Algorithm prefixAv1(X); Input: An n-element Array of numbers Output: An n-element Array of numbers such that A[i] is the average of X[0],…,X[i]. Let A be an array of numbers s  0 for i  0 to n-1 do s  s+X[i] A[i]  s/(i+1) return A Analys: T(n) = ? Men algoritmen är av O(n)