Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.

Slides:



Advertisements
Lignende præsentationer
1 Problemkompleksitet 2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan.
Advertisements

Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
DProg2 E Programmering 2 dProg2 E2010
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Kandidatorientering, 2. november 2012 Algoritmer og Datastrukturer Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
Datastruktur & Algoritmik1 Datastruktur & Algoritmik 99 Kim Guldstrand Larsen.
1 Bevisteknikker. 2 Bevisteknikker (relevant både ved design og verifikation) Teorem: Der findes uendeligt mange primtal Bevis: Antag at der findes et.
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS, kapitel 15] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal.
1 Algoritme til at løse knude P-center problemet Algoritmen brugte set covering problemet Virker derfor kun til knude problemer Vi vil alligevel bruge.
1 Datalogi C Datastrukturer og algoritmer ved Keld Helsgaun.
Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Mønstergenkendelse [CLRS, kapitel , 32.4]
Algoritmer og Datastrukturer 1...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel 2.3, , problem 30.1.c] Gerth Stølting Brodal.
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Fundamentale datastrukturer
Design, verifikation og analyse
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Økonometri 1 Gentagne Tværsnit og Paneldata II 20. november 2006.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Eksempler på en beregningsprocess… Puslespil ved ombytninger Maximum delsum.
Algoritmer Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet MasterClass i Matematik, 10. april 2014, Aarhus Universitet.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Quicksort [CLRS, kapitel 7] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel 24]
Algoritmer og Datastrukturer 1 Quicksort [CLRS, kapitel 7] Gerth Stølting Brodal Aarhus Universitet.
Grundlæggende programmering Forår 2002
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
DADS: Algoritmer og Datastrukturer Forelæser: Gerth S. Brodal (vikar: EMS) Forelæsninger: timer, Aud E Kvarter: 3. (dADS 1) + 4. (dADS 2) Øvelser:
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Analyseværktøjer [CLRS, 1-3.1]
REGULARITET & AUTOMATER Indhold
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
2017.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ]
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 1
Grundlæggende Algoritmer og Datastrukturer
Grundlæggende Algoritmer og Datastrukturer
Algoritmer og Datastrukturer 1
Præsentationens transcript:

Algoritmer og Datastrukturer 1 Gerth Stølting Brodal

Kursusbeskrivelsen…

Kursusbeskrivelsen: Algoritmer og datastrukturer 1 Formål Deltagerne vil efter kurset have indsigt i algoritmer som model for sekventielle beregningsprocesser og som basis for formelle korrekthedsbeviser og analyse af ressourceforbrug ved beregningerne, samt detaljeret kendskab til adskillige konkrete implementationer af fundamentale datastrukturer. Indhold Datastrukturer: Lister, træer, hashtabeller; Dataabstraktioner: Stakke, køer, prioritetskøer, ordbøger, mængder; Algoritmer: Søgning, sortering, selektion, fletning; Analyse og syntese: Worst-case, amortiseret og forventet udførelsestid, udsagn, invarianter, gyldighed, terminering og korrekthed. Læringsmål Deltagerne skal ved afslutningen af kurset kunne: formulere og udføre algoritmer og datastrukturer i pseudo code. analysere og sammenligne tid og pladsforbruget af algoritmer. identificere gyldige invarianter for en algoritme. bevise korrektheden af simple programmer og transitionssystemer.

Forudsætningskrav dIntProg Undervisningsformer Forelæsninger: 4 timer/uge (2+2). Øvelser: 3 timer/uge Obligatorisk program 6 opgaver Evalueringsform 2 timers skriftlig eksamen, intern censur, 7-skala Omfang 5 ECTS Sprog Dansk Eksamensterminer Eksamen: 3. kvarter Reeksamen: August Kursusbeskrivelsen: Algoritmer og datastrukturer 1 Vi kan antage at I ved hvordan man programmerer detaljerne – så dem springer vi over Der stilles 6 opgaver – alle skal være godkendt for at kunne gå til eksamen. Opgaverne afleveres i grupper personer. Eksamen består af ca. 25 korte spørgsmål – se eksempler på kursushjemmesiden Forelæsningerne gemmengår stoffet fra bogen. I øvelserne arbejder man med stoffet.

DatLab Fælles studiecafé i Babbage-0 hver fredag kl Webteknologi Interaktionsdesign Algoritmer og Datastrukturer 1 Første gang 1. februar kl. 13:00! + KAGE…! Relevante workshops og introduktioner til værktøjer vil desuden blive afholdt i forbindelse med DatLab. Følg med på cs.au.dk/datlab

Spørgsmål ?

2005

”Lokes Høj” 64 brikker Hiscore 450 Antal ombytninger = 50 Hvordan opnår man et lavt antal ombytninger – held eller dygtighed ?

Cykler (Permutationer) Hver pil peger på brikkens korrekte plads Definerer en mængde af cykler (fx cyklerne A,B,C,D)

Ombytninger og Cykler Lemma En ombytning af to brikker i samme cykel øger antallet af cykler med én. En ombytning af to brikker fra to forskellige cykler reducerer antallet af cykler med én.

Lemma Når alle n brikker er korrekt placeret er der præcis n cykler. Lemma For at løse et puslespil med n brikker og k cykler I starten kræves ≥ n – k ombytninger. Har vist en nedre grænse for ALLE algoritmer der løser problemet

En (grådig) algoritme

Lemma Algoritmen bytter aldrig om på brikker der står korrekt. Lemma Algoritmen udfører ≤ n -1 ombytninger Har vist en øvre grænse for en konkret algoritme Lemma For at løse et puslespil med n brikker og k cykler I starten udfører algoritmen præcis n – k ombytninger. Algoritmen er optimal da antal ombytninger er bedst mulig

Sætning For at løse et puslespil med n brikker og k cykler i starten kræves præcis n – k ombytninger

Fordelingen af antal cykler n = 64, permutationer

Hvad har vi så lært… ?

Algoritmisk indsigt…  Matematisk indsigt (cykler)  Resourceforbrug (antal ombytninger)  Nedre grænse ( ≥ n - k ombytninger)  Grådig algoritme  Analyseret algoritmen ( ≤ n - k ombytninger)  Optimal algoritme (argumenteret bedst mulig)  Input afhængig resourceforbrug

Tilfældige permutationer… Yderligere information kan findes i David J.C. MacKay, tillæg til Information Theory, Inference, and Learning Algorithms, om "Random Permutations“, 4 sider.

Et andet eksempel på en beregningsprocess…

Max-Delsum

Algoritme Antal additioner:

Algoritme

Algoritme 2b

Algoritme

Algoritme 3 : Analyse Rekursionstræet Observation Samlet mængde additioner per lag er ~ n # additioner ~ n · # lag ~ n · log 2 n Additioner

Algoritme 4 Invariant maxsofar = 12 maxendinghere = i-1i x

Max-Delsum: Algoritmiske idéer Algoritme# additionerIdé 1~ n 3 Naive løsning 2 + 2b~ n 2 Genbrug beregninger 3~ n · log nDel-og-kombiner 4~ nInkrementel

Sammenligning

Sammenligning: n 3 og n

Sammenligning 2009 x-akse = n, y = sekunder, hvert eksperiment gennemsnit af 10 kørsler (gcc 4.1.2, C, Linux , Intel Xeon 3 GHz) maxsum1 ≈ n 3

Sammenligning 2009 x-akse = n, y = sekunder, hvert eksperiment gennemsnit af 10 kørsler (gcc 4.1.2, C, Linux , Intel Xeon 3 GHz) maxsum2a og maxsum2b ≈ n 2

Sammenligning 2009 x-akse = n, y = sekunder, hvert eksperiment gennemsnit af 10 kørsler (gcc 4.1.2, C, Linux , Intel Xeon 3 GHz) maxsum3 og maxsum4 ≈ n ???

Sammenligning 2009 x-akse = n, y = sekunder, hvert eksperiment gennemsnit af 10 kørsler (gcc 4.1.2, C, Linux , Intel Xeon 3 GHz) maxsum4 ≈ n

Sammenligning 2009 x-akse = n, y = sekunder, hvert eksperiment gennemsnit af 10 kørsler (gcc 4.1.2, C, Linux , Intel Xeon 3 GHz) maxsum3 ≈ c 1 ·n·log n+c 2 ·n

Algoritmisk indsigt...  Gode idéer kan give hurtige algoritmer  Generelle algoritme teknikker –Del-og-kombiner –Inkrementel  Analyse af udførelsestid (her additioner)  Argumenteret for korrektheden  Invarianter