1 / 27

Równania rekurencyjne

Równania rekurencyjne. 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)

duy
Télécharger la présentation

Równania rekurencyjne

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. c2g(n) f(n) c1g(n) n n0 Notacja Θ

  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. cg(n) f(n) n n0 Notacja O

  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. f(n) cg(n) n n0 Notacja Ω

  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 podstawianiaPrzykł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 podstawianiaPrzykł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 2Zamiana 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 iteracyjnaPrzykład 3

  19. Metoda iteracyjnaPrzykład 3

  20. Ograniczanie wyrazów sumy

  21. Ograniczanie wyrazów sumy

  22. Rozdzielanie sum

  23. Szacowanie całkami

  24. Metoda rekurencji uniwersalnejTwierdzenie o rekurencji uniwersalnej

  25. Metoda rekurencji uniwersalnejPrzykłady

  26. Metoda rekurencji uniwersalnejPrzykłady

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

More Related