lista zadań
Transkrypt
lista zadań
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ą losoP −2 = π 2 /6 więc X jest zmienną wą Pr[X = k] = (6/π 2 )k −2 . Ponieważ ∞ k=1 k losową. Jaka jest jej wartość oczekiwana? Zadanie 2 Udowodnij, że Var(aX + b) = a2 Var(X), gdzie a, b - stałe, X - zmienna losowa. Zadanie 3 Niech a1 , a2 , . . . , an będzie losową permutacją elementów {1, 2, . . . , n}. Podczas sortowania listy a1 , a2 , . . . , an , element ai jest przesuwany o odległość |ai − i| ze swojej pozycji do pozycji posortowanej. Oblicz oczekiwaną całkowitą odległość, o którą elementy są przesuwane E " n X # |ai − i| . i=1 Zadanie 4 Niech a, b będą dodatnimi liczbami całkowitymi. Korzystając z tożsamości a+b−1 −1 = a a pokaż, że R 1 a−1 x (1 − x)b−1 0 n X ! 2 1 i n Z1 − xi−1 (1 − x)n−i dx = Θ(1). i x− n 2n i 0 i=1 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] = P 2 m0 Pr[X > m], E[X ] = m0 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 ] = P Pk k−i i m. m0 Pr[X > m] i=0 (m + 1) P Zadanie 6 Rozwiąż rekurencję nan = (n + 1)an−1 + 2n, dla n > 0, a0 = 0. * Zadanie 7 Rozwiąż rekurencję 2An−1 2An−1 An = An−1 − +2 1− , dla n > 0, A0 = 0. n n Zadanie 8 Niech r będzie stałą. Udowodnij, że n+r nr = + O(nr−1 ). r r! n nr + O(nr−1 ), = r! r ! ! Zadanie 9 Udowodnij, że ! k2 n! k k3 − 2n = e 1 + O + O (n − k)!nk n n2 !! Zadanie 10 Udowodnij, że dla dowolnych k, n ∈ N k(k−1) n! ¬ e− 2n . k (n − k)!n 2 , dla k = o(n2/3 ) Niech > 0. Pokaż, że dla k = Θ(n1/2+ ) funkcja mała. n! (n−k)!nk jest ekspotencjalnie * Zadanie 11 Pokaż, że n X n! = k k=0 (n − k)!n r πn + O(1). 2 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 log2 (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/ log2 (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 X b X xk (yk − yk−1 ) = xb yb − xa ya − k=a+1 (xk − xk−1 )yk−1 . k=a+1 Zastosuj udowodniony wzór do pokazania tożsamości Pn k n+1 + 2. k=1 k2 = (n − 1)2 Zadanie 15 Niech X1 , . . . , Xn będą kolekcją n niezależnych zmiennych losowych taP kich, że Pr(Xi = 1) = Pr(Xi = −1) = 21 . Niech X = ni=1 Xi . Udowodnij następującą nierówność Chernoff’a: dla dowolnego a > 0 zachodzi a2 2 Pr(X a) ¬ e− 2n . Wsk. Skorzystaj z nierówności 12 et + 21 e−t ¬ et /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 . xx • Dla x < µ mamy Pr(X x) e−µ (eµ)x . xx 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 , gdzie t(n) to czas potrzebny na sprawoczekiwany czas działania T (n)+t(n) γ(n) dzenie poprawności algorytmu. repeat Wykonuj Algorytm A until poprawny wynik Zadanie 19 Zastosuj wzór sumacyjny Eulera do wyliczenia sum Wsk. Skorzystaj z następującej formy wzoru Eulera b X f (k) = Z b a k=a gdzie Rm ¬ f (x)dx + 4 (2π)2m Rb a Pn k=1 k2, Pn k=1 k3. m f (a) + f (b) X B2i (2i−1) + f (x)|ba + Rm , 2 (2i)! i=1 |f (2m) (x)|dx. Zadanie 20 Stosując wzór sumacyjny Eulera znajdz asymptotykę sum nk=1 k12 , do rzędu O(1/n2 ). Wsk. Zastosuj następujący wzór Eulera Z n n m X X f (n) B2i (2i−1) f (k) = f (x)dx + + Cf + f (n) + Rm , 2 1 i=1 (2i)! k=1 P gdzie |Rm | = O R ∞ N |f (2m) (x)|dx , Cf = limn→∞ 4 P n k=1 f (k) − Rn 1 Pn k=1 √ k f (x)dx − 21 f (n) . 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 a1 , a2 , . . . , an będzie losową permutacją elementów {1, 2, . . . , n}. Podczas sortowania listy a1 , a2 , . . . , an , element ai jest przesuwany o odległość |ai − i| ze swojej pozycji do pozycji posortowanej. Zbadaj eksperymentalnie oczekiwaną całkowitą odległość, o którą elementy są przesuwane E " n X # |ai − i| . i=1 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 wyP P korzystać linowość wartości oczekiwanej E [ ni=1 |ai − i|] = ni=1 E [|ai − i|] . Zadanie 4 Wrzucamy n mobilnych sensorów jednostajnie i niezależnie w sposób losowy do jednostkowego odcinka. Niech a1 , a2 , . . . , an będą posortowanymi pozycjami sensorów. Zbadaj eksperymentalnie oczekiwaną całkowitą odległość pokonywaną przez mobilne sensory " n X ai E i=1 # 1 i − . − n 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 umieść na wykresie wraz z wykresami √ √ √ eksperymentalne √ √ 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 x2 + 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 CN = CbN/2c + CdN/2e + N dla N > 1, C1 = 1. Poszukujemy rozwiązań równania w postaci CN = 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 1 1 1− 1 n a + O 1/a . aΓ 1 + a n 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 X1 , X2 , . . . , Xn będą posortowanymi pozycjami sensorów na odcinku [0, 1]. Zakres sensora Xi to max{Xi − Xi−1 , Xi+1 − Xi }, przyjmujemy X0 = 0, Xn+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 1/2+ dla dowolnego > 0 jest O (ln n) . 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 log2 (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(m3/4 n1/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