INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)

Slides:



Advertisements
Liknende presentasjoner
Forskning og utvikling
Advertisements

En innføring i spillet: Lag En Setning
PowerPoint laget av Bendik S. Søvegjarto Konsept, tekst og regler av Skage Hansen.
eDialog24 Operator Nyheter og endringer i versjon Sentinel eDialog24 AS Ingvald Ystgaards vei 3A 7047 Trondheim Telefon: Faks:
@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Kristian Veøy
En innføring i spillet: Dobbeltkrig – Grønn
NYNAIVISME OG IRONI: ERLEND LOE (f. 1969)
Ulike sorteringsmetoder Kompleksitet av dem
PowerPoint laget av Bendik S. Søvegjarto Konsept, tekst og regler av Skage Hansen.
Kryptografi og nettverkssikkerhet
Intro Datalingvistikk i IT – språk, logikk, psykologi Jan Tore Lønning.
Gjenfinningssystemer og verktøy II
Maskin Læring Litt generelt Hva er maskin læring?
@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
Forside A: Diverse B: O -,  - og  -relasjoner C: Pseudo- polynomialitet D: Transitivitet E: Diverse Spørsmål Teoriøving 5, oppgave 1 Åsmund Eldhuset.
Forside Introduksjon Fibonacci-tall Memoisering DP Neste uke Spørsmål Introduksjon til memoisering og dynamisk programmering Åsmund Eldhuset asmunde *at*
Alg. Dat Øvingsforelesning 5 Kompleksitetsanalyse Torbjørn Moralnd
Kompleksitetsanalyse
Forside Motivasjon Analyse Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Kompleksitetsanalyse Åsmund Eldhuset asmunde.
INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)
Corporate Finance Planlegging og kontroll. Investeringsprosessen Vi har hittil bare behandlet en snever del av investeringsprosessen, kun regneteknikker.
Algoritmiske metoder Innhold: Effektivitetsbetraktninger Programmeringsteknikker Datastrukturer Algoritmer tilknyttet datastrukturene Lærebok: Hafting/Ljosland:
Klargjøring fra forrige gang
INF150 Programmering mandag 11.9
1 Kap 08 Kø. 2 Kø - Definisjon En kø (eng queue) er en lineær struktur hvor elementer kan innsetttes kun i den ene enden av listen, kalt bak, og fjernes.
Dynamisk programmering
Grenseverdiregler La L, M, c og k være reelle tall og
INF 295 Algoritmer og datastrukturer Forelesning 21 Merge, Quick og Bøtte, Radix og ekstern sortering Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 1 - kapittel 1 Introduksjon Hans F. Nordhaug (Ola Bø) (Ketil Danielsen, 2007)
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9a Søketrær Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 8 Trær Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Prioritetskø (Heap) Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 11 Når RAM ikke strekker til - B-trær og Utvidbar hashing Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 20 - Kapittel 7 Boble-, innstikk-, Shell-, Heap-, Quick-, Mergesortering Hans Fr. Nordhaug (Ola Bø)
Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 2 - kapittel 1 Hans F. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Andre prioritetskøer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 18 - kap 9 Aktivitetsgrafer
INF 295 Algoritmer og datastrukturer Forelesning 6 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 24 Repetisjon
INF 295 Algoritmer og datastrukturer Forelesning 9b Balanserte (binære) trær Hans Fr. Nordhaug.
INF 295 Forelesning 19 - Dynamisk programmering Korteste vei alle til alle (Floyd) Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
A randomized protocol for signing contracts (extended abstract) S.Even, O. Goldreich, A.Lempel.
Kapping av plater Mål: Vi skal lage komponenter for en møbelfabrikk ut fra standardiserte plater på 12 x 24 dm. Komponentene har lengde og bredde oppgitt.
Hvorfor er gjenbruk så vanskelig? Brukt i In140 Skrevet av Hans Nordhaug Bygger på ”Architectural Mismatch: Why Reuse Is So Hard" i IEEE Software.
Parallellisering av Coin3D for Systems in Motion av Sveinung Thunes.
INF 295 forelesning 12 Repetisjon per 17. februar Hans F. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 5 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 22 Teknikker for algoritmeutvikling Hans Fr. Nordhaug/ Ola Bø.
Sorterings- Algoritmer Algoritmer og Datastrukturer.
Bayesiansk statistikk Petter Mostad Overblikk Tilbakeblikk på sannsynlighetsbegrepet Hvordan gjøre Bayesianske analyser Analyser ved hjelp.
Jæger: Robuste og sikre systemer Høgskolen i Molde Velkommen til INF150 Programmering Foreleser Bjørn Jæger.
Grunnleggende begreper i personopplysningsloven (legaldefinisjoner)
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
Engia.
INF 295 Algoritmer og datastrukturer Web-spider Oblig 3 Hans Fr. Nordhaug (Ola Bø)
Sannsynlighet og kombinatorikk
Matematikk 1 årskurs 26. oktober 2009
Objektorientert design In 140 Sommerville kap 12 – del 1.
INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø.
Introduksjon til in 140 Systemering. In 140 Systemering Forelesninger Rom 112 –Mandag –Torsdag Lærebok: –Sommerville, Ian. Software.
TDT4105 Informasjonsteknologi, grunnkurs
Kompleksitetsanalyse
De fire regneartene.
Utskrift av presentasjonen:

INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)

Introduksjon En algoritme er en klart spesifisert trinnvis framgangsmåte for å løse et problem Når algoritmen er bestemt og korrekt er neste trinn å bestemme krav til tid og plass Kapitlet behandler Hvordan estimere kjøretida Hvordan redusere kjøretida Uforsiktig bruk av rekursjon Effektive algoritmer for å opphøye tall i n-te potens og finne største felles mål.

Analyse av algoritmer Hvordan avhenger av kjøretiden av n, der n er datamengden algoritmen skal håndtere - (n kan være antall bit, byte, heltall eller poster) Best case, Worst case eller Average? Muligheter: 1. Ta tiden 2. Telle antall operasjoner 3. Finne en funksjon som har "samme" veksthastighet som algoritmen Mest brukt er å finne en funksjon som representerer veksthastigheten for worst case

Definisjoner La T(N) være kjøretida for programmet T(N)=O(f(N)) hvis det finnes c og n 0 slik at T(N) =n 0 T(N)=Ω(g(N)) hvis det finnes c og n 0 slik at T(N)>=cg(N) når N>=n 0 T(N)=Θ(h(N)) hvis og bare hvis T(N)=O(h(N)) og T(N)=Ω(h(N)) T(N)=o(p(N)) hvis T(N)=O(p(N)) og T(N) != Ω(p(N)) Da er O(f(n)) øverste grense for kjøretida Ω(g(N)) nedre grense for kjøretiden Θ(h(N)) eksakt kjøretid

Kjøretidskalkulasjoner Ikke knyttet til bestemt programmeringsspråk – bare til algoritme Idealisert datamaskin Alle grunnleggende operasjoner tar like lang tid – 1 tidsenhet for (i=0;i<N;i++){}har kjøretid 2N+2 = O(N) Initialisering=1 Testing gjøres N+1 ganger Inkrementering gjøres N ganger

Kjøretidskalkulasjoner Regler 1. For- looper: kjøretid er kjøretid for setningene i for-loopen ganger antall iterasjoner 2. Nestede looper: Analyser innenfra og ut 3. Påfølgende setninger - legg sammen - den største teller 4. Test: testen pluss den største greina, men bare hvis den største greina er i jevnlig bruk

Eksempler 1. Regne mva for n varer 2. Lage en multiplikasjonstabell 3. Binærsøk 4. Rekursiv fibonacci

Øvre grense for kjøretida O(f(n)) Brukes mest - oppgaven er å finne en f(n) som er enklest mulig. Vi tar bare med leddet som vil dominere når n blir stor. Ved enkel for-løkke T(n)=O(n) fordi T(n)=c 1 *n+c 2 Ved dobbel for-løkke T(n)=O(n 2 ) fordi T(n)=c 1 n 2 +c 2 n+c 3

Regneregler for O Regler hvis T(N)=O(f(N)) og U(N)=O(g(N)) så er T(N)+U(N)=max(O(f(N)),O(g(N))) T(N)*U(N)=O(f(N)*g(N)) hvis T(N) er et polynom av grad k, så er T(N)= Θ(N k ) log k N=O(N)

Typiske vekstrater FunksjonNavn cKonstant log NLogaritmisk log 2 NLog-kvadratisk NLineær N log N N2N2 Kvadratisk N3N3 Kubisk 2 N, N!Eksponentiell

Hva skal analyseres Kjøretid avhenger av Kompilator X Datamaskin X Algoritme Datamengde og sammensetning Språk X Tavg(N), Tworst(N)