Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Równania rekurencyjne. Złożoność obliczeniowa – miara efektywności algorytmu Złożoność obliczeniowa wyraża zależność czasu t wykonywania algorytmu (tj.

Podobne prezentacje


Prezentacja na temat: "Równania rekurencyjne. Złożoność obliczeniowa – miara efektywności algorytmu Złożoność obliczeniowa wyraża zależność czasu t wykonywania algorytmu (tj."— Zapis prezentacji:

1 Równania rekurencyjne

2 Złożoność obliczeniowa – miara efektywności algorytmu Złożoność obliczeniowa wyraża zależność czasu t wykonywania algorytmu (tj. liczby operacji niezbędnych do wykonania algorytmu) od liczby elementów n zbioru (n) na którym działa algorytm. t=f(n) Ponieważ często trudno określić dokładną postać funkcji, stosuje się więc, postać asymptotyczną

3 Notacja Θ Dla danej funkcji g(n) oznaczamy przez Θ (g(n)) zbiór funkcji Θ(g(n))={f(n): istnieją dodatnie stałe c1, c2 i n0 takie, że 0c1g(n) f(n) c2g(n) dla wszystkich n n0} Mówimy, że g(n) jest asymptotycznie dokładnym oszacowaniem dla f(n) Do oznaczenia wartości stałej lub funkcji stałej względem pewnej zmiennej będziemy używać Θ(1).

4 Notacja Θ c 2 g(n) c 1 g(n) f(n) n n0n0

5 Notacja O Dla danej funkcji g(n) oznaczamy przez O (g(n)) zbiór funkcji O(g(n))={f(n): istnieją dodatnie stałe c i n0 takie, że 0 f(n) cg(n) dla wszystkich n n0} Notacja O określa asymptotyczną granicę górną.

6 Notacja O cg(n) f(n) n n0n0

7 Notacja Ω Dla danej funkcji g(n) oznaczamy przez Ω (g(n)) zbiór funkcji Ω (g(n))={f(n): istnieją dodatnie stałe c i n0 takie, że 0cg(n) f(n) dla wszystkich n n0} Notacja Ω określa asymptotyczną granice dolną. Twierdzenie Dla każdych dwóch funkcji f(n) i g(n) zachodzi zależność f(n)= Θ(g(n)) wtedy i tylko wtedy gdy f(n)=O(g(n)) i f(n)= Ω(g(n)).

8 Notacja Ω cg(n) f(n) n n0n0

9 Notacja o Dla danej funkcji g(n) oznaczamy przez o (g(n)) zbiór funkcji o(g(n))={f(n): dla każdej dodatniej stałej c istnieje stała n0 >0 taka, że 0f(n)0 istnieje stała n0 >0 taka, że 0cg(n)

10 Zależności rekurencyjne Czas algorytmu, który odwołuje się rekurencyjnie do samego siebie, można opisać zależnością rekurencyjną, która wyraża czas dla podproblemów rozmiaru n za pomocą czasu dla podproblemów mniejszych rozmiarów. Przykład funkcji rekurencyjnej – funkcja potęga:

11 Rekurencje Rekurencja jest równaniem lub nierównością opisującą funkcję złożoności w zależności od jej wartości dla danych wejściowych o mniejszych rozmiarach. Można wyróżnić trzy metody rozwiązywanie rekurencji: metoda podstawiania metoda iteracyjna metoda rekurencji uniwersalnej

12 Metoda podstawiania Metoda ta najpierw wymaga odgadnięcia postaci rozwiązania a następnie wykazania przez indukcję, że jest ono poprawne. Konieczne tez jest znalezienie odpowiednich stałych. Metoda ta może być używana do określenia górnego albo dolnego oszacowania na wartości rozwiązania rekurencji.

13 Metoda podstawiania Przykład 1 Obliczyć ograniczenie górne funkcji zadanej zależności rekurencyjną Rozwiązanie: Zgadujemy, ze rozwiązaniem będzie T(nO(nlgn). Udowodnimy, że T(n)cnlgn dla dobrze wybranej stałej c>0. Zakładamy, ze ograniczenie zachodzi dla tzn. gdzie lg to log2

14 Metoda podstawiania Przykład 1 Mamy: T(n) cnlg(n/2)+n =cnlgn-cnlg2+n =cnlgn-cn+n cnlgn spełnione dla c1

15 Zgadywanie rozwiązania Jeżeli rekurencja jest podobna do innej, dla której znamy rozwiązanie, można spróbować podstawić postać rozwiązania tej innej funkcji. Można też udowodnić najpierw zgrubne górne oraz dolne oszacowanie a następnie zmniejszać błąd oszacowania aż się dojdzie do poprawnego rozwiązania

16 Przykład 2 Zamiana zmiennych Czasami stosując zabiegi algebraiczne można upodobnić rekurencją do innej wcześniej znanej. Niech będzie dana równanie rekurencyjne: Dla wygodny nie przejmujemy się czy zaokrągleniami wartości takich jakn. Podstawiając m=lgn otrzymujemy: T(2m)=2T(2m/2)+m Możemy teraz podstawić S(m)=T(2m), otrzymując rekurencję S(m)=2S(m/2)+m podobną do rekurencji w przykładzie 1 i mająca takie samo rozwiązanie: S(m)=O(mlgm). Zamieniając ponownie S(m) na T(n) otrzymujemy T(n)=T(2m)=S(m)=O(mlgm)=O(lgnlglgn).

17 Metoda iteracyjna Polega na rozwijaniu (iterowaniu) rekurencji i wyrażeniu jej jako sumy składników zależnych tylko od n oraz warunków brzegowcyh. Następnie można użyć technik sumowania do oszacowania rozwiązania.

18 Metoda iteracyjna Przykład 3

19

20 Ograniczanie wyrazów sumy

21

22 Rozdzielanie sum

23 Szacowanie całkami

24 Metoda rekurencji uniwersalnej Twierdzenie o rekurencji uniwersalnej

25 Metoda rekurencji uniwersalnej Przykłady

26

27 Bibliografia Th.H. Cormen, Ch.E. Leiserson, R. L. Rivest,, Wprowadzenie do algorytmów, Wydawnictwa Naukowo- Techniczne, Warszawa 2001;


Pobierz ppt "Równania rekurencyjne. Złożoność obliczeniowa – miara efektywności algorytmu Złożoność obliczeniowa wyraża zależność czasu t wykonywania algorytmu (tj."

Podobne prezentacje


Reklamy Google