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|