Pobierz prezentację
1
Złożoność obliczeniowa algorytmów
Literatura podstawowa Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest. Wprowadzenie do algorytmów. WNT, Warszawa, 1998. Edward M. Reingold, Jurg Nievergelt, Narsing Deo. Algorytmy kombinatoryczne. PWN, Warszawa, 1985. Lech Banachowski, Antomi Kreczmar. Elementy analizy algorytmów. WNT, Warszawa, 1982. Lech Banachowski, Antomi Kreczmar, Wojciech Rytter. Analiza algorytmów i struktur danych. WNT, Warszawa, 1989.
2
Algorytmy Algorytm - ściśle określona procedura obliczeniowa, która dla właściwych danych wejściowych produkuje żądane dane wyjściowe (wynik działania algorytmu). Rozmiar danych wejściowych - liczba elementów w ciągu wejściowym czy całkowita liczba bitów potrzebnych do reprezentowania tych danych. Czas działania algorytmu - liczba wykonanych prostych operacji.
3
Problemy rozwiązywalne w czasie wielomianowym - O(nk)
rozwiązywalne, ale nie w czasie wielomianowym (np., w czasie wykładniczym - O(kn)) nierozwiązywalne NP-zupełne (status nieznany; rozwiązywalne, ale nie wiadomo, czy w czasie wielomianowym)
4
Problemy Nierozwiązywalne: na przykład, problem stopu -
Dla danego algorytmu A odpowiedzieć, czy kończy pracę dla dowolnych danych wejściowych. Łatwo rozwiązywalne: rozwiązywalne w czasie wielomianowym. Trudno rozwiązywalne: nie jest znany (czy nie istnieje) algorytm rozwiązujący problem w czasie wielomianowym
5
Czas działania algorytmów
t3(n) t2(n) (czas działania) t1(n) (rozmiar danych wejściowych) n0 n
6
Przykład algorytmu Algorytm sortowania Insertion-Sort(A) 1. for j:=2 to length[A] do key:=A[j] /* Wstaw A[i] w posortowany ciąg A[1..j-1].*/ 3. i:= j-1 4. while i>0 i A[i] > key 5. do A[i+1] := A[i] i:= i-1 7. A[i+1] := key Przykład działania algorytmu
7
Przykład analizy algorytmu
Insertion-Sort(A) koszt liczba wykonań 1. for j:=2 to length[A] c1 n do key:=A[i] c2 n-1 3. i:= j c3 n-1 4. while i>0 i A[i] > key c4 5. do A[i+1] := A[i] c5 i:= i-1 c6 7. A[i+1] := key c7 n-1
8
Przykład analizy algorytmu
9
Czas działania algorytmów
Notacja : (g(n)) = {f(n): istnieją stałe c1, c2 i n0 takie, że 0 c1g(n) f(n) c2g(n) dla wszystkich n n0}. Asymptotyczne ogranicza funkcję od góry oraz od dołu. Notacja O: O(g(n)) = {f(n): istnieją stałe c i n0 takie, że 0 f(n) cg(n) dla wszystkich n n0}. Asymptotyczne ogranicza funkcję od góry. cg(n) c2g(n) f(n) f(n) c1g(n) f(n)=O(g(n)) f(n)=(g(n)) n n n0 n0
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.