Algorytmy probabilistyczne

Transkrypt

Algorytmy probabilistyczne
Algorytmy probabilistyczne
Wykład 3
Tomasz Krawczyk
[email protected]
Kraków, semestr zimowy 20015/16
Plan wykładu
Plan wykładu:
I
Minimalne drzewo rozpinające (MST) w oczekiwanym
liniowym czasie,
I
Twierdzenie Schwartz’a-Zippela.
MST
Problem MST – Minimum Spannig Tree:
Wejście: Nieskierowany graf G = (V , E ) z wagami w : E → N,
Wyjście: Minimalne drzewo rozpinające MST.
MST - algorytmy deterministyczne
I
Kruskal ’56, Prim ’57 - O(m log n)
I
Komlós ’85 - weryfikacja, czy dane drzewo jest minimalne,
O(n + m).
MST - algorytm randomizowany
I
Karger ’93 - algorytm randomizowany,
I
Karger, Klein, Tarjan ’95 - dowód, że algorytm Kargera działa
w oczekiwanym czasie O(n + m).
MST - założenia
Założenie:
I
graf jest spójny,
I
wszystkie krawędzie mają różne wagi,
Wtedy:
I
MST jest wyznaczone jednoznacznie.
jednoznaczność MST - dowód
Dowód:
I T1 , T2 - dwa różne drzewa o minimalnej wadze,
I niech {u, v } - krawędź w T2 \ T1 ,
I niech u = p1 , p2 , . . . , pk = v - jedyna ścieżka od u do v w T1 ,
I istnieją pi oraz pi +1 , które są w dwóch odrębnych składowych spójnych
T2 \ {u, v }, jedna z nich zawiera u a druga v ,
I jeżeli w (u, v ) > w (pi , pi +1 ), to poprawiamy drzewo T2 (wyrzucamy
{u, v }) i dodajemy {pi , pi +1 }); w przeciwnym razie poprawiamy drzewo
T1 (wyrzucamy {pi , pi +1 } i dodajemy {u, v }).
algorytm Boruvki - wstępne obserwacje
Jeżeli {u, v } jest krawędzią o minimalnej wadze spośród wszystkich krawędzi
przyległych do u, to {u, v } należy do MST.
Dowód niewprost:
I niech {u, w } bedzie krawędzią z MST na ścieżce z MST łączącej u i v ,
{u, w } inna niż {u, v },
I poprawiamy MST usuwając {u, w } i dodając {u, v }.
MST - algorytm deterministyczny Boruvki
Algorytm Boruvki:
I dopóki graf zawiera więcej niż jeden wierzchołek wykonaj:
I
dla każdego wierzchołka wybierz przyległą do niego krawędź o
minimalnej wadze,
I
równolegle ‘ściągnij’ wybrane krawędzie (usuwając pętle i
krawędzie wielokrotne, przy usuwaniu krawędzi wielokrotnych
zostawiamy krawędź o minimalnej wadze),
I
dodaj ściągniete krawędzie do minimalnego drzewa
rozpinającego.
MST – algorytm deterministyczny Boruvki
Analiza algorytmu Boruvki:
I pojedyncza faza algorytmu Boruvki działa w czasie O(n + m),
I złożoność czasowa całego algorytmu: O(log n(n + m)) – w każdej fazie
algorytmu liczba wierzchołków grafu maleje co najmniej dwa razy,
I poprawność:
I
jeżeli {v , u} jest krawędzią o minimalnej wadze wśród wierzchołków
przyległych do v , to u zawiera się w MST,
I
MST zawiera ściągnięte krawędzie oraz krawędzie minimalnego
drzewa rozpinającego dla grafu powstałego po pierwszej fazie
algorytmu.
krawędzie ciężkie
G = (V , E , w ) – graf z wagami, F ⊂ E – las w grafie G .
Wszystkie krawędzie grafu G dzielimy na dwa zbiory, krawędzie F-ciężkie oraz
F-lekkie, zgodnie z regułą:
I krawędź {u, v } jest F-ciężka jeżeli u, v należą do jednej spójnej składowej
lasu F oraz w (u, v ) > w (m) dla każdej krawędzi m leżącej na ścieżce z u
do v w F ,
I każda inna krawędź jest F-lekka.
Uwaga: Zgodnie z powyższą definicją, krawędzie z F jak również krawędzie
łączące różne komponenty spójne z F są F -lekkie.
MST - krawędzie F-ciężkie oraz F-lekkie
Jeżeli F jest dowolnym lasem oraz {u, v } jest krawędzią F -ciężką, to {u, v } nie
należy do MST.
Dowód:
I zauważ, że {u, v } nie będzie ściągana w żadnej fazie algorytmu Boruvki.
MST - podejście probabilistyczne
Algorytm:
I wybierz każdą krawędź z prawdopodobieństwem
1
,
2
I na wybranych krawędziach oblicz minimalny las rozpinajacy F dla grafu z
wybranymi krawędziami, (F jest ‘pewnym’ przybliżeniem MST),
I hipoteza: oczekiwana liczba krawędzi lekkich (względem F ) jest mała
(ograniczona przez 2n).
MST - krawędzie lekkie
I G = (V , E , w ) – graf z n wierzchołkami i m krawędziami,
I G 0 = (V , E 0 , w ) – graf powstały z G poprzez wybranie każdej krawędzi z
prawdopodobieństwem
1
,
2
I F ⊂ E 0 – minimalny las rozpinający dla grafu G 0 (G 0 może być
niespójny),
I X - zmienna losowa zliczająca liczbę krawędzi F -lekkich w G .
Wykażemy, że:
E (X ) 6 2n.
MST - krawędzie lekkie
I e1 , e2 , . . . , em - porządek krawędzi, od najlżejszej do najcięższej,
I zakładamy, że losujemy krawędzie w kolejności od e1 do em (zasada
decyzji odłożonych),
I przestrzeń Ω - ciągi długości m nad alfabetetem {0, 1},
I dla ustalonego elementu z Ω minimalny las rozpinający F możemy
budować on-line: jeżeli krawędź ei jest wybrana w wyniku losowania, to
dołączamy ją do F wtedy i tylko wtedy, gdy łączy ona dwa komponenty
lasu F (tak jak w algorytmie Kruskala).
MST - krawędzie lekkie
I X – zmienna losowa określająca liczbę krawędzi lekkich,
I Xi – zmienna losowa zliczająca liczbę krawędzi lekkich od momentu
wybrania (i − 1)-wszej krawędzi do F (nie licząc tej krawędzi) do
momentu wybrania i-tej krawędzi do F (łącznie z tą krawędzią),
I oczywiście X =
Pn
i =1
Xi ,
I pokażemy, że E (Xi ) < 2, co ostatecznie prowadzi do E (X ) < 2n.
analiza E (Xi )
Niech S będzie zbiorem ciagów długości 6 m nad alfabetem{0, 1} określonym
następująco:
ωpref ∈ S
⇐⇒
ciąg ωpref reprezentuje taki wybór krawędzi
z ciągu e1 , . . . , eωpref , w którym krawędź
e|ωpref | jest wybrana do F i stanowi dokładnie
(i − 1)-wszą krawędź F .
analiza E (Xi )
P
E (Xi |{ω ∈ Ω : ωpref jest prefiksem ω})·
·P({ω ∈ Ω : ωpref jest prefiksem ω})
P
1
1
1
<
ωpref ∈S (1 · 2 + 2 · 4 + 3 · 8 + . . .)·
·P({ω ∈ Ω : ωpref jest prefiksem ω})
P
6 2 ωpref ∈S P({ω ∈ Ω : ωpref jest prefiksem ω})
6 2
E [Xi ] 6
ωpref ∈S
MSF - algorytm randomizowany Kargera
Algorytm Kargera dla grafu ważonego G = (V , E , w ) z n wierzchołkami i m
krawędziami:
I G1 – graf po wykonaniu trzech faz algorytmu Boruvki (liczba
wierzchołków w G1 jest ograniczona przez n8 ),
F – zbiór krawędzi ściągniętych w tych trzech fazach,
I G2 – graf otrzymany z G1 poprzez włożenie każdej krawędzi z G1 do G2 z
prawdopodobieństwem
1
,
2
I F2 – minimalny las rozpinający dla grafu G2 (rekursja),
I G3 – graf powstały z G1 w wyniku odrzucenia wszystkich krawędzi
ciężkich względem F2 ,
I F3 – minimalne drzewo rozpinające dla G3 (rekursja),
I F ∪ F3 – minimalne drzewo rozpinające dla G .
MST - algorytm randomizowany Kargera
Uwagi:
I graf G1 ma co najwyżej
n
8
wierzchołków,
I wartość oczekiwana zmiennej losowej określającej liczbę krawędzi w G2
jest ograniczona od góry przez
m
,
2
I krawędzie ciężkie z G1 możemy usunąć w czasie O(n + m) (nietrywialne
ćwiczenie),
I wartość oczekiwana krawędzi lekkich w G3 jest ograniczona przez
n
,
4
MST - algorytm zrandomizowany Kargera
T (n, m) - czas oczekiwany działania algorytmu dla grafu z n wierzchołkami i m
krawędziami spełnia nierówność:
n m
n n
T (n, m) 6 T ( , ) + T ( , ) + c(n + m),
8 2
8 4
gdzie c(n + m) to czas wykonania trzech faz algorytmu Boruvki oraz usunięcia
krawędzi F2 -ciężkich z grafu G1 .
Łatwo sprawdzić, że:
T (n, m) 6 2c(n + m).
Twierdzenie Schwartz’a-Zippel’a
Twierdzenie
Niech Q(x1 , . . . , xn ) będzie wielomianem symbolicznym nad
ciałem F, stopnia co najwyżej d . Niech S będzie ustalonym
podzbiorem F. Niech r1 , . . . , rn będą losowo wybranymi elementami
z S. Wtedy
P(Q(r1 , . . . , rn ) = 0|Q(x1 , . . . , xn ) 6= 0) 6
d
.
|S|
Twierdzenie Schwartz’a-Zippel’a - dowód
I indukcja po liczbie zmiennych x1 , . . . , xn ,
I dla n = 1 teza prawdziwa na podstawie twierdzenia Lagrange’a,
I załóżmy, że teza twierdzenia prawdziwa dla wielomianów z (n − 1)
zmiennymi,
I w wielomianie Q(x1 , . . . , xn ) wyróżnijmy zmienną x1 i przedstawmy Q w
następującej postaci:
Q(x1 , . . . , xn ) =
k
X
x1i · Qi (x2 , . . . , xn ).
i =0
I k jest takie, że współczynnik Qk (x2 , . . . , xn ) 6= 0.
Twierdzenie Schwartz’a-Zippel’a
I zauważmy, że dla dowolnych dwóch zdarzeń Ψ1 , Ψ2 mamy
P(Ψ1 )
=
6
P(Ψ1 |Ψ2 ) · P(Ψ2 )) + P(Ψ1 |Ψ2 ) · P(Ψ2 )
P(Ψ1 |Ψ2 ) + P(Ψ2 )
I Ω = {(r1 , . . . , rn ) : ri ∈ S},
I Ψ2 = {ω ∈ Ω : Qk (r2 , . . . , rn ) = 0},
I P(Ψ2 ) 6
d −k
,
|S|
bo stopień Qk ograniczony przez d − k,
I Ψ1 |Ψ2 = {ω ∈ Ω : Q(r1 , r2 , . . . , rn ) = 0|Qk (r2 , . . . , rn ) 6= 0},
I P(Ψ1 |Ψ2 ) 6
k
,
|S|
Stąd:
P(Q(r1 , . . . , rn ) = 0|Q(x1 , . . . , xn ) 6= 0) 6
d
|S|
6
d −k
|S|
+
k
|S|
=
d
.
|S|

Podobne dokumenty