exan Computer und Satellitentechnik | Exaco Shop Systeme | www.exan.com Donaueschingen | www.terem.de | www.exan.net | www.tepem.de
| Ihre Werbung hier plazieren | Als Startseite | Diese Seite zu Favoriten hinzufügen |

Zurück

Plesk Modules : Module fü Plesk


www.geburtstagsgeschenk-online.de


Webdesign, Onlineshop, PHP
Testvirus : Test your Antivirus

Counter Web Statistik von Webcompas.de Besucher heute Seitenimpressionen heute Besucher insgesamt

Dieser Artikel basiert auf einem Artikel aus der freien Enzyklopädie Wikipedia und steht unter der GNU-Lizenz für freie Dokumentation. In der Wikipedia ist eine Liste der Autoren verfügbar.

Randomisierter Algorithmus – Wikipedia

Randomisierter Algorithmus

aus Wikipedia, der freien EnzyklopÀdie
Wechseln zu: Navigation, Suche

Ein randomisierter Algorithmus (auch stochastischer oder probabilistischer Algorithmus) verwendet – im Gegensatz zu einem deterministischen Algorithmus – Zufallsbits, um seinen Ablauf zu steuern. Es wird nicht verlangt, dass ein randomisierter Algorithmus immer effizient eine richtige Lösung findet. Randomisierte Algorithmen sind in vielen FĂ€llen einfacher zu verstehen, einfacher zu implementieren und effizienter als deterministische Algorithmen fĂŒr 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

[Bearbeiten] Algorithmustypen

Verschiedene Klassen der Algorithmen

[Bearbeiten] Las-Vegas

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 ungĂŒnstiger Wahl der Zufallsbits) sehr groß werden kann. In vielen FĂ€llen ist der Algorithmus nur im Erwartungsfall schnell, nicht aber im schlimmsten Fall. Ein Beispiel ist die Variante von Quicksort, bei der das Pivotelement zufĂ€llig gewĂ€hlt wird. Die erwartete Rechenzeit betrĂ€gt O(n \log n), bei ungĂŒnstiger Wahl der Zufallsbits werden dagegen O(n^2) Schritte benötigt.
  • Algorithmen, die versagen dĂŒrfen (= aufgeben dĂŒrfen), aber niemals ein falsches Ergebnis liefern dĂŒrfen. Die QualitĂ€t dieser Art von Algorithmen kann man durch eine obere Schranke fĂŒr die Versagenswahrscheinlichkeit beschreiben.

[Bearbeiten] Monte-Carlo

Randomisierte Algorithmen, die auch ein falsches Ergebnis liefern dĂŒrfen, bezeichnet man auch als Monte-Carlo-Algorithmen. Die QualitĂ€t von Monte-Carlo-Algorithmen kann man durch eine obere Schranke fĂŒr die Fehlerwahrscheinlichkeit beschreiben.

Von randomisierten Algorithmen spricht man nur, wenn man den Erwartungswert der Rechenzeit und/oder die Fehler- bzw. Versagenswahrscheinlichkeit abschÀtzen 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 unabhĂ€ngig erzeugt werden. In Implementierungen verwendet man anstelle von richtigen Zufallsbits ĂŒblicherweise Pseudozufallszahlen, die natĂŒrlich nicht mehr unabhĂ€ngig sind. Dadurch ist es möglich, dass sich Implementierungen schlechter verhalten, als die Analyse erwarten lĂ€sst.

[Bearbeiten] Fehlerarten von Monte-Carlo-Algorithmen fĂŒr Entscheidungsprobleme

Bei Entscheidungsproblemen (Problemen, die durch Ja-Nein-Fragen beschrieben werden können) unterscheidet man ein- und zweiseitigen Fehler:

  • Bei zweiseitigem Fehler dĂŒrfen 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 MĂŒnzwurf unabhĂ€ngig von der Eingabe die Fehlerwahrscheinlichkeit 1/2 erreichen kann (dieser Ansatz ist offensichtlich keine sinnvolle Lösung fĂŒr das betrachtete Problem).
  • Bei einseitigem Fehler dĂŒrfen Eingaben, bei denen die richtige Antwort Ja lautet, auch verworfen werden, dagegen mĂŒssen Eingaben, bei denen die richtige Antwort Nein lautet verworfen werden. Hierbei sind Fehlerwahrscheinlichkeiten kleiner als 1 sinnvoll.

[Bearbeiten] ZusammenhÀnge zwischen Las-Vegas- und Monte-Carlo-Algorithmen

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) nur fĂŒr den Erwartungswert der Rechenzeit des Las-Vegas-Algorithmus bekannt ist, kann man den Algorithmus nach cp(n) Schritten abbrechen und ? ausgeben. Die Wahrscheinlichkeit, dass dies passiert, ist nach der Markow-Ungleichung durch 1/c beschrĂ€nkt.

Da Monte-Carlo-Algorithmen falsche Lösungen ausgeben können und diese falschen Lösungen nicht extra gekennzeichnet werden mĂŒssen, ist es schwieriger, Monte-Carlo-Algorithmen in Las-Vegas-Algorithmen umzuformen. Dies ist möglich, wenn man zusĂ€tzlich einen Verifizierer fĂŒr die Lösung hat, also einen Algorithmus, der zu einem Lösungsvorschlag testen kann, ob der Vorschlag korrekt ist. Man erhĂ€lt einen Las-Vegas-Algorithmus, indem man den gegebenen Monte-Carlo-Algorithmus ausfĂŒhrt, anschließend mit dem Verifizierer ĂŒberprĂŒft, ob die berechnete Lösung korrekt ist, und dieses Verfahren so lange iteriert, bis eine korrekte Lösung berechnet wurde. Die worst-case-Rechenzeit dieses Ansatzes ist zwar nicht nach oben beschrĂ€nkt, allerdings kann man den Erwartungswert der Anzahl der Iterationen nach oben abschĂ€tzen. Wenn man keinen Verifizierer zur VerfĂŒgung hat, ist im Allgemeinen nicht klar, wie man aus einem Monte-Carlo-Algorithmus einen Las-Vegas-Algorithmus konstruieren kann.

[Bearbeiten] KomplexitÀtsklassen

[Bearbeiten] Die Klasse PP

Prob(M(w)=L(w)) > 1/2

Typ: & Monte Carlo Algorithmus

Die Klasse PP (probabilistic polynomial) sind alle Sprachen L, so dass es eine probabilistische Turingmaschine M gibt, die polynomiell zeitbeschrĂ€nkt ist und fĂŒr alle w diese Formel gilt.

In dieser Klasse existiert ein beidseitiger Fehler. Die Wahrscheinlichkeit, dass das erzielte Ergebnis korrekt ist, liegt ĂŒber 1/2.

[Bearbeiten] Die Klasse BPP

Prob(M(w)=L(w)) > 1/2 + e

Typ: & Monte Carlo Algorithmus

Die Klasse BPP (bounded error probabilistic polynomial) sind alle Sprachen L, so dass es eine probabilistische Turingmaschine $M$ gibt, die polynomiell zeitbeschrĂ€nkt ist und fĂŒr alle w bei e>0 diese Formel gilt.

In dieser Klasse existiert ein beidseitiger Fehler. Die Wahrscheinlichkeit, dass das erzielte Ergebnis korrekt ist, liegt in einem bekannten Bereich.

[Bearbeiten] Die Klasse RP

w ∈ L: Prob(M(w)=1) >
1/2

w ∉ L: Prob(M(w)=0) = 1

Typ: & Monte Carlo Algorithmus

Die Klasse RP (random polinomial) sind alle Sprachen L, so dass es eine probabilistische Turingmaschine M gibt, die polynomiell zeitbeschrÀnkt ist und diese Formel gilt.

In dieser Klasse liegt ein einseitiger Fehler vor.

[Bearbeiten] Die Klasse ZPP

w ∈ L: Prob(M(w)=0) = 0 Prob(M(w)=1) > 1/2

w ∉ L: Prob(M(w)=1)= 0 Prob(M(w)=0) > 1/2

Typ: & Las Vegas Algorithmus

Die Klasse ZPP (zero error probablistic polynomial) sind alle Sprachen L, so dass es eine probabilistische Turingmaschine M gibt, die polynomiell zeitbeschrÀnkt ist und diese Formel gilt.

[Bearbeiten] Verringerung der Fehler-/Versagenswahrscheinlichkeit (Probability Amplification)

Die Fehler- bzw. Versagenswahrscheinlichkeit von randomisierten Algorithmen kann durch unabhĂ€ngiges Wiederholen verringert werden. Wenn man beispielsweise einen fehlerfreien Algorithmus mit einer Versagenswahrscheinlichkeit von 1/2 insgesamt k-mal laufen lĂ€sst, betrĂ€gt die Wahrscheinlichkeit, dass er in allen k Iterationen versagt nur noch (1/2)^k. 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) (bis auf polynomielle Faktoren in der Rechenzeit) gleich gut ist. (Man ĂŒberlegt sich leicht, dass die Versagenswahrscheinlichkeit 2^{-k} fĂŒr zum Beispiel k=100 ein wirklich winzig kleine Versagenswahrscheinlichkeit ist; man mĂŒsste den Algorithmus im Durchschnitt 2^{100}-mal laufen lassen, bis er das erste Mal versagt.) Derselbe Ansatz funktioniert fĂŒr Algorithmen mit einseitigem Fehler. Bei Algorithmen mit zweiseitigem Fehler benötigt 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) (bis auf polynomielle Faktoren in der Rechenzeit) gleich gut ist.

[Bearbeiten] Derandomisierung

Unter Derandomisierung versteht man die Verringerung der Anzahl der Zufallsbits, die ein randomisierter Algorithmus benutzt. Dies ist aus dem folgenden Grund nĂŒtzlich: Man kann jeden randomisierten Algorithmus deterministisch machen, indem man ihn fĂŒr alle Belegungen der Zufallsbits simuliert. Allerdings bedeutet dies, dass bei der Verwendung von c Zufallsbits die Rechenzeit um einen Faktor 2^c steigt, was in den meisten FĂ€llen zu exponentieller Rechenzeit fĂŒhrt. Falls aber der Algorithmus bei EingabelĂ€nge n nur O(\log n) Zufallsbits benötigt, fĂŒhrt dies nur zu einer polynomiellen VergrĂ¶ĂŸerung der Rechenzeit.

Ein Ansatz zur Derandomisierung besteht darin, genauer zu analysieren, wie der Algorithmus die Zufallsbits benutzt. Bei manchen randomisierten Algorithmen genĂŒgt es, dass die verwendeten Zufallsbits paarweise unabhĂ€ngig sind. Man kann nun beispielsweise n paarweise unabhĂ€ngige Zufallsvariablen aus O(\log n) vollstĂ€ndig unabhĂ€ngigen Zufallsvariablen erzeugen. In einem zweiten Schritt kann man den Algorithmus mit dem zuvor beschriebenen Ansatz deterministisch machen.

[Bearbeiten] Literatur

[Bearbeiten] Weblinks

Satellitentechnik, LNB, Digitalreciver  EDV Dienstleister, VPN  Free Counter, Besucherstatistik  Russisches Portal in Deutschland  Werbung im Internet  Onlineshop  PHP Sicherheit  Donaueschingen  

 

 

 

geburtstagsgeschenk-online.de