Perspektiverende Datalogi Klassiske Algoritmer

Relaterede dokumenter
Perspektiverende Datalogikursus

Perspektiverende Datalogikursus

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

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

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

Rolf Fagerberg. Forår 2015

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

Rolf Fagerberg. Forår 2014

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

Perspektiverende Datalogikursus

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

Perspektiverende Datalogikursus Uge 1 - Algoritmer og kompleksitet

Rolf Fagerberg. Forår 2015

Danmarks Tekniske Universitet

Perspektiverende Datalogikursus

Danmarks Tekniske Universitet

P2-gruppedannelsen for Mat og MatØk

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

Tirsdag 12. december David Pisinger

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Perspektiverende Datalogikursus

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

Introduktion til DM507

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Dynamisk programmering. Flere eksempler

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

Danmarks Tekniske Universitet

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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

Dynamisk programmering

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

Grundlæggende køretidsanalyse af algoritmer

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Danmarks Tekniske Universitet

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

DM507 Algoritmer og datastrukturer

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

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

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

DM02 Kogt ned. Kokken. Januar 2006

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

Danmarks Tekniske Universitet

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Danmarks Tekniske Universitet

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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

Sammenhængskomponenter i grafer

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

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

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

Dynamisk programmering

Sortering. Eksempel: De n tal i sorteret orden

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

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

Dynamisk programmering. Flere eksempler

Sortering af information er en fundamental og central opgave.

Danmarks Tekniske Universitet

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Sortering. Eksempel: De n tal i sorteret orden

Sortering i lineær tid

Danmarks Tekniske Universitet

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Sortering af information er en fundamental og central opgave.

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

Danmarks Tekniske Universitet

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

Danmarks Tekniske Universitet

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

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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

Symmetrisk Traveling Salesman Problemet

Klasserne af problemer, der kan løses i deterministisk og i ikke-deterministisk polynomiel tid; polynomiel reduktion; N P-fuldstændighed

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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

Analyse af algoritmer

Eksempel på muligt eksamenssæt i Diskret Matematik

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

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

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

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

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

Algoritmisk geometri

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

Danmarks Tekniske Universitet

DATALOGISK INSTITUT, AARHUS UNIVERSITET

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

Transkript:

Perspektiverende Datalogi Klassiske Algoritmer Gerth Stølting Brodal 1

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

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

Sortering Problem: Stil en mængde elementer i orden. 110 755 766 51 652 28 729 713 681 407 28 51 110 407 652 681 713 729 755 766 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 +... ). 4

Søgning Problem: Gem data så de kan findes igen effektivt. Find(x) Insert(x) Delete(x) Successor(x), RangeSearch(x 1,x 2 ),... 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 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 10001100110001110 ACCCATTCCGTAA 8

Problemer på strenge Mønster genkendelse Regulære udtryk Afstandsmål (Hamming, edit) Længste fælles delstreng Længste fælles delsekvens. 9

Kombinatorisk optimering Spande pakning (1D, 2D, 3D) Rygsæk Delmængde sum Job-skemaplanlægning Crew-skemaplanlægning. 10

Geometri Konvekse hylster Nærmeste naboer Krydsninger af ortogonale linjesegmenter 2D område søgninger. 11

Numeriske beregninger Polynomieevaluering Matrixmultiplikation Løsning af ligningssystemer Løsning af differentialligninger. (6/7-1)*7+1 = -4.44089209850063e-16? 12

Indhold 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 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 designe) algoritme efter forskelle i asymptotisk ressourceforbrug. Ved lighed, vælg dernæst efter konstanter (tidsmåling nu relevant). 16

Indhold 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 for en given beregningsmodel) kan løse problemet bedre end angivet. Eksempler: Sortering Søgning Øvre og nedre grænser ens problemets kompleksitet kendt. 18

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

NP NP = ja/nej-problemer, hvor en ja-løsning kan kontrolleres (men ikke nødvendigvis findes) i polynomiel tid. Eksempel: Hamilton tur. Det er nemt at se at P NP EXP. Formodning: P NP 20

Hvis ingen polynomiel algoritme... Heuristisk søgning Algoritmer for specielle instanser (jvf. The Eternity Puzzle ). Approximationsalgoritmer 21

Flere modeller og cost-funktioner Online algoritmer Randomiserede algoritmer Parallelisme Hukommelseshierarkier. 22

Algoritmik Designe algoritmer Analysere algoritmer Analysere problemer David Harel: 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. 23