Folien

Werbung
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
Herunterladen