Randomisierte Algorithmen am Beispiel Quicksort

Ähnliche Dokumente
Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Randomisierte Algorithmen 2. Erste Beispiele

Algorithmentheorie Randomisierung. Robert Elsässer

Übung Algorithmen I

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

Stochastik Klasse 10 Zufallszahlen

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2

Algorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

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

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

Algorithmen und Datenstrukturen

Sachrechnen/Größen WS 14/15-

Mathematik für Biologen

4. Sortieren 4.1 Vorbemerkungen

Vorlesung 3a. Der Erwartungswert. von diskreten reellwertigen Zufallsvariablen

Übung: Algorithmen und Datenstrukturen SS 2007

Konzept diskreter Zufallsvariablen

T (n) = max. g(x)=n t(n) S(n) = max. g(x)=n s(n)

Übersicht. Einfache Verfahren MergeSort Untere Schranke QuickSort Selektieren Schnelleres Sortieren Externes Sortieren. 6 Sortieren.

WAHRSCHEINLICHKEITSRECHNUNG

STOCHASTISCHE UNABHÄNGIGKEIT. Annika Pohlmann Philipp Oel Wilhelm Dück

Lineare Kongruenzgeneratoren und Quicksort

Vorlesung 8b. Zweistufige Zufallsexperimente. Teil 1

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Beispiel: Zufallsvariable

Algorithmen und Datenstrukturen I Grundlagen

Einführung: Kaum Theorie, aber viel Training. Mehr Theorie in Zusätzliche Aufgabensammlung in 34021

Einwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008

Asymptotische Laufzeitanalyse: Beispiel

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

7. Sortieren Lernziele. 7. Sortieren

KAPITEL 5. Erwartungswert

Übung Algorithmen I

Stochastik für Informatiker

Abschnitt: Algorithmendesign und Laufzeitanalyse

Modelle diskreter Zufallsvariablen

4 Diskrete Wahrscheinlichkeitsverteilungen

Algorithmen und Datenstrukturen 1-3. Seminar -

Unabhängigkeit von Zufallsvariablen

Asymptotik und Laufzeitanalyse

Zufallsvariablen. Diskret. Stetig. Verteilung der Stichprobenkennzahlen. Binomial Hypergeometrisch Poisson. Normal Lognormal Exponential

Dieses Quiz soll Ihnen helfen, Kapitel besser zu verstehen.

Quicksort ist ein Divide-and-Conquer-Verfahren.

73 Hypothesentests Motivation Parametertest am Beispiel eines Münzexperiments

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Einfache Sortierverfahren Autor: Stefan Edelkamp

Untere Schranke für allgemeine Sortierverfahren

Einige Konzepte aus der Wahrscheinlichkeitstheorie (Wiederh.)

Übung Algorithmen und Datenstrukturen

Übung Datenstrukturen. Sortieren

Übungsklausur Algorithmen I

Studentisches Skript

Datenstrukturen & Algorithmen

Zufallsvariablen. Erwartungswert. Median. Perzentilen

Einführung in die Wahrscheinlichkeitsrechnung

Algorithmen und Datenstrukturen

2 Sortieren durch Vergleichen Eingabefolge a 1, a 2,..., a n 2, 1, 3 Sortieralg. Für festes n ist ein vergleichsbasierter Sortieralg. charakterisiert

Willkommen zur Vorlesung Statistik (Master)

Typischerweise sind randomisierte Algorithmen einfacher zu beschreiben und zu implementieren als deterministische Algorithmen.

Teil VI. Gemeinsame Verteilungen. Lernziele. Beispiel: Zwei Würfel. Gemeinsame Verteilung

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

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

9 Erwartungswert, Varianz und Standardabweichung einer Zufallsgröÿe

Informatik II Grundbegriffe der Wahrscheinlichkeitsrechnung

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

Weihnachtszettel zur Vorlesung. Stochastik I. Wintersemester 2011/2012

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

Algorithmen und Datenstrukturen Tutorium I

Randomisierte Algorithmen

Informatik II Grundbegriffe der Wahrscheinlichkeitsrechnung

P (X = 2) = 1/36, P (X = 3) = 2/36,...

Programm. Wiederholung. Gleichverteilung Diskrete Gleichverteilung Stetige Gleichverteilung. Binomialverteilung. Hypergeometrische Verteilung

Stochastische Unabhängigkeit. 01. Dezember 2014

Build-Max-Heap. Build-Max-HeappAq. Satz Nach Ablauf von Build-Max-Heap ist A ein Heap. Build-Max-Heap hat Laufzeit Opnq.

Denition: Rang eines Elements e einer Folge s = Position von e in sort(s) (angefangen bei 1). Frage: warum ist r nicht notwendig eindeutig?

Biostatistik, Winter 2011/12

Grundbegriffe der Wahrscheinlichkeitsrechnung

Definition 77 Sei n N. Der Median (das mittlere Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei n i =.

27 Zufallsvariablen. Erwartungswert. Median. Perzentilen

Zufallsvariable: Verteilungen & Kennzahlen

Algorithmen und Datenstrukturen 1 Kapitel 5

Berechnung von W für die Elementarereignisse einer Zufallsgröße

Elemente der Stochastik (SoSe 2016) 10. Übungsblatt

0 für t < für 1 t < für 2 t < für 3 t < für 4 t < 5 1 für t 5

4. Gemeinsame Verteilung und Grenzwertsätze

Zufallsgrößen. Vorlesung Statistik für KW Helmut Küchenhoff

1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben?

Transkript:

Randomisierte Algorithmen am Beispiel Quicksort Mathias Katzer Universität 28. Juli 2003 Mathias Katzer 0

Überblick Motivation: Begriff Randomisierung Quicksort Stochastik-Ausflug Effizienzanalyse Allgemeineres Zusammenfassung Mathias Katzer ¼ ½ > ¹ 1

Motivation Vergleiche worst case vs. average case: Worst case tritt oft bei unzufälliger Eingabe auf Effizienz im ungünstigsten Fall ist oft sehr pessimistisch Mathias Katzer < ¼ ½ > ¹ 2

Motivation Vergleiche worst case vs. average case: Worst case tritt oft bei unzufälliger Eingabe auf Effizienz im ungünstigsten Fall ist oft sehr pessimistisch Zufallssteuerung der Verarbeitungsreihenfolge: Randomisierung Definition: Randomisierter Algorithmus Any algorithm that makes some random (or pseudorandom) choices. Mathias Katzer < ¼ ½ > ¹ 2

Motivation Vergleiche worst case vs. average case: Worst case tritt oft bei unzufälliger Eingabe auf Effizienz im ungünstigsten Fall ist oft sehr pessimistisch Zufallssteuerung der Verarbeitungsreihenfolge: Randomisierung Definition: Randomisierter Algorithmus Any algorithm that makes some random (or pseudorandom) choices. Betrachte stochastische Effizienzeigenschaften Beispiel für s Prinzip: Quicksort Mathias Katzer < ¼ ½ > ¹ 2

Quicksort-Algorithmus quicksort(array a, integer anfang, integer ende) { integer pivot; if( ende > anfang ) { pivot = partitioniere(a, anfang, ende); quicksort(a, anfang, pivot-1); quicksort(a, pivot, ende); } } a[i] <= a[pivot] a[i] >= a[pivot] i <= pivot i >= pivot Mathias Katzer < ¼ ½ > ¹ 3

Effizienz Bester Fall: Pivot ist Median (pivot = n/2 oder pivot = n/2 ) Führt auf O(nlogn) Ungünstigster Fall: Pivot ist kleinstes oder größtes Element (Sortierte Eingabe) Führt auf O(n 2 ) Abhilfen: Median von drei Elementen als Pivot nehmen Zufälliges Element als Pivot nehmen Mathias Katzer < ¼ ½ > ¹ 4

Stochastik-Ausflug Diskrete Zufallsvariable X: Ereignismenge S Wahrscheinlichkeitswerte R Mathias Katzer < ¼ ½ > ¹ 5

Stochastik-Ausflug Diskrete Zufallsvariable X: Ereignismenge S Wahrscheinlichkeitswerte R Bsp: Augenzahl beim (fairen) Würfelwurf S = {1,2,3,4,5,6}, p = 1/6 Mathias Katzer < ¼ ½ > ¹ 5

Stochastik-Ausflug Diskrete Zufallsvariable X: Ereignismenge S Wahrscheinlichkeitswerte R Bsp: Augenzahl beim (fairen) Würfelwurf S = {1,2,3,4,5,6}, p = 1/6 Erwartungswert E einer ZV: Mittel über sehr viele Ereignisse E(X) = p(x = s)s s S Mathias Katzer < ¼ ½ > ¹ 5

Stochastik-Ausflug Diskrete Zufallsvariable X: Ereignismenge S Wahrscheinlichkeitswerte R Bsp: Augenzahl beim (fairen) Würfelwurf S = {1,2,3,4,5,6}, p = 1/6 Erwartungswert E einer ZV: Mittel über sehr viele Ereignisse E(X) = p(x = s)s s S Würfel: E(X) = 1 6 1 + 1 6 2 + 1 6 3 + 1 6 4 + 1 6 5 + 1 6 6 = 3,5 Mathias Katzer < ¼ ½ > ¹ 5

Stochastik-Ausflug Diskrete Zufallsvariable X: Ereignismenge S Wahrscheinlichkeitswerte R Bsp: Augenzahl beim (fairen) Würfelwurf S = {1,2,3,4,5,6}, p = 1/6 Erwartungswert E einer ZV: Mittel über sehr viele Ereignisse E(X) = p(x = s)s s S Würfel: E(X) = 1 6 1 + 1 6 2 + 1 6 3 + 1 6 4 + 1 6 5 + 1 6 6 = 3,5 E ist linear: E(X + ay ) = E(X) + ae(y ) Mathias Katzer < ¼ ½ > ¹ 5

Analyse Eingabe sei Permutation von z 1 z 2... z n Mathias Katzer < ¼ ½ > ¹ 6

Analyse Eingabe sei Permutation von z 1 z 2... z n Sei Z i j = z i,...,z j sortierte Teilliste Mathias Katzer < ¼ ½ > ¹ 6

Analyse Eingabe sei Permutation von z 1 z 2... z n Sei Z i j = z i,...,z j sortierte Teilliste Zufallsvariable X i j = { 1 wenn zi mit z j verglichen wird 0 sonst Mathias Katzer < ¼ ½ > ¹ 6

Analyse Eingabe sei Permutation von z 1 z 2... z n Sei Z i j = z i,...,z j sortierte Teilliste Zufallsvariable X i j = { 1 wenn zi mit z j verglichen wird 0 sonst Es wird immer nur gegen die Pivots verglichen Jedes Element kann nur einmal Pivot sein Mathias Katzer < ¼ ½ > ¹ 6

Analyse Eingabe sei Permutation von z 1 z 2... z n Sei Z i j = z i,...,z j sortierte Teilliste Zufallsvariable X i j = { 1 wenn zi mit z j verglichen wird 0 sonst Es wird immer nur gegen die Pivots verglichen Jedes Element kann nur einmal Pivot sein Anzahl aller Vergleiche X ist Summe aller X i j : X = n 1 i=1 n X i j j=i+1 Mathias Katzer < ¼ ½ > ¹ 6

Analyse Erwartungswert der Anzahl von Vergleichen E(X) = E ( n 1 i=1 ) n X i j = j=i+1 n 1 i=1 n E(X i j ) j=i+1 Mathias Katzer < ¼ ½ > ¹ 7

Analyse Erwartungswert der Anzahl von Vergleichen E(X) = E ( n 1 i=1 ) n X i j = j=i+1 n 1 i=1 n E(X i j ) j=i+1 E(X i j ) = 1 P(z i,z j werden verglichen) + 0 P(z i,z j werden nicht verglichen) = P(z i,z j werden verglichen) Mathias Katzer < ¼ ½ > ¹ 7

Beobachtungen Wenn x mit z i < x < z j Pivot ist, können z i und z j nicht mehr vergl. werden Mathias Katzer < ¼ ½ > ¹ 8

Beobachtungen Wenn x mit z i < x < z j Pivot ist, können z i und z j nicht mehr vergl. werden Wenn z i oder z j als erstes Element aus Z i j Pivot werden, werden sie mit allen Elementen aus Z i j verglichen (worst case) Mathias Katzer < ¼ ½ > ¹ 8

Beobachtungen Wenn x mit z i < x < z j Pivot ist, können z i und z j nicht mehr vergl. werden Wenn z i oder z j als erstes Element aus Z i j Pivot werden, werden sie mit allen Elementen aus Z i j verglichen (worst case) Daher: P(z i,z j werden verglichen) = P(z i wird erstes Pivotelement aus Z i j oder z j wird erstes Pivotelement aus Z i j ) Mathias Katzer < ¼ ½ > ¹ 8

Beobachtungen Wenn x mit z i < x < z j Pivot ist, können z i und z j nicht mehr vergl. werden Wenn z i oder z j als erstes Element aus Z i j Pivot werden, werden sie mit allen Elementen aus Z i j verglichen (worst case) Daher: P(z i,z j werden verglichen) = P(z i wird erstes Pivotelement aus Z i j oder z j wird erstes Pivotelement aus Z i j ) = P(z i wird erstes Pivotelement aus Z i j ) +P(z j wird erstes Pivotelement aus Z i j ) Mathias Katzer < ¼ ½ > ¹ 8

Beobachtungen Wenn x mit z i < x < z j Pivot ist, können z i und z j nicht mehr vergl. werden Wenn z i oder z j als erstes Element aus Z i j Pivot werden, werden sie mit allen Elementen aus Z i j verglichen (worst case) Daher: P(z i,z j werden verglichen) = P(z i wird erstes Pivotelement aus Z i j oder z j wird erstes Pivotelement aus Z i j ) = P(z i wird erstes Pivotelement aus Z i j ) = 2 +P(z j wird erstes Pivotelement aus Z i j ) 1 j i + 1 Mathias Katzer < ¼ ½ > ¹ 8

Ergebnis n 1 E(X) 2 i=1 Obere Schranke für zu erwartende Laufzeit (lnn + 1) = Θ(nlogn) Mathias Katzer < ¼ ½ > ¹ 9

Ergebnis n 1 E(X) 2 i=1 Obere Schranke für zu erwartende Laufzeit (lnn + 1) = Θ(nlogn) Worst-Case-Effizienz ist immer noch O(n 2 )! Mathias Katzer < ¼ ½ > ¹ 9

Ergebnis n 1 E(X) 2 i=1 Obere Schranke für zu erwartende Laufzeit (lnn + 1) = Θ(nlogn) Worst-Case-Effizienz ist immer noch O(n 2 )! Wie wahrscheinlich tritt der ungünstigste Fall ein? Mathias Katzer < ¼ ½ > ¹ 9

Worst Case Pivot ist immer erstes oder letztes Element: P = 2 N 2 N 1... 2 2 = 2(N 1) (N 1)! Mathias Katzer < ¼ ½ > ¹ 10

Worst Case Pivot ist immer erstes oder letztes Element: P = 2 N 2 N 1... 2 2 = 2(N 1) (N 1)! P 1 0.01 (2**(int(x 1))/(int(x))!) 0.0001 1e 06 1e 08 1e 10 1e 12 1e 14 2 4 6 8 10 12 14 16 18 20 Eingabelänge Mathias Katzer < ¼ ½ > ¹ 10

(Noch) Mehr Zufall Randomisiertes Quicksort berechnet immer genau eine Lösung Verarbeitungsreihenfolge ist nicht deterministisch Andere stochastische Algorithmen können prinzipiell verschiedene Ergebnisse errechnen (z. B. Simulated Annealing, Monte-Carlo-Verfahren, genetische Algorithmen) Mathias Katzer < ¼ ½ > ¹ 11

Zusammenfassung: Randomisierte Algorithmen treffen Zufallsentscheidungen Ziel beim Bsp. Quicksort: Vermeidung des systematischen worst case Stochastische Effizienzeigenschaften Einfachste Art von Randomisierung Mathias Katzer < ¼ ½ 12