Einführung: Randomisierte Algorithmen

Werbung
Einführung: Randomisierte Algorithmen
Oscar Salvador Morillo Victoria
30.04.2013
1
Las Vegas und Monte Carlo
Beispiel habe ich einen randomisierten Algorithmus für das Min-Cut Problem vorgestellt,
Für viele Probleme sind randomisierte Algorith- welcher im Gegensatz zu deterministischen Anmen eine gute Alternative zu deterministischen sätzen wie z.B. Netzwerkfluss sehr einfach ist. Bei
Algorithmen, da sie teilweise performanter sind Monte Carlo Algorithmen gibt es einen Tradeund/oder sich leichter beschreiben und imple- Off zwischen der Fehlerwahrscheinlichkeit und
mentieren lassen als deterministische Algorith- der Laufzeit. Eine Verringerung der Fehlermen mit vergleichbarer Performanz. Las Vegas wahrscheinlichkeit geht mit einer Erhöhung der
stellen eine Klasse randomisierter Algorithmen Laufzeit einher.
dar, die immer das richtige Ergebnis liefern, deren
Algorithm 1 Min Cut
Laufzeit jedoch von Ausführung zu Ausführung
bei gleicher Eingabe variieren. Ein Las Vegas Al- Eingabe: ungerichteter, zusammenhängender
gorithmus gilt als effizient, wenn seine erwartete Multigraph ohne Schleifen
Laufzeit für beliebige Eingaben durch eine poly- Ausgabe: potentieller Min-Cut (Schnitt)
nomielle Funktion der Eingabegröße beschränkt Solange mehr als 2 Knoten übrig sind:
ist. Als Beispiel habe ich RandQS vorgestellt,
• Wähle zufällig gleichverteilt eine Kante aus
welche eine erwartete Laufzeit von O(n·logn) hat.
der Kantenmenge E des Graphen und verIm Gegensatz zu den Las Vegas Algorithmen,
können Monte Carlo auch falsche Ergebnisse
liefern. Letztere Algorithmen beschreiben randomisierte Algorithmen, deren Fehlerwahrscheinlichkeit sich durch wiederholte Ausführung stetig
verringern lassen. Bei Entscheidungsproblemen
unterscheidet man zwei Arten von Monte Carlo
Algorithmen - solche mit einseitigem Fehler und
solche mit zweiseitigem Fehler. Einseitig gibt
an, dass für eines der beiden Antworten - Ja
oder Nein - die Wahrscheinkeit größer 0 ist,
dass es sich bei der Antwort, um eine falsche
Antwort handelt. Analog dazu gibt zweiseitiger
Fehler an, dass sowohl die Bejahung als auch die
Verneinung mit einer gewissen Wahrscheinlichkeit
falsch sein kann. Ein Monte Carlo Algorithmus
gilt als effizient, wenn seine Worst-Case Laufzeit
für beliebige Eingaben durch eine polynomielle
Funktion der Eingabegröße beschränkt ist. Als
schmelze deren beiden Endknoten (Kontraktion)
• Alle Kanten zwischen diesen Knoten werden
entfernt
Die Kanten zwischen den übrig gebliebenen
Knotenpaar ist ein Cut in G und wird als potentieller Min-Cut ausgegeben
1.1
Analyse der Fehlerwahrscheinlichkeit
Sei G ein ungerichteter, zusammenhängender
Multigraph ohne Schleifen und C ein Min-Schnitt
in G mit |C|=k. Sei ei das Ereignis, dass
keine Kante aus C im i-tem Schritt gewählt wird
für alle 1  i  n
2. Wir berechnen die
Wahrscheinlichkeit für das Komplement ec1 , dass
1
2.1.1
eine Kante aus C im 1.Schritt gewählt wird.
k
Pr(ec1 ) e(G)
. Wir können e(G), die Anzahl
aller Kanten, mit Hilfe des Handschlag-Lemmas
von unten abschätzen: Sei (G) der Minimalgrad
von G. Jeder Knoten hat demnach mindestens
Grad (G). Da jede Kante jedoch inzident zu
zwei Knoten ist, würden wir jede Kante doppelt
zählen, daher müssen wir durch 2 teilen. Somit
·n
gibt es mindestens (G)
Kanten. Da C die
2
Kardinalität k besitzt, ist (G) = k, denn andernfalls könnten wir die inzidenten Kanten zu
einem Knoten mit Grad < k abschneiden und
C wäre dann kein Min-Schnitt. Daraus ergibt
(G) ·n
sich: e(G)
= k 2· n . Somit gilt Pr(ec1 )
2
k
2
e(G) = n . Daraus können wir die Wahrscheinlichkeit für das Ereignis e1 ableiten: P r(e1 ) =
1 P r(ec1 ) 1 n2 . Wir nehmen an das Ereignis e1 ist eingetreten. Im 2. Schritt sind noch
k(n 1)
Kanten in der Kantenmenge E vorhan2
den. Daraus folgt: P r(ec2 )  n 2 1 und somit gilt
2
P r(e2 |e1 )
1
n 1 . Im i-ten Schritt bleiben
Binäre Partition der Ebene
Wir suchen eine Partitionierung der Ebene für
n disjunkte Strecken, so dass auf jedem Bereich sich höchstens eine (Teil-)Strecke befindet.
Mit Hilfe des RandAuto Algorithmus können wir
eine Binäre Partition der Ebene konstruieren,
die diese Bedingungen erfüllt. Eine binäre Partition der Ebene besteht aus einem vollständigem Binärbaum und zusätzlichen Informationen.
Zu jedem Knoten v gehört ein Gebiet r(v) auf
der Ebene. Der Wurzel ist die gesamte Ebene
zugeordnet. Zusätzlich wird in jedem inneren
Knoten v des Baums eine Gerade l(v) gespeichert,
welche das inr(v) gespeicherte Gebiet schneidet
und in zwei Teilgebiete r1 (v) und r2 (v) zerlegt, welche in den Kinderknoten von v gespeichert werden. Mit l(si ) wird die Gerade bezeichnet, die durch Verlängerung der Strecke si
auf beiden Seiten entsteht. Eine Autopartition
ist eine Partition, welche nur Geraden aus L =
{l(s1 ), l(s2 ), ..., l(sn) } verwendet.
noch k(n 2i+1) Kanten in der Kantenmenge E.
Algorithm 2 RandAuto
Somit ist die Wahrscheinlichkeit,⇣für das Ereig⌘
Tn 2
Qn 2
2
nis ei : P r(ei | i=1 ei )
= Eingabe: Eine Menge S = {s1 , s2,..., sn } sich nicht
i=1 1
n i+1
schneidender Strecken.
2
n(n 1) . Die Wahrscheinlichkeit, dass ein Min-Cut Ausgabe: Eine binäre Autopartition P⇧ von S.
gefunden wird, ist demnach > n22 . Wenn wir aber 1. Wähle zufällig gleichverteilt eine Permuta2
den Algorithmus n2 Mal ausführten, könnten wir tion ⇧ der Zahlenmenge {1, 2, . . . , n} aus den n!
n2
möglichen Permutationen.
die Fehlerwahrscheinlichkeit auf (1 n22 ) 2 < 1e
2. Solange eine Region mehr als eine Strecke enverringern.
thält, schneide diese mit der Gerade l (si ), wobei
i die erste Zahl in der Permutation ⇧ ist, so dass
die Strecke si diese Region schneidet
2
2.1
Binäre Partition der Ebene
Sichtbarkeitsproblem
Beim Rendern in der Computergrafik ist die
Fragestellung, welche Teile von Oberflächen in
einer 3D-Szene bei der Projektion auf zweidimensionalen Flächen sichtbar und welche verdeckt
sind. In diesem Beispiel gehen wir von einer Szene Figure 1:
aus, die sich vollständig auf der Ebene befindet
und wir schauen von einem Punkt auf der Ebene Zur Lösung des Sichbarkeitsproblems wird nun
auf die restlichen Objekte.
die resultierende Autopartition dem Maleralgo2
rithmus als Eingabe übergeben. Dabei werden, von Schnitten.
Somit ist sein Erwartungswert:
P P
die entfernten Objekte einer Szene zuerst geze- n + E[ u v Cu,v ].
ichnet und dann durch näher gelegene Objekte Nach Linearität des Erwartungswert gilt:
übermalt.
n+
XX
u v6=u
P r[u a v] = n+
XX
u v6=u
1
index(u, v) + 1
(1)
Da die Verlängerung der Strecke u in die
eine/andere Richtung eine andere Strecke höch2.2 Wieviele Partitionen werden stens einmal treffen wird, gilt, dass für jede
durch RandAuto konstruiert? Strecke u und jede endliche positive Ganzzahl i,
höchstens zwei Knoten v und w existieren, so dass
Theorem. Die erwartete Größe der AutoParti- index(u, v)=index(u, w)= i gilt. Somit gibt es in
tion, die vom Algorithmus erstellt wird, liegt in jedes der beiden Richtungen eine totale AnordO(n log n).
nung der Schnittpunkte mit andere Strecken und
Proof. Seien u, v zwei Strecken und index(u,v) die Indexwerte steigen monoton. Das impliziert,
eine Zufallsvariable, die i liefert, falls die Gerade dass:
l(u) i-1 andere Strecken schneidet, bevor es auf
Strecke v trifft und 1, falls l(u) v nie trifft. Da
n
X
X1 2
u in zwei Richtung verlängert werden kann, kann
1

es passieren, dass für zwei unterschiedliche Gerindex(u, v) + 1
i+1
i=1
v6=u
aden v und w gilt: index(u, v) = index(u, w) = i.
(siehe Bsp für index(u,v)=index(u,w)=2 in Fig- Kombiniert man dieses mit (1) folgt daraus, dass
die erwartete Größe von P⇡ von oben beschränkt
ure 3)
ist durch:
Figure 2:
n+2
X nX1
u
i=1
1
 n + 2nHn
i+1
was O(n·logn) entspricht.
Figure 3:
3
Sei mit u a v, das Ereignis bezeichnet, dass
die Gerade l(u) v in der konstruierten Partition schneidet. Sei index(u, v) = i und sei
u1 , u2 , ..., ui 1 die Strecken, die l(u) schneidet,
bevor es v trifft. Das Ereignis u a v tritt
nur dann ein, wenn Strecke u vor allen Strecken
{u1 , u2 , ..., ui 1 , v} in der zufällig ausgewählten
Permutation ⇡ auftritt. Die Wahrscheinlichkeit
1
. Sei Cu,v eine Zufallsvariable, die
dafür ist: i+1
1 liefert, falls u a v eintritt und 0 sonst.
1
Es gilt: E[Cu,v ] = P r[u a v] = index(u,v)+1
. Die
Größe von P⇡ = n + #Schnittpunkte aufgrund
Probabilistische
Turing
Maschine und die Komplexitätsklassen PP, RP,
Co-RP, BPP, ZPP
Eine Probabilistische Turing Maschine is eine
Turing Maschine, die um die Fähigkeit erweitert ist, Zufallsbits in einem Schritt zu schreiben.
Es entspricht einem randomisierten Algorithmus.
Bei jeder Eingabe x, akzeptiert eine probabilistische Turing Maschine die Eingabe mit einer gewissen Wahrscheinlichkeit.
3
Definition. Eine Sprache L liegt in der Klasse
RP / Co-RP / BPP / PP, wenn eine probabilistische Turing Maschine M existiert, für die gilt:
– M läuft in polynomieller Zeit für alle
Eingaben
– x✏L => P r[M (x) akzeptiert] >
• Klasse RP (randomized polynomial time)
– x2
/ L => P r[M (x) akzeptiert] <
– M läuft für alle Eingaben in polynomieller Zeit
– x✏L => P r[M (x) akzeptiert]
(1 bei Co-RP)
1
2
1
2
• Klasse ZPP (Zero error probabilistic polynomial time)
1
2
– L liegt in ZPP genau dann, wenn ein
Las Vegas Algorithmus existiert, der in
erwarteter polynomieller Zeit läuft
– x 2
/ L => P r[M (x) akzeptiert] = 0
( 12 bei Co-RP)
– darunter fallen Monte Carlo Algorithmen mit einseitigem Fehler, der nur
fehlerhafte Ergebnisse liefert, wenn x✏L
(x 2
/ L bei Co-RP)
• Klasse BPP (Bounded-error Probabilistic
Polynomial time)
– M läuft für alle Eingaben in polynomieller Zeit
– x✏L => P r[M (x) akzeptiert]
Figure 4:
3
4
– x2
/ L => P r[M (x) aktzeptiert ] 
1
4
– Monte Carlo zweiseitig, 34 und 14 kön1
1
4 Quellenangabe
nen durch 12 + p(n)
und 12
p(n) , für
polynomiell beschränkte Funktion p(n)
http://de.wikipedia.org/wiki/Maleralgorithmus
ersetzt werden
28.04.2013
Randomized Algorithms, Rajeev Motwani
• Klasse PP (Probabilitic Polynomial time)
4
Herunterladen