Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afBodil Axelsen Redigeret for ca. et år siden
1
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal
5
”Lokes Høj” 64 brikker Hiscore 450 Antal ombytninger 500 - 450 = 50 Hvordan opnår man et lavt antal ombytninger – held eller dygtighed ?
6
Cykler (Permutationer) Hver pil peger på brikkens korrekte plads Definerer en mængde af cykler (fx cyklerne A,B,C,D)
7
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.
8
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
9
En (grådig) algoritme
10
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
11
Sætning For at løse et puslespil med n brikker og k cykler i starten kræves præcis n – k ombytninger
12
Fordelingen af antal cykler n = 64, 10.000.000 permutationer
13
Hvad har vi så lært… ?
14
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
15
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. http://www.inference.phy.cam.ac.uk/mackay/itila/cycles.pdf
16
Et andet eksempel på en beregningsprocess…
18
Max-Delsum
19
Algoritme 1 1234567812345678
20
Algoritme 2 12345671234567
21
Algoritme 2b 123456789123456789
22
Algoritme 3 123456123456 7 8 9 10 11 12 13 14 15 16 17 18
23
Algoritme 3 : Analyse Rekursionstræet Observation Samlet mængde additioner per lag er ~ n # additioner ~ n · # lag ~ n · log 2 n Additioner
24
Algoritme 4 Invariant maxsofar = 12 maxendinghere = 10 0123i-1i -33-465-2-7423x 12345671234567
25
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
26
Sammenligning
27
Sammenligning: n 3 og n
28
Sammenligning 2009 x-akse = n, y = sekunder, hvert eksperiment gennemsnit af 10 kørsler (gcc 4.1.2, C, Linux 2.6.18, Intel Xeon 3 GHz) maxsum1 ≈ n 3
29
Sammenligning 2009 x-akse = n, y = sekunder, hvert eksperiment gennemsnit af 10 kørsler (gcc 4.1.2, C, Linux 2.6.18, Intel Xeon 3 GHz) maxsum2a og maxsum2b ≈ n 2
30
Sammenligning 2009 x-akse = n, y = sekunder, hvert eksperiment gennemsnit af 10 kørsler (gcc 4.1.2, C, Linux 2.6.18, Intel Xeon 3 GHz) maxsum3 og maxsum4 ≈ n ???
31
Sammenligning 2009 x-akse = n, y = sekunder, hvert eksperiment gennemsnit af 10 kørsler (gcc 4.1.2, C, Linux 2.6.18, Intel Xeon 3 GHz) maxsum4 ≈ n
32
Sammenligning 2009 x-akse = n, y = sekunder, hvert eksperiment gennemsnit af 10 kørsler (gcc 4.1.2, C, Linux 2.6.18, Intel Xeon 3 GHz) maxsum3 ≈ c 1 ·n·log n+c 2 ·n
33
Algoritmisk indsigt... Gode idéer kan give hurtige algoritmer Generelle algoritme teknikker –Del-og-kombiner –Inkrementel Analyse af udførelsestid Argumenteret for korrektheden Invarianter
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.