Definitionen
Randomisierter Algorithmus:
Deterministischer Algorithmus der
Zufallsexperimented durchführen kann
Las-Vegas-Verfahren: Ergebnis immer
korrekt
Monte-Carlo-Verfahren: Ergebnis mit
Fehlerwahrscheinlichkeit behaftet
Kapitel 2
Randomisierte Algorithmen
Technische Universität Wien
1
Institut für Computergraphik und Algorithmen
Deterministisch↔Randomisiert
Deterministische Algorithmen:
Meist Worst Case Analyse
Randomisierte Algorithmen:
Meist Average Case Analyse
3
Institut für Computergraphik und Algorithmen
Randomisiert
Zufallsexperimente
Nein
Ja
Aufbau
Komplex
Einfach
Analyse
Einfach
Komplex
Korrektheit
Garantiert
Garantiert oder
Variabel
Technische Universität Wien
4
Randomisierter Primzahltest
Deterministisch:
• Pivot Element ist letztes Element in aktueller
Folge
• Worst Case Laufzeit quadratisch erreicht bei
schon sortierter Folge
Randomisiert:
• Pivot Element wird zufällig aus aktueller Folge
gewählt
• Worst Case Laufzeit immer noch quadratisch
• Schlimmster Fall extrem unwahrscheinlich,
unabhängig von Eingabefolge
Institut für Computergraphik und Algorithmen
Deterministisch
Institut für Computergraphik und Algorithmen
Beipiel Quicksort
Technische Universität Wien
2
Institut für Computergraphik und Algorithmen
Analyse
Technische Universität Wien
Technische Universität Wien
5
Gegeben: ganze Zahl n>2, sehr groß
Frage: ist n Primzahl?
Anwendung: Kryptographie
• Bei RSA Verfahren werden große Primzahlen
benötigt.
• Mit steigender Rechnerkapazität müssen
Primzahlen immer größer werden um Sicherheit
zu gewährleisten
Bemerkung: Seit letztem Jahr gibt es
deterministischen Primzahltest mit
polynomieller Laufzeit. Sehr kompliziert
Technische Universität Wien
6
Institut für Computergraphik und Algorithmen
1
Bitkomplexität
Häufigkeit der Primzahlen
Rechenoperationen mit großen Zahlen kann
man in Rechnern nicht in konstanter Zeit
durchführen
Laufzeit hängt von Anzahl der Bits in
binärdarstellung der Zahl ab
Anzahl k der Bits für Darstellung von n:
Technische Universität Wien
7
Institut für Computergraphik und Algorithmen
Es gilt folgendes Lemma:
Technische Universität Wien
8
Institut für Computergraphik und Algorithmen
Divisionsmethode
Miller Rabin Test
Teste iterativ ob Zahl durch 2 oder
ungerade Zahl zwischen 3 und Wurzel n
teilbar
Anzahl Divisionen:
Monte-Carlo Verfahren: Liefert nicht immer
korrektes Ergebnis
Beruht auf folgendem Satz von Fermat:
Anzahl Divisionen wächst exponentiell mit
Bitlänge der Zahlen
Divisionsmethode zu langsam für große Zahlen
Technische Universität Wien
9
Institut für Computergraphik und Algorithmen
Carmichael Zahlen
Zeuge für nicht-Primalität von n:
Restklassenring Modulo n:
Pseudoprimzahl: Erfüllt Gleichung für ein a
Aber selten selbst für a=2:
Institut für Computergraphik und Algorithmen
10
Institut für Computergraphik und Algorithmen
Miller Rabin Test
Technische Universität Wien
Technische Universität Wien
11
Jede Zahl a < n mit ggt(a,n)>1 ist Zeuge
Carmichael Zahl: es gibt keinen Zeugen im
Restklassenring von n
Sehr selten: Es gibt nur 255 die kleiner als
108 sind
Technische Universität Wien
12
Institut für Computergraphik und Algorithmen
2
Idee Miller Rabin
Zeugentest
Wähle zufällig Zahl a aus {1,…,n-1}
Teste ob a Zeuge für n
Wiederhole s Mal
Falls Zeuge gefunden:
Brauchen effiziente Funktion die testet, ob
a Zeuge ist
Nutzen Vertauschbarkeit von Multiplikation
und Modulo-Rechnung:
• Ausgabe: „n ist keine Primzahl“
Falls kein Zeuge gefunden:
• Ausgabe: „n ist wahrscheinlich Primzahl“
Technische Universität Wien
13
Institut für Computergraphik und Algorithmen
Technische Universität Wien
14
Institut für Computergraphik und Algorithmen
Zeugentest
Laufzeit
Multiplikation von k-Bit Zahlen hat
Komplexität O(k2)
Maximal 2 Multiplikationen in Schleife
von Zeuge
Gesamtkomplexität von Zeuge: O(k3)
Komplexität Miller Rabin: O(sk3)
n-1 als Binärzahl bk-1,…,b0
Technische Universität Wien
15
Institut für Computergraphik und Algorithmen
Technische Universität Wien
16
Institut für Computergraphik und Algorithmen
Fehlerrate
Randomisierte Datenstrukturen
Es gilt folgender Satz
Für n > 2 ungerade und nicht prim ist die Anzahl
der Zeugen mindestens
Wählt man s Zahlen zufällig aus ist
Wahrscheinlichkeit für Fehler höchstens
Einige oder alle Methoden der
Datenstruktur enthalten Zufallskomponente
Oft effizient in der Praxis
Einfach zu implementieren
Laufzeitanalyse mit Erwartungswerten
(nicht immer trivial)
Worst-Case Schranken deutlich schlechter
als Erwartungswerte
2-s
Technische Universität Wien
Institut für Computergraphik und Algorithmen
17
Technische Universität Wien
18
Institut für Computergraphik und Algorithmen
3
Skiplisten
Aufbau von Skiplisten
Lösen das Wörterbuchproblem
Methoden:
• Einfügen
• Suchen
• Löschen
Erwartete Laufzeit aller Operationen bei n
Elementen: O(log n)
Technische Universität Wien
19
Institut für Computergraphik und Algorithmen
Technische Universität Wien
20
Institut für Computergraphik und Algorithmen
Details zum Aufbau
Beispiel für perfekte Skipliste
Höhe h(c) von Container c um 1 kleiner als
Anzahl der Zeiger auf nachfolgende
Container
Zeiger auf Höhe i des Containers c zeigt auf
Container 2i Positionen hinter c
Höhe des Zeigers bestimmt seine „Länge“
Perfekte Skipliste: Jeder Container hat
minimale Höhe unter der Bedingung das
der 2i-te Container Zeiger auf Höhe i hat
Technische Universität Wien
Verallgemeinerung von verketteten Listen
Daten in Containern mit Schlüsseln
abgelegt (hier natürliche Zahlen)
Neu: Container können auch Zeiger auf
nachfolgende Container enthalten, die keine
direkten Nachfolger sind
¾ Beim Suchen Überspringen (Skipping) von
Containern möglich
21
Institut für Computergraphik und Algorithmen
Startelement und Endelement haben Höhe des
höchsten Elements und keine Daten
Suche nach Schlüssel 17:
Technische Universität Wien
22
Institut für Computergraphik und Algorithmen
Anzahl Zeiger in perfekter
Skipliste
Suchen nach x in Skipliste L
//Durchlaufe alle Höhen
//Folge Zeigern auf gleicher Höhe bis
//Element zu groß
//Element gefunden
//Element nicht in Liste enthalten
Technische Universität Wien
Institut für Computergraphik und Algorithmen
23
Technische Universität Wien
24
Institut für Computergraphik und Algorithmen
4
Laufzeit Suche in perfekter
Skipliste
Randomisierte Skipliste
Auf jeder Ebene muss man
höchstens einem Zeiger folgen
Folgt man keinem Zeiger, dann
geht man eine Ebene runter
Es gibt O(log n) Ebenen
Gesamtlaufzeit für Suche O(log n)
Technische Universität Wien
25
Institut für Computergraphik und Algorithmen
Bei perfekter Skipliste muss man beim
Einfügen die komplette Liste
reorganisieren
Laufzeit für Einfügen dann O(n)
Idee:
1. Aufgabe der Bedingungen bzgl. Höhe der
Container
2. Beim Einfügen eines Containers wird seine
Höhe zufällig bestimmt
Technische Universität Wien
26
Institut für Computergraphik und Algorithmen
Randomisierte Skipliste
Operationen
Suchen: Wie bisher
Löschen: Prinzip wie bei verketteter Liste
nur mehr Zeiger umhängen
Einfügen:
Suche nach 16:
1. Stelle zum Einfügen suchen
2. Höhe des neuen Containers auf 0 setzen
3. Höhe=Höhe+1 solange Münzwurf „Kopf“
ergibt
4. Zeiger umhängen analog zur verketteten
Liste
Technische Universität Wien
27
Institut für Computergraphik und Algorithmen
Technische Universität Wien
28
Institut für Computergraphik und Algorithmen
Einfügen
Entfernen
Element suchen
Element suchen und Zeiger sammeln
Höhe des neuen Elements
würfeln
Zeiger umhängen
Zeiger sammeln die umgehängt werden
müssen
Neuen Container
erzeugen
//Höhen aktualisieren
Zeiger umhängen
Technische Universität Wien
Institut für Computergraphik und Algorithmen
29
Technische Universität Wien
30
Institut für Computergraphik und Algorithmen
5
Containerhöhe
Listenhöhe
Wahrscheinlichkeit dass neuer Container
Höhe i hat:
In Realität Höhe der Skipliste begrenzt, für
unsere Analyse unbegrenzt
Kein großer Fehler: Wahrscheinlichkeit
dass neues Element mit Höhe 15 eingefügt
wird:
Technische Universität Wien
31
Institut für Computergraphik und Algorithmen
Wahrscheinlichkeit dass Container
mindestens Höhe i hat:
Wahrscheinlichkeit das mindestens ein
Container Höhe ≥ i hat:
Wahrscheinlichkeit für Listenhöhe größer
als 3log n-1:
Technische Universität Wien
Listenhöhe
Analyse der Suche
Wahrscheinlichkeit dass für ein c>1 die
Listenhöhe größer als c log n-1 ist:
Listenhöhe für große Listen mit sehr hoher
Wahrscheinlichkeit O(log n)
Technische Universität Wien
33
Institut für Computergraphik und Algorithmen
Horizontale Schritte
Institut für Computergraphik und Algorithmen
2 Operationen:
Zeiger auf gleicher Höhe folgen
Eine Ebene absteigen
Höchstens logarithmisch viele Schritte von
Typ 2
Wie viele Schritte Typ 1?
Technische Universität Wien
34
Institut für Computergraphik und Algorithmen
Sei ni Anzahl Schritte auf Ebene i
Jeder Container die wir auf Ebene i
durchlaufen außer dem ersten hat genau
Höhe i
Sei c ein Container mit mindestens Höhe i.
Wahrscheinlichkeit dass wir c auf Höhe i
durchlaufen ist ½, mit gleicher
Wahrscheinlichkeit ist er höher (und schon
erledigt)
Erwartungswert ni ist gleich
Erwartungswert Anzahl Münzwürfe bis
„Kopf“ fällt, also 2
Technische Universität Wien
32
Institut für Computergraphik und Algorithmen
35
Horizontale Schritte
Für jeden Level Erwartungswert der
Schritte gleich 2
Insgesamt Erwartungswert 2*Levelanzahl
also O(log n)
Erwartungswert für Laufzeit Suche also
O(log n)
Es folgt Erwartungswert für Einfügen und
Löschen auch O(log n)
Technische Universität Wien
36
Institut für Computergraphik und Algorithmen
6
Technische Universität Wien
37
Institut für Computergraphik und Algorithmen
7