Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Starte visningen fra side:

Download "Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer."

Transkript

1 Grådige algoritmer

2 Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

3 Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Dynamisk programmering: 1. Beregn først værdien af optimale løsninger for alle problemstørrelser bottom-up. 2. Opbyg så løsningen top-down ud fra denne information.

4 Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Dynamisk programmering: 1. Beregn først værdien af optimale løsninger for alle problemstørrelser bottom-up. 2. Opbyg så løsningen top-down ud fra denne information. Grådig algoritme: 1. Opbyg løsningen top-down ud fra hvad der lige nu ser ud som bedste valg (uden information om resten af løsningen).

5 Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Dynamisk programmering: 1. Beregn først værdien af optimale løsninger for alle problemstørrelser bottom-up. 2. Opbyg så løsningen top-down ud fra denne information. Grådig algoritme: 1. Opbyg løsningen top-down ud fra hvad der lige nu ser ud som bedste valg (uden information om resten af løsningen). Dvs. simplere (og som regel hurtigere) end dynamisk programmering. For at metoden virker, skal man kunne finde en bedste valg -regel (også kaldet grådig regel), som kan vises at give en optimal løsning.

6 Et simpelt skeduleringsproblem... Tid Find maksimal mængde ikke-overlappende aktivititer.

7 Et simpelt skeduleringsproblem... Tid Find maksimal mængde ikke-overlappende aktivititer. Grådig valg -regel: blandt de ikke-valgte aktiviteter, som er ikke-overlappende med allerede valgte, vælg den med tidligst sluttid.

8 Et simpelt skeduleringsproblem Argument for, at det virker: Enhver optimal løsnings første aktivitet kan, uden at inducere overlap, ændres til at have det grådige valgs første aktivitet. Der findes altså en optimal løsning, hvis første aktivitet er lig det grådige valg. Resten af denne løsning må selv være en optimal løsning blandt de resterende (ikke-overlappende) aktiviteter. Disse aktiviteter er netop hvad den grådige algoritme fortsætter med.

9 Et simpelt skeduleringsproblem Argument for, at det virker: Enhver optimal løsnings første aktivitet kan, uden at inducere overlap, ændres til at have det grådige valgs første aktivitet. Der findes altså en optimal løsning, hvis første aktivitet er lig det grådige valg. Resten af denne løsning må selv være en optimal løsning blandt de resterende (ikke-overlappende) aktiviteter. Disse aktiviteter er netop hvad den grådige algoritme fortsætter med. Så flg. invariant vedligeholdes: Der findes en optimal løsning til det oprindelige problem, som består af de allerede valgte aktiviteter, samt en optimal løsning blandt de resterende (dvs. ikke-overlappende med allerede valgte) aktiviteter. Algoritmen stopper, når antal resterende aktiviteter er nul. På dette tidspunkt fortæller invarianten, at de valgte aktiviteter er en optimal løsning til det oprindelige problem.

10 Et simpelt skeduleringsproblem

11 Rygsæksproblemet Rygsæk som kan bære W kg. Ting med værdi og vægt. Ting nr. i Vægt w i Værdi v i

12 Rygsæksproblemet Rygsæk som kan bære W kg. Ting med værdi og vægt. Ting nr. i Vægt w i Værdi v i Mål: tag mest mulig værdi med uden at overskride vægtgrænsen.

13 Rygsæksproblemet Fractional version af problemet (dele af ting kan medtages i rygsækken) kan løses med en grådig algoritme: vælg tingene efter aftagende nytte = værdi/vægt.

14 Rygsæksproblemet Fractional version af problemet (dele af ting kan medtages i rygsækken) kan løses med en grådig algoritme: vælg tingene efter aftagende nytte = værdi/vægt. Denne grådige algoritme virker IKKE for 0-1 versionen af problemet (kun hele ting kan medtages):

15 Rygsæksproblemet Fractional version af problemet (dele af ting kan medtages i rygsækken) kan løses med en grådig algoritme: vælg tingene efter aftagende nytte = værdi/vægt. Denne grådige algoritme virker IKKE for 0-1 versionen af problemet (kun hele ting kan medtages):

16 Rygsæksproblemet 0-1 version: Kan løses med dynamisk programmering (når W og w i er er heltal):

17 Rygsæksproblemet 0-1 version: Kan løses med dynamisk programmering (når W og w i er er heltal): Om en optimal løsning for en rygsæk med kapacitet w, hvis indhold skal vælges blandt ting nr. 1, 2,...,i, gælder at den: enten medtager ting nr. n og resten af løsningen er optimal for ting nr. 1 til (n 1) med rygsæk kapacitet W w n eller medtager ikke ting nr. n, og er så selv optimal for ting nr. 1 til (n 1) med rygsæk kapacitet W

18 Rygsæksproblemet 0-1 version: Kan løses med dynamisk programmering (når W og w i er er heltal): Om en optimal løsning for en rygsæk med kapacitet w, hvis indhold skal vælges blandt ting nr. 1, 2,...,i, gælder at den: enten medtager ting nr. n og resten af løsningen er optimal for ting nr. 1 til (n 1) med rygsæk kapacitet W w n eller medtager ikke ting nr. n, og er så selv optimal for ting nr. 1 til (n 1) med rygsæk kapacitet W Lad k(i, w) betegne værdien af en optimal løsning for en rygsæk med kapacitet w hvis indhold skal vælges blandt ting nr. 1, 2,...,i. { 0 if i = 0 or w 0 k(i, w) = max(k(i 1, w w i ) + v i, k(i 1, w)) if i, w > 0

19 Rygsæksproblemet 0-1 version: Kan løses med dynamisk programmering (når W og w i er er heltal): Om en optimal løsning for en rygsæk med kapacitet w, hvis indhold skal vælges blandt ting nr. 1, 2,...,i, gælder at den: enten medtager ting nr. n og resten af løsningen er optimal for ting nr. 1 til (n 1) med rygsæk kapacitet W w n eller medtager ikke ting nr. n, og er så selv optimal for ting nr. 1 til (n 1) med rygsæk kapacitet W Lad k(i, w) betegne værdien af en optimal løsning for en rygsæk med kapacitet w hvis indhold skal vælges blandt ting nr. 1, 2,...,i. { 0 if i = 0 or w 0 k(i, w) = max(k(i 1, w w i ) + v i, k(i 1, w)) if i, w > 0 Fyld n W -tabel for k(i, w) (0 i n, 0 w W ) på struktureret måde (målet er k(n, W )). Find derefter en løsning top-down ved at følge de optimale valg (lavet i anden linien af rekursionsformlen ovenfor).

20 Huffman-koder Kodning af sekvens af tegn (fil) via binære koder (for at gemme på disk, sende over netværk,... ). Ønsker kortest mulig fil (kompression).

21 Huffman-koder Kodning af sekvens af tegn (fil) via binære koder (for at gemme på disk, sende over netværk,... ). Ønsker kortest mulig fil (kompression). Eksempel:

22 Huffman-koder Kodning af sekvens af tegn (fil) via binære koder (for at gemme på disk, sende over netværk,... ). Ønsker kortest mulig fil (kompression). Eksempel: Fixed-length version: 3 ( ) = bits Variable-length version: = bits

23 Prefix-kode = træer Prefix-fri kode: ingen kode for et tegn er starten (prefix) af koden for et andet tegn ( dekodning utvetydig). Så tegn svarer til knuder med nul børn (blade).

24 Prefix-kode = træer Prefix-fri kode: ingen kode for et tegn er starten (prefix) af koden for et andet tegn ( dekodning utvetydig). Så tegn svarer til knuder med nul børn (blade). For en givet fil (tegn og deres frekvenser), find bedste variable-length prefix-kode. Dvs. for Cost(tree) = kodet fil, find træ med lavest cost.

25 Prefix-kode = træer Prefix-fri kode: ingen kode for et tegn er starten (prefix) af koden for et andet tegn ( dekodning utvetydig). Så tegn svarer til knuder med nul børn (blade). For en givet fil (tegn og deres frekvenser), find bedste variable-length prefix-kode. Dvs. for Cost(tree) = kodet fil, find træ med lavest cost. Optimale træer kan ikke have knuder med kun eet barn (alle tegn i undertræet for en sådan knude kan forkortes med een bit, jvf. (a) ovenfor). Så kun knuder med to eller nul børn findes.

26 Huffmans algoritme Byg op nedefra (fra mindste til største frekvenser) ved hele tiden at lave flg. grådige valg : slå de to deltræer med de to mindste samlede frekvenser sammen:

27 Køretid Givet en en tabel med n tegn og deres frekvenser laver Huffmans algoritme n 1 iterationer. (Der er n træer til start, eet træ til slut, og hver iteration mindsker antallet med præcis een.)

28 Køretid Givet en en tabel med n tegn og deres frekvenser laver Huffmans algoritme n 1 iterationer. (Der er n træer til start, eet træ til slut, og hver iteration mindsker antallet med præcis een.) Ved at bruge en (min-)prioritetskø, f.eks. implementeret ved en heap, kan hver iteration udføres med: to ExtractMin-operationer een Insert-operation O(1) andet arbejde.

29 Køretid Givet en en tabel med n tegn og deres frekvenser laver Huffmans algoritme n 1 iterationer. (Der er n træer til start, eet træ til slut, og hver iteration mindsker antallet med præcis een.) Ved at bruge en (min-)prioritetskø, f.eks. implementeret ved en heap, kan hver iteration udføres med: to ExtractMin-operationer een Insert-operation O(1) andet arbejde. Hver prioritetskø-operation tager hver O(log n) tid.

30 Køretid Givet en en tabel med n tegn og deres frekvenser laver Huffmans algoritme n 1 iterationer. (Der er n træer til start, eet træ til slut, og hver iteration mindsker antallet med præcis een.) Ved at bruge en (min-)prioritetskø, f.eks. implementeret ved en heap, kan hver iteration udføres med: to ExtractMin-operationer een Insert-operation O(1) andet arbejde. Hver prioritetskø-operation tager hver O(log n) tid. Så samlet køretid for de n iterationer er O(n log n).

31 Korrekthed Huffman algoritme slår i første skridt de to mindste tegn sammen. Mere præcist: For en eller anden nummerering c 1, c 2, c 3,..., c n af tegnene i inputalfabetet, for hvilken der gælder at de tilsvarende frekvenser er ikke-faldende f 1 f 2 f 3 f n, slår Huffmans algoritme tegn c 1 og c 2 sammen. Denne formulering dækker alle mulige valg af de to mindste tegn, også for input såsom disse tre: Tegn a b c d e f g Frekvens Frekvens Frekvens

32 Korrekthed Lemma: For ethvert input (n 2) med Tegn c 1 c 2 c 3... c n Frekvens f 1 f 2 f 3... f n f 1 f 2 f 3 f n, findes et optimalt træ hvor bladene for tegnene x = c 1 og y = c 2 er søskende.

33 Korrekthed Lemma: For ethvert input (n 2) med Tegn c 1 c 2 c 3... c n Frekvens f 1 f 2 f 3... f n f 1 f 2 f 3 f n, findes et optimalt træ hvor bladene for tegnene x = c 1 og y = c 2 er søskende. Bevis: Lad T være et optimalt træ. Se på et blad af størst dybde i T. Da n 2, har bladet en forælder. Denne forælder har mere end nul undertræer, altså har den to (i optimale træer har ingen knuder eet undertræ, se tidligere). Dens andet undetræ må også være et blad, ellers er det første blad ikke et dybeste blad.

34 Korrekthed Lemma: For ethvert input (n 2) med Tegn c 1 c 2 c 3... c n Frekvens f 1 f 2 f 3... f n f 1 f 2 f 3 f n, findes et optimalt træ hvor bladene for tegnene x = c 1 og y = c 2 er søskende. Bevis: Lad T være et optimalt træ. Se på et blad af størst dybde i T. Da n 2, har bladet en forælder. Denne forælder har mere end nul undertræer, altså har den to (i optimale træer har ingen knuder eet undertræ, se tidligere). Dens andet undetræ må også være et blad, ellers er det første blad ikke et dybeste blad. Altså findes to blade som er søskende og begge er af størst dybde. Lad deres tegn være a = c i og b = c j, for i < j.

35 Korrekthed Mulige situationer: c 1 c 2... Handling x y a b Ingen a b Byt y og b a b Byt x og b a b Byt x og a, samt y og b

36 Korrekthed Mulige situationer: c 1 c 2... Handling x y a b Ingen a b Byt y og b a b Byt x og b a b Byt x og a, samt y og b

37 Korrekthed Mulige situationer: c 1 c 2... Handling x y a b Ingen a b Byt y og b a b Byt x og b a b Byt x og a, samt y og b Lad d være a s blads dybde minus x s blads dybde. Da er forandringen i filens længde ved byt af x = c 1 og a = c i lig d f 1 d f i = d (f 1 f i ).

38 Korrekthed Mulige situationer: c 1 c 2... Handling x y a b Ingen a b Byt y og b a b Byt x og b a b Byt x og a, samt y og b Lad d være a s blads dybde minus x s blads dybde. Da er forandringen i filens længde ved byt af x = c 1 og a = c i lig d f 1 d f i = d (f 1 f i ). Eftersom d 0 (da a s blad var af størst dybde) og (f 1 f i ) 0 (da i 1, se tabel ovenfor), kan filens længde ikke blive større. Dvs. træet kan ikke blive dårlige ved byt af x og a.

39 Korrekthed Mulige situationer: c 1 c 2... Handling x y a b Ingen a b Byt y og b a b Byt x og b a b Byt x og a, samt y og b Lad d være a s blads dybde minus x s blads dybde. Da er forandringen i filens længde ved byt af x = c 1 og a = c i lig d f 1 d f i = d (f 1 f i ). Eftersom d 0 (da a s blad var af størst dybde) og (f 1 f i ) 0 (da i 1, se tabel ovenfor), kan filens længde ikke blive større. Dvs. træet kan ikke blive dårlige ved byt af x og a. Tilsvarende kan vises for et byt af x og b, og for et byt af y og b.

40 Korrekthed Mulige situationer: c 1 c 2... Handling x y a b Ingen a b Byt y og b a b Byt x og b a b Byt x og a, samt y og b Lad d være a s blads dybde minus x s blads dybde. Da er forandringen i filens længde ved byt af x = c 1 og a = c i lig d f 1 d f i = d (f 1 f i ). Eftersom d 0 (da a s blad var af størst dybde) og (f 1 f i ) 0 (da i 1, se tabel ovenfor), kan filens længde ikke blive større. Dvs. træet kan ikke blive dårlige ved byt af x og a. Tilsvarende kan vises for et byt af x og b, og for et byt af y og b. Da træet var optimalt før byt, er det også efter.

41 Korrekthed Lemma: Huffmans algoritme returnerer et optimalt træ.

42 Korrekthed Lemma: Huffmans algoritme returnerer et optimalt træ. Bevis: Vi vil vise via induktion at det gælder for input med n tegn, for alle n.

43 Korrekthed Lemma: Huffmans algoritme returnerer et optimalt træ. Bevis: Vi vil vise via induktion at det gælder for input med n tegn, for alle n. Basis n = 1: Her returnerer Huffmans et træ som er et blad. Dette er eneste mulige træ (da knuder har enten to eller nul børn), og derfor optimalt.

44 Korrekthed Lemma: Huffmans algoritme returnerer et optimalt træ. Bevis: Vi vil vise via induktion at det gælder for input med n tegn, for alle n. Basis n = 1: Her returnerer Huffmans et træ som er et blad. Dette er eneste mulige træ (da knuder har enten to eller nul børn), og derfor optimalt. Induktionsskridtet n 1: Lad input I være og se på input I Tegn c 1 c 2 c 3... c n Frekvens f 1 f 2 f 3... f n med f 1 f 2 f 3 f n, Tegn z c 3... c n Frekvens f 1 + f 2 f 3... f n

45 Korrekthed Lad T være Huffmans output på input I. Lad T være Huffmans output på input I (optimalt træ pr. induktionsantagelse). Lad T være et optimalt træ på input I hvor bladene for tegnene x = c 1 og y = c 2 er søskende (eksisterer iflg. lemma). Lad T være T hvor bladene for tegnene x og y samt deres forælder er erstattet af bladet z (med frekvens f 1 + f 2 ).

46 Korrekthed Lad T være Huffmans output på input I. Lad T være Huffmans output på input I (optimalt træ pr. induktionsantagelse). Lad T være et optimalt træ på input I hvor bladene for tegnene x = c 1 og y = c 2 er søskende (eksisterer iflg. lemma). Lad T være T hvor bladene for tegnene x og y samt deres forælder er erstattet af bladet z (med frekvens f 1 + f 2 ). For et træ τ for input I, lad Expand(τ) være τ med bladet med tegnet z erstattet af et træ med en rod og to blade med tegnene x = c 1 og y = c 2.

47 Korrekthed Lad T være Huffmans output på input I. Lad T være Huffmans output på input I (optimalt træ pr. induktionsantagelse). Lad T være et optimalt træ på input I hvor bladene for tegnene x = c 1 og y = c 2 er søskende (eksisterer iflg. lemma). Lad T være T hvor bladene for tegnene x og y samt deres forælder er erstattet af bladet z (med frekvens f 1 + f 2 ). For et træ τ for input I, lad Expand(τ) være τ med bladet med tegnet z erstattet af et træ med en rod og to blade med tegnene x = c 1 og y = c 2. Cost(Expand(τ)) = Cost(τ) + f 1 + f 2. Expand(T ) = T (pga. Huffman-algoritmens virkemåde). Expand(T ) = T (pga. definition af T ).

48 Korrekthed Lad T være Huffmans output på input I. Lad T være Huffmans output på input I (optimalt træ pr. induktionsantagelse). Lad T være et optimalt træ på input I hvor bladene for tegnene x = c 1 og y = c 2 er søskende (eksisterer iflg. lemma). Lad T være T hvor bladene for tegnene x og y samt deres forælder er erstattet af bladet z (med frekvens f 1 + f 2 ). For et træ τ for input I, lad Expand(τ) være τ med bladet med tegnet z erstattet af et træ med en rod og to blade med tegnene x = c 1 og y = c 2. Cost(Expand(τ)) = Cost(τ) + f 1 + f 2. Expand(T ) = T (pga. Huffman-algoritmens virkemåde). Expand(T ) = T (pga. definition af T ). Cost(T ) Cost(T ) = Cost(Expand(T )) = Cost(T ) + f 1 + f 2 Cost(T ) + f 1 + f 2 = Cost(Expand(T )) = Cost(T ).

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Opbyg løsningen skridt for skridt ved hele tiden af vælge lige

Læs mere

Prioritetskøer og hobe. Philip Bille

Prioritetskøer og hobe. Philip Bille Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering Philip Bille Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

Minimum udspændende Træer (MST)

Minimum udspændende Træer (MST) Minimum udspændende Træer (MST) Træer Et (frit/u-rodet) træ er en uorienteret graf G = (V, E) som er Sammenhængende: der er en sti mellem alle par af knuder. Acyklisk: der er ingen kreds af kanter. Træer

Læs mere

Datastrukturer (recap)

Datastrukturer (recap) Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang

Læs mere

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

Sammenhængskomponenter i grafer

Sammenhængskomponenter i grafer Sammenhængskomponenter i grafer Ækvivalensrelationer Repetition: En relation R på en mængde S er en delmængde af S S. Når (x, y) R siges x at stå i relation til y. Ofte skrives x y, og relationen selv

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur blandt mange mulige. Dynamisk programmering Optimeringsproblem: man ønsker at finde

Læs mere

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer: Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus

Læs mere

Datastrukturer (recap)

Datastrukturer (recap) Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Minimum udspændende Træer (MST)

Minimum udspændende Træer (MST) Minimum udspændende Træer (MST) Træer Et (frit/u-rodet) træ er en uorienteret graf G = (V, E) som er Sammenhængende: der er en sti mellem alle par af knuder. Acyklisk: der er ingen lukket kreds af kanter

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2010 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 24. april, 2010 (let justeret 10. maj og 21. maj 2010) Dette projekt udleveres i tre

Læs mere

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

Mindste udspændende træ

Mindste udspændende træ Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme Philip Bille Mindste udspændende træ Introduktion Repræsentation

Læs mere

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Minimum udspændende Træer (MST)

Minimum udspændende Træer (MST) Minimum udspændende Træer (MST) Træer Et (frit/u-rodet) træ er en uorienteret graf G = (V, E) som er Sammenhængende: der er en sti mellem alle par af knuder. Acyklisk: der er ingen kreds af kanter. Træ

Læs mere

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter. Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening

Læs mere

Dynamisk programmering. Flere eksempler

Dynamisk programmering. Flere eksempler Dynamisk programmering Flere eksempler Eksempel 1: Længste fælles delstreng Alfabet = mængde af tegn: {a,b,c,...,z}, {A,C,G,T}, {,1} Eksempel 1: Længste fælles delstreng Alfabet = mængde af tegn: {a,b,c,...,z},

Læs mere

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter. Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af opgaverne:

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Algoritmer og invarianter

Algoritmer og invarianter Algoritmer og invarianter Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker. Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker.

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille Nærmeste naboer. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle key[] og satellitdata data[]. operationer. PREDECESSOR(k): returner element med største nøgle k.

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer

Læs mere

Rolf Fagerberg. Forår 2013

Rolf Fagerberg. Forår 2013 Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje

Læs mere

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor

Læs mere

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. 22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327

Læs mere

Dynamisk programmering. Flere eksempler

Dynamisk programmering. Flere eksempler Dynamisk programmering Flere eksempler Eksempel 1: Længste fælles delstreng Alfabet = mængde af tegn: {a,b,c,...,z}, {A,C,G,T}, {,1} Streng = sekvens x 1 x 2 x 3... x n af tegn fra et alfabet: helloworld

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 29. april, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.

Læs mere

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er en unik simpel vej mellem ethvert par af punkter i

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Tirsdag den 24. juni 2014, kl. 10:00 14:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Datastrukturer. Datastruktur = data + operationer herpå

Datastrukturer. Datastruktur = data + operationer herpå Prioritetskøer Prioritetskøer? Datastrukturer Datastruktur = data + operationer herpå Datastrukturer Data: Datastruktur = data + operationer herpå Ofte en ID + associeret data. ID kaldes også en nøgle

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n Eksamen. kvarter 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) Ja Nej n er O(n )? n er O(n )? n er O(n + 0 n)? n + n er O(n )? n log n er Ω(n )? Opgave (%) Opskriv følgende funktioner

Læs mere

Algoritmisk geometri

Algoritmisk geometri Algoritmisk geometri 1 Intervalsøgning 2 Motivation for intervaltræer Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Antag, at vi ønsker at

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Figur: Terminologi: n = V, m = E (eller V og E (mis)bruges som V og E ).

Læs mere

Mindste udspændende træ

Mindste udspændende træ Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme Philip Bille Mindste udspændende træ Introduktion Repræsentation

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Varighed: timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Onsdag den. august 200, kl. 9.00.00 Opgave (25%) Lad A = A[] A[n] være et array af heltal. Længden af det længste

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 1 (tretten) Eksamensdag: Tirsdag den 8. april 2008,

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F0 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 00. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille er. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle x.key og satellitdata x.data. operationer. PREDECESSOR(k): returner element x med største nøgle k. SUCCESSOR(k):

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 06, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer

Læs mere

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012 Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012 May 15, 2012 1 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet 3 1.1 Køretid................................................ 3 1.2 Asymptotisk

Læs mere

6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur

6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur 6. december Talteoretiske algoritmer, RSA kryptosystemet, Primtalstest Motivation Definitioner Euclids algoritme Udvidet Euclid RSA kryptosystemet Randominserede algoritmer Rabin-Miller primtalstest Svært

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 036, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 036. Varighed: timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed:

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

Datastrukturer. Datastruktur = data + operationer herpå

Datastrukturer. Datastruktur = data + operationer herpå Prioritetskøer Prioritetskøer? Datastrukturer Datastruktur = data + operationer herpå Datastrukturer Data: Datastruktur = data + operationer herpå Ofte en ID + associeret data. ID kaldes også en nøgle

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 0205, Forår 205 side af 5 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 205. Kursusnavn: Algoritmer og datastrukturer Kursusnummer: 0205 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

Mm6: More sorting algorithms: Heap sort and quick sort - October 29, 2008

Mm6: More sorting algorithms: Heap sort and quick sort - October 29, 2008 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm6: More sorting algorithms: Heap sort and quick sort - October 9, 008 Algorithms and Architectures II. Introduction

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl Skriftlig Eksamen Algoritmer og Datastrukturer 1 Datalogisk Institut Aarhus Universitet Mandag den. marts 00, kl..00 11.00 Navn Gerth Stølting Brodal Årskort 1 Dette eksamenssæt består af en kombination

Læs mere

Rolf Fagerberg. Forår 2015

Rolf Fagerberg. Forår 2015 Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software

Læs mere

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang (API =

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere

Rolf Fagerberg. Forår 2012

Rolf Fagerberg. Forår 2012 Forår 2012 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM502 og DM503 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM502 og DM503 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 5. 5n 2 5 logn. 2 logn

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 5. 5n 2 5 logn. 2 logn Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) n +n er O(n )? Ja Nej n er O(n )? n+n er O(n. )? n+n er O(8n)? n logn er O(n )? Opgave (%) Opskriv følgende funktioner

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 3 sider anmarks Tekniske Universitet Skriftlig prøve, den 29. maj 203. ursusnavn: lgoritmer og datastrukturer ursus nr. 02326. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe

Læs mere

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm3: More about recurrences - October 10, 2008

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm3: More about recurrences - October 10, 2008 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm3: More about recurrences - October 10, 2008 1 Algorithms and Architectures II 1. Introduction to analysis and

Læs mere

Sortering i lineær tid

Sortering i lineær tid Sortering i lineær tid Nedre grænse for sammenligningsbaseret sortering Nedre grænser kræver en præcis beregningsmodel. Nedre grænse for sammenligningsbaseret sortering Nedre grænser kræver en præcis beregningsmodel.

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer

Læs mere

DM02 Kogt ned. Kokken. Januar 2006

DM02 Kogt ned. Kokken. Januar 2006 DM02 Kogt ned Kokken Januar 2006 1 INDHOLD Indhold 1 Asymptotisk notation 2 2 Algoritme analyse 2 3 Sorterings algoritmer 2 4 Basale datastrukturer 3 5 Grafer 5 6 Letteste udspændende træer 7 7 Disjunkte

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4 Eksamen. kvarter 00 Side 1 af sider Opgave 1 ( %) Ja Nej n log n er O(n / )? n 1/ er O(log n)? n + n er O(n )? n( n + log n) er O(n / )? n er Ω(n )? Opgave ( %) Opskriv følgende funktioner efter stigende

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F09 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk Philip Bille Orienteret graf (directed graph). Mængde af knuder forbundet parvis med orienterede kanter. Vejnetværk Knude = vejkryds, kant = ensrettet vej. deg + (6) =, deg - (6) = sti fra til 6 8 7 9

Læs mere

Køreplan Matematik 1 - FORÅR 2005

Køreplan Matematik 1 - FORÅR 2005 Lineær algebra modulo n og kryptologi Køreplan 01005 Matematik 1 - FORÅR 2005 1 Introduktion Kryptologi er en ældgammel disciplin, som går flere tusinde år tilbage i tiden. Idag omfatter disciplinen mange

Læs mere

Opgave 1 (10%) I det følgende angiver log n 2-tals-logaritmen af n. Ja Nej. n+3n er O(2n)? n 6 er O(n 5 )? nlogn er O(n 2 /logn)? 4n 3 er O(3n 4 )?

Opgave 1 (10%) I det følgende angiver log n 2-tals-logaritmen af n. Ja Nej. n+3n er O(2n)? n 6 er O(n 5 )? nlogn er O(n 2 /logn)? 4n 3 er O(3n 4 )? Eksamen juni Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) I det følgende angiver log n -tals-logaritmen af n. n+n er O(n)? n 6 er O(n )? nlogn er O(n /logn)? n er O(n )? n er O(n )?

Læs mere

Introduktion til DM507

Introduktion til DM507 Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA

Læs mere

Induktive og rekursive definitioner

Induktive og rekursive definitioner Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal

Læs mere

DM507 - Algoritmer og datastrukturer

DM507 - Algoritmer og datastrukturer - Algoritmer og datastrukturer Køretid g(n) Udtryk Beskrivelse lim n f(n) o(f) Vokser langsommere end f = 0 O(f) Vokser højst så hurtigt som f < Θ(f) Vokser som f = c(c > 0) Ω(f) Vokser mindst så hurtigt

Læs mere

Forén og find. Forén og find. Forén og find. Anvendelser

Forén og find. Forén og find. Forén og find. Anvendelser Phlp Blle (unon-fnd). Vedlgehold en dynamsk famle af mængder under operatoner: INIT(n): opret mængder {}, {},, {n} UNION(,): forener de to mængder der ndeholder og. Hvs og er samme mængde skal der ngentng

Læs mere

Analyse af ombytningspuslespil

Analyse af ombytningspuslespil Analyse af ombytningspuslespil 1 / 7 Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. 2 / 7 Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset

Læs mere

Sortering ved fletning (merge-sort)

Sortering ved fletning (merge-sort) Sortering 1 Sortering ved fletning (merge-sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 2 Del-og-hersk Del-og-hersk er et generelt paradigme til algoritmedesign Del: opdel input-data S i to disjunkte

Læs mere

Forén og find. Forén og find. Forén og find. Forén og find

Forén og find. Forén og find. Forén og find. Forén og find Phlp Blle (unon-fnd). Vedlgehold en dynamsk famle af mængder under operatoner: INIT(n): opret mængder {}, {},, {n-} UNION(,): forener de to mængder der ndeholder og. Hvs og er samme mængde skal der ngentng

Læs mere

A Comparative Analysis of Three Different Priority Deques af: Søren Skov & Jesper Holm Olsen

A Comparative Analysis of Three Different Priority Deques af: Søren Skov & Jesper Holm Olsen A Comparative Analysis of Three Different Priority Deques af: Søren Skov & Jesper Holm Olsen Agenda: Hvad er en Priority Deque? Hvad kan det bruges til? De tre datastrukturer: MinMax-heap The Deap (påpeget

Læs mere

Bevisteknikker. Bevisteknikker (relevant både ved design og verifikation) Matematisk induktion. Matematisk induktion uformel beskrivelse

Bevisteknikker. Bevisteknikker (relevant både ved design og verifikation) Matematisk induktion. Matematisk induktion uformel beskrivelse Bevisteknikker Bevisteknikker (relevant både ved design og verifikation) Bevisførelse ved modstrid (indirekte bevis) Antag, at det givne teorem er falsk Konkluder, at dette vil føre til en modstrid Teorem:

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR DTLOGI, RHUS UNIVERSITET Science and Technology EKSEN lgoritmer og Datastrukturer (00-ordning) ntal sider i opgavesættet (incl. forsiden): 11 (elleve) Eksamensdag: Torsdag den 1. juni 01,

Læs mere

Korteste veje. Korteste veje. Introduktion. Introduktion. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs

Korteste veje. Korteste veje. Introduktion. Introduktion. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs Kortete veje Egenkaber for kortete veje Dijktra algoritme Kortete veje på DAG Kortete veje Egenkaber for kortete veje Dijktra algoritme Kortete veje på DAG Philip Bille Introduktion Kortete veje. Givet

Læs mere

Reeksamen i Diskret Matematik

Reeksamen i Diskret Matematik Reeksamen i Diskret Matematik Første studieår ved Det Teknisk-Naturvidenskabelige Fakultet 23. august, 2016, 9.00-13.00 Dette eksamenssæt består af 11 nummerede sider med 16 opgaver. Alle opgaver er multiple

Læs mere

Sammenlign og byt. Et eksempel på dokumentering af et program

Sammenlign og byt. Et eksempel på dokumentering af et program Sammenlign og byt Et eksempel på dokumentering af et program Sammenlign og byt Jeg har valgt, som et eksempel, at dokumentere et meget enkelt program som indlæser to tal, sammenligner dem og udskriver

Læs mere