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
m­0 Pr[X > m], E[X ] =
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 ] =
P
Pk
k−i i
m.
m­0 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