Algorithms & Architectures I 2. lektion



Relaterede dokumenter
Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12, 2010

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm2: Rekursive algoritmer og rekurrens - October 10, 2008

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer

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

Divide-and-Conquer algoritmer

Dynamisk programmering

Søgning og Sortering. Philip Bille

Dynamisk programmering

Dynamisk programmering

Søgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Mm7: A little bit more about sorting - and more times for exercises - November 4, 2008

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

Søgning og Sortering. Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering. Philip Bille

Mm4: Greedy algorithms, backtracking and more recurrences - October 21, 2008

Mm1: Introduction to analysis and design of algorithms - October 6, 2009

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Eksamensopgaver datalogi, dlc 2011 side 1/5. 1. Lodtrækningssystem

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm1: Introduction to analysis and design of algorithms - October 11, 2010

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

Mm1: Introduction to analysis and design of algorithms - October 7, 2008

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

Rekursion og dynamisk programmering

Sortering af information er en fundamental og central opgave.

Sortering. Eksempel: De n tal i sorteret orden

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

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Introduktion Til Konkurrenceprogrammering

P2-projektforslag Kombinatorik: grafteori og optimering.

DM02 opgaver ugeseddel 2

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed

Danmarks Tekniske Universitet

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

Eksempel på muligt eksamenssæt i Diskret Matematik

Reeksamen i Diskret Matematik

Sortering. Eksempel: De n tal i sorteret orden

Eksamensopgaver datalogi, dl/vf 2010 side 1/5. 1. Lodtrækningssystem

Danmarks Tekniske Universitet

Ugens emner. Regulære sprog og digitale billeder. Adressering af områder. Et alfabet. Dette billede: kan repræsenteres af en FA med 832 tilstande

DM02 Kogt ned. Kokken. Januar 2006

Eksamen i Diskret Matematik

Danmarks Tekniske Universitet

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox

Differentialregning Infinitesimalregning

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

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jens Myrup Pedersen (JMP) Mm4: Sorting algorithms - October 23, 2009

Sortering af information er en fundamental og central opgave.

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.

Matematiske metoder - Opgaver

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

P vs. NP. Niels Grønbæk Matematisk Institut Københavns Universitet 3. feb. 2012

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

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

18 Multivejstræer og B-træer.

Et 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.

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)}

Dynamisk programmering. Flere eksempler

Talteori II. C-serien består af disse arbejdskort: C1 Talteori på forskellige klassetrin C2 Den pythagoræiske tripelsætning

Procedurer og funktioner - iteration og rekursion

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

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Model-baseret Realkreditrådgivning

Oplæg og øvelser, herunder frugt og vand Gerth Stølting Brodal

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

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

DM72 Diskret matematik med anvendelser

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

Grundlæggende køretidsanalyse af algoritmer

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

Sortering. Sortering ved fletning (merge-sort) Del-og-hersk. Merge-sort

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.

Tirsdag 12. december David Pisinger

LUS LæseUdviklingsSkema

Et udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives. Type Expr = Sumèplus, minus, times, div: Args, const: Int, name: Textè

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 5n 4. logn. n 4n 5 n/logn. n n/logn 5n

Danmarks Tekniske Universitet

Grafer / Otto Knudsen

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

Minimum udspændende Træer (MST)

Reeksamen i Diskret Matematik

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Åben uddannelse, Efterår 1996, Oversættere og køretidsomgivelser

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

t a l e n t c a m p d k Matematik Intro Mads Friis, stud.scient 27. oktober 2014 Slide 1/25

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Sammenhængskomponenter i grafer

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

Grundlæggende Algoritmer og Datastrukturer

Projekt 7.9 Euklids algoritme, primtal og primiske tal

Introduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal

Rolf Fagerberg. Forår 2013

Transkript:

Algorithms & Architectures I 2. lektion

Design-teknikker: Divide-and-conquer Rekursive algoritmer (Recurrences) Dynamisk programmering Greedy algorithms Backtracking Dagens lektion

Case eksempel: Triple path i N2R Problem: Finde 3 uafhængige veje mellem ethvert par af punkter. Vejene skal være kortest mulige Den længste kortest mulig Summen af længder kortest mulig. Korteste vej er let at finde MEN det virker ikke rigtigt her!

Problem2 med shortest-path approach

Hvad gør vi så? Brute-force approach ( backtracking ). Problem: Eksekveringstid (eksponentielt voksende). Problem ved mere end 164 nodes. Hint: Optimeringer: Udnytte symmetri. Vi kan bruge shortest-path algoritme til at finde den 3. vej. Graf af grad 3 så vi kan kun bruge hvert punkt én gang (hvor giver det problemer)? Det viser sig at 3 * shortest-path algoritme normalt er et godt bud. Vi kan gætte på om det er en optimal løsning? Gættet bruges til at afgrænse max path-length (hvad med max sum?). Vi finder enten den korteste eller den længste vej først.. Og bruger den information når vi finder vej2 eller vej3. Der er flere små observationer, der giver små forbedringer. I dag kan vi regne på over 1000 punkter. Problem: Koden er ulæselig!!!

Lidt mere struktureret Design-teknikker baseret på Aho, Hopcroft, Ullman chapter 10. Alle eksempler beskrevet i bogen, så det er ikke nødvendigt at tage noter. Fokus: Concepter og eksempler. Divide-and-Conquer Dynamic Programming Greedy Algorithms Backtracking (Local Search Algorithms)

Divide-and-conquer Bryd et problem af størrelse n ned til mindre problemer, hvis løsninger kan kombineres til en løsning af det oprindelige problem. Eksempel (miniopgave+tavle): Towers of Hanoi. Merge-sort slides. Men, hey stop lige hvordan beregner vi kompleksiteten af en rekursiv algoritme???? Eksempel (tavle): Multiplikation af heltal. Eksempel (tavle): Tennisturneringer.

Merge sort (1) Ideen med Divide and Conquer er: Divide: Del problemet op i et antal delproblemer Conquer: Løs delproblemerne (rekursivt). Hvis problemets størrelse bliver tilstrækkeligt lille kan det løses trivielt. Combine: Kombinér de opnåede løsninger, så der opnås en løsning på det originale problem. I forhold til Merge Sort kan det siges mere konkret: Divide: Hvis n elementer skal sorteres deles talfølgen ind i to sekvenser på hver n/2 elementer. Conquer: Sorter de to delsegmenter ved at bruge Merge sort rekursivt. Combine: Merge de to (sorterede) delsegmenter for at opnå en sorteret liste. Bemærk: Når en liste har længde 1 bliver problemet trivielt.

Merge sort (2) - overblik

Merge sort (3) Vi kalder funktionen Merge (A,p,q,r), hvor A: Array som vi gerne vil have sorteret p, q, r heltal således at: A[p..q] sorteret A[q+1..r] sorteret Det funktionen gør er at merge de to sorterede arrays til ét sorteret Array, nemlig A[p r]. Bemærk at hvert trin i merge proceduren indeholder n=r-p+1 skridt dvs. Θ (n) altså lineær tid. Vi tager lige og kigger på Pseuo-koden, så kan vi også genopfriske vores viden om loop invarianter.

Merge sort (4)

Merge sort (5)

Merge sort (6) selve algoritmen

Merge sort (7) - effektivitet T(n) køretid for et problem af størrelse n. T(n)= hvis n=1: Det trivielle problem, så Θ (1) hvis n>1: 2T(n/2) +Θ (n) Det kan omskrives til: T(n)= c hvis n=1 2T(n/2)+cn hvis n>1 Hvor c er den tid det tager at løse et problem af størrelse 1, og vi antager det tager samme tid at merge per tal der skal merges. og så har I vel læst kapitel 4 eller jeres matematik fra basis, så I ved at det giver Θ (n lg n) ellers se næste slide

Merge sort (8) - effektivitet

Dynamisk programmering Nogle gange, hvis et problem deles op, er der brug for at løse det samme problem flere gange. Eksempel (på tavle): World Series Odds.

Greedy Algorithms Grådig algoritme: Lokal optimering. Eksempel 1: At give penge tilbage, med færrest muligt mønter: 19 kroner 10+5+2+2 men hvad er algoritmen? Møntsystem: 1kr,5kr,11kr. Giv 15 kroner tilbage virker algoritmen stadigvæk? Greedy algorithms bruges ofte til at producere gode løsninger, hvor alternativet er brute-force. 3 * shortest path i N2R er også et udtryk for en greedy algorithm, Eksempel (tavle): Travelling salesman

Backtracking A systematic, Exhaustive searching technique Eksempel på tavle: Tic-tac-toe (en slags kryds og bolle) Stort eksempel på tavle: Travelling Salesman revisited.

Opgaver Analyser køretiden for Towers of Hanoi algoritmen Gennemgå i fællesskab, på tavlen, kapitel 4.3 (s. 73-75). Bogen side 85: Opgaver 4-1, 4-2