www.wikidata.de-de.nina.az
Ein randomisierter Algorithmus auch stochastischer oder probabilistischer Algorithmus ist ein Algorithmus der versucht durch die Wahl von zufalligen Zwischenergebnissen zu einem im Mittel guten bzw naherungsweise korrekten Ergebnis zu gelangen Er bildet somit das Gegenstuck zum deterministischen Algorithmus Es wird dabei nicht verlangt dass ein randomisierter Algorithmus immer effizient eine richtige Losung findet Randomisierte Algorithmen sind in vielen Fallen einfacher zu verstehen einfacher zu implementieren und effizienter als deterministische Algorithmen fur dasselbe Problem Ein Beispiel das dies zeigt ist der AKS Primzahltest der zwar deterministisch ist aber viel ineffizienter und viel schwieriger zu implementieren als beispielsweise der Primzahltest von Solovay und Strassen Inhaltsverzeichnis 1 Algorithmustypen 1 1 Las Vegas Algorithmus 1 2 Monte Carlo Algorithmus 1 2 1 Fehlerarten von Monte Carlo Algorithmen fur Entscheidungsprobleme 1 3 Zusammenhange zwischen Las Vegas und Monte Carlo Algorithmen 1 4 Komplexitatsklassen 1 4 1 Die Klasse PP 1 4 2 Die Klasse BPP 1 4 3 Die Klasse RP 1 4 4 Die Klasse ZPP 2 Verringerung der Fehler Versagenswahrscheinlichkeit Probability Amplification 3 Derandomisierung 4 Literatur 5 WeblinksAlgorithmustypen Bearbeiten nbsp Verschiedene Klassen der AlgorithmenLas Vegas Algorithmus Bearbeiten Hauptartikel Las Vegas Algorithmus Randomisierte Algorithmen die nie ein falsches Ergebnis liefern bezeichnet man auch als Las Vegas Algorithmen Es gibt zwei Varianten von Las Vegas Algorithmen Algorithmen die immer das richtige Ergebnis liefern deren Rechenzeit aber bei ungunstiger Wahl der Zufallsbits sehr gross werden kann In vielen Fallen ist der Algorithmus nur im Erwartungsfall schnell nicht aber im schlimmsten Fall Ein Beispiel ist die Variante von Quicksort bei der das Pivotelement zufallig gewahlt wird Die erwartete Rechenzeit betragt O n log n displaystyle O n log n nbsp bei ungunstiger Wahl der Zufallsbits werden dagegen O n 2 displaystyle O n 2 nbsp Schritte benotigt Algorithmen die versagen durfen aufgeben durfen aber niemals ein falsches Ergebnis liefern durfen Die Qualitat dieser Art von Algorithmen kann man durch eine obere Schranke fur die Versagenswahrscheinlichkeit beschreiben Monte Carlo Algorithmus Bearbeiten Hauptartikel Monte Carlo Algorithmus Randomisierte Algorithmen die auch ein falsches Ergebnis liefern durfen bezeichnet man auch als Monte Carlo Algorithmen Die Qualitat von Monte Carlo Algorithmen kann man durch eine obere Schranke fur die Fehlerwahrscheinlichkeit beschreiben Von randomisierten Algorithmen spricht man nur wenn man den Erwartungswert der Rechenzeit und oder die Fehler bzw Versagenswahrscheinlichkeit abschatzen kann Algorithmen bei denen nur intuitiv plausibel ist dass sie gute Ergebnisse liefern oder Algorithmen bei denen man dies durch Experimente auf typischen Eingaben bewiesen hat bezeichnet man dagegen als heuristische Algorithmen Bei der Analyse von erwarteter Rechenzeit und oder Fehlerwahrscheinlichkeit geht man in der Regel davon aus dass die Zufallsbits unabhangig erzeugt werden In Implementierungen verwendet man anstelle von richtigen Zufallsbits ublicherweise Pseudozufallszahlen die naturlich nicht mehr unabhangig sind Dadurch ist es moglich dass sich Implementierungen schlechter verhalten als die Analyse erwarten lasst Fehlerarten von Monte Carlo Algorithmen fur Entscheidungsprobleme Bearbeiten Bei Entscheidungsproblemen Problemen die durch Ja Nein Fragen beschrieben werden konnen unterscheidet man ein und zweiseitigen Fehler Bei zweiseitigem Fehler durfen Eingaben bei denen die richtige Antwort Ja lautet auch verworfen werden und Eingaben bei denen die richtige Antwort Nein lautet auch akzeptiert werden Die Fehlerwahrscheinlichkeit muss in diesem Fall sinnvollerweise kleiner als 1 2 sein da man mit einem Munzwurf unabhangig von der Eingabe die Fehlerwahrscheinlichkeit 1 2 displaystyle 1 2 nbsp erreichen kann dieser Ansatz ist offensichtlich keine sinnvolle Losung fur das betrachtete Problem Bei einseitigem Fehler durfen Eingaben bei denen die richtige Antwort Ja lautet auch verworfen werden dagegen mussen Eingaben bei denen die richtige Antwort Nein lautet verworfen werden Hierbei sind Fehlerwahrscheinlichkeiten kleiner als 1 sinnvoll Zusammenhange zwischen Las Vegas und Monte Carlo Algorithmen Bearbeiten Las Vegas Algorithmen lassen sich stets in Monte Carlo Algorithmen umformen Die Ausgabe kann einfach als falsche Ausgabe interpretiert werden Wenn eine obere Schranke p n displaystyle p n nbsp nur fur den Erwartungswert der Rechenzeit des Las Vegas Algorithmus bekannt ist kann man den Algorithmus nach c p n displaystyle cp n nbsp Schritten abbrechen und ausgeben Die Wahrscheinlichkeit dass dies passiert ist nach der Markow Ungleichung durch 1 c beschrankt Da Monte Carlo Algorithmen falsche Losungen ausgeben konnen und diese falschen Losungen nicht extra gekennzeichnet werden mussen ist es schwieriger Monte Carlo Algorithmen in Las Vegas Algorithmen umzuformen Dies ist moglich wenn man zusatzlich einen Verifizierer fur die Losung hat also einen Algorithmus der zu einem Losungsvorschlag testen kann ob der Vorschlag korrekt ist Man erhalt einen Las Vegas Algorithmus indem man den gegebenen Monte Carlo Algorithmus ausfuhrt anschliessend mit dem Verifizierer uberpruft ob die berechnete Losung korrekt ist und dieses Verfahren so lange iteriert bis eine korrekte Losung berechnet wurde Die worst case Rechenzeit dieses Ansatzes ist zwar nicht nach oben beschrankt allerdings kann man den Erwartungswert der Anzahl der Iterationen nach oben abschatzen Wenn man keinen Verifizierer zur Verfugung hat ist im Allgemeinen nicht klar wie man aus einem Monte Carlo Algorithmus einen Las Vegas Algorithmus konstruieren kann Komplexitatsklassen Bearbeiten Die Klasse PP Bearbeiten P r o b M w L w gt 1 2 displaystyle Prob M w L w gt 1 2 nbsp Typ amp Monte Carlo Algorithmus Die Klasse PP probabilistic polynomial sind alle Sprachen L so dass es eine probabilistische Turingmaschine M gibt die polynomiell zeitbeschrankt ist und fur alle w diese Formel gilt In dieser Klasse existiert ein beidseitiger Fehler Die Wahrscheinlichkeit dass das erzielte Ergebnis korrekt ist liegt uber 1 2 Die Klasse BPP Bearbeiten P r o b M w L w gt 1 2 e displaystyle Prob M w L w gt 1 2 e nbsp Typ amp Monte Carlo Algorithmus Die Klasse BPP bounded error probabilistic polynomial sind alle Sprachen L so dass es eine probabilistische Turingmaschine M gibt die polynomiell zeitbeschrankt ist und fur alle w bei e gt 0 displaystyle e gt 0 nbsp diese Formel gilt In dieser Klasse existiert ein beidseitiger Fehler Die Wahrscheinlichkeit dass das erzielte Ergebnis korrekt ist liegt in einem bekannten Bereich Die Klasse RP Bearbeiten w L P r o b M w 1 gt 1 2 displaystyle Prob M w 1 gt 1 2 nbsp w L P r o b M w 0 1 displaystyle Prob M w 0 1 nbsp Typ amp Monte Carlo Algorithmus Die Klasse RP random polynomial sind alle Sprachen L so dass es eine probabilistische Turingmaschine M gibt die polynomiell zeitbeschrankt ist und diese Formel gilt In dieser Klasse liegt ein einseitiger Fehler vor Die Klasse ZPP Bearbeiten w L P r o b M w 0 0 displaystyle Prob M w 0 0 nbsp P r o b M w 1 gt 1 2 displaystyle Prob M w 1 gt 1 2 nbsp w L P r o b M w 1 0 displaystyle Prob M w 1 0 nbsp P r o b M w 0 gt 1 2 displaystyle Prob M w 0 gt 1 2 nbsp Typ amp Las Vegas Algorithmus Die Klasse ZPP zero error probabilistic polynomial sind alle Sprachen L so dass es eine probabilistische Turingmaschine M gibt die polynomiell zeitbeschrankt ist und diese Formel gilt Verringerung der Fehler Versagenswahrscheinlichkeit Probability Amplification BearbeitenDie Fehler bzw Versagenswahrscheinlichkeit von randomisierten Algorithmen kann durch unabhangiges Wiederholen verringert werden Wenn man beispielsweise einen fehlerfreien Algorithmus mit einer Versagenswahrscheinlichkeit von 1 2 insgesamt k displaystyle k nbsp mal laufen lasst betragt die Wahrscheinlichkeit dass er in allen k displaystyle k nbsp Iterationen versagt nur noch 1 2 k displaystyle 1 2 k nbsp Wenn er in mindestens einer Iteration ein Ergebnis liefert ist dies auch richtig so dass es auch ausgegeben werden kann Auf diese Weise kann man zeigen dass jede konstante Versagenswahrscheinlichkeit aus dem Intervall 0 1 displaystyle 0 1 nbsp bis auf polynomielle Faktoren in der Rechenzeit gleich gut ist Man uberlegt sich leicht dass die Versagenswahrscheinlichkeit 2 k displaystyle 2 k nbsp fur zum Beispiel k 100 displaystyle k 100 nbsp ein wirklich winzig kleine Versagenswahrscheinlichkeit ist man musste den Algorithmus im Durchschnitt 2 100 displaystyle 2 100 nbsp mal laufen lassen bis er das erste Mal versagt Derselbe Ansatz funktioniert fur Algorithmen mit einseitigem Fehler Bei Algorithmen mit zweiseitigem Fehler benotigt man dagegen eine Mehrheitsentscheidung so dass die Analyse etwas schwieriger wird Es ergibt sich aber wieder dass jede konstante Fehlerwahrscheinlichkeit aus dem Intervall 0 1 2 displaystyle 0 1 2 nbsp bis auf polynomielle Faktoren in der Rechenzeit gleich gut ist Derandomisierung BearbeitenUnter Derandomisierung versteht man die Verringerung der Anzahl der Zufallsbits die ein randomisierter Algorithmus benutzt Dies ist aus dem folgenden Grund nutzlich Man kann jeden randomisierten Algorithmus deterministisch machen indem man ihn fur alle Belegungen der Zufallsbits simuliert Allerdings bedeutet dies dass bei der Verwendung von c displaystyle c nbsp Zufallsbits die Rechenzeit um einen Faktor 2 c displaystyle 2 c nbsp steigt was in den meisten Fallen zu exponentieller Rechenzeit fuhrt Falls aber der Algorithmus bei Eingabelange n displaystyle n nbsp nur O log n displaystyle O log n nbsp Zufallsbits benotigt fuhrt dies nur zu einer polynomiellen Vergrosserung der Rechenzeit Ein Ansatz zur Derandomisierung besteht darin genauer zu analysieren wie der Algorithmus die Zufallsbits benutzt Bei manchen randomisierten Algorithmen genugt es dass die verwendeten Zufallsbits paarweise unabhangig sind Man kann nun beispielsweise n displaystyle n nbsp paarweise unabhangige Zufallsvariablen aus O log n displaystyle O log n nbsp vollstandig unabhangigen Zufallsvariablen erzeugen In einem zweiten Schritt kann man den Algorithmus mit dem zuvor beschriebenen Ansatz deterministisch machen Literatur BearbeitenJ Hromkovic Randomisierte Algorithmen Methoden zum Entwurf von zufallsgesteuerten Systemen fur Einsteiger Vieweg Teubner 2004 ISBN 3 519 00470 4 R Motwani P Raghavan Randomized Algorithms Cambridge University Press 1995 ISBN 0 521 47465 5 I Wegener Komplexitatstheorie Grenzen der Effizienz von Algorithmen Springer 2003 ISBN 3 540 00161 1 Weblinks BearbeitenUbersicht uber randomisierte Algorithmen Abgerufen von https de wikipedia org w index php title Randomisierter Algorithmus amp oldid 234009874