Przyk ladowy Egzamin
z Teorii Algorytm´ ow i Oblicze´ n II
1. W pewnej firmie wykonuje si¸e pewn¸a licz¸e rodzaj´ow prac (zada´n) wyma- gaj¸acych r´o˙znych zdolno´sci i umiej¸etno´sci. Ka˙zdy z pracownik´ow tej firmy potrafi wykona´c tylko niekt´ore z nich, ale dla ka˙zdego zadania jest pracownik, kt´ory potrafi je wykona´c. W firmie ´zle si¸e dzieje i w la´sciciel zmuszony jest zwolni´c jak najwi¸eksz¸a liczb¸e pracownik´ow, ale w ten spos´ob, aby po zwolnieniach nadal ka˙zde z wykonywanych w firmie zada´n mog lo by´c przez kogo´s wykonane. W la´sciciel dokonuje zwolnie´n w spos´ob zach lanny, tzn. wyrzuca w pierwszej kolejno´sci tych, kt´orzy potrafi¸a wykona´c najmniejsz¸a liczb¸e zada´n bacz¸ac jedynie na to, aby dla ka˙zdego zadania pozostawi´c przynajmniej jednego pracownika, kt´ory potrafi je wykona´c.
Napisz algorytm (zach lanny), kt´ory stosuje w la´scicel i poka˙z na przyk la- dzie, ˙ze w tym przypadku zach lanno´s´c nie zawsze pop laca.
2. Funkcja z lo˙zono´sci obliczeniowej C(n) dla pewnego algorytmu sortowa- nia spe lnia r´ownanie rekurencyjne
C(n) = 2 n
n−1X
i=0
C(i) + n, C(0) = 1.
(a) Napisz rekurencyjn¸a procedur¸e obliczaj¸ac¸a C(n).
(b) Podaj algorytm programowania dynamicznego do obliczania C(n).
Jaka jest jego z lo˙zono´s´c obliczeniowa w zale˙zno´sci od n?
3. Z lo˙zono´s´c obliczeniowa T (n) pewnego algorytmu A typu ”dziel i zwyci¸e˙zaj”
spe lnia r´ownanie rekurencyjne T (n) = 7T (n/2) + n2. Inny algorytm A0 rozwi¸azuj¸acy ten sam problem ma z lo˙zono´s´c obliczeniow¸a spe lniaj¸ac¸a r´ownanie T (n) = aT (n/4) + n2. Znajd´z najwi¸eksz¸a warto´s´c ca lkowit¸a a, dla kt´orej algorytm A0 jest asymptotycznie szybszy ni˙z algorytm A.
4. Za l´o˙zmy, ˙ze pewien symbol, powiedzmy x, wyst¸epuje dok ladnie raz we wzorcu P . Podaj algorytm wyszukiwania tego wzorca w tek´scie T , kt´ory dzia la w czasie O(n), gdzie n jest d lugo´sci¸a tekstu T .