Analiza Algorytmów Informatyka, WPPT, Politechnika Wroclawska 1 Zadania teoretyczne (ćwiczenia) Zadanie 1 Niech k będzie dodatnią liczbą całkowitą. Rozważ następującą zmienną losową Pr[X = k] = (6/π 2 )k 2. Ponieważ k=1 k 2 = π 2 /6 więc X jest zmienną losową. Jaka jest jej wartość oczekiwana? Zadanie 2 Udowodnij, że Var(aX + b) = a 2 Var(X), gdzie a, b - stałe, X - zmienna losowa. Zadanie 3 Niech a 1, a 2,..., a n będzie losową permutacją elementów {1, 2,..., n}. Podczas sortowania listy a 1, a 2,..., a n, element a i jest przesuwany o odległość a i i ze swojej pozycji do pozycji posortowanej. Oblicz oczekiwaną całkowitą odległość, o którą elementy są przesuwane [ n ] E a i i. Zadanie 4 Niech a, b będą dodatnimi liczbami całkowitymi. Korzystając z tożsamości 1 0 xa 1 (1 x) b 1 = ( a ( )) a+b 1 1 a pokaż, że ( ) n n 1 i i 0 ( ( i x n 1 )) 2 x i 1 (1 x) n i dx = Θ(1). 2n 1
dla dużych n. Aby przyśpieszyć rachunki możesz wykonać obliczenia symboliczne w pakiecie matematycznym. Zadanie 5 Niech X będzie dyskretną dodatnią zmienną losową. Pokaż, że E[X] = m 0 Pr[X > m], E[X 2 ] = m 0 Pr[X > m](2m + 1). Spróbuj uogólnić wzory na dowolny (k + 1) moment zmiennej losowej X i pokaż, że E[X k+1 ] = m 0 Pr[X > m] k i=0 (m + 1) k i m i. Rozwiąż rekurencję Zadanie 6 na n = (n + 1)a n 1 + 2n, dla n > 0, a 0 = 0. Rozwiąż rekurencję A n = A n 1 2A n 1 n * Zadanie 7 ( + 2 1 2A n 1 n ), dla n > 0, A 0 = 0. Zadanie 8 Niech r będzie stałą. Udowodnij, że ( ) n = nr r r! + O(nr 1 ), ( ) n + r r = nr r! + O(nr 1 ). Udowodnij, że n! (n k)!n = k e ( k 2 2n 1 + O Zadanie 9 ( ) k + O n ( )) k 3, dla k = o(n 2/3 ) n 2 Zadanie 10 Udowodnij, że dla dowolnych k, n N n! (n k)!n k(k 1) k e 2n. 2
Niech ɛ > 0. Pokaż, że dla k = Θ(n 1/2+ɛ n! ) funkcja mała. Pokaż, że n k=0 * Zadanie 11 (n k)!n k n! πn (n k)!n = k 2 + O(1). jest ekspotencjalnie Zadanie 12 Rozważmy zdarzenie że do każdej urny wpadnie dokładnie jedna kula gdy wrzucamy losowo n kul do n urn. Oblicz dokładne prawdopodobieństwo tego zdarzenia, a następnie znajdz górne oszacowanie przy użyciu aproksymacji Poissona. Zadanie 13 Niech urny będą ponumerowane od 0 do n 1. Rozważamy log 2 (n) graczy. Każdy z graczy losowo wybiera startową lokację l jednostajnie w zbiorze {0, 1, 2,... n 1} i następnie wrzuca dokładnie jedną kulę do każdej urny l mod n, l + 1 mod n,..., + n/ log 2 (n) 1 mod n. Pokaż, że maksymalne załadowanie jest O(log log n/ log log log n) z prawdopodobieństwem 1 jak n. Zadanie 14 Udowodnij następującą wersję wzoru o częściowym sumowaniu b k=a+1 x k (y k y k 1 ) = x b y b x a y a b k=a+1 Zastosuj udowodniony wzór do pokazania tożsamości nk=1 k2 k = (n 1)2 n+1 + 2. Zadanie 15 (x k x k 1 )y k 1. Niech X 1,..., X n będą kolekcją n niezależnych zmiennych losowych takich, że Pr(X i = 1) = Pr(X i = 1) = 1. Niech X = n 2 X i. Udowodnij następującą nierówność Chernoff a: dla dowolnego a > 0 zachodzi Pr(X a) e a2 2n. Wsk. Skorzystaj z nierówności 1 2 et + 1 2 e t e t2 /2. 3
Zadanie 16 Niech X będzie zmienną losową Poissona z parametrem µ Pokaż, że zachodzą następujące nierówności Chernoff a. Dla x > µ mamy Pr(X x) e µ (eµ) x x x. Dla x < µ mamy Pr(X x) e µ (eµ) x x x. Zadanie 17 Punkt stały permutacji π : {1, 2,..., n} {1, 2,..., n} to taka wartość, że zachodzi równość π(x) = x. Znajdz wariancję liczby punktów stałych permutacji wybieranych jednostajnie i losowo ze wszystkich permutacji. Zadanie 18 Rozważmy Algorytm A randomizacyjny rozwiązujący problem Π, który dla danych rozmiaru n ma czas działania T (n). Ponadto wiadomo, że algorytm A daje poprawny wynik z prawdopodobieństwem γ(n). Pokaż, że następujący algorytm randomizacyjny daje zawsze poprawny wynik i ma oczekiwany czas działania T (n)+t(n), gdzie t(n) to czas potrzebny na sprawdzenie poprawności algorytmu. γ(n) repeat Wykonuj Algorytm A until poprawny wynik Zadanie 19 Zastosuj wzór sumacyjny Eulera do wyliczenia sum n k=1 k 2, n k=1 k 3. Wsk. Skorzystaj z następującej formy wzoru Eulera b b f(a) + f(b) m B 2i f(k) = f(x)dx + + k=a a 2 (2i)! f (2i 1) (x) b a + R m, gdzie R m 4 (2π) 2m b a f (2m) (x) dx. Zadanie 20 Stosując wzór sumacyjny Eulera znajdz asymptotykę sum n 1 k=1, n k 2 k=1 k do rzędu O(1/n 2 ). Wsk. Zastosuj następujący wzór Eulera n n f(k) = k=1 1 gdzie R m = O ( N f(x)dx + f(n) 2 + C f + m B 2i (2i)! f (2i 1) (n) + R m, f (2m) (x) dx ), C f = lim n ( nk=1 f(k) n 1 f(x)dx 1 2 f(n)). 4
2 Zadania programistyczne (laboratoria) Zadania na laboratorium można zrealizować w dowolnym języku programowania na przykład Wolfram Mathematica czy Julia (julialang.org). Zadanie 1 Napisz generator losowy dla rozkładu geometrycznego. Zadanie 2 Napisz generator losowy dla rozkładu Poissona. Zadanie 3 Niech a 1, a 2,..., a n będzie losową permutacją elementów {1, 2,..., n}. Podczas sortowania listy a 1, a 2,..., a n, element a i jest przesuwany o odległość a i i ze swojej pozycji do pozycji posortowanej. Zbadaj eksperymentalnie oczekiwaną całkowitą odległość, o którą elementy są przesuwane [ n ] E a i i. Na podstawie eksperymentów spróbuj postawić rozsądną hipotezę o oczekiwanej całkowitej odległości. Wskazówka: Aby uniknąć kosztownego generowania permutacji możesz wykorzystać linowość wartości oczekiwanej E [ n a i i ] = n E [ a i i ]. Zadanie 4 Wrzucamy n mobilnych sensorów jednostajnie i niezależnie w sposób losowy do jednostkowego odcinka. Niech a 1, a 2,..., a n będą posortowanymi pozycjami sensorów. Zbadaj eksperymentalnie oczekiwaną całkowitą odległość pokonywaną przez mobilne sensory [ n ( E i a i n 1 ) ]. 2n Program powinien generować posortowane losowe ciągi zadanej długości n. Dla każdego n [10, 5000] z krokiem np. co 100 wykonaj k krotne losowanie (np k=32 razy) i oblicz całkowitą odległość pokonywaną przez mobilne sensory. Dane eksperymentalne umieść na wykresie wraz z wykresami funkcji f(n) = 0.1 n, g(n) = 0.5 n. Teoretyczny wynik to π 4 2 n 0.31 n. Zadanie 5 5
Wrzucamy jednostajnie i niezależnie w sposób losowy punkty do koła jednostkowego x 2 + y 2 1. Napisz generator losowy dla tego procesu. Zadanie 6 Zbadaj eksperymentalnie oczekiwany czas działania dla algorytmu Random Quick Sort dla danych rozmiaru n [10, 1000]. Program powinien generować losowe ciągi dla zadanej długości z rozkładem jednostajnym. Wykonaj odpowiednią liczbę eksperymentów dla każdego n i oblicz oczekiwaną wartość oczekiwaną. Dane eksperymentalne umieść na wykresie i porównaj z teoretycznym wynikiem. Za pivot możesz wybrać środek tablicy. Zadanie 7 Zbadaj eksperymentalnie oczekiwany czas działania algorytmu Merge Sort. Zadanie 8 Rozważmy równanie rekurencyjne C N = C N/2 + C N/2 + N dla N > 1, C 1 = 1. Poszukujemy rozwiązań równania w postaci C N = N ln N + Nα(N). Zbadaj eksperymentalnie α(n). Zadanie 9 Wrzucamy n kul do n urn w następujący sposób: dla każdej kuli wybieramy jedną urnę losowo, niezależnie i z rozkładem jednostajnym. Zbadaj eksperymentalnie Max-Load liczbę kul w urnie, do której trafiło najwięcej kul. Zadanie 10 Niech a bedzie ustaloną małą liczbą naturalną. Rozważamy n urn i w każdej z urn mamy na początku a kul. Zatem w systemie jest na kul. Wyciągamy w sposób losowy, niezależny i jednostajny kule z urn. W każdym kroku wybieramy losowo urnę, z której wyciągamy kulę. Podczas realizacji tego procesu w pewnym momencie pojawi się pierwsza pusta urn. Zbadaj eksperymentalnie moment pojawienia się pustej urny. Eksperymenty przeprowadz dla dużych n i małych a 2, 3, 4, 5. Porównaj wyniki eksperymentalne z teoretycznym wynikiem, że oczekiwany moment pojawienia się pustej urny jest ( aγ 1 + 1 ) ( ) n 1 1 1 a + O. a n 1/a Zadanie 11 6
Zbadaj eksperymentalnie problem kolekcjonowania kuponów. Przeprowadz analizę wartości oczekiwanej i wariancji. Zadanie 12 Sensory to n niezależnych, jednostajnych o jednakowym rozkładzie zmiennych losowych na odcinku [0, 1]. Niech X 1, X 2,..., X n będą posortowanymi pozycjami sensorów na odcinku [0, 1]. Zakres sensora X i to max{x i X i 1, X i+1 X i }, przyjmujemy X 0 = 0, X n+1 = 1. Interferencja dla rozważanego sensora to liczba innych sensorów, które należą do zakresu rozważanego sensora. Zbadaj eksperymentalnie oczekiwaną maksymalną interferencję między sensorami na odcinku. W tym celu wygeneruj k razy n losowych sensorów. Dla każdego k wyznacz maksymalną interferencję a następnie wyznacz średnią z k eksperymentów. Teoretyczny wynik: oczekiwana maksymalna interferencja jest Ω (ln ln n) i dla dowolnego ɛ > 0 jest O ( (ln n) 1/2+ɛ). Zadanie 13 Zaimplementuj algorytm wyboru lidera dla n stacji na podstawie H.Prodinger How to select a loser. Zbadaj eksperymentalnie oczekiwana liczbę rund algorytmu. Teoretyczny wynik to log 2 (n). Zadanie 14 Zaimplementuj nastepujący algorytm z pracy P.Berenbrink, K.Khodamoradi, T.Sauerwald, A.Stauffer Balls-into-Bins with Nearly Optimal Load Distribution. for each ball i from 1 to m do repeat Choose a bin j independently and uniformly at random from {1, 2,..., n} if load of bin j is stricly less than i/n + 1 then place ball i into bin j until the ball is placed end for Zbadaj eksperymentalnie oczekiwany czas alokacji, czyli oczekiwaną liczbę urn, które należy użyć do załadowania m kul. Teoretyczne oszacowanie z góry jest rzędu m + O(m 3/4 n 1/4 ). 7
Za każde zadanie z laboratorium można otrzymać 1 pkt. Ocena końcowa z laboratorium jest na podstawie punktów: 6,7 pkt dst, 8 pkt dst+, 9,10 pkt db, 11 pkt db+, 12, 13, 14 pkt bdb. Na egzaminie będzie do rozwiązania 5 zadań. Za każde zadanie będzie można otrzymać 1 pkt. Poziom wymagań na ocenę dostateczną 2pkt, dobrą 3 pkt, bardzo dobrą 4pkt. Zadania egzaminacyjne będą bardzo podobne do zadań przerobionych na ćwiczeniach. Można korzystać z własnych notatek. 8