Amortisierte Laufzeitanalyse

Ähnliche Dokumente
Amortisierte Analyse. C. Komusiewicz 6.1 Amortisierte Analyse: Motivation 105

Übungen zu Algorithmentechnik WS 09/10

Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen

Algorithmen I. Tutorium 1-4. Sitzung. Dennis Felsing

2. Übung Algorithmen I

Übung Algorithmen und Datenstrukturen

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Amortisierte Analyse

Übung Algorithmen und Datenstrukturen

Algorithmen & Datenstrukturen Lösungen zu Blatt 9 HS 16

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 12

Algorithm Engineering. Amortisierung. Stefan Edelkamp

5.5 Prioritätswarteschlangen

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

Amortisierte Analysen

Dies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen.

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Algorithmen I - Tutorium 28 Nr. 3

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

FAKULTÄT FÜR INFORMATIK

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Abstrakte Datentypen und Datenstrukturen

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Algorithmische Intelligenz. Amortisierung. Stefan Edelkamp

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

11. Elementare Datenstrukturen

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

12. Dynamische Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen

3.3 Laufzeit von Programmen

Algorithmen und Datenstrukturen Tutorium I

Laufzeitanalyse (1) demogr.

Wintersemester 2004/ Dezember 2004

Übung Algorithmen I

4. Sortieren 4.1 Vorbemerkungen

Datenstrukturen & Algorithmen

7. Übung zu Algorithmen I 1. Juni 2016

Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Datenstrukturen. Mariano Zelke. Sommersemester 2012

10. Elementare Datenstrukturen

Algorithmen 1 Tutorium

Informatik II: Algorithmen und Datenstrukturen SS 2015

Praktikum zu DAP 2. Abstrakte Datentypen und Datenstrukturen. Überblick. Motivation. Freiwilliger Linux-Kurs von Wilfried Rupflin und Sven Jörges

Übungsblatt 1 Vorlesung Algorithmentechnik im WS 08/09

Abstrakte Datentypen und Datenstrukturen

QuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert

Grundlagen: Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Modul Algorithmik, T-Katalog

ALP II Dynamische Datenmengen Datenabstraktion

Übung zu Algorithmen I 31. Mai 2017

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1

Datenstrukturen. Mariano Zelke. Sommersemester 2012

1. Übung zur Vorlesung Algorithmentechnik am

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

(27 - Selbstanordnende lineare Listen)

5.3 Doppelt verkettete Listen

Kap. 3: Sortieren (3)

Datenstrukturen und Algorithmen

5. Vorrangwarteschlangen (priority queues)

Fibonacci-Heaps und deren Anwendung

Algorithmen und Datenstrukturen 1-3. Seminar -

Entwurf und Analyse von Datenstrukturen

3. Übungsblatt zu Algorithmen I im SoSe 2017

Informatik II, SS 2018

Grundlagen: Algorithmen und Datenstrukturen

8 Elementare Datenstrukturen

Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik

Lösungsvorschläge zur Hauptklausur 1661 Datenstrukturen I

markiert, 0: unmarkiert.)

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Effiziente Algorithmen

Informatik II, SS 2014

5. Vorrangwarteschlangen - Priority Queues

Amortisierte Analysen

Datenstrukturen, Algorithmen und Programmierung 2

Vorlesung Datenstrukturen

Suchen und Sortieren Sortieren. Mergesort

Algorithmen und Datenstrukturen ITS(B)-B 2016

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

13. Dynamische Datenstrukturen

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Grundlagen: Algorithmen und Datenstrukturen

Übung Datenstrukturen. Sortieren

Kap. 4.7 Skiplisten. 15./16. VO DAP2 SS /10. Juni 2008

Praktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit

12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap.

Suchen und Sortieren Sortieren. Heaps

Vorlesung Datenstrukturen

Übungsklausur Algorithmen I

Transkript:

Paris-Lodron Universität Salzburg 24 Januar, 2014

Inhaltsverzeichnis 1 Einführung Definition Beispiel:Stapeloperationen Beispiel: Binärzähler (1/2) Beispiel: Binärzähler (2/2) 2 Analyse der Stack mittels Aggregat Mtd. Analyse der Stack mittels Account Mtd. Analyse der Zähler mittels Account Mtd. (2/3) (3/3 Analyse der Stack mittels Potenzial mtd. 3

Definition Beispiel:Stapeloperationen Beispiel: Binärzähler (1/2) Beispiel: Binärzähler (2/2) Definition Die amortisierte Laufzeitanalyse betrachtet die durchschnittlichen Kosten von Operationen in Folgen Unterschiede zur der Allgemeinen Analyse Die amortisierte Analyse wird eingesetzt zur Analyse von Operationen in Datenstrukturen.

Definition Beispiel:Stapeloperationen Beispiel: Binärzähler (1/2) Beispiel: Binärzähler (2/2) Beispiel:Stapeloperationen Unser Stapel besitzt die folgenden Operationen: PUSH(S, x), POP(S), MULTIPOP(S, k), STACK EMPTY (S) MULTIPOP (S, k) : while not STACK-EMPTY(S) und k 0 do POP(S); k = k 1 Laufzeit auf Sequenz von N Operationen? im worst case: MULTIPOP(S, k) O(N) insgesamt: O(N 2 )

Definition Beispiel:Stapeloperationen Beispiel: Binärzähler (1/2) Beispiel: Binärzähler (2/2) Beispiel: Binärzähler (1/2) Wollen k Bit Zähler implementieren, der bei 0 beginnt Realisieren Zähler durch ein k elementiges Array A[0..k 1] von Bits. Niedrigstes Bit in A[0] und höchstes Bit in A[k 1] gespeichert Array stellt damit zu jedem Zeitpunkt Zahl x = k 1 i=0 A[i]2i

Definition Beispiel:Stapeloperationen Beispiel: Binärzähler (1/2) Beispiel: Binärzähler (2/2) Beispiel: Binärzähler (2/2) INCREMENT (A) i = 0 while i<laenge [A] und A[i] = 1 do A[i] = 0; i = i + 1 Laufzeit auf Sequenz von N Operationen? im worst case: INCREMENT (A) dauert θ(n) insgesamt: O(kN)

Einführung (2/3) (3/3 Wird versucht die durchschnittlichen Kosten einer Einzeloperation zu ermitteln. Indem man die Gesamtkosten aller Operationen ermittelt und dann durch die Anzahl der Operationen dividiert.

Analyse der Stack mittels Aggregat (2/3) (3/3 Folge von N PUSH, POP und MULTIPOP Operationen kann höchstens O(N) kosten Die Gesamtzeit einer Sequenz ist also O(N) Die amortisierten Kosten aller drei Stapel-operationen sind somit O(1)

Einführung (2/3) (3/3 für jede Operation amortisierte Kosten Die Differenz speziellen Objekten in der Datenstruktur als Kredit zugewiesen tatsächlichen Kosten kleinergleich amortisierten Kosten n c i i=1 n i=1 a i

(2/3) (3/3 Zuordnung der Kosten: jede Operation in der Sequenz ist bezahlbar?

(2/3) (3/3 Zuordnung der Kosten: die amortisierten Kosten der Flips von 0 auf 1 auf 2 gesetzt. Für den Flip von 1 auf 0 sind die amortisierten Kosten 0. jede Operation in der Sequenz ist bezahlbar?

(1/3) Einführung (2/3) (3/3 Wie bei der Buchhaltungsmethode werden Kosten im voraus bezahlt Die im Voraus bezahlten Kosten sind im so genannten Potential einer Datenstruktur gesammelt Potenzialfunktion zu Beginn gleich 0 und danach immer nicht-negativ

(2/3 Einführung (2/3) (3/3 Funktion φ bildet jede Datenstruktur D i auf eine reelle Zahl φ i ab, die dem Potenzial entspricht amortisierte Kosten : a i = t i + φ i φ i 1 Sei O1,..., On eine Folge von n Operationen

(3/3) Einführung (2/3) (3/3 Summe der amortisierten Kosten n i=1 a i = n i=1 (t i + φ i φ i 1 ) = φ n φ 0 + n i=1 t i Das Vorgehen: Potenzialfunktion wählen φ n φ 0 0 und damit n i=1 t i n i=1 a i

(2/3) (3/3 Zuordnung der Potenzialfunktion: φ 0 = 0 Amortisierte Kosten für PUSH(S, x): Potenzialdifferenz: φ i φ i 1 = (s + 1) s = 1 Amortisierte Kosten: a i = t i + φ i φ i 1 = 1 + 1 = 2 Amortisierte Kosten für MULTIPOP(S, k) : Potenzialdifferenz: φ i φ i 1 = k Amortisierte Kosten: a i = t i + φ i φ i 1 = k k = 0

http://de.wikipedia.org/wiki/amortisiertelaufzeitanalyse http://i11www.iti.uni-karlsruhe.de/_media/teaching/winter2006/algotech/skript.pdf T.H. Cormen, C.E. Leiserson, R. Rivest, C. Stein: Algorithmen Eine Einführung, Oldenbourg, 2004