LO118D Forelesning 2 (DM)

Like dokumenter
Kjøretidsanalyse. Hogne Jørgensen

Analyse av Algoritmer

Divide-and-Conquer II

Divide-and-Conquer. Lars Vidar Magnusson

Spenntrær, oppsummert: Kruskal: Traverserer ikke. Plukker kanter i hytt og vær Prim: Legger alltid til den noden som er nærmest treet

Øvingsforelesning 3: Splitt og hersk. Daniel Solberg

Ninety-nine bottles. Femte forelesning. I dagens forelesning: Mest matematiske verktøy. Først: Asymptotisk notasjon. Så: Rekurrensligninger.

LO118D Forelesning 12 (DM)

ALGORITMER OG DATASTRUKTURER

Introduksjon til Algoritmeanalyse

Forelesning 4 torsdag den 28. august

ALGORITMER OG DATASTRUKTURER

LO118D Forelesning 6 (DM)

Forelesning 29: Kompleksitetsteori

MAT1030 Diskret Matematikk

MAT1030 Diskret matematikk

Kompleksitetsanalyse Helge Hafting Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

MAT1030 Diskret Matematikk

Heapsort. Lars Vidar Magnusson Kapittel 6 Heaps Heapsort Prioritetskøer

Algoritmeanalyse. (og litt om datastrukturer)

Forelesning 14. Rekursjon og induksjon. Dag Normann februar Oppsummering. Oppsummering. Beregnbare funksjoner

Algoritme-Analyse. Asymptotisk ytelse. Sammenligning av kjøretid. Konstanter mot n. Algoritme-kompeksitet. Hva er størrelsen (n) av et problem?

Algoritmer - definisjon

Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl

Avsluttende eksamen i IT1105/TDT4120 Algoritmer og datastrukturer

deeegimnoorrrsstt Sjette forelesning

Øvingsforelesning 7. Resten av kombinatorikk, litt modulusregning, rekurrenser og induksjon og MP13 eller MP18. TMA4140 Diskret Matematikk

Repetisjon. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 15: Rekursjon og induksjon. Roger Antonsen

Longest. increasing. subsequence. Betingelser. Matrise- common. Grådig vs. DP. Forside. Intro. Fibonacci-tall. Memoisering DP

Rekurrens. MAT1030 Diskret matematikk. Rekurrens. Rekurrens. Eksempel. Forelesning 16: Rekurrenslikninger. Dag Normann

MAT1030 Diskret Matematikk

PG4200 Algoritmer og datastrukturer forelesning 3. Lars Sydnes 29. oktober 2014

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

n/b log b n = (lg n) a log b n = n log b a

Rekursjon og lister. Stephan Oepen & Erik Velldal. 1. februar, Universitetet i Oslo

Mengder, relasjoner og funksjoner

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

PG4200 Algoritmer og datastrukturer Forelesning 3 Rekursjon Estimering

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

UNIVERSITETET I OSLO

Algoritmer - definisjon

Alle mot alle. Åttende forelesning. (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder.

Innhold. Innledning 1

MAT1030 Forelesning 17

Ukeoppgaver fra kapittel 10 & Induksjonsbevis

Grafteori. MAT1030 Diskret matematikk. Induksjonsbevis

MAT1030 Diskret matematikk

Sortering i Lineær Tid

INF2220: Forelesning 2

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)

Rekursjon som programmeringsteknikk

Læringsmål og pensum. Algoritmeeffektivitet

TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis. Professor Alf Inge Wang

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl

Algoritmer og Datastrukturer IAI 21899

Anbefalte forkunnskaper Studentene forutsettes å kunne programmere, for eksempel ved å ha tatt TDT4100 Objektorientert programmering.

INF Algoritmer og datastrukturer

Kompleksitetsanalyse

Kompleksitet. IN algoritmer og datastrukturer Plenumstime / repetisjon

UNIVERSITETET I OSLO

Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.8

MAT1030 Forelesning 19

Funksjoner Forelesning i Matematikk 1 TMA4100. Hans Jakob Rivertz Institutt for matematiske fag 19. august 2010

TMA4140 Diskret Matematikk Høst 2018

ALGORITMER OG DATASTRUKTURER

Algdat-ninja på 60 minutter: Et galskapsprosjekt. Magnus Lie Hetland

Forelesning 30: Kompleksitetsteori

Løsningsforslag for utvalgte oppgaver fra kapittel 3

LO118D Forelesning 10 (DM)

KONTINUASJONSEKSAMEN I TMA4140 LØSNINGSFORSLAG

Rekursiv programmering

Kondisjonstest. Algoritmer og datastrukturer. Repetisjonsoppgaver - LF. Onsdag 6. oktober 2004

PG4200 Algoritmer og datastrukturer Forelesning 2

Eksamenshefte TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

INF2220: Forelesning 1

ALGORITMER OG DATASTRUKTURER

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Pensum: fra boken (H-03)+ forelesninger

Pensum: fra boken (H-03)+ forelesninger

Quicksort. Lars Vidar Magnusson Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort

Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl

Generell induksjon og rekursjon. MAT1030 Diskret matematikk. Generell induksjon og rekursjon. Generell induksjon og rekursjon.

Oppgave 1 Minimum edit distance

Innføring i matematisk analyse av algoritmer

UNIVERSITETET I OSLO

Studentnummer: Side 1 av 1. Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005

ALGORITMER OG DATASTRUKTURER

MAT1030 Diskret matematikk

Oppgaver fra forelesningene. MAT1030 Diskret matematikk. Oppgave (fra forelesningen 10/3) Definisjon. Plenumsregning 9: Diverse ukeoppgaver

Longest increasing. subsequence Betingelser. Longest. common subsequence. Knapsack Grådig vs. DP Moro: 2D-Nim Spørsmål. Forside. Repetisjon.

INF Algoritmer og datastrukturer

Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding

Live life and be merry

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006

Forelesning 1 mandag den 18. august

INF2220: Forelesning 1

Transkript:

LO118D Forelesning 2 (DM) Kjøretidsanalyse, matematisk induksjon, rekursjon 22.08.2007

1 Kjøretidsanalyse 2 Matematisk induksjon 3 Rekursjon

Kjøretidsanalyse Eksempel Finne antall kombinasjoner med minst en rød dings fra en mengde med røde og grønne dingser.

Hvor bra er en algoritme? Problem Hvordan kan vi sammenligne to algoritmer og finne ut hvilken som er best? Løsning Vi prøver å estimere kjøretiden og plassbruken til algoritmene.

Hvorfor estimere? Det er mulig å finne eksakt kjøretid og plassbruk I de fleste tilfeller vil dette være upraktisk og koste mer enn det smaker Vi teller derfor dominante steg i forhold til størrelsen på input n, og gir et estimat

Typer estimat 1 Beste mulige kjøretid, korteste tid som trengs for input n 2 Verste mulige kjøretid, lengste tid som trengs for input n 3 Gjennomsnittlig kjøretid for et endelig antall input n

Orden Vi definerer det mest dominante leddet i estimatet som algoritmens orden. Eksempel Vi har en algoritme som bruker t(n) = 60n 2 + 5n + 1 steg på å fullføre. Hva er det dominante leddet her?

Orden Kjøretiden for denne algoritmen vokser som n 2 ettersom n øker, vi sier at den har orden n 2 : t(n) = Θ(n 2 ) eller t(n) Θ(n 2 ) Vi bytter altså ut et uttrykk med et enklere uttrykk som har samme vekstrate.

Asymptotiske grenser Definisjon Gitt at f og g er funksjoner med domene {1, 2, 3,...}. Da kan vi skrive: f (n) = O(g(n)) eller f (n) O(g(n)) hvis vi har en konstant C 1 slik at: f (n) C 1 g(n) Dette kaller vi asymptotisk øvre grense (asymptotic upper bound).

Asymptotiske grenser Definisjon Tilsvarende: f (n) = Ω(g(n)) eller f (n) Ω(g(n)) hvis vi har en konstant C 2 slik at: f (n) C 2 g(n) Dette kaller vi asymptotisk nedre grense (asymptotic lower bound).

Asymptotiske grenser Definisjon Slår sammen de to tidligere og skriver: f (n) = Θ(g(n)) eller f (n) Θ(g(n)) hvis: f (n) = O(g(n)) og f (n) = Ω(g(n)) Dette kaller vi asymptotisk øvre og nedre grense (asymptotic tight bound).

Asymptotiske grenser Eksempel La oss se på de asymptotiske grensene for det forrige eksempelet: t(n) = 60n 2 + 5n + 1

Asymptotiske grenser Teorem La: p(n) = a k n k + a k 1 n k 1 +... + a 1 n + a 0 være et polynom i n av grad k, der ingen a i er negative. Da er: p(n) = Θ(n k )

Asymptotiske grenser Hvordan er det med asymptotiske grenser for logaritmiske funksjoner?

Kjøretidsanalyse Hvor fort vokser 1 + 2 + 3 +... + n?

Kjøretidsanalyse Hva er tidskompleksiteten til denne kodesnutten? 1 for i in 1 to n 2 for j in 1 to i 3 x = x + 1

Kjøretidsanalyse Noen vanlige tidskompleksiteter: Theta-form Θ(1) Θ(log n) Θ(n) Θ(n log n) Θ(n k ), k 1 Θ(c n ), c > 1 Θ(n!) Navn Konstant Logaritmisk Lineær n log n Polynomisk Eksponensiell Faktoriell

Matematisk induksjon Problem Vi har en sammenheng P(n), for alle n. Hvordan kan vi bevise at det stemmer? Løsning Matematisk induksjon.

Matematisk induksjon Metode Vi har en sammenheng P(n) med positive heltall som domene. Da gjør vi som følger: 1 Vis at P(1) er riktig. 2 Vis at P(n) P(n + 1) for alle n.

Matematisk induksjon Metode Matematisk induksjon består altså av to steg: 1 Basissteg 2 Induktivt steg

Matematisk induksjon Eksempel Bruk matematisk induksjon til å vise at summen av de n første odde heltallene er n 2.

Rekursjon Definisjon En rekursiv funksjon er en funksjon som kaller seg selv En rekursiv algoritme er en algoritme som inneholder en rekursiv funksjon

Rekursjon En lang rekke problemer kan løses ved å dele dem opp i mindre delproblemer av samme type som de originale Dette kalles ofte splitt og hersk. Man fortsetter delingen til man når et delproblemer som er tivielt å løse Løsningene på alle delproblemene kombineres til en løsning på det originale problemet

Rekursjon Eksempel Beregning av fakultet.

Rekursjon Fakultet Denne algoritmen beregner n! ved hjelp av rekursjon. input: n, et heltall større eller lik 0 output: n! 1 factorial(n) 2 if n == 0 3 return 1 4 return n factorial(n 1)

Rekursjon En rekursiv algoritme består i hovedsak av to steg: Basistilfelle Rekursivt kall

Rekursjon og matematisk induksjon Rekursjon og matematisk induksjon er nært beslektet Matematisk induksjon kan brukes for å vise at en rekursiv algoritme er korrekt