TEORETYCZNE PODSTAWY INFORMATYKI zło ˙zono ´s ´c
Transkrypt
TEORETYCZNE PODSTAWY INFORMATYKI zło ˙zono ´s ´c
' $ TEORETYCZNE PODSTAWY INFORMATYKI złożoność algorytmiczna klasyfikacja problemów algorytmicznych dr hab. inż. Andrzej Obuchowicz, prof. UZ & % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ $ 1/20 Algorytm „dobry” ✘ Poprawność algorytmiczna – własność oczekiwana od każdego algorytmu. ✘ Kryteria wyboru algorytmu spośród algorytmów poprawnych: ✖ konieczność wykorzystania możliwie jak najmniej pamieci; ˛ ✖ czas wykonywania możliwie jak najkrótszy. & % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ Porównywanie czasu działania algorytmów $ 2/20 Na czas pracy algorytmu maja˛ wpływ: ✔ specyfika problemu algorytmicznego; ✔ konfiguracja sprzetu ˛ komputerowego; ✔ wybór jezyka ˛ programowania; ✔ wybór kompilatora; ✔ warunki wykonywania programu (liczba procesów wykonywanych „w tle”, temperatura procesora itp.). & % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ Złożoność jako funkcja rozmiaru problemu $ 3/20 Czas pracy algorytmu zależy od rozmiaru zadania. Przykłady zadań o rozmiarze n: ✒ znaleźć najmniejsza˛ wartość w tablicy n liczb całkowitych; ✒ rozwiaza ˛ ć układ n równań liniowych A~x = ~b na n niewiadomych; P ✒ wynaczyć wartość wielomianu Pn (x) = nk=0 ak xk dla wybranej wartości x⋆ ; ✒ znajdź minimalne drzewo rozpinajace ˛ graf o n wierzchołkach. Jeżeli trudno jest wskazać wprost rozmiar zadania to n może być długościa˛ kodu danych zadania na komputerze. & % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ $ 4/20 Definicja złożoności problemu algorytmicznego Mówimy, że problem ma złażoność O(g(n)) (rzedu ˛ g(n)), jeżeli algorytm go rozwiazuj ˛ acy ˛ dla n danych wejściowych potrzebuje co najwyżej cg(n) czasu dla uzyskania wyniku, gdzie c jest pewna˛ stała˛ rzeczywista. ˛ O(g(n)) : g(n) jest asymptotycznie górna˛ granica˛ procesu obliczeniowego. & % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ $ 5/20 Asymptotyczne oszacowanie górne cg(n) f(n) n0 O(g(n)) = {f (n) : ∃c > 0 & n ∃n0 ∀n > n0 0 ≤ f (n) ≤ cg(n)} % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ $ 6/20 Asymptotyczne oszacowanie dolne f(n) cg(n) n n0 Ω(g(n)) = {f (n) : ∃c > 0 & ∃n0 ∀n > n0 cg(n) ≤ f (n)} % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ $ 7/20 Asymptotyczne dokładne oszacowanie c1g(n) c2g(n) f(n) n0 & n Θ(g(n)) = f (n) : ∃c1 , c2 > 0 ∃n0 ∀n > n0 c2 g(n) ≤ f (n) ≤ c1 g(n) % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ Górne i dolne ograniczenia złożoności Z£O¯ONOŒÆ $ 8/20 KOLEJNE GÓRNA OGRANICZENIA O(F4) O(F3) ALGORYTM O Z£O¯ONOŒCI O(F4) ALGORYTM O Z£O¯ONOŒCI O(F3) LUKA ALGORYTMICZNA LUKA ALGORYTMICZNA Q (Fo) Z£O¯. NATUR. W (F2) W (F1) CZAS DOWÓD, ¯E Z£O¯ONOŒÆ NIE MO¯E BYÆ LEPSZA NI¯ O(F2) POSZUKIWAÑ OPTYMALNEGO ALGORYTMU DOWÓD, ¯E Z£O¯ONOŒÆ NIE MO¯E BYÆ LEPSZA NI¯ O(F1) KOLEJNE DOLNE OGRANICZENIA & % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ Złożoność średnia algorytmu $ 9/20 Niech cf (n, ~x) bedzie ˛ czasem pracy algorytmu dla problemu o rozmiarze n i konkretnych danych ~x. Niech P (~x) oznacza prawdopodobieństwo wystapienia ˛ danych ~x (przypadek dyskretny), R b1 R bm ~ lub niech P (~a < ~x < b) = a1 . . . am µ(~x)dx1 . . . dxm bedzie ˛ prawdopodobieństwem że dane ~x znajda˛ sie˛ w zakresie (~a, ~b) (przypadek ciagły), ˛ funkcja µ(~x) jest gesto ˛ ścia˛ prawdopodobieństwa wektora losowego ~x. Złożoność średnia jest O(Fs (n)), gdzie P Fs (n) = ~x f (n, ~x)P (~x) (przypadek dyskretny) R b1 R bm Fs (n) = a1 . . . am f (n, ~x)µ(~x)dx1 . . . dxm (przypadek ciagły) ˛ & % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ Złożoność średnia, cd $ 10/20 Możliwe histogramy czasu wykonań dwóch algorytmów rozwiazuj ˛ acych ˛ hipotetyczny problem algorytmiczny dla zbioru losowych zestawów danych. N(t) & t % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ Problemy łatwo- i trudnorozwiazywalne ˛ $ 11/20 O(log(n)) O(n) O(n log(n)) problemy łatworozwiazywalne ˛ 2 O(n ) ... k O(n ) & O(2n ) problemy trudnorozwiazywalne ˛ O(n!) n O(n ) % ' $ TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ funkcja 12/20 rozmiar problemu n złożoności 10 100 1000 10000 log(n) 3.2 6.6 10.0 13.3 n 10 100 1000 10000 n log(n) 33.2 664.4 9.9 × 103 1.3 × 105 n2 1000 7746 60000 5.6 × 106 2n 1024 1.27 × 1030 1.07 × 10301 2.0 × 103010 n! 3.0 × 106 9.3 × 10157 4.0 × 102567 > 105000 szacowana liczba mikrosekund od wielkiego wybuchu: 1024 szacowana liczba protonów w znanym wszechświecie: 10126 & % ' $ TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ 13/20 funkcja maksymalny rozmiar problemu złożoności możliwy do rozwia̧zania w czasie czasowej (przy założeniu 106 operacji na sekundȩ) log(n) & 1 sek 1 min 1 godz 1 rok 106 6×107 3.6×109 3×1013 2 2 2 2 n 106 6 × 107 3.6 × 109 3 × 1013 n log(n) 62746 2.8 × 106 1.3 × 108 8.0 × 1011 n2 1000 7746 60000 5.6 × 106 2n 19 25 31 44 n! 9 11 12 16 % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ $ 14/20 Zawieranie sie˛ klas złożoności EXPSPACE EXPTIME PSPACE PTIME LOGSPACE LOGTIME & % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ Problem klasy LOG: przeszukiwanie binarne $ 15/20 Acki Backi Cacki Dacki Ecki Fecki Gecki Ecki>Dacki Ecki=Ecki Ecki<Fecki Ecki<Gecki Hecki Icki Kicki Licki liczba porównań : log2 (n) Micki Nicki & % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ $ 16/20 Problem klasy P: sortowanie przez wybieranie & % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ $ 17/20 Przykład problemu klasy EXP: wieże Hanoi G 1–3 O 1–2 G 3–2 Y 1–3 G O Y B G 2–1 O 2–3 G 1–3 B 1–2 G 3–2 1 3 2 n liczba przestawień : 2 − 1 O 3–1 G 2–1 Y 3–2 G 1–3 O 1–2 G 3–2 & % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ $ 18/20 Nieroztrzygalność i nierozwiazywalno ˛ ść Problemy nieroztrzygalne (nierozwiazywalne) ˛ — nie istnieje żaden algorytm poprawny, tzn. jakikolwiek algorytm nie wymyślimy, to zawsze bedzie ˛ istniał taki zbiór poprawnych danych wejściowych, że ✐ albo algorytm odda błedne ˛ wyniki, ✐ albo zawiesi sie, ˛ ✐ albo bedzie ˛ działał w nieskończoność. & % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ Przykład problemu nieroztrzygalnego: małpia układanka $ 19/20 Dane jest n opisów kart. Liczba kart danego opisu jest nieskończona. Czy możliwe jest pokrycie dowolnej skończonej powierzchni tak, aby boki kart przystawały & do siebie małpami i kolorami? % ' TPI złożoność algorytmiczna – dr hab. inż. A. Obuchowicz, prof. UZ $ 20/20 Problemy z nieroztrzygalnościa: ˛ waż ˛ domino Dane jest n opisów kart. Liczba kart danego opisu jest nieskończona. Czy możliwe poprowadzenie weża ˛ pomiedzy ˛ wybranymi punktami nie przekraczajac ˛ Q=płaszczyzna: roztrzygalne zadanego obszaru Q? Q=obszar ograniczony: roztrzygalne Q=półpłaszczyzna: nieroztrzygalne & %