Föreläsning 7 Analys av algoritmer T(n) och ordo

Slides:



Advertisements
Liknande presentationer
Hitta ett preventivmedel som passar just Dig!
Advertisements

Talföljder formler och summor
MaB: Andragradsfunktioner
Andragradsfunktioner & Andragradsekvationer
Närvaro!!.
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
hej och välkomna EKVATIONER Ta reda på det okända talet.
FL4 732G70 Statistik A Detta är en generell mall för att göra PowerPoint presentationer enligt LiUs grafiska profil. Du skriver in din rubrik,
Ruttplanering Vad är det??.
Vad man kan få ut av statistik över alumnerna - några exempel
Acando föreläsning Uppsala caseakademi
Programmeringsteknik Föreläsning 13 Skolan för Datavetenskap och kommunikation.
ERGONOMI Vad är det?.
DAB752: Algoritmteori Leif Grönqvist
Vill du lära dig kort division?
Lag och Rätt.
Speciella Relativitetsteorin
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Algoritmer och datastrukturer
Programmeringsteknik K och Media
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 6 Asymtotisk analys.
Test de la banane: Klicka för att fortsätta Det finns en mycket, mycket hög cocospalm och fyra djur som alla är mycket nära trädet. ett lejon en chimpans.
F11 Olika urvalsmetoder, speciellt obundet slumpmässigt urval (OSU)
Algoritm analys och rekursiva metoder kap 5,7
Problembaserat inlärande eller Problembaserat lärande
MaB: Andragradsekvationer
Programmering B PHP Lektion 2
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Workshop inför Projektet
Detection of similarity between documents Axel Bengtsson Ola Olsson
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Från binära till hexadecimala
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Programmering B PHP Lektion 3
Matematiska resonemang på universitetsnivå – hur ser tentorna ut och vad tycker lärarna? Ewa Bergqvist, Umeå universitet.
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.
Från idé till projektplan
Att sälja Lions Quest-kurser till skolor /14.
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Tredje världskrig Hur kan ett tredje världskrig uppstå och vart kommer Sverige stå? Ellen, Julia, Leo och John.
Enkäten Arbetsmiljöundersökning. Enkät - Massor med problem  Er ”klient” har massor med problem. Ta fram de tre viktigaste.
För utveckling av verksamhet, produkter och livskvalitet. -Algoritmer och Datastrukturer- -Algoritm analys och sökning algoritmer- Kap 5 -Algoritmer och.
Förelasning 6 Hypotesprövning
Kognitiv psykologi Tänk på en situation när det gick riktigt bra för dig. Varför gick det bra? Tänk på en situation när det gick riktigt dåligt för dig.
Läroplansträff Välkomna!.
En mycket vanlig frågeställning gäller om två storheter har ett samband eller inte, många gånger är det helt klart: y x För en mätserie som denna är det.
Logikprogrammering 21/10 Binära träd
Grundkurs i nationalekonomi, Åbo akademi Centralbanker och det monetära systemet.
INTRODUKTION TILL PROGRAMMERING
Statsvetenskap 3, statsvetenskapliga metoder
Problemlösningsmetodik
Prioritets Köer (Priority Queues ), Graph Data Structures & Problem Solving using Java --Kap 21,14.
Ingenjörsmetodik IT & ME 2008
Sannolikhet Stickprov Fördelningar
Föreläsning 7 Fysikexperiment 5p Poissonfördelningen Poissonfördelningen är en sannolikhetsfördelning för diskreta variabler som är mycket.
Karlstads Universitet
Det är en exempel av framtidens datorer men före jag riktigt går in på det ska jag berätta om för i tidens datorer! Framtidens Datorer!
Föreläsning 13 Logik med tillämpningar Innehåll u Aritmetik i Prolog u Rekursiva och iterativa program u Typpredikat u Metalogiska predikat.
Föreläsning2 Operativsystem.
© 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 16.
Vad är en KATA? katatogrow.com.
Bokföring i Tiden består av
1. Genomför enkäten och redovisa resultatet 4. Vid vilka tillfällen fungerar bra eller hyfsat bra redan idag? Vad är det som gör att det funkar vid dessa.
Manada.se Algebra och funktioner. 1.1 Algebra och polynom Förkunskaper: Grundläggande algebra Konjugatregeln och kvadreringsreglerna Andragradsekvationer.
Python.
Algoritmer och datastrukturer Föreläsning 8 Tidskomplexitet (Weiss kap
? ? ? ! 3 min (30 min ex prat) 35 min Nu ska vi tala om dilemman. Ett äkta dilemma är en svår situation som inte förefaller ha någon.
Presentationens avskrift:

Föreläsning 7 Analys av algoritmer T(n) och ordo Problemlösning tillsammans

Varför? Behöver vi verkligen analysera algoritmer med dagens och morgondagens snabba datorer? Om tiden för en algoritm växer som n2 kommer en 100 gånger så snabb dator bara att hinna med 10 gånger så stort problem. Om ett problem växer som 2n är n = 100 olösligt (21001030). En 100 gånger så snabb dator gör att problemet ”bara” tar lika lång tid som 1028 skulle gjort på den gamla datorn. Kan man inte bara testa algoritmerna? Förvisso en mycket bra ide som man inte bör glömma bort. Den har några problem (och en del fördelar): Man måste koda algoritmen (och göra det bra/rättvist) Vilka indata ska vi använda? typiska/slumpmässiga/extrema Med fel algoritm tar problemet för lång tid att testa Det gäller att tänka på overhead om vi använder små dataset.

Ett exempel m = 0 ger T(n) =1 if-satsen ger T(n) = n-1 Vi väljer en karaktäristisk operation och bestämmer hur många gånger den kommer att utföras som funktion av n. Denna funktion kallas komplexitetsfunktionen och skrivs T(n) m = 0 ger T(n) =1 if-satsen ger T(n) = n-1 m = i ger ? …beror på a

Ett exempel till W(n) – worst case, W(n) = n väljer vi if-satsen som karaktäristisk operation W(n) – worst case, W(n) = n B(n) – best case, B(n) = 1 A(n) – average, A(n) = (n+1)/2 A(n) är normalt svår eller omöjlig att bestämma då vi inte vet hur indata kommer att variera. I många tillämpningar är det viktigaste att veta maximal tid. Vi kommer därför att fokusera på W(n) och ofta sätta T(n) = W(n)

Ordo (big-Oh) notation Vi kommer normalt inte veta hur snabb en karaktäristisk operation är då den beror på kompilator, operativsystem och hårdvara. Vi är också mest intresserade av hur problemet växer för stora värden på n. Då kommer den term som växer snabbast att vara den enda viktiga för tillräckligt stora värden på n: T(n) = 3n2 + 2n + 3  3n2 Eftersom vi inte intresserar oss exakt för tidsåtgången för operationen utan vill analysera vår algoritm blir konstanten framför den största termen också ointressant: T(n) = 3n2 + 2n + 3  3n2  n2 Detta resonemang fångas matematiskt upp av ordo-begreppet där T(n) = 3n2 + 2n – 3 = O(n2)

Karakteristiska operationen tar 10-9 s:

Vilken term dominerar Man kan visa och ni kan pröva att: 2n växer snabbare än n7 n7 växer snabbare än n6 om x>y n1,1 växer snabbare än nlogn n0,1 (roten ur n) växer snabbare än logn

Empirisk analys Vi väljer r++ som karaktäristisk operation och kör programmet för olika n: Vi anpassar nu ett generellt tredjegradspolynom till våra data med tex mathematica eller maple: Maple ger oss då: eller: Alltså får vi T(n) = O(n3)

Binär sökning Vi ska nu försöka analysera algoritmen för att bestämma T(n) eller snarare W(n). Vi börjar med observationen att i värsta fall är: T(n) = 1 +T(n/2) och T(1) = 1 Vilket ger: En dubbling av n ökar resultatet med 1 vilket vi kan visa ger: Alltså får vi T(n)=O(log(n))

Analys av rekursiv algoritm

Lösning T(0)=0

Inlämningsuppgifter 7.1 redovisas senast fredag den 15 februari och kan inte redovisas senare.