Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.

Slides:



Advertisements
Lignende præsentationer
Algoritmer og Datastrukturer 1
Advertisements

Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Quicksort [CLRS, kapitel 7] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [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 Elementære Datastrukturer [CLRS, kapitel 10] Gerth Stølting Brodal Aarhus Universitet.
KAPITEL 2 Renterisiko.
KAPITEL 7 Kreditrisiko.
Ventilation og indeklima
KAPITEL 10 Derivater.
Gode råd om ansøgning til MUDP 2017
Forældre-information
Statisk ubestemte konstruktioner. Robusthed
Trigonometri som værktøj for problemløsninger ved geometri og måling
Pengurusan Pembayaran Penyelidikan Research Management Centre
Hvilke sager ligger der på vejlederkonsulentens bord for tiden?
C4 C4 i Hillerød Erhverv Handel Turisme, kultur, sport Uddannelse
Amukurs.dk Power point 1: Online præsentation af amukurs.dk - Sådan gør du: Læs ”Værd at vide, når du skal give en online præsentation af amukurs.dk”
Mit liv - nu med DAT MIT LIV - nu med DAT.
Et liv med OCD Nicoline Møller.
Interaktion og usability
KAPITEL 13 Kapitalkrav.
Billeder (Side 6-8 i artiklen: 2. Repræsentation og manipulation af Data)
Almen statskundskab Politisk meningsdannelse v/ Peter Nedergaard
SOPU Sund – motion Kondition og kredsløb.
Vejledning Opdaterede faktorer til kapacitetsberegning - Oktober 2016
Analyse af miljøforhold
Forhandlingsteknik Strategi og proces Kommunikation Psykologi
P4: Vejledning i læreruddannelsen
Tema 5: Relationer og kommunikation Psykoedukation til patienter med emotionel ustabil personlighedsforstyrrelse.
Modulet International Projektudvikling og –Ledelse
Landdistriktsudvikling i Haderslev Kommune
Kort om Hjerteforeningen
Min første søgning for 4 – 5 klasse
Hvor går de unge hen, når de går ud?
Luther – med liv og lyst Vejen Kirke
Analysegruppe: Astrid, Bent, Carla, David, Else
806_Fader, Søn og Helligånd 1, S1
FÆLLESSKAB, FREMDRIFT OG FORRETNING
Ea Thystrup & Louise Mikkelsen 3øa
Bevis for længdeformlen i rummet
Grundforskningscenteret “Glas & Tid”, Roskilde Universitet.
Fagligt samspil mellem matematik og samfundsfag
Lyd data (audio data) (Side 4-6 i artiklen: 2. Repræsentation og manipulation af Data)
Differentialregning Cecilie.
DK: Indledende: Jeg er jeres vært, og jeg har ansvaret for jer, mens I er her – og for, at I forlader bygningen igen, når vores møde er slut. I bedes derfor.
Koordinatsystemer og Kinematik
3d Billeddata (Side i artiklen: 2. Repræsentation og manipulation af Data)
August, Holm, Olsen, Tobias og Viktor
Vektorprodukt (Krydsprodukt)
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Tilskud & Regnskab Kursus for nye efterskoleledere
Lokale lønforhandlinger
Hans nåde varer for evigt 1, S1
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Folkeskolens prøver i matematik
Polynomier Lars A. Clark.
יסודות מבני נתונים תרגול 9: שאלות חזרה.
21. november 2018 Ulla Nørskov Philip & Martin Stabell
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Skrivedag 2: At skrive analyserende
Algoritmer og Datastrukturer 2
Præsentationens transcript:

Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal

Stak

Stak : Array Implementation Stack-Empty, Push, Pop : O(1) tid

Stak : Overløb ? Array fordobling : O(n) tid

Fordoble arrayet når det er fuld Tid for n udvidelser: ···+n/2+n = O(n) Array Fordobling Halver arrayet når det er <1/4 fyldt Tid for n udvidelser/reduktioner: O(n)

Tid for n udvidelser/reduktioner er O(n) Plads ≤ 4 · aktuelle antal elementer Array Fordobling + Halvering – en generel teknik Array implementation af Stak: n push og pop operationer tager O(n) tid

Analyse teknik ønskes... Krav •Analysere worst-case tiden for en sekvens af operationer •Behøver kun at analysere den enkelte operation Fordel •Behøver ikke overveje andre operationer i sekvens og deres indbyrdes påvirkninger •Gælder for alle sekvenser med de givne operationer

Intuition •Der findes ”gode”/”balancerede” tilstande og ”dårlige”/”ubalancerede” •At komme fra en ”dårlig” tilstand til en ”god” tilstand er dyrt •Det tager mange operationer fra en ”god” tilstand før man er i en ”dårlig” •For de (mange) billige operationer ”betaler” vi lidt ekstra for senere at kunne lave en dyr operation næsten gratis

Amortiseret Analyse •1 € kan betale for O(1) arbejde •En operation der tager tid O(t) koster t € •Hvornår vi betaler/sparer op er ligegyldigt – bare pengene er der når vi skal bruge dem! •Opsparing = Potentiale = Φ •Vi kan ikke låne penge, dvs. vi skal spare op før vi bruger pengene, Φ ≥ 0 •Amortiseret tid for en operation = hvad vi er villige til at betale – men vi skal have råd til operationen! •Brug invarianter til at beskrive sammenhængen mellem opsparingen og datastrukturen

Eksempel: Stak •En god stak er halv fuld – kræver ingen opsparing •Invariant : Φ = 2·| top[S]-|S|/2 | •Antag: 1 € per element indsættelse/kopiering •Amortiseret tid per push: 3 € ? (har vi altid penge til at udføre operationen?) •Hvis ja: n push operationer koster ≤ 3n €

Eksempel: Stak Push = Amortiseret 3€ •Push uden kopiering: –Et nyt element : 1 € –||S|/2-top[S]| vokser med højst 1, så invarianten holder hvis vi sparer 2 € op –Amortiseret tid: 1+2=3 •Push med kopiering –Kopier S : |S| € –Indsæt nye element: 1 € –Φ før = |S|, Φ efter = 2, dvs |S|-2 € frigives –Amortiseret tid |S|+1-(|S|-2)=3 Invariant: Φ = 2·| top[S]-|S|/2 |

Eksempel: Rød-Sorte Træer Insert( x ) = Søgning + Opret nyt blad + Rebalancering ← O(log n) ← O(1) ← # transitioner # transitioner = amortiseret O(1) Φ = # røde knuder Korollar: Indsættelse i rød-sorte træer tager amortiseret O(1) tid, hvis indsættelsespositionen er kendt

Amortiseret Analyse •Teknik til at argumenter om worst-case ?tiden for en sekvens af operationer •Behøver kun at analysere operationerne enkeltvis •Kunsten: Find den rigtige invariant for Φ