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
&
%