Average-Case-Komplexität

Ähnliche Dokumente
Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass

Informatik I Komplexität von Algorithmen

Informatik I Komplexität von Algorithmen

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

G. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen:

Algorithmen und Datenstrukturen

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Informatik II. Algorithmen und Datenstrukturen. Vorläufige Version 1 c 2002 Peter Thiemann

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

Übung Algorithmen und Datenstrukturen

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

19. Dynamic Programming I

Grundlagen: Algorithmen und Datenstrukturen

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Übersicht. Datenstrukturen und Algorithmen. Die Teile-und-Beherrsche-Methode. Übersicht. Vorlesung 3: Rekursionsgleichungen (K4)

Wiederholung. Divide & Conquer Strategie

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Untere Schranke für allgemeine Sortierverfahren

3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer

Exponentiation: das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element

Übungen zu Algorithmentechnik WS 09/10

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

Algorithmen und Datenstrukturen 1 Kapitel 5

Einführung in die Informatik 2

Exponentiation: das Problem

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

VL-04: Rekursionsgleichungen. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger

Übung zur Vorlesung Berechenbarkeit und Komplexität

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.

15. September 2010 Prof. Dr. W. Bley. Universität Kassel Klausur SS 2010 Diskrete Strukturen I (Informatik) Name:... Matr.-Nr.:... Viel Erfolg!

Algorithmen und Datenstrukturen I. Grundlagen. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Algorithmen und Datenstrukturen Laufzeitabschätzung

Suchen und Sortieren Sortieren. Mergesort

Algorithmen und Datenstrukturen I Grundlagen

Sortieren und Suchen. Jens Wächtler Hallo Welt! -Seminar LS 2

Informatik II Übung 10. Pascal Schärli

Divide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen

16. All Pairs Shortest Path (ASPS)

3.2. Divide-and-Conquer-Methoden

Schnelle Multiplikation

Bucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt.

Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt

DAP2-Klausur

Heapsort. Erstellung eines Heaps

Heapsort. 1. Erstelle aus dem gegebenen Array einen Heap (DownHeap) 2. Tausche erstes und letztes Element des Arrays

Algorithmische Techniken für Geometrische Probleme

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

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.

Datenstrukturen und Algorithmen (SS 2013)

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität)

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt

Quicksort ist ein Divide-and-Conquer-Verfahren.

Zeitkomplexität (1) Proseminar Theoretische Informatik. Proseminar Theoretische Informatik: Lisa Dohrmann 1

Untere Schranke für allgemeine Sortierverfahren

Seminar. Algorithmische Geometrie

Hallo Welt für Fortgeschrittene

2.7 Der Shannon-Fano-Elias Code

Abschnitt 7: Komplexität von imperativen Programmen

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Ein Seminarbericht von Johann Basnakowski

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

19. Dynamic Programming I

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Übung zur Vorlesung Diskrete Strukturen I

Abschnitt 19: Sortierverfahren

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Transkript:

Exkurs Average-Case-Komplexität Das eben gestellte Problem kann man auch effizienter lösen Algorithmus prefixaverages2(x) s = 0.0 for i in range(0,n): s += X[i] A[i] = s / (i + 1) return A O(1) n O(1) = O(n) Nicht leicht zu handhaben, für die Praxis jedoch relevant Sei p n (x) Wahrscheinlichkeitsverteilung, mit der Eingabe x mit Länge n auftritt Mittlere (erwartete) Laufzeit: Wichtig: Worüber wird gemittelt? Sind alle Eingaben der Länge n gleichwahrscheinlich? Oft: Annahme der Gleichverteilung aller Eingaben x der Länge n Dann ist p n (x) 1/N, N = Anzahl aller mögl. Eingaben der Länge n G. Zachmann Informatik 1 - WS 05/06 Komplexität 39 G. Zachmann Informatik 1 - WS 05/06 Komplexität 40 Beispiel Taktzahl (Anzahl Bitwechsel) eines seriellen Addierers bei Addition von 1 zu einer in Binärdarstellung gegebenen Zahl i der Länge n, d.h. 0 i 2 n-1. Sie beträgt 1 plus der Anzahl der Einsen am Ende der Binärdarstellung von i. Worst Case: n + 1 Takte Beispiel: Addition von 1 zu 111... 1. Average Case: Wir nehmen eine Gleichverteilung auf der Eingabemenge an. Es gibt 2 n-k Eingaben der Form (x,..., x, 0, 1,, 1) wobei k-1 Einsen am Ende stehen. Hinzu kommt die Eingabe i = 2 n -1, für die das Addierwerk n+1 Takte benötigt. Die average-case Rechenzeit Es ist beträgt also: G. Zachmann Informatik 1 - WS 05/06 Komplexität 41 G. Zachmann Informatik 1 - WS 05/06 Komplexität 42 1

Das Maxsummen-Problem Demnach ist Es genügen also im Durchschnitt 2 Takte, um eine Addition von 1 durchzuführen. Problem: Finde ein Index-Paar (i, j) in einem Array a[1..n] von ganzen Zahlen, für das f(i, j) = a i + + a j maximal ist. Als Rechenschritte zählen arithmetische Operationen und Vergleiche. Der naïve Algorithmus: Berechne alle Werte f(i, j), 1 i j n, und ermittle davon den maximalen f-wert. Offensichtlich genügen zur Berechung von f(i, j) genau j i viele Additionen. Der Algoritmus startet mit wenn nötig. und aktualisiert G. Zachmann Informatik 1 - WS 05/06 Komplexität 43 G. Zachmann Informatik 1 - WS 05/06 Komplexität 44 Analyse des naïven Algorithmus' Es gibt j Paare der Form (, j ), nämlich (1, j),, (j, j) #Vergleiche: Zusammen: #Additionen: G. Zachmann Informatik 1 - WS 05/06 Komplexität 45 G. Zachmann Informatik 1 - WS 05/06 Komplexität 46 2

Der etwas bessere Algorithmus Divide-and-Conquer Beobachtung: Der naïve Ansatz berechnet a 1 + a 2 für f(1, 2), f(1, 3),..., f(1, n), also (n 1)-mal. Besser geh's mit folgender Erkenntnis. Es gilt: Damit braucht man für alle f(i, )-Werte genau (n i) Additionen. Aufwand: #Vergleiche: #Additionen: #Zusammen: Annahme: n = 2 k Unterteilung der zu untersuchenden Paare (i, j) in drei Klassen: I. II. III. a n/2 a 1 +.. + a n/2 1 j n a 1 + + a n I II i n III a n/2 + + a n Wenn wir das Problem für die 3 Klassen gelöst haben, erhalten wir den Gesamtsieger in 3 Vergleichen Problem I und III sind vom gleichen Typ wie das Ausgangsprobelm rekusiv mit dem gleichen Ansatz lösen G. Zachmann Informatik 1 - WS 05/06 Komplexität 47 G. Zachmann Informatik 1 - WS 05/06 Komplexität 48 Analyse Divide-and-Conquer Für Problem II gibt es eine effiziente direkte Lösung. Betrachte: Max{g(i)} benötigt n/2-1 Additionen und n/2 1 Vergleiche Dann gilt: Analog: max{h(j)} benötigt n/2 Additionen und n/2 1 Vergleiche Um f zu maximieren reicht es aus, g und h einzeln zu maximieren: Berechne nacheinander (wie bei Algo Nr 2) Damit ergeben sich für Problem II insgesamt n-1 Additionen und n-2 Vergleiche, also insgesamt O(n) viele Operationen (obwohl die Klasse O(n 2 ) Paare (i, j) enthält!) G. Zachmann Informatik 1 - WS 05/06 Komplexität 49 G. Zachmann Informatik 1 - WS 05/06 Komplexität 50 3

Für das Gesamtproblem ergibt sich folgende rekursive Gleichung für den Aufwand (3 Vergleiche um Maximum der Gruppen zu finden), n = 2 k : Nun raten wir die Lösung der Rekursionsgleichung und verifizieren die Vermutung mit einem Induktionsbeweis. Damit ist G. Zachmann Informatik 1 - WS 05/06 Komplexität 51 G. Zachmann Informatik 1 - WS 05/06 Komplexität 52 Der clevere Algorithmus Scanline-Prinzip: wichtige Algorithmentechnik Idee: betrachte ein 2D-Problem nicht insgesamt, sondern immer nur auf einer Gerade, die über die Ebene "gleitet" Scanline Löse das Problem immer nur auf dieser Scanline, und aktualisiere die Lösung, wenn die Scanline beim nächsten interessanten "Ereignis" ankommt Hier: Wir verwalten nach dem Lesen von a k in max den größten Wert von f(i, j) aller Paare (i, j) für 1 i j k. Für k=1 ist max = a 1 max k k Wenn nun a k+1 gelesen wird, soll max aktualisiert werden Dazu bestimmen wir wobei (ähnlich der g-werte vom Divide-and-Conquer Algorithmus) Deshalb verwalten wir zusätzlich max k+1 f(i,k+1) max* k+1 a k+1 G. Zachmann Informatik 1 - WS 05/06 Komplexität 53 G. Zachmann Informatik 1 - WS 05/06 Komplexität 54 4

Akualisierung und Analyse Zusammenstellung der Ergebnisse Sei nun a k+1 gelesen. Wir erhalten die neuen g-werte Also Für kommen folgende Paare (i, j) in Frage: Also: Bei der Verarbeitung von a k, 2 k n, genügen also 3 Operationen, demnach ist Es sollte sich das beruhigende Gefühl breitmachen, daß es sich lohnt, clever zu sein ;-) G. Zachmann Informatik 1 - WS 05/06 Komplexität 55 G. Zachmann Informatik 1 - WS 05/06 Komplexität 56 5