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