Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
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 0≤c1g(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 Θ c2g(n) c1g(n) f(n) n n0
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 n0
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 0≤cg(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 n0
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 0≤f(n)<cg(n) dla wszystkich n ≥n0} Dla danej funkcji g(n) oznaczamy przez ω (g(n)) zbiór funkcji ω (g(n))={f(n): dla każdej dodatniej stałej c>0 istnieje stała n0 >0 taka, że 0≤cg(n) <f(n) dla wszystkich n ≥n0} Notacja ω
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 c≥1
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 jak√n. 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
Metoda iteracyjna Przykład 3
20
Ograniczanie wyrazów sumy
21
Ograniczanie wyrazów sumy
22
Rozdzielanie sum
23
Szacowanie całkami
24
Metoda rekurencji uniwersalnej Twierdzenie o rekurencji uniwersalnej
25
Metoda rekurencji uniwersalnej Przykłady
26
Metoda rekurencji uniwersalnej Przykłady
27
Bibliografia Th.H. Cormen, Ch.E. Leiserson, R. L. Rivest,, „Wprowadzenie do algorytmów”, Wydawnictwa Naukowo-Techniczne, Warszawa 2001;
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.