Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:
|
|
- Bjørn Bundgaard
- 8 år siden
- Visninger:
Transkript
1 Grådige algoritmer
2 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 nu ser ud som bedste valg (uden information om resten af løsningen). Dvs. man håber på at lokal optimimering giver global optimering. Mere præcist kræver metoden kræver en definition af bedste valg (også kaldet grådig valg ), samt et bevis for gentagen brug af dette ender med en optimal løsning. Mange tilfælde af grådige algoritmer kan forklares som specialtilfælde af begrebet Matroide (afsnit 16.4, ikke pensum), men vi vil nøjes med at tænke på grådige algoritmer som et løst princip, hvor bedste valg og korrekthedsbevis skal opfindes individuelt fra problem til problem.
3 Eksempel: et simpelt skeduleringsproblem Input: samling aktiviteter, hver med en starttid og sluttid. Output: en størst mulig mængde af ikke-overlappende aktivititer. Grådigt forslag: Sorter aktiviteter efter stigende sluttid For hver aktivitet a taget denne rækkefølge: If a overlapper allerede valgte aktiviteter: Skip a Else Vælg a... Tid
4 Analyse Bevis for korrekthed: Flg. invariant vedligeholdes: Lad s være sluttiden for aktiviteten testet i sidst udførte iteration af for-løkken (og lad s = før første iteration). Der findes en optimal løsning, hvis aktiviteter med sluttid s netop er de af algoritmen indtil nu valgte aktiviteter. Bevis (induktion): Basis: Klart før første iteration af for-løkken (for enhver optimal løsning er aktiviteterne med sluttid de samme som de af algoritmen indtil nu valgte aktiviteter, nemlig ingen).
5 Analyse Bevis (induktion): Skridt: Hvis udsagnet gælder før en iteration, gælder det også efter: Lad X være den optimale løsning fra induktionsudsagnet før iterationen. Køretid: Sortering + O(n). If-case: Her overlapper den næste aktivitet a de allerede passerede aktiviteter fra X, så dennne aktivitet kan ikke være en del af X. Da algoritmen ikke vælger a, kan X (gen)bruges i induktionsudsagnet efter iterationen. Else-case: Lad a være den aktivitet i resten af X, som har mindst sluttid. Det er nemt at se, at man kan udskifte a med den af algoritmen valgte a uden at få overlap med andre i X. Da dette ikke ændrer antal aktiviteter i X, er den stadig optimal, og kan bruges i induktionsudsagnet efter iterationen.
6 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.
7 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. Et simplet udskiftningsargument viser, at den optimale løsning kun kan være som den af algoritmen valgte. NB: Denne grådige algoritme virker IKKE for 0-1 versionen af problemet (hvor kun hele ting kan medtages): Eksempel på at grådige valg ikke bare kan antages at virke for alle problemer (lokal optimering giver ikke altid global optimering).
8 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
9 Prefix-kode = træer Kodeord = sti i binært træ: 0 gå til venstre, 1 gå til højre 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.
10 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:
11 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).
12 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
13 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.
14 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.
15 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: Da knuder i optimale træer enten har to eller nul børn, er der præcis eet optimalt træ for n = 1 (nemlig hvor roden har nul børn). Det er præcis træet returneret af Huffmans alsgoritme når n = 1. 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
16 Korrekthed Lad T være Huffmans output på input I. Lad T være Huffmans output på input I (optimalt træ pr. induktionsantagelse, da antal tegn i dette input er n 1). Lad T være et optimalt træ på input I hvor bladene for tegnene x = c 1 og y = c 2 er søskende (et sådant optimalt træ 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 Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for
Læs mereGrå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 mereGrå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 mereGrådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Grådige algoritmer Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Læs mereMinimum 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 mereMinimum 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 mereSortering. 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 mereSammenhæ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 merePrioritetskø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 mereSortering 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 mereSortering. 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 mereSortering. 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 mereInvarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.
Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af)
Læs merePrioritetskø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 mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereKorteste 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 mereMinimum 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 mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereSortering af information er en fundamental og central opgave.
Sortering 1 / 36 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, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,
Læs merePrioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer
Philip Bille. Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX(): returner og fjern
Læs mereMindste 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 merePrioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer
Philip Bille (priority-queues). Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX():
Læs mereDatastrukturer (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 mereDatastrukturer (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 mereKorteste 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 mereDM02 opgaver ugeseddel 2
DM0 opgaver ugeseddel af Fiona Nielsen 16. september 003 Øvelsesopgaver 9/9, 10/9 og 11/9 1. Vis, at 1 3 + 3 3 + 5 3 +... + (n 1) 3 = n 4 n. Omskriver til summationsformel: (i 1) 3 = n 4 n Bevis ved induktion
Læs mereDM507 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 mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereDynamisk 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 mereAlgoritmer 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 mereGrafer 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 mereDynamisk 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 mereSkriftlig 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 mereSkriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.
Læs mereGrafer 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 mereGrafer 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 mereDM507 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 mereDynamisk programmering
Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler:
Læs mereKorteste 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 mereGrafer 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 mereBevisteknikker. 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 mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således
Læs mereSkriftlig 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 mere18 Multivejstræer og B-træer.
18 Multivejstræer og B-træer. Multivejs søgetræer. Søgning i multivejssøgetræer. Pragmatisk lagring af data i multivejstræer. B-træer. Indsættelse i B-træer. Eksempel på indsættelse i B-træ. Facts om B-træer.
Læs mereGrafer 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 mereDivide-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 mereDatastrukturer (recap) Datastruktur = data + operationer herpå
Dictionaries Datastrukturer (recap) Datastruktur = data + operationer herpå Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data (ofte underforstået, også
Læs mereMindste 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 mereDefinition : 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 mereForé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 mere1 Program for forelæsningen
1 Program for forelæsningen Udvidelser af Bims (Kontrolstrukturer) Repeat-løkker For-løkker Non-determinisme God Ond parallelitet Alle emner hører under semantisk ækvivalens. 1.0.1 Fra tidligere.. Bims
Læs mereForé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 mereBinæ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 mereINSTITUT FOR DATALOGI, AARHUS UNIVERSITET
INSTITUT FOR ATALOGI, AARHUS UNIVERSITET Science and Technology EKSAMEN Algoritmer og atastrukturer (00-ordning) Antal sider i opgavesættet (incl. forsiden): (elleve) Eksamensdag: Fredag den. august 0,
Læs mereDATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes
Læs mereMålet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål
Læs mereOrienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.
Orienterede grafer Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer Philip Bille Orienterede grafer Introduktion Repræsentation Søgning Topologisk
Læs mereDanmarks 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 mereSkriftlig 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 mereP (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.
P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2. Bevis ved stærk induktion. Basisskridt: P (2) er sand og P (3) er sand. Induktionsskridt: Lad k 2 og antag P
Læs mereSkriftlig Eksamen DM507 Algoritmer og Datastrukturer
Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se
Læs mereMindste 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 mereDivide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer (af samme type). 2. Løs delproblemerne ved rekursion (dvs. kald algoritmen
Læs mereMindste 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 mereBevisteknikker (relevant både ved design og verifikation)
Bevisteknikker 1 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 mereOrienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer
Philip Bille Orienteret graf. Mængde af knuder forbundet parvis med orienterede kanter. deg + (7) =, deg - (7) = Lemma. v V deg - (v) = v V deg + (v) = m. Bevis. Hver kant har netop en startknude og slutknude.
Læs mereKlasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22.
Klasser og Objekter i Python Uge 46 Learning Python: kap 15-16, 19-22. Klasser og objekter En klasse beskriver en klump af samhørende funktioner og variable En klasse er en beskrivelse. En kage form Klassens
Læs merei x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0
BAndengradspolynomier Et polynomium er en funktion på formen f ( ) = an + an + a+ a, hvor ai R kaldes polynomiets koefficienter. Graden af et polynomium er lig med den højeste potens af, for hvilket den
Læs mere6. 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 mereKorteste 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 mereKorteste 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 mereBinære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Algoritmer på træer og trægennemløb.
Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Algoritmer på træer og trægennemløb Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse
Læs mereDanmarks 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 mereOrienterede 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 mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 3/2. n logn (3/2) n. 2 3logn (3/2) n
Side af 0 sider Opgave (4%) Ja Nej n er O(n / )? n +n er O(n )? (logn) er O( logn )? n er O()? /n er O(logn)? Opgave (4%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: logn
Læs mereBinæ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 mereDM507 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 mereSkriftlig 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 mereDanmarks 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 mereEt udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0.
Konkrete funktioner Potenser Som udgangspunkt er brugen af potenser blot en forkortelse for at gange et tal med sig selv et antal gange. Hvis a Rskriver vi a 2 for a a a 3 for a a a a 4 for a a a a (1).
Læs mereINSTITUT FOR DATALOGI, AARHUS UNIVERSITET
INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Science and Technology EKSAMEN Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Fredag den 22. juni 2012, kl. 9.00-13.00 Eksamenslokale: Finlandsgade
Læs mereMå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 mereDivide-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 mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.
Eksamen august Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) n + n er O(n )? n / er O(n / )? n er O(n log n)? n er O((log n) )? n er Ω(n )? Ja Nej Opgave (%) Opskriv følgende funktioner
Læs mereDivide-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 mereTilgang 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 mere17 Søgning og Søgetræer.
17 Søgning og Søgetræer. Lineær og inær søgning i lister. inære søgetræer. Søgning efter knude i træ. Indsættelse af knude i træ. Søgning i og sortering af inært søgetræ. Sletning af knude i inært søgetræ.
Læs mereTilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (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 (key, nøgle) for dataelementer. API for sekventiel tilgang (API = Application
Læs mereAnalyse 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 mereDanmarks 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 meredcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)
dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) Efterår 2009 1 Talrepræsentation På maskinkodeniveau (Instruction Set Architecture Level) repræsenteres ordrer og operander ved bitfølger
Læs mereDanmarks 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 mereP2-projektforslag Kombinatorik: grafteori og optimering.
P2-projektforslag Kombinatorik: grafteori og optimering. Vejledere: Leif K. Jørgensen, Diego Ruano 1. februar 2013 1 Indledning Temaet for projekter på 2. semester af matematik-studiet og matematikøkonomi-studiet
Læs mereAnalyse af ombytningspuslespil
Analyse af ombytningspuslespil 1 / 7 Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. Spørgsmål: Hvilken bedste (laveste) score kan du opnå på 5 forsøg? Hvilken algoritme
Læs mereAlgorithms 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 mereINSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)
INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 10. august 2012, kl. 9.00-11.00 Eksamenslokale: Finlandsgade
Læs mereDanmarks 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 mereAlgoritmer og Datastrukturer 1. Gerth Stølting Brodal Aarhus Universitet
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet Kursusbeskrivelsen Kursusbeskrivelsen: Algoritmer og datastrukturer 1 Formål Deltagerne vil efter kurset have indsigt i algoritmer
Læs mereDanmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af
Læs mere