Losowość w rozproszonym modelu Model: ALP520 - Wykład z Algorytmów Probabilistycznych p.2
Losowość w rozproszonym modelu Model: zbiór procesorów, które moga pracować jednocześnie, połaczonych w sieć ALP520 - Wykład z Algorytmów Probabilistycznych p.2
Losowość w rozproszonym modelu Model: zbiór procesorów, które moga pracować jednocześnie, połaczonych w sieć brak wspólnej pamięci typu PRAM ALP520 - Wykład z Algorytmów Probabilistycznych p.2
Losowość w rozproszonym modelu Model: zbiór procesorów, które moga pracować jednocześnie, połaczonych w sieć brak wspólnej pamięci typu PRAM wymiana informacji odbywa sie za pomoca połaczeń ALP520 - Wykład z Algorytmów Probabilistycznych p.2
Losowość w rozproszonym modelu Model: zbiór procesorów, które moga pracować jednocześnie, połaczonych w sieć brak wspólnej pamięci typu PRAM wymiana informacji odbywa sie za pomoca połaczeń Złożoność czasowa: mierzona liczba równoległych rund ALP520 - Wykład z Algorytmów Probabilistycznych p.2
Losowość w rozproszonym modelu Problem: Porozumienie bizantyjskie ALP520 - Wykład z Algorytmów Probabilistycznych p.3
Losowość w rozproszonym modelu Problem: Porozumienie bizantyjskie Trochę historii: ALP520 - Wykład z Algorytmów Probabilistycznych p.3
Losowość w rozproszonym modelu Problem: Porozumienie bizantyjskie Trochę historii: 1453 - Oblężenie Konstantynopola (Bizancjum) 1982(Lamport, Pease i Shosta) formułuja klasyczny problem koordynacji w rozproszonym modelu obliczeń: Czy zbiór jednocześnie pracujacych procesorów może osiagn ać wspólne porozumienie mimo błędnej pracy pewnej grupy spośród nich? ALP520 - Wykład z Algorytmów Probabilistycznych p.3
Porozumienie bizantyjskie Bład ( zwany bizantyjskim) oznacza, że wadliwy procesor może się zachowywać zupełnie dowolnie i nawet spiskować z innymi wadliwymi procesorami w celu udaremnienia zrealizowania zadania pozostałym. ALP520 - Wykład z Algorytmów Probabilistycznych p.4
Porozumienie bizantyjskie Bład ( zwany bizantyjskim) oznacza, że wadliwy procesor może się zachowywać zupełnie dowolnie i nawet spiskować z innymi wadliwymi procesorami w celu udaremnienia zrealizowania zadania pozostałym. Identyfikatory wadliwych procesorów nie sa znane i bład może wystapić w dowolnym, nieprzewidzianym momencie. ALP520 - Wykład z Algorytmów Probabilistycznych p.4
Zastosowania NASA i zostosowania militarne system kontroli lotów zastosowania w medycynie wybory elektroniczne elektroniczne aukcje elektroniczne negocjacje ALP520 - Wykład z Algorytmów Probabilistycznych p.5
Zastosowania NASA i zostosowania militarne system kontroli lotów zastosowania w medycynie wybory elektroniczne elektroniczne aukcje elektroniczne negocjacje ALP520 - Wykład z Algorytmów Probabilistycznych p.5
Problem Porozumienia Bizantyjskiego Czy możliwe jest porozumienie procesorów przy dużej liczbie wadliwych (przekłamujacych) jednostek? ALP520 - Wykład z Algorytmów Probabilistycznych p.6
Problem Porozumienia Bizantyjskiego Czy możliwe jest porozumienie procesorów przy dużej liczbie wadliwych (przekłamujacych) jednostek? Dane: zbiór n procesorów: t wadliwych i n t dobrych i [n] procesor P i posiada wejściowy bit b i {0, 1} i musi podać na wyjściu swoja decyzję d i {0, 1} ALP520 - Wykład z Algorytmów Probabilistycznych p.6
Problem Porozumienia Bizantyjskiego Czy możliwe jest porozumienie procesorów przy dużej liczbie wadliwych (przekłamujacych) jednostek? Dane: zbiór n procesorów: t wadliwych i n t dobrych i [n] procesor P i posiada wejściowy bit b i {0, 1} i musi podać na wyjściu swoja decyzję d i {0, 1} Założenia dotyczace komunikacji: komunikacja synchroniczna identyfikacja (odbiorca zna identyfikator nadawcy) peer-to-peer ( graf pełny) ALP520 - Wykład z Algorytmów Probabilistycznych p.6
Założenia dotyczace protokołu ALP520 - Wykład z Algorytmów Probabilistycznych p.7
Założenia dotyczace protokołu i [n t],b i = b j [n t],d j = b jeśli wszystkie dobre procesory maja ten sam bit wejściowy, to taka jest ich wspólna decyzja P i,p j : i,j [n t], d i = d j dobre procesory kończa ze wspólna decyzja ALP520 - Wykład z Algorytmów Probabilistycznych p.7
Założenia dotyczace protokołu i [n t],b i = b j [n t],d j = b jeśli wszystkie dobre procesory maja ten sam bit wejściowy, to taka jest ich wspólna decyzja P i,p j : i,j [n t], d i = d j dobre procesory kończa ze wspólna decyzja w czasie jednej rundy każdy procesor może: wysłać jeden komunikat do każdego innego procesora (niekoniecznie ten sam) odebrać komunikat od każdego procesora ALP520 - Wykład z Algorytmów Probabilistycznych p.7
Założenia dotyczace protokołu Dobre procesory stosuja się do reguł. ALP520 - Wykład z Algorytmów Probabilistycznych p.8
Założenia dotyczace protokołu Dobre procesory stosuja się do reguł. Wadliwe procesory moga wysyłać zupełnie dowolne komunikaty do dowolnych procesorów. Zakładamy, że spiskuja ze soba (na poczatku każdej rundy) w celu zmaksymalizowania zniszczeń. ALP520 - Wykład z Algorytmów Probabilistycznych p.8
Założenia dotyczace protokołu Dobre procesory stosuja się do reguł. Wadliwe procesory moga wysyłać zupełnie dowolne komunikaty do dowolnych procesorów. Zakładamy, że spiskuja ze soba (na poczatku każdej rundy) w celu zmaksymalizowania zniszczeń. Badamy liczbę rund niezbędna do osiagnięcia porozumienia. ALP520 - Wykład z Algorytmów Probabilistycznych p.8
Wynik deterministyczny Dowolny protokół deterministyczny wymaga t + 1 rund (praca Fischera i Lyncha 1982). ALP520 - Wykład z Algorytmów Probabilistycznych p.9
Wynik deterministyczny Dowolny protokół deterministyczny wymaga t + 1 rund (praca Fischera i Lyncha 1982). Pokażemy losowy algorytm o stałej oczekiwanej liczbie rund (triumf losowości). ALP520 - Wykład z Algorytmów Probabilistycznych p.9
Wynik deterministyczny Dowolny protokół deterministyczny wymaga t + 1 rund (praca Fischera i Lyncha 1982). Pokażemy losowy algorytm o stałej oczekiwanej liczbie rund (triumf losowości). Założenia : ALP520 - Wykład z Algorytmów Probabilistycznych p.9
Wynik deterministyczny Dowolny protokół deterministyczny wymaga t + 1 rund (praca Fischera i Lyncha 1982). Pokażemy losowy algorytm o stałej oczekiwanej liczbie rund (triumf losowości). Założenia : Ktoś (Bóg?) rzuca uczciwa moneta w każdym kroku (uproszczenie prezentacji). t n 8, n = 8k, L = 8 5n + 1, H = 3 4 n + 1, G = 7 8 n (wystarczy L n 2 + t + 1, H L + t) ALP520 - Wykład z Algorytmów Probabilistycznych p.9
Losowy algorytm rozproszony (Rabin) Równolegle, każdy procesor wykonuje następujaca procedurę: ALP520 - Wykład z Algorytmów Probabilistycznych p.10
Losowy algorytm rozproszony (Rabin) Równolegle, każdy procesor wykonuje następujaca procedurę: Algorytm BYZGEN In: bit b i Out: decyzja d i 1. glos := b i 2. w każdej rundzie wykonaj (a) Rozgłoś wszystkim glos (b) Odbierz glosy od pozostałych procesorów (c) Maj wartość, która wystapiła u większości spośród wszystkich n procesorów (d) ilosc liczba wystapień Maj (e) if moneta = ORZEL then prog L else prog H (f) ilosc prog then glos Maj else glos 0. (g) ilosc G then d i := Maj (na stałe). ALP520 - Wykład z Algorytmów Probabilistycznych p.10
Analiza Algorytmu BYZGEN Fakt. Jeśli wszystkie dobre procesory rozpoczna jakaś rundę z ta sama wartościa poczatkow a, to w stałej liczbie rund wartość ta będzie ich wspólna decyzja. ALP520 - Wykład z Algorytmów Probabilistycznych p.11
Analiza Algorytmu BYZGEN Fakt. Jeśli wszystkie dobre procesory rozpoczna jakaś rundę z ta sama wartościa poczatkow a, to w stałej liczbie rund wartość ta będzie ich wspólna decyzja. Przypadek trudniejszy: różne wartości na starcie. ALP520 - Wykład z Algorytmów Probabilistycznych p.11
Analiza Algorytmu BYZGEN Fakt. Jeśli wszystkie dobre procesory rozpoczna jakaś rundę z ta sama wartościa poczatkow a, to w stałej liczbie rund wartość ta będzie ich wspólna decyzja. Przypadek trudniejszy: różne wartości na starcie. 1) dwa dobre procesory obliczaja różne wartości Maj w (c) ilosc nie przekracza progu i w następnym kroku d i = 0 i [n t]. 2) wszystkie dobre procesory obliczaja tę sama wartość Maj ALP520 - Wykład z Algorytmów Probabilistycznych p.11
Analiza Algorytmu BYZGEN cd. W jaki sposób wadliwe procesory moga przeszkodzić dobrym w podjęciu wspólnej decyzji w jednej rundzie? ALP520 - Wykład z Algorytmów Probabilistycznych p.12
Analiza Algorytmu BYZGEN cd. W jaki sposób wadliwe procesory moga przeszkodzić dobrym w podjęciu wspólnej decyzji w jednej rundzie? zmiana wartości progu L lub H ( co najwyżej jednej z nich w jednej rundzie, bo różnica t) ALP520 - Wykład z Algorytmów Probabilistycznych p.12
Analiza Algorytmu BYZGEN cd. W jaki sposób wadliwe procesory moga przeszkodzić dobrym w podjęciu wspólnej decyzji w jednej rundzie? zmiana wartości progu L lub H ( co najwyżej jednej z nich w jednej rundzie, bo różnica t) losowość ma im w tym przeszkodzić ALP520 - Wykład z Algorytmów Probabilistycznych p.12
Analiza Algorytmu BYZGEN cd. W jaki sposób wadliwe procesory moga przeszkodzić dobrym w podjęciu wspólnej decyzji w jednej rundzie? zmiana wartości progu L lub H ( co najwyżej jednej z nich w jednej rundzie, bo różnica t) losowość ma im w tym przeszkodzić zatem z prawdopodobieństwem 1 2 mamy zły prog ALP520 - Wykład z Algorytmów Probabilistycznych p.12
Analiza Algorytmu BYZGEN cd. W jaki sposób wadliwe procesory moga przeszkodzić dobrym w podjęciu wspólnej decyzji w jednej rundzie? zmiana wartości progu L lub H ( co najwyżej jednej z nich w jednej rundzie, bo różnica t) losowość ma im w tym przeszkodzić zatem z prawdopodobieństwem 1 2 mamy zły prog powtarzajac do pierwszego sukcesu ( prawdziwa wartość progu) wykonujemy średnio 2 rundy. ALP520 - Wykład z Algorytmów Probabilistycznych p.12
Analiza Algorytmu BYZGEN cd. W jaki sposób wadliwe procesory moga przeszkodzić dobrym w podjęciu wspólnej decyzji w jednej rundzie? zmiana wartości progu L lub H ( co najwyżej jednej z nich w jednej rundzie, bo różnica t) losowość ma im w tym przeszkodzić zatem z prawdopodobieństwem 1 2 mamy zły prog powtarzajac do pierwszego sukcesu ( prawdziwa wartość progu) wykonujemy średnio 2 rundy. jest to algorytm Las Vegas ALP520 - Wykład z Algorytmów Probabilistycznych p.12
Podsumowanie ALP520 - Wykład z Algorytmów Probabilistycznych p.13
Podsumowanie Twierdzenie. Wartość oczekiwana liczby rund algorytmu losowego BYZGEN do momentu osiagnięcia porozumienia jest stała. ALP520 - Wykład z Algorytmów Probabilistycznych p.13
Zadania/Pytania ALP520 - Wykład z Algorytmów Probabilistycznych p.14
Zadania/Pytania 1. Dodać kryterium stopu do procedury BYZGEN zatrzymujace wszystkie dobre procesory po osiagnięciu porozumienia. ALP520 - Wykład z Algorytmów Probabilistycznych p.14
Zadania/Pytania 1. Dodać kryterium stopu do procedury BYZGEN zatrzymujace wszystkie dobre procesory po osiagnięciu porozumienia. 2. Czy w procedurze BYZGEN wszystkie dobre procesory podejmuja decyzję w tej samej rundzie? ALP520 - Wykład z Algorytmów Probabilistycznych p.14
Zadania/Pytania 1. Dodać kryterium stopu do procedury BYZGEN zatrzymujace wszystkie dobre procesory po osiagnięciu porozumienia. 2. Czy w procedurze BYZGEN wszystkie dobre procesory podejmuja decyzję w tej samej rundzie? 3. Model asynchroniczny? ALP520 - Wykład z Algorytmów Probabilistycznych p.14