Forside Motivasjon Analyse Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Kompleksitetsanalyse Åsmund Eldhuset asmunde.

Slides:



Advertisements
Liknende presentasjoner
Ebus Management Center En liten bruksanvisning for de enkleste funksjonene.
Advertisements

Hva slags spørsmål skal man stille på hvilke nivåer?
En innføring i spillet: Lag En Setning
Titanic Developer Team består av :
1 Sannsynlighetsregning Gjenfinningssystemer og verktøy II Jon Anjer.
PowerPoint laget av Bendik S. Søvegjarto Konsept, tekst og regler av Skage Hansen.
Gjenfinningssystemer og verktøy II
Å skrive en sakpreget tekst
En innføring i spillet: Dobbeltkrig – Grønn
Korteste vei. LOG530 Distribusjonsplanlegging 2 2 Ofte står en overfor ønsket om å finne korteste kjørerute fra et gitt utgangspunkt til et ønsket bestemmelsessted.
Grunnleggende spørsmål om naturfag
Ulike sorteringsmetoder Kompleksitet av dem
Grunnleggende matematikk
Gjenfinningssystemer og verktøy II
Kapittel 6 (Joachim Thøgersen)
Memoisering og dynamisk programmering
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.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*
Eksempel AOA (Activity On Arc)
Alg. Dat Øvingsforelesning 5 Kompleksitetsanalyse Torbjørn Moralnd
Kompleksitetsanalyse
Korrekt dybde først-søk
Mer grunnleggende matte: Forberedelse til logistisk regresjon
Generelt I/O if/else Funksjoner Lists Løkker Dictionaries Annet Listebehandling Klasser Python med noen algdat-anvendelser Åsmund Eldhuset asmunde *at*
Algoritmiske metoder Innhold: Effektivitetsbetraktninger Programmeringsteknikker Datastrukturer Algoritmer tilknyttet datastrukturene Lærebok: Hafting/Ljosland:
Chapter 02 Wavelets - Lineær algebra
Komplekse tall Naturlige tall
Oppgaver 1)Vi anser hvert av de seks utfallene på en terning for å være like sannsynlig og at to ulike terningkast er uavhengige. a)Hva er sannsynligheten.
Dynamisk programmering
PowerPoint laget av Bendik S. Søvegjarto Konsept, tekst og regler av Skage Hansen.
PowerPoint laget av Bendik S. Søvegjarto Konsept, tekst og regler av Skage Hansen.
Ch 4 INTEGRASJON Integrasjon innebærer å finne alle funksjoner F som har f derivert. Disse funksjoner kalles antiderivert av f og formelen for de er det.
Grenseverdiregler La L, M, c og k være reelle tall og
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT 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 Forelesning 20 - Kapittel 7 Boble-, innstikk-, Shell-, Heap-, Quick-, Mergesortering Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
De 100 mest brukte ordene i bøker i klasse..
Vorspiel En vakker vårdag ringer rådmannen i Hamar til en av sine sjefer, og de begynner å diskutere status i kommunen…
Diskrete stokastiske variable
Magnus Haug Algoritmer og Datastrukturer
De 222 mest brukte ordene i det norske språket..
Objektorientert utforming In 140 Sommerville kap. 12.
Et inspirerende foreldreveilednings- kurs
En formel er gyldig hviss den sann i alle tolkninger Utsagnslogikk Tolkning = linje i sannhetsverditabell Altså: En formel er gyldig hviss den har T i.
Deterministisk endelig automat (DFA) (over språk A) Består av - en ikke-tom mengde Q av tilstander - hvor nøyaktig en er utpekt som start-tilstand - og.
Forside Intro Fibonacci-tall Memoisering DP Longest increasing subsequence Betingelser Matrise- multiplikasjon Longest common subsequence Grådig vs. DP.
Bayesiansk statistikk Petter Mostad Overblikk Tilbakeblikk på sannsynlighetsbegrepet Hvordan gjøre Bayesianske analyser Analyser ved hjelp.
Hypotesetesting, og kontinuerlige stokastiske variable
Trekkstrukturer Bygges opp fra en mengde trekk f,g,h,… og en mengde atomære verdier a,b,c,… Defineres som en DAG (directed acyclic graph), det vil si en.
En formel er gyldig hviss den sann i alle tolkninger Utsagnslogikk Tolkning = linje i sannhetsverditabell Altså: En formel er gyldig hviss den har T i.
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
Myter – organisasjon og ledelse i barnehagen
Kombinatorikk og sannsynlighet
Lokalisering og max minimumavstand. LOG530 Distribusjonsplanlegging 2 2 Anta at nettverket angir en region hvor McBurger skal opprettes 3 konkurrerende.
Korteste vei. LOG530 Distribusjonsplanlegging 2 2 Ofte står en overfor ønsket om å finne korteste kjørerute fra et gitt utgangspunkt til et ønsket bestemmelsessted.
LOG530 Distribusjonsplanlegging
Matematikk 1 årskurs 26. oktober 2009
Objektorientert design In 140 Sommerville kap 12 – del 1.
§4. Irrasjonale og komplekse tall
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.
M1 årskurs HVE 7. september 2009
© Cappelen Akademisk Forlag Kapittel 2 Beregning av sluttverdi, nåverdi og annuitet.
Kompleksitetsanalyse
De fire regneartene.
INF5110 – 5. og 7. mai 2015 Stein Krogdahl, Ifi, UiO
Utskrift av presentasjonen:

Forside Motivasjon Analyse Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Kompleksitetsanalyse Åsmund Eldhuset asmunde *at* stud.ntnu.no ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Motivasjon Vi ønsker å måle hvor rask en algoritme er Lite mening i å måle kjøretid i sekunder Forskjeller i programmeringsspråk og maskinvare Kjøretiden kan variere drastisk med dataene algoritmen blir brukt på Datamaskiner blir kraftigere, og algoritmer vil bli brukt på større data Hvordan ser kjøretiden ut når inputstørrelsen nærmer seg uendelig? ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Analyse Vi trenger et matematisk uttrykk for hva kjøretiden blir, gitt inputstørrelsen Vi analyserer trinnene i algoritmen for (i = 0; i < n; i ++) doSomething(); for (i = 0; i < n; i ++) for (j = i; j < n; j ++) doSomethingElse(); Kjøretid: f(n) = c 1 · n 2 / 2 + c 2 · n ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Største ledd c 1 og c 2 kommer an på maskinvaren La oss anta at c 1 = 1 og c 2 = 100 Når bare n blir stor nok ( n > 200 ), blir n 2 / 2 større enn 100n, og når n vokser mer og mer, blir n 2 / 2 MYE større enn 100n Kun det største leddet ( n 2 ) er interessant, fordi dette leddet vil dominere de andre når n blir stor nok ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål  -notasjon Hvordan uttrykke dette? Vi sier at n 2 / n =  (n 2 ) Viktig:  er en mengde!  (n 2 ) består av alle funksjoner som vokser ”like raskt” som n 2 når n går mot uendelig Likhetstegnet misbrukes – det skulle egentlig ha vært f(n)   (g(n)) f(n) =  (g(n)) betyr altså: ” f(n) er en av de funksjonene som vokser like raskt som g(n) ” ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Definisjon  (g(n)) = {f(n) : det finnes positive konstanter c 1, c 2 og n 0 slik at 0  c 1 g(n)  f(n)  c 2 g(n) for alle n  n 0 } Altså:  (g(n)) består av alle funksjoner som g(n) kan brukes som både øvre og nedre grense for Hvis vi skal vise at f(n) =  (g(n)), må vi bevise ulikhetene og finne c 1, c 2 og n 0 ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Eksempel – polynomer Gitt f(n) = n 3 – 100n 2 + n Vi trikser med leddene: f(n) = n 3 – 100n 2 + n  n 3 + n  n 3 + n 3 = 2n 3 f(n) = n 3 – 100n 2 + n  n 3 – n 3 / 2 + n  n 3 / 2 Vi finner ut når overgangene gjelder: –100n 2  0 : uansett n  n 3 : for n  1 –100n 2  –n 3 / 2 : for n  200 n  0 : for n  0 Altså kan vi sette n 0 = 200 ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Eksempel – polynomer Nå vet vi at 0  n 3 / 2  f(n)  2n 3 når n > n 0 = 200 Vi kan nå sette c 1 = ½, c 2 = 2 og g(n) = n 3 Kravene for at f(n) =  (g(n)) er oppfylt Altså er n 3 – 100n 2 + n =  (n 3 ) ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Grafisk fremstilling 2n 3 n 3 – 100n 2 + n n 3 / 2 ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål O- og  -notasjon f(n) =  (g(n)) sier at g er både en øvre og en nedre grense for f Hvis vi bare vil si at g er en øvre grense for f, bruker vi O-notasjon: f(n) = O(g(n)) Hvis vi bare vil si at g er en nedre grense for f, bruker vi  -notasjon: f(n) =  (g(n)) Disse grensene er ikke tette: f.eks er n = O(2 n ), og n 100 =  (n) Se Cormen kap. 3.1 for definisjoner. Regning med O og  er helt tilsvarende det vi gjorde med  ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Relasjoner mellom O,  og  f(n) = O(g(n))  g(n) =  (f(n)) f(n) =  (g(n))  f(n) = O(g(n))  f(n) =  (g(n)) f(n) =  (g(n))  g(n) =  (f(n))   (f(n)) =  (g(n))  (f(n)) = O(f(n))   (f(n) Se side 49 i Cormen for nyttige relasjoner Prøv å bevise disse selv! Bruk definisjonene av O (side 44),  (side 45) og  (side 42) ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Kompleksitetsklasser Grovinndeling i stigende rekkefølge: Konstant: 1 Polylogaritmisk: (log b n) k Polynomisk: n k Eksponentiell: 2 n Faktoriell: n! Alt som er enda verre, f.eks. n n ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Kompleksitetsklasser Eksempler – alle på samme linje er ”like raske” (de er  av hverandre) 1, 2, e, lg n, ln n, log 10 n, lg n 100 (lg n) 2, (ln n) 2, (log 10 n) 2, (lg n 100 ) 2 n, n lg n n lg n, n log 42 n n 2 2 n 3 n n! n n ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Fallgruver Grunntallet til en logaritme har ikke noe å si for kompleksiteten: lg a n =  (lg b n) Grunntallet til en potens har mye å si for kompleksiteten: a n   (b n ) Er 2 n + c =  (2 n ) ? Er 2 cn =  (2 n ) ? Vær forsiktig med transitivitet: Følgende er korrekt: f(n) = O(g(n))  g(n) = O(h(n))  f(n) = O(h(n)) Men kan vi slutte noe av det følgende? f(n) = O(g(n))  g(n) =  (h(n)) ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Fallgruver Ikke alle funksjoner kan sammenlignes med O,  og  Eksempel: n og n 1 + sin n 1 + sin n oscillerer mellom 0 og 2, så n 1 + sin n veksler hele tiden mellom å være større enn og mindre enn n O angir en mengde funksjoner Det er ikke i seg selv et mål på worst case- kjøretid, selv om det ofte brukes til å angi dette Å si ”kjøretiden er minst O(n) ” er meningsløst Det samme gjelder for  og best case-kjøretid ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Pseudopolynomialitet Gitt en algoritme som tar tallet n som input og har kjøretid O(n) – hvilken kompleksitetsklasse er dette? n betegner her ikke størrelsen på input, men er selv en del av inputen Størrelsen til n = antall bits som kreves = lg n n = 2 lg n = 2 w Oi sann – eksponentiell kjøretid! Dukker ofte opp som lureoppgave på eksamen! ::

Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Spørsmål? ::