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

Slides:



Advertisements
Lignende præsentationer
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Advertisements

Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Mønstergenkendelse [CLRS, kapitel , 32.4]
Algoritmer og Datastrukturer 1
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.
Statisk ubestemte konstruktioner. Robusthed
Pengurusan Pembayaran Penyelidikan Research Management Centre
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”
KAPITEL 13 Kapitalkrav.
SOPU Sund – motion Kondition og kredsløb.
Vejledning Opdaterede faktorer til kapacitetsberegning - Oktober 2016
Omkostninger til tilsyn m.v. for statsautoriserede revisorer
Forhandlingsteknik Strategi og proces Kommunikation Psykologi
Landdistriktsudvikling i Haderslev Kommune
Søgeradius med Aabenraa som udgangspunkt
Søgeradius med Kerteminde som udgangspunkt
Hvor går de unge hen, når de går ud?
Luther – med liv og lyst Vejen Kirke
806_Fader, Søn og Helligånd 1, S1
FÆLLESSKAB, FREMDRIFT OG FORRETNING
Bevis for længdeformlen i rummet
Grundforskningscenteret “Glas & Tid”, Roskilde Universitet.
Fagligt samspil mellem matematik og samfundsfag
Delprøve i M2CAL2 efterår 2015
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
August, Holm, Olsen, Tobias og Viktor
Vektorprodukt (Krydsprodukt)
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
356 – Kender du den livsens kilde 1, S1
Hans nåde varer for evigt 1, S1
Rekeparty Fredag 16. juni 2017 Kl. 18:00 Eventuelt:
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Eva Danielsen, Nærum Gymnasium
Algoritmer og Datastrukturer 1
Residual plot.
Førstegradsligninger
Funktioner.
Nogle af de nye emner i læreplaner for samfundsfag
יסודות מבני נתונים תרגול 9: שאלות חזרה.
Introduktion.
Informationsmøde om Praktikplads-AUB
Hans Ole Lund Christiansen
CUSTOMER LIFETIME VALUE
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Også kendt som Dynamisk fræsning…
Forløb med portfolioelementer
Skrivedag 2: At skrive analyserende
Renteformlen.
Hvad er naturvidenskab?
Forskellige repræsentationer
Algoritmer og Datastrukturer 2
Digital Transformation i bibliotekerne
Højtuddannet arbejdskraft
At udvikle produkter og services sammen med vores brugere
Aula som momentum til at gentænke og styrke kommunikationen
Formandens beretning Kommunernes It-Arkitekturråd
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 S.top = 7 pop = 4push(4) S.top =

S.top = Stak : Overløb Array fordobling : O(n) tid S.top = 8 Push(13)

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 datastrukturens tilstand

Eksempel: Stak En god stak er halv fuld – kræver ingen opsparing Invariant : Φ = 2·| S.top-|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 € S.top = |S|/2 1 €

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·| S.top-|S|/2 | S.top = |S|/2 1 €

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 Φ Amortiseret Analyse

Eksempel: Rød-Sorte Træer Insert( x ) = Søgning + Opret nyt rødt 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