Perspektiverende Datalogikursus

Relaterede dokumenter
Perspektiverende Datalogikursus

Perspektiverende Datalogi Klassiske Algoritmer

Perspektiverende Datalogi Klassiske Algoritmer. Gerth Stølting Brodal

Rolf Fagerberg. Forår 2013

Rolf Fagerberg. Forår 2012

DATALOGISK INSTITUT, AARHUS UNIVERSITET

.. 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)}

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomielt tid Optimeringsproblemer kan ikke altid verificeres i polynomiel

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid

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

Tirsdag 12. december David Pisinger

Rolf Fagerberg. Forår 2015

Rolf Fagerberg. Forår 2014

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

Rolf Fagerberg. Forår 2015

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

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal Aarhus Universitet

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

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

Introduktion til DM507

Danmarks Tekniske Universitet

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

P2-gruppedannelsen for Mat og MatØk

DM02 Kogt ned. Kokken. Januar 2006

Perspektiverende Datalogikursus

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

DM507 Algoritmer og datastrukturer

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Danmarks Tekniske Universitet

Perspektiverende Datalogikursus

Danmarks Tekniske Universitet

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Danmarks Tekniske Universitet

Perspektiverende Datalogikursus Uge 1 - Algoritmer og kompleksitet

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 7 n 1 7 7/n. 7nlogn. 7n 7nlogn n7

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

Sortering. Eksempel: De n tal i sorteret orden

Dynamisk programmering. Flere eksempler

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

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

Dynamisk programmering

Sortering af information er en fundamental og central opgave.

Sortering. Eksempel: De n tal i sorteret orden

Sprog L : mængden af instanser for et afgørlighedsproblem

Grundlæggende køretidsanalyse af algoritmer

Perspektiverende Datalogikursus

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

Sortering af information er en fundamental og central opgave.

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

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

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

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

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

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Danmarks Tekniske Universitet

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

Danmarks Tekniske Universitet

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

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

Danmarks Tekniske Universitet

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

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

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

Hashing. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Philip Bille

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

Hashing. Hashing. Ordbøger. Ordbøger. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Ordbøger Hægtet hashing Hashfunktioner Lineær probering

Danmarks Tekniske Universitet

Dynamisk programmering

Hashing. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Philip Bille

Intervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed

Algoritmisk geometri

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

16. marts P NP. Essentielle spørgsmål: NP P? Et problem Q kaldes NP -fuldstændigt 1 Q NP 2 R NP : R pol Q. Resume sidste gang

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Analyse af algoritmer

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

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer

Dynamisk programmering. Flere eksempler

DATALOGISK INSTITUT, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

P2-projektforslag Kombinatorik: grafteori og optimering.

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

Symmetrisk Traveling Salesman Problemet

Transkript:

Perspektiverende Datalogikursus Uge 1 - Algoritmer og kompleksitet Gerth Stølting Brodal 27. august 2004 1

Indhold Mere om Eksempler på beregningsproblemer Algoritmer og deres analyse Korrekthed af algoritmer Ressourceforbrug for algoritmer Kompleksitet af beregningsproblemer 2

Beregningsproblemer Eksempler: Sortering Søgning Grafer Strenge Kombinatorisk optimering Geometri Numeriske beregninger 3

Sortering Problem: For elementer med en ordning tilknyttet: stil i orden. Måske det mest fundamentale problem af alle. Data er meget bekvemmere hvis de er sorterede. Specielt er det nemmere at lede i dem (ordbøger, telefonbøger, eksamensopslag,... ). Brugt som rutine i mange andre algoritmer. Meget velstuderet problem. Mange algoritmer (jvf. øvelserne + QuickSort + ShellSort +... ). 4

Søgning Problem: Gem data så de kan findes igen effektivt. Find(x) Insert(x) Delete(x) Successor(x), RangeSearch(x) Et andet meget fundamentalt problem (jvf. databaser). Brugt som rutine i mange andre algoritmer. Meget velstuderet, mange algoritmer. To grundgrupper: søgetræer og hashing. 5

Grafer Definition: Knuder (punkter) og kanter (streger mellem punkter). Ekstra struktur: orientering af kanter, vægte på kanter. En meget anvendelig model: Flyruter, veje, el/vand/computer netværk, bekendtskaber og andre relationer,... 6

Problemer på grafer Løb grafen igennem (besøge alle knuder). Sammenhæng, k-sammenhæng. (Mindste) udspændende træ. Korteste veje. Euler tur. Hamilton tur, rejsende sælger. Graffarvning. Klike. 7

Strenge Alfabet = mængde af tegn som kan bruges Streng = sekvens af tegn fra alfabetet Eksempler: To be or not to be ACCCATTCCGTAA 10001100110001110 8

Problemer på strenge Pattern matching Regulære udtryk Afstandsmål (Hamming, edit) Længste fælles delstreng Længste fælles delsekvens. 9

Kombinatorisk optimering Bin Packing (1D, 2D, 3D) Knapsack Subset Sum Job Scheduling Crew assignment. 10

Geometri Convex Hull Nearest Neighbor Ortogonal Line Segment Intersection 2D Range Search. 11

Numeriske beregninger Polynomieevaluering Matrixmultiplikation Løsning af ligningssystemer Løsning af differentialligninger. 12

Indhold Mere om Eksempler på beregningsproblemer Algoritmer og deres analyse Korrekthed af algoritmer Ressourceforbrug for algoritmer Kompleksitet af beregningsproblemer 13

Invarianter Udsagn I som gælder efter alle skridt i algoritmen. Vælges så: Man kan vise at I gælder ved starten Man kan vise at hvis I gælder før et skridt, så gælder det efter. Man kan vise af I samt omstændigheder ved algoritmens afslutning implicerer det ønskede slutresultat. Eksempler: RadixSort, binær søgning. 14

Indhold Mere om Eksempler på beregningsproblemer Algoritmer og deres analyse Korrekthed af algoritmer Ressourceforbrug for algoritmer Kompleksitet af beregningsproblemer 15

Ressourceforbrug, målestok RAM-modellen Tidsmåling vs. analyse. Voksehastighed, asymptotisk notation. Worst case, best case, average case Først vælge (eller udvikle) algoritme efter forskelle i asymptotisk ressourceforbrug Ved lighed, vælg dernæst efter konstanter (tidsmåling nu relevant). 16

Indhold Mere om Eksempler på beregningsproblemer Algoritmer og deres analyse Korrekthed af algoritmer Ressourceforbrug for algoritmer Kompleksitet af beregningsproblemer 17

Nedre grænser Beviser for at ingen algoritme (blandt en stor klasse af algoritmer) kan løse problemet bedre end angivet. Eksempler: Sortering Søgning Selection (find element af given rang). Øvre og nedre grænser ens problemets kompleksitet kendt. 18

P vs. EXP Meget grov inddeling af algoritmer i gode og dårlige: Polynomiel tids algoritmer kontra Eksponentiel tids algoritmer Eksempel: sortering vs. brute-force løsning af puslespil P = problemer med polynomiel tids algoritme EXP = problemer med eksponentiel tids algoritme Klart at P EXP. 19

NP-fuldstændighed NP = ja/nej-problemer, hvor en ja-løsning kan kontrolleres (men ikke nødvendigvis findes) i polynomiel tid. Eksempel: Hamiltontur. Det er nemt at se at P NP EXP. NP-fuldstændigt problem S: Hvis en løsning til S kan findes i polynomiel tid, da kan der for alle problemer i NP findes en løsning i polynomiel tid. Cook (1972): Der findes et NP-fuldstændigt problem! Karp m.fl. (1972 ): Der findes mange. 20

NP-fuldstændighed NP-fuldstændigt problem S: Hvis en løsning til S kan findes i polynomiel tid, da kan der for alle problemer i NP findes en løsning i polynomiel tid. Karp m.fl. (1972 ): Der findes mange. Eksempler: Hamiltontur, rejsende sælger, graffarvning, klike, bin packing, knapsack, subset sum, job scheduling, crew assignment,... Formodning: P NP Hvad gør vi så med de problemer? ( der findes ikke polynomiel tids algoritme for disse problemer) 21

Hvad gør vi så? Heuristisk søgning Algoritmer for specielle instanser (jvf. The Eternity Puzzle ). Approximationsalgoritmer 22

Flere modeller og cost-funktioner Online algoritmer Randomiserede algoritmer Parallelisme Hukommelseshierarkier 23

Kort sagt Algoritmer og kompleksitet: Udvikle algoritmer Analysere algoritmer Analysere problemer Ét synspunkt (David Harel, 92): Algorithmics is more than a branch of computer science. It is the core of computer science, and, in all fairness, can be said to be relevant to most of science, business, and technology. 24