Randomisierte Algorithmen 2. Erste Beispiele

Ähnliche Dokumente
Randomisierte Algorithmen

Algorithmentheorie Randomisierung. Robert Elsässer

Randomisierte Algorithmen

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

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

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

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Probabilistische Primzahltests

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

13. Binäre Suchbäume

Seminar: Randomisierte Algorithmen Auswerten von Spielbäumen Nele Küsener

Effiziente Algorithmen 2

Lineare Kongruenzgeneratoren und Quicksort

1.8 Shift-And-Algorithmus

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 =.

Algorithmen und Datenstrukturen

Algorithmische Bioinformatik 1

Datenstrukturen & Algorithmen

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

Quicksort ist ein Divide-and-Conquer-Verfahren.

11.1 Grundlagen - Denitionen

Algorithmen in Zellularautomaten

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

Gierige Algorithmen Interval Scheduling

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

Lösungen zu Kapitel 5

Algorithmen und Datenstrukturen Heapsort

Algorithmische Methoden zur Netzwerkanalyse

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

2. Effizienz von Algorithmen

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

Abschnitt: Algorithmendesign und Laufzeitanalyse

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

Randomisierte Algorithmen

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

Informatik B Sommersemester Musterlösung zur Klausur vom

Untere Schranke für allgemeine Sortierverfahren

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

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

Algebraische und arithmetische Algorithmen

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

15. Elementare Graphalgorithmen

Algorithmen und Datenstrukturen

7 Sortieren in linearer Zeit

Komplexität von Algorithmen Musterlösungen zu ausgewählten Übungsaufgaben

Grundlagen: 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

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

Relationen und DAGs, starker Zusammenhang

NP-vollständige Probleme

Probabilistische Algorithmen

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

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

Diskrete Mathematik 1

lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr

Faktorisierung ganzer Zahlen mittels Pollards ρ-methode (1975)

Schleifeninvarianten. Dezimal zu Binär

Greedy Algorithms - Gierige Algorithmen

5 Sortieren in eindimensionalen Zellularautomaten

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

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Aufgabe (Schreibtischtest, Algorithmenanalyse)

Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Kap. 4.7 Skiplisten. 14./15. VO DAP2 SS /16. Juni 2009

3: Zahlentheorie / Primzahlen

Präfix-Summe. Das Schweizer Offiziersmesser der Parallelen Algorithmen. Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen

Polygontriangulierung

Primzahltest in Polynomialzeit Der Algorithmus von Agrawal, Kayal und Saxena

Übung Algorithmen I

Algorithmen und Datenstrukturen

Algorithmen auf Zeichenketten

Übung Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Vorlesung 2 KÜRZESTE WEGE

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

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

JAVA - Suchen - Sortieren

12.4 Traveling Salesman Problem

Streaming Data: Das Modell

Algorithmen und Datenstrukturen

WS 2009/10. Diskrete Strukturen

Kapitel 8 Fortgeschrittene Sortieralgorithmen

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

7. Sortieren Lernziele. 7. Sortieren

Algorithmen und Datenstrukturen

Transkript:

Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35

Randomisierter Identitätstest Überblick Ein randomisierter Identitätstest Vergleich von Wörtern Ein randomisierter Quicksortalgorithmus 2 / 35

Randomisierter Identitätstest 2.1 Aufgabe Gegeben: drei n n Matrizen A, B, C F n n. Gesucht: Antwort auf die Frage, ob AB = C ist. F: Körper Bits: neutrale Elemente 0 bzw. 1 3 / 35

Randomisierter Identitätstest 2.2 Deterministische Lösungen naiv: Θ(n 3 ) Schritte schneller: Strassen (1969): Θ(n 2.808... ) Schritte Coppersmith/Winograd (1987): Θ(n 2.376... ) Schritte 4 / 35

Randomisierter Identitätstest 2.2 Deterministische Lösungen naiv: Θ(n 3 ) Schritte schneller: Strassen (1969): Θ(n 2.808... ) Schritte Coppersmith/Winograd (1987): Θ(n 2.376... ) Schritte Vassilevska Williams (2011): Θ(n 2.373... ) Schritte 4 / 35

Randomisierter Identitätstest 2.3 Randomisierter Algorithmus (Freivalds, 1977) 5 / 35

Randomisierter Identitätstest 2.3 Randomisierter Algorithmus (Freivalds, 1977) r Vektor von n unabhängigen Zufallsbits 5 / 35

Randomisierter Identitätstest 2.3 Randomisierter Algorithmus (Freivalds, 1977) r Vektor von n unabhängigen Zufallsbits Berechne und vergleiche ABr und Cr 5 / 35

Randomisierter Identitätstest 2.3 Randomisierter Algorithmus (Freivalds, 1977) r Vektor von n unabhängigen Zufallsbits Berechne und vergleiche ABr und Cr x Br y Ax z Cr if (y z) then return no else return yes fi Offensichtlicher Zeitbedarf Θ(n 2 ). 5 / 35

Randomisierter Identitätstest 2.4 Fingerabdrücke y = A(Br) Fingerabdruck von AB. z = Cr Fingerabdruck von C 6 / 35

Randomisierter Identitätstest 2.5 Lemma Ist AB C und r ein Vektor unabhängiger Zufallsbits, dann ist die Fehlerwahrscheinlichkeit des Algorithmus Pr [ABr = Cr] 1/2. Beachte: Im Fall AB = C kann kein Fehler passieren. 7 / 35

Randomisierter Identitätstest 2.6 Beweis Sei D = AB C, also D 0. Sei y = ABr und z = Cr. Dr = 0 genau dann, wenn y = z (Fehler) d sei eine Zeile von D, die nicht der Nullvektor ist. dr ist Eintrag im Produktvektor Dr obere Schranke für die Wahrscheinlichkeit, dass dr = 0? 8 / 35

Randomisierter Identitätstest 2.6 Beweis (Fortsetzung) Sei d = (d 1,...,d n ) und o. B. d. A. seien Nichtnulleinträge von d gerade d 1,...,d k. dr = 0 genau dann, wenn k i=1 d i r i = 0, also k 1 r k = ( d i r i )/d k Man stelle sich vor, r 1,..., r k 1 seien bereits gewählt. Gleichung offensichtlich für höchstens einen der beiden möglichen Werte für r k richtig. Also ist Wahrscheinlichkeit für dr = 0 höchstens 1/2. Also ist Wahrscheinlichkeit für Dr = 0 höchstens 1/2. i=1 9 / 35

Randomisierter Identitätstest 2.7 Korollar Wenn AB = C ist, liefert Algorithmus 2.3 stets die richtige Antwort. Wenn AB C ist, liefert Algorithmus 2.3 mit einer Wahrscheinlichkeit größer gleich 1/2 die richtige Antwort. 10 / 35

Randomisierter Identitätstest 2.8 Kleinere Fehlerwahrscheinlichkeit: wie? 11 / 35

Randomisierter Identitätstest 2.8 Kleinere Fehlerwahrscheinlichkeit: wie? Ziehe wenn möglich die Komponenten des Zufallsvektors aus einer größeren Menge. Führe k unabhängige Wiederholungen des Algorithmus durch und produziere nur dann am Ende die Antwort yes, wenn jeder Einzelversuch diese Antwort geliefert hat. Pr [Y 1 = yes Y 2 = yes Y k = yes] = k i=1 Pr [Y i = yes] 11 / 35

Vergleich von Wörtern Überblick Ein randomisierter Identitätstest Vergleich von Wörtern Ein randomisierter Quicksortalgorithmus 12 / 35

Vergleich von Wörtern 2.9 Aufgabe Gegeben: Zwei Datenbestände in Form von Bitfolgen a 1 a n und b 1 b n. Gesucht: Antwort auf die Frage, ob die beiden Bitfolgen gleich sind. Anwendung: Vergleich räumlich weit entfernter großer Datenmengen Sind a = n i=1 a i 2 i 1 und b = n i=1 b i 2 i 1 gleich? Wieviele Bits muss man wohl übertragen, um mit W.keit 1 1/n sicher sein zu können, dass a = b ist? 13 / 35

Vergleich von Wörtern 2.11 Algorithmus Überprüfung, ob Bitfolgen a 1 a n und b 1 b n gleich sind p Primzahl kleiner oder gleich n 2 lnn 2 zufällig gleichverteilt aus diesen ausgewählt a n i=1 a i 2 i 1 b n i=1 b i 2 i 1 if (a mod p = b mod p) then return yes else return no fi 14 / 35

Vergleich von Wörtern 2.12 Satz Bei zufälliger gleichverteilter Wahl einer Primzahl p kleiner oder gleich n 2 logn 2 ist Pr [a mod p = b mod p a b] O( 1 n ). Für den Beweis werden zwei Ergebnisse benötigt... 15 / 35

Vergleich von Wörtern 2.13 Satz (Chebyshev) Für die Anzahl π(n) der Primzahlen kleiner oder gleich n gilt: 7 n 8 lnn π(n) 9 n 8 lnn Es ist also π(n) Θ(n/lnn). 16 / 35

Vergleich von Wörtern 2.14 Lemma Die Anzahl k verschiedener Primteiler einer Zahl kleiner oder gleich 2 n ist höchstens n. 17 / 35

Vergleich von Wörtern 2.15 Beweis (von Satz 2.12) Sei c = a b. falsche Antwort, wenn c 0 und von p geteilt da c 2 n, hat es höchstens n verschiedene Primteiler sei die gewählte Primzahl aus dem Intervall von 2 bis t dort gibt es π(t) Θ(t/lnt) Primzahlen Die Wahrscheinlichkeit Pr [a mod p = b mod p a b], ein p zu wählen, das zu einer falschen Antwort führt, ist also höchstens O( n t/lnt ). Für t = n 2 lnn 2 ergibt sich eine obere Schranke in O(1/n). 18 / 35

Vergleich von Wörtern 2.16 Pattern Matching Gegeben: Text x = x 1 x n und kürzeres Suchmuster y = y 1 y m. Gesucht: Antwort auf die Frage, ob y in x vorkommt. Bezeichne x(j) das Teilwort x j x j+m 1 (Länge m). Frage: Ist für ein 1 j n m + 1 das zugehörige x(j) = y? bezeichne ˆx(j) = m i=1 x j+1+i 1 2 i 1 19 / 35

Vergleich von Wörtern 2.17 Idee m ˆx(j + 1) = x j+1+i 1 2 i 1 i=1 = 1 2 (x j x j ) + 1 m 1 x j+1+i 1 2 i + x j+1+m 1 2 m 1 2 i=1 ( = 1 m 1 ) x j+i 2 i x j + x j+m 2 m 1 2 i=0 ( m ) = 1 x j+i 1 2 i 1 x j + x j+m 2 m 1 2 = 1 2 i=1 ( ˆx(j) xj ) + xj+m 2 m 1. 20 / 35

Vergleich von Wörtern 2.18 Algorithmus Überprüfung, ob Bitfolge y 1 y m in x 1 x n vorkommt Ausgabe: erstes j, wo das der Fall ist, oder 1 sonst. p Primzahl kleiner oder gleich n 2 m lnn 2 m zufällig gleichverteilt aus diesen ausgewählt. y m i=1 y i 2 i 1 mod p z m i=1 x i 2 i 1 mod p for j 1 to n m do if (y = z) then return j erste Stelle, an der Übereinstimmung fi z (z x j )/2 + x j+m 2 m 1 mod p od return 1 y kommt sicher nicht in x vor 21 / 35

Vergleich von Wörtern 2.19 Satz Algorithmus 2.18 liefert höchstens mit Wahrscheinlichkeit O(1/n) eine falsche Antwort. 22 / 35

Vergleich von Wörtern 2.20 Beweis Sei wieder t die obere Schranke des Intervalls, aus dem Primzahlen gewählt werden. Nach Satz 2.13 gibt es dort π(t) Θ(t/lnt) Primzahlen. Wahrscheinlichkeit Pr [y mod p = x(j) mod p y x(j)], ist höchstens O( m t/lnt ), da y x(j) höchstens m verschiedene Primteiler besitzt. Die Wahrscheinlichkeit für falsche Antwort, weil an irgendeiner der O(n) Stellen der Test versagt, ist höchstens O( nm t/lnt ). Wählt man t = n 2 m lnn 2 m, ergibt sich eine obere Schranke in O(1/n). 23 / 35

Randomisierter Quicksortalgorithmus Überblick Ein randomisierter Identitätstest Vergleich von Wörtern Ein randomisierter Quicksortalgorithmus 24 / 35

Randomisierter Quicksortalgorithmus 2.21 Annahme Alle Eingaben seien paarweise verschieden. 25 / 35

Randomisierter Quicksortalgorithmus 2.22 Algorithmus proc R[1... n] RandQuickSort(S[1 : n]) Eingabe: ein Feld S[1 : n] paarweise verschiedener Zahlen Ausgabe: ein Feld R[1 : n] die Zahlen aus S sortiert Zwischenablage in Feldern S 1 und S 2 i random(1, n) gleichverteilt Zahl aus [1... n] y S[i] j 1 1; j 2 1; for i 1 to n do if S[i] < y then S 1 [j 1 ] S[i]; j 1 j 1 + 1 fi if S[i] > y then S 2 [j 2 ] S[i]; j 2 j 2 + 1 fi od return RandQuickSort(S 1 [1 : j 1 1]) y RandQuickSort(S 2 [1 : j 2 1]) 26 / 35

Randomisierter Quicksortalgorithmus 2.23 Eigenschaften Algorithmus 2.22 liefert immer die korrekte Ausgabe Wahl der y beeinflusst Laufzeit (bei gleicher Eingabe): wenn z. B. y immer das Minimum: Laufzeit Θ(n 2 ). wenn z. B. y immer der Median: Laufzeit Θ(n logn). Die Laufzeit ist hier also eine Zufallsvariable. Was ist der Erwartungswert der Laufzeit? 27 / 35

Randomisierter Quicksortalgorithmus 2.24 Notation X ij : Zufallsvariable X ij = 1, falls zwei Zahlen miteinander verglichen werden X ij = 0, falls nicht Gesuchter Erwartungswert ist gleich [ n 1 ] n 1 E X ij = E [ ] X ij i=1 j>i i=1 j>i 28 / 35

Randomisierter Quicksortalgorithmus 2.24 Notation X ij : Zufallsvariable X ij = 1, falls R[i] und R[j] miteinander verglichen werden X ij = 0, falls nicht Beachte: Indizes in der Resultatliste (sortierte Reihenfolge) Gesuchter Erwartungswert ist gleich [ n 1 ] n 1 E X ij = E [ ] X ij i=1 j>i p ij : Wahrscheinlichkeit für Vergleich von R[i] und R[j], also E [ X ij ] = 1 pij + 0 (1 p ij ) = p ij. i=1 j>i 28 / 35

Randomisierter Quicksortalgorithmus 2.24 Notation X ij : Zufallsvariable X ij = 1, falls R[i] und R[j] miteinander verglichen werden X ij = 0, falls nicht Beachte: Indizes in der Resultatliste (sortierte Reihenfolge) Gesuchter Erwartungswert ist gleich [ n 1 ] n 1 E X ij = E [ ] X ij i=1 j>i p ij : Wahrscheinlichkeit für Vergleich von R[i] und R[j], also E [ X ij ] = 1 pij + 0 (1 p ij ) = p ij. Die p ij sind nicht alle gleich! (Indizierung in R!) i=1 j>i 28 / 35

Randomisierter Quicksortalgorithmus 2.26 Satz Der Erwartungswert der Laufzeit von RandQuickSort für Eingaben der Länge n ist in O(n logn). 29 / 35

Randomisierter Quicksortalgorithmus 2.27 Beweis (1) Seien i und j (1 i < j n) beliebig aber fest. Betrachte binäre Bäume mit den zu sortierenden Zahlen als Knoten, die durch je eine Ausführung von RandQuickSort wie folgt rekursiv festgelegt sind: Wurzel des Baumes: zufällig gewähltes Pivotelement y. linker Teilbaum: rekursiv nach gleicher Regel aus RandQuickSort(S 1 [1 : j 1 1]) und rechter Teilbaum: rekursiv nach gleicher Regel aus RandQuickSort(S 2 [1 : j 2 1]). 30 / 35

Randomisierter Quicksortalgorithmus 2.27 Beweis (2) durchlaufe Baum beginnend bei der Wurzel, nacheinander absteigend jedes Niveau jeweils von links nach rechts alle Knoten irgendwann erstmals Element R[k] mit i k j hier Entscheidung, R[i] vor R[j] einzusortieren 31 / 35

Randomisierter Quicksortalgorithmus 2.27 Beweis (2) durchlaufe Baum beginnend bei der Wurzel, nacheinander absteigend jedes Niveau jeweils von links nach rechts alle Knoten irgendwann erstmals Element R[k] mit i k j hier Entscheidung, R[i] vor R[j] einzusortieren zwei Fälle: 1. k = i oder k = j, d. h. R[i] oder R[j] ist Pivotelement und die beiden werden miteinander verglichen. 2. i < k < j, d. h. ein anderes Element ist Pivot R[i] und R[j] werden nicht miteinander verglichen kommen in verschiedene Teilbäume werden folglich auch später nie miteinander verglichen 31 / 35

Randomisierter Quicksortalgorithmus 2.27 Beweis (3) jedes (noch) zur Verfügung stehende Element gleichwahrscheinlich als Pivotelement ausgewählt offensichtlich eines der j i + 1 Elemente R[i],..., R[j] ausgewählt Im betrachteten Schritt wird also gleichwahrscheinlich eines von j i + 1 Elementen ausgewählt und in zwei Fällen (k = i, k = j) Vergleich von R[i] und R[j] Wahrscheinlichkeit für Vergleich von R[i] und R[j]: p ij = 2/(j i + 1). 32 / 35

Randomisierter Quicksortalgorithmus 2.27 Beweis (4) Also: E [ n 1 ] X ij i=1 j>i = = 2 n 1 E [ ] X ij i=1 n 1 j>i n i=1 j=i+1 n n i=1 k=1 2 n 1 j i + 1 = 1 k = 2nH n. i=1 n i+1 k=2 2 k n-te harmonische Zahl: H n = n k=1 1 k = lnn + Θ(1). 33 / 35

Randomisierter Quicksortalgorithmus 2.28 Manche randomisierten Algorithmen liefern immer die richtige Antwort. = Las Vegas Algorithmen (sofern...) Manche randomisierten Algorithmen liefern manchmal eine falsche Antwort. = Monte Carlo Algorithmen 34 / 35

Randomisierter Quicksortalgorithmus Zusammenfassung 1. Randomisierte Algorithmen enthalten eine Zufallskomponente. 2. Das führt im Allgemeinen dazu, dass bei festgehaltener Eingabe z. B. die Laufzeit eine randomisierten Algorithmus eine Zufallsvariable ist. 3. Manche randomisierten Algorithmen liefern immer das richtige Ergebnis. 4. Manche randomisierten Algorithmen liefern unter Umständen ein falsches Ergebnis. Dann ist man im Allgemeinen an kleinen Fehlerwahrscheinlichkeiten interessiert. 35 / 35