Analiza Algorytmów Moduł 3 Rekurencje
|
|
- Seweryn Morawski
- 6 lat temu
- Przeglądów:
Transkrypt
1 Analiza Algorytmów Moduł 3 Rekurencje Aleksandra Orpel Spis treści 1 Rekurencja - rozwiazania dokładne Rekurencje pierwszego rzędu Rekurencje liniowe wyższych rzędów Rekurencje - oszacowania asymptotyczne 5 3 Algorytmy typu dziel i zwyciężaj 10 4 Sortowanie przez scalanie 12 5 Bibliografia 18 1
2 1 Rekurencja - rozwiazania dokładne 1.1 Rekurencje pierwszego rzędu Twierdzenie 1. Niech fx n g n2n rekurencji jest nastepuj ac a R. Jawna postać ci agu danego za pomoca a 0 =1 a n = x n a n 1 dla n > 0 a n = Y 1 k n (1) x k dla n > 0. (2) Przykład 1. Podstawiaj ac x n = n, wzór (1) daje a n = n!, natomiast dla x n =2z (1) dostajemy a n =2 n. Twierdzenie 2. Ciag dany za pomoc a rekurencji a 0 =0 a n = y n + a n 1 dla n > 0, gdzie fy n g n2n R, ma nastepuj ac ajawn apostać a n = y k dla n > 0. 1 k n (3) Twierdzenie 3. Niech fx n g n2n i fy n g n2n bedaci agmi liczb rzeczywistych i x n 6=0dla dowolnego n>0. Rozwi azaniem równania rekurencyjnego a 0 =0 (4) a n = y n + x n a n 1 dla n > 0 jest ciag postaci a n = y n + y j x j+1 x j+2... x n (5) dla n>0. 1 j n 1 Dowód. Podzielmy obie strony równości (4) przez iloczyn x 1 x 2...x n 1 x n. Mamy wówczas dla każdego n>0 a n y n a n 1 = +. (6) x 1 x 2... x n 1 x n x 1 x 2... x n 1 x n x 1 x 2... x n 1 Połóżmy b 0 =0 a b n = n x 1 x 2 ::: x n 1 x n dla n > 0 2
3 i y n z n = dla dowolnego n 2 N. x 1 x 2... x n 1 x n Równość (6)można zapisać wpostaci b n = z n + b n 1 dla n>0. Korzystajac z twierdzenia 2 mamy b n = z k = y k. x 1 x 2... x k 1 x k Stad 1 k n 1 k n a n = x 1 x 2... x n 1 x n 1 k n = x 1 x 2... x n 1 x n y k x 1 x 2... x k 1 x k 1 k n y k x 1 x 2...x k 1 x k y n + y k x k+1 x k+2... x n 1 x n. 1 k n 1.2 Rekurencje liniowe wyższych rzędów Twierdzenie 4. (O rozwiazaniach rekurencji liniowych, jednorodnych ze stałymi współczynnikami) Ogół rozwiazań rekurencji postaci a n = x 1 a n 1 + x 2 a n x t a n t dla n t (7) ( x t 6=0)jestdanyjakoliniowakombinacja(owspółczynnikach zależnych od warunków poczatkowych a 0,a 1,..., a t ) wyrażeń n j β n, 0 j<v, gdzie - β jest pierwiastkiem nastepuj acego wielomianu q(z) =z t x 1 z t 1 x 2 z t 2... x t (8) - v jest krotnościa pierwiastka β. Wielomian q nazywamy wielomianem charakterystycznym równania rekurencyjnego (7), natomiast ciagi n j β nª n2n, gdzie 0 j<v, jego rozwiazaniami szczególnymi. (Oczywiście β może być pierwiastkiem zespolonym). 3
4 Uwaga: Rozwiazanie jawne rekurencji (7) jest zdeterminowane przez warunki poczatkowe, z których wyznaczamy współczynniki liniowej kombinacji opisujacej ogół rozwiazań. W pewnych przypadkach właśnie od wartości poczatkowych zależy rodzaj otrzymanego rozwiazania. Majac tę sam azależność rekurencyjna izmieniaj ac tylko warunki poczatkowe możemy zmienić charakter rozwiazania, uzyskujac ciag stały, wykładniczy lub naprzemienny. Dzieje się tak na przykład wtedy, gdy niektóre współczynniki znikaja lub gdy pierwiastki wielomianu charaktery maja tesamemoduły. Jak duży wpływ na ostatecznapostaćci agu fa n g n2n maja wartości poczatkowe a 0,..., a t 1 pokazuje przykład opisany w punkcie (d) Zadania 2. Rozważymy teraz rekursję, która uzyskujemy z (7) dodajac do prawej strony wzoru ciag fb n g n2n. Otrzymana w ten sposób rekurencja nazywa się niejednorodna. Wyznaczajac jej rozwiazanie będziemy wykorzystywać twierdzenie 4. Istotnym problemem, który pojawia się wówczas, jest znalezienie rozwiazania szczególnego rekurencji niejednorodnej. W przypadku, gdy fb n g n2n jest ciagiem stałym, można podać proste procedury pozwalajace wyznaczyć takie rozwiazanie. Twierdzenie 5. (O istnieniu rozwiazania równania niejednorodnego) Ogół rozwiazań rekurencji postaci a n = x 1 a n 1 + x 2 a n x t a n t + b dla n t (9) jest sumaogółurozwi azań równania (7) oraz rozwi azania szczególnego równania (9). Twierdzenie 6. (O postaci rozwiazania szczególnego rekurencji niejednorodnej) 1. Jeżeli P i=1;:::;t x i 6= 1to rozwiazaniem szczególnym jest ciag stały fx n g n2n o wyrazach x n = c, gdzie c = b 1 P i=1;:::;t x. i 2. Jeżeli P i=1;:::;t x i =1i P i=1;:::;t ix i 6= 0to rozwiazaniem szczególnym jest ciag fcng n2n, gdzie b c = P i=1;:::;t ix. i 3. Ogólnie: rozwiazaniem szczególnym rekursji niejednorodnej (9) jest ciag fcn m g n2n, gdzie m jest pewnaliczb anaturaln amniejsz aodt. (Stała c wyznaczamy podstawiajac wyrazy ciagu do równania (9) 4
5 2 Rekurencje - oszacowania asymptotyczne Przedstawimy trzy metody wyznaczania rozwiazań asymptotycznych rekurencji: metodę podstawiania, iteracyjna oraz metodę opartanatwierdzeniu o rekurencji uniwersalnej. 1. Metoda podstawiania - polega na odgadnięciu oszacowania, a następnie wykazaniu, że jest ono trafne. 2. Metoda iteracyjna - gdzie przekształcamy rekurencję w sumę, a następnie korzystamy z różnych technik szacowania sum. (Obie metody omówimy na przykładach - ćwiczenia do Modułu 3) 3. Metoda rekurencji uniwersalnej - stosowana jest dla rekursji postaci T (n) =at (n/b)+f(n) (10) gdzie a 1, b>1, fjest pewna funkcjanieujemn aokreślona na podzbiorze liczb naturalnych. Rekurencja (10) opisuje czas działania algorytmu, który dzieli problem rozmiaru n na a podproblemów o rozmiarze n/b. Każdy z a podproblemów jest rozwiazywany rekurencyjnie w czasie T (n/b). Koszt dzielenia problemu oraz łaczenia rezultatów częściowych jest opisany funkcja f. Twierdzenie 6. (Twierdzenie o rekurencji uniwersalnej). Zał óżmy, że a 1 i b>1 sastałymi, f jest funkcjaokreślon a na zbiorze liczb naturalnych, a T bedzie ciagiem zdefiniowanym dla liczb całkowitych n 0 wzorem (10), gdzie n/b oznacza bn/bc lub dn/be. Wówczas T (n) może być ograniczony asymptotycznie w nastepuj acy sposób: 1. jeżeli istnieje ε>0 takie, że f(n) =O(n log b a " ), to T (n) =Θ(n log b a ); 2. jeżeli f(n) =Θ(n log b a ), to T (n) =Θ(n log b a lg n); 3. jeżeli istnieje ε>0takie, że f(n) =Ω(n log b a+" ) ijeśli dodatkowo istnieje stała 0 <c<1 taka, że dla dostatecznie dużych n 2 N ( n b) zachodzi nastepuj acy warunek (zwany warunkiem regularności) to T (n) =Θ(f(n)). af(n/b) cf(n), Dowód: Pierwsza część dowoduzawiera analizę zależności rekurencyjnej przy założeniu, że n jest potęga liczby b > 1, gdzie b niekoniecznie jest liczba całkowita. Dowód ten przeprowadzimy w trzech etapach, w których zakładamy, 5
6 że a 1, b>1 i f jest pewna funkcjanieujemn azdefiniowanadladokładnych potęg b oraz Θ(1) dla n =1 T (n) = at (n/b)+f(n) dla n = b i (11), gdzie i 1. Etap 1. Wykażemy, że T (n) =Θ(n log b a )+ log b n 1 a j f(n/b j ). (12) W tym celu przekształcimy rekurencję wsumęzapomoca odpowiedniej liczby (równej log b n) iteracji wzoru (11): T (n) =f(n)+at (n/b) =f(n)+af(n/b)+a 2 T (n/b 2 )= f(n)+af(n/b)+a 2 f(n)+a 3 f(n/b 3 ) a log b n 1 f(n/b log b n 1 )+a log b n T (1). Biorac pod uwagę równości a log b n = n log b a oraz T (1) = Θ(1) iwłasności notacji Θ, otrzymujemy a log b n T (1) = Θ n log b a. Ostatecznie uzyskujemy zależność (12). Etap 2. Rozważmy funkcję g: n 2 N,istnieje j 2 N takie, że n = b jª! R zdefiniowananastępuj aco: g(n) = log b n 1 a j f(n/b j ). (13) Pokażemy, że może ona być ograniczona asymptotycznie dla dokładnych potęg b w jeden z poniższych sposobów: A-jeżeli f(n) =O(n log b a " ) dla pewnej stałej ε>0, to g(n) =O(n log b a ); B-jeżeli f(n) =Θ(n log b a ), to g(n) =Θ(n log b a lg n); C -jeżeli af(n/b) cf(n) dla pewnej stałej c<1iwszystkichn b, to g(n) =Θ(f(n)). Istotnie; w³ przypadku A zzałożenia dotyczacego funkcji f wnioskujemy, iż f( n b )=O n logb j b a ", co,wobecdefinicji g, daje j à logb! n 1 ³ n g(n) =O a j logb a ". (14) b j Jednocześnie prawdziwy jest ciag równości log b n 1 ³ log a j n logb a " b n 1 µ = n log b a " ab " b j 6 b log b a j = n log b a " log b n 1 (b " ) j
7 µ µ = n log b a " 1 b " log b n = n log 1 b " b a " n " 1. b " 1 Z uwagi na fakt, iż b i ε sastałymi, ostatnie wyrażenie redukuje siędon log b a " O (n " ). Ostatecznie uzyskujemy żadan a równość: W przypadku B mamy f( n b j )=Θ ³ n b j logb a, zatem g(n) =Θ g(n) =O(n log b a ). (15) Ã logb n 1 Postępujac jak poprzednio, uzyskujemy log b n 1 a j ³ n b j log b a = n log b a log b n 1 a j ³ n b j log b a! ³ log a j b n 1 b log b a = n log b a. 1=n log b a log b n idalej g(n) =Θ n log b a log b n = Θ n log b a lg n. W przypadku C należy najpierw zauważyć, że definicja funkcji g implikuje oszacowanie g(n) =Ω(f(n)) dla dokładnych potęg b. Jednocześnie założony warunek regularności implikuje, iż dlakażdego j =0, 1,..., log b n zachodzi a j f(n/b j ) c j f(n). (16) (Indukcyjny dowód tego faktu pozostawiamy jako ćwiczenie). Korzystajac z (16), możemy oszacować z góry g(n) wnastępujacy sposób g(n) log b n 1 ³ n a j f b j log b n 1 c j f (n) f(n) 1 c j = f(n) 1 c = O(f(n)). Etap 3. Biorac pod uwagę zależność (15), obliczamy sumę (12) dla pierwszego przypadku twierdzenia: W przypadku 2. otrzymujemy T (n) =Θ(n log b a )+O(n log b a )=Θ(n log b a ). T (n) =Θ(n log b a )+Θ(n log b a lg n) =Θ(n log b a lg n). W ostatnim przypadku mamy T (n) =Θ(n log b a )+Θ(f(n)), 7
8 co wobec założenia f(n) =Ω(n log b a+" ) przy pewnym ε>0, pozwala orzec, iż T (n) =Θ(f(n)). To kończy dowód dla dokładnych potęg b. Druga część dowodu,będzie rozszerzeniem powyższej analizy na przypadek dowolnych liczb naturalnych. W tej sytuacji w rekurencji pojawiasię funkcje sufitu lub podłogi. Zauważmy, że otrzymanie dolnego oszacowania dla T (n) =at (dn/be)+f(n) (17) lub górnego dla T (n) =at (bn/bc)+f(n) (18) wynika bezpośrednio z własności funkcji podłogiisufitu ( n b n b n b ). Na istotne trudności napotykamy dopiero wtedy, gdy próbujemy uzyskać górne oszacowanie dla (17) i dolne dla (18). Omówimy jedynie pierwszy z problemów, ponieważ analiza drugiego z nich jest analogiczna. Główna idea dowodu jest oczywiście taka sama, jak dla dokładnych potęg b, ztaróżnic a, że pojawiaja się nieco bardziej pracochłonne rachunki. Przedstawimy zatem tylko kluczowe elementy dowodu. Etap 1. Zauważmy, że iterujac rekurencję (17) uzyskujemy ciag rekurencyjnych wywołań dla argumentów n, dn/be, ddn/be /be, dddn/be /be /be,... itd. Dla wygody oznaczmy i. element tego ciagu przez przez n i, gdzie n gdy i =0 n i = dn i 1 /be gdy i > 0. Zpowyższej definicji i własności funkcji sufitu (dxe < x +1) uzyskujemy oszacowanie n i n b + i 1 1 i b n j b + b (19) i b 1 dla dowolnego i>0. Podobnie jak w etapie 1. pierwszej części dowodu przekształcamy rekurencję wsumę, wielokrotnie stosujac wzór (17), przy czym kończymy iterację dlai 0 = blog b nc. (Wówczas n i0 b + b b 1.) Stad mamy T (n) =f(n 0 )+at (n 1 )=f(n 0 )+af(n 1 )+a 2 T (n 2 ) (20) f(n 0 )+af(n 1 )+a 2 f(n 2 ) a blog b nc 1 f(n blogb nc 1)+a blog b nc T (n blogb nc) = Θ(n log b a )+ blog b nc 1 a j f(n j ). W ten sposób otrzymujemy dla dowolnych liczb naturalnych n zależność podobna do (12). 8
9 Etap 2. Możemy teraz oszacować sumę g(n) = blog b nc 1 a j f(n j ) wkażdym z trzech omawianych w twierdzeniu przypadków, w zależności od warunków nałożonych na f. Rozważmy przypadek pierwszy, gdy dla pewnej liczby ε>0 f(n) =O(n log b a " ). Wówczas dla każdego 0 j blog b nc istnieje stała c > 0 taka, że dla dostatecznie dużych n zachodzi µ n c b + b j b 1 ³ µ µ n logb a " b j b = c 1+ b j n b 1 logb a " b c b 1 f(n j ) cn log b a " j logb a " logb a " (21) µ µ µ µ n log b a " b j = c b logb a " n log b a " a j b "j n b 1 a j b, "j (przy czym druga nierówność wynika z (19), natomiast ostatnie przejście jest konsekwencja nierówności j blog b nc). Oznacza to f(n j )=O( nlog b a " ). a j b "j Podobnie postępujemy, gdy f(n) =Θ(n log b a ) (przypadek drugi twierdzenia). Wykonujac oszacowania analogiczne do (21) (pomijamy ε i wykorzystujemy własności notacji Θ), pokazujemy, że f(n j )=O( nlog b a ). a j W przypadku trzecim należy zauważyć, że z warunku regularności: af(dn/be) cf(n) dla n>b+ b/(b 1) przy stałej 0 <c<1, wynika a j f(n j ) c j f(n) dla j =0, 1,..., blog b nc, co wykazujemy tak, jak w pierwszej części dowodu. Wykorzystujac powyższe wyniki możemy sumę g(n) odpowiednio oszacować i wyznaczyć rozwiazanie T jak dla dokładnych potęg b. Uwaga: Istotne jest, że w każdym z trzech przypadków porównujemy funkcję f z funkcja testujac a n 7! n log b a. Intuicyjnie na podstawie tezy twierdzenia możemy powiedzieć, że rozwiazanie zależy od większej z nich. W pierwszym przypadku funkcja f nie tylko musi być mniejsza od funkcji testujacej, ale musi być odniejwielomianowo mniejsza, tj. musi istnieć taka liczba ε>0, że f jest mniejsza od funkcji testujacej o czynnik n ". W trzecim przypadku funkcja f nie tylko musi być większa od funkcji testujacej, ale musi być odniej 9
10 wielomianowo większa oraz spełniać dodatkowy warunek regularności, który zachodzi dla większości wielomianowo ograniczonych funkcji. Uwaga: Warto zauważyć, że warunek regularności implikuje istnienie liczby ε > 0 takiej, że f(n) = Ω n log b a+" Mimo to w sformułowaniu trzeciego przypadku twierdzenia o rekurencji uniwersalnej występuje powyższa równość, gdyż upraszcza ona wstępna klasyfikację badanej rekurencji (patrz poprzednia uwaga). Uwaga: Trzy przypadki opisane w twierdzeniu o rekurencji uniwersalnej nie wyczerpuja wszystkich możliwych relacji między f a funkcja testujac a. Jest luka między przypadkiem 1 i 2, kiedy to f jest mniejsza od funkcji testujacej, ale nie jest mniejsza wielomianowo. Podobnie dla przypadków 2 i 3, istnieja rekurencje typu (10), w których funkcja f jest większa od n 7! n log b a, ale nie wielomianowo. Wobec tego, gdy f wpada w jednaztychlukniemożemy stosować twierdzenia o rekurencji uniwersalnej. Wówczas pozostajanammetody iteracyjna i podstawiania. Możemy także starać się oszacować rekurencję zgóry lub z dołu w ten sposób, aby otrzymać rekurencję, która można już rozwiazaćza pomoca jednego z przypadków twierdzenia 6. Należy jednak pamiętać, że wtedy otrzymujemy górne lub dolne oszaconie rozwiazania wyjściowej rekurencji. Przykład 2. Pokażemy, że dla rekurencji T (n) =2T (n/2) + n log 2 n nie można zastosować powyższego twierdzenia. Istotnie; kładac a = b =2mamy następujac a funkcję testuj aca n 7! n log b a = n. Jednocześnie f(n) =n log 2 n. Ponieważ f jest asymptotycznie większa od funkcji n 7! n log b a, więc może się wydawać, że stosować będziemy przypadek 3. Przypuśćmy zatem, że istnieje ε>0 takie, że f(n) =Ω(n 1+" ), co oznacza istnienie liczby A>0 spełniajacej relację f(n) n 1+" dla dostatecznie dużych n 2 N idalej log 2 n n " dla dostatecznie dużych n 2 N. To jednak przeczy równości lim Zatem przykład ten wpada w lukę między przypadkami 2 i 3. n!1 log 2 n n " =0. twierdzenie 2. Przyjmujac oznaczenia twierdzenia 6, można wykazać, że z warunku regularności wynika istnienie ε>0, dla którego zachodzi oszacowanie f(n) =Ω(n log b a+" ). 3 Algorytmy typu dziel i zwyciężaj Metoda dziel i zwyciężaj" polega na podziale problemu na kilka mniejszych podproblemów (tj. podproblemów o mniejszych rozmiarach danych wejściowych) 10
11 podobnych do pierwotnego. Podproblemy te sa rozwiazywane rekurencyjnie, a następnie ich rozwiazania sa łaczone w celu uzyskania rozwiazania wyjściowego problemu. W podejściu dziel i zwyciężaj każdy poziom rekursji składa się z następujacych etapów: Dziel: Dzielimy problem na podproblemy. Zwyciężaj: Rozwiazujemy podproblemy rekurencyjnie, chyba, że saonetak małego rozmiaru, że nie wymagaja zastosowania rekursji - używamy wtedy metod bezpośrednich. Połacz: Łaczymy rozwiazania podproblemów, aby otrzymać rozwiazanie problemu wyjściowego. Wobec powyższego analiza czasu działania algorytmów opartych na metodzie dziel i zwyciężaj polega na ocenie złożoności czasowej wszystkich trzech etapów. Rozważymy teraz pewien szczególny rodzaj tego typu algorytmów. Niech T (n) oznacza czas działania algorytmu dla problemu o rozmiarze n. Jeśli rozmiar problemu jest wystarczajaco mały n c dla pewnej stałej c, to jego rozwiazanie zajmuje czas stały Θ(1). Załóżmy, że dzielimy problem wyjściowy na a (a 1) podproblemów, każdy o rozmiarze n/b (dokładniej n b lub n b ), gdzie b>1, a,b2 Z. Niech dalej D(n) jest czasem dzielenia problemów na podproblemy, zaś C(n) czasem scalania ich rozwiazań wpełne rozwiazanie oryginalnego problemu. Wówczas czas działania takiego algorytmu dany jest następujac a rekurencja: T (n) = Θ(1) gdy n c at ( n b )+f(n) gdy n > c, (22) dla f(n) = C(n) +D(n). Jak pamiętamy twierdzenie 1 (wykład 4) podaje metodę rozwiazania tego typu rekurencji. Przeanalizujmy drzewo rekursji (22), aby pokazać, jakich algorytmów dotycza poszczególne przypadki opisane w twierdzeniu o rekurencji uniwersalnej. 11
12 Zauważmy, że funkcja n! n log b a informuje o liczbie podproblemów o najmniejszym rozmiarze, a zatem, wobec przyjętych założeń, algorytm potrzebuje n log b a Θ(1) jednostek czasu, aby rozwiazać wszystkietepodproblemy.funkcja f reprezentuje czas podziału problemu na podproblemy i łaczenie ich rozwiazań w rozwiazanie problemu wyjściowego. Stad przypadek pierwszy twierdzenia o rekurencji uniwersalnej (f(n) = O(n log b a " ), dla pewnego ε > 0) obejmuje algorytmy, w których koszt rozwiazania podproblemów o rozmiarach n<c,jest wielomianowo większy niż połaczone koszty etapów I-Dzieli III - Połacz algotytmu. Odwrotna sytuację opisuje punkt 3. twierdzenia, tam funkcja f jest co najmniej rzędu niż n log b a+", przy pewnym ε>0. Jeśli zaś koszt wszystkich etapów jest tego samego rzędu (rozkłada się on równomiernie po wszytkich poziomach drzewa rekursji), to złożoność czasowa algorytmu jest opisana przez przypadek 2. twierdzenia o rekurencji uniwersalnej. 4 Sortowanie przez scalanie Algorytm sortowania przez scalanie (łaczenie) jest przykładem zastosowania metody "dziel i zwyciężaj", wobec tego jego działanie można opisać zapomoca schematu charakterystycznego dla tego podejścia: Dziel Dzielimy n -elementowyci ag na dwa podciagi o rozmiarach, odpowiednio bn/2c i dn/2e każdy. Zwyciężaj Sortujemy otrzymane podciagi, używajac rekurencyjnie sortowania 12
13 przez scalanie. Połacz Łaczymy posortowane podciagi w jeden posortowany ciag. (Mechanizm rekursji nie uruchamia się, gdy ciag przeznaczony do sortowania ma długość 1.) Zapiszemy teraz badany algorytm nieco dokładniej, wykorzystujac przyjęty pseudojęzyk Mergesort(l, r : naturalne) Dane wejściowe: ciag elementów a =[a[l],..., a[r]], której bedziemy sortować; Dane wyjściowe: ciag [a[i 1 ],..., a[i r l+1 ]], bed acy permutacjaci agu a, spełniajac a warunek a[i 1 ] a[i 2 ]... a[i r l+1 ]; var i,j,k,m: naturalne begin if r l>0 then begin m := (r + l)div2; Mergesort(l, m); Mergesort(m +1,r); for i := 1 to m l +1do b[i] :=a[l + i 1]; for j:=m+1 to r do c[j-m]:=a[j]; i:=1;j:=1; b[m+1]:=max; c[r-m+1]:=max; 13
14 end; end. for k:=l to r do if b[i]<c[j] then begin a[k]:=b[i]; i:=i+1;end; else begin a[k]:=c[j]; j:=j+1; end; Chcac posortować cała tablicę a = [a[1],..., a[n]], wywołujemy Mergesort dla l =1ir = n. Wpowyższym zapisie występuje zmienna max, która jest największa z liczb w ustalonej reprezentacji liczb całkowitych. Wprowadzenie jej pozwoliło uniknać testu końca tablic b i c. Analizę powyższego algorytmu rozpoczniemy od wyznaczenia rzędu złożoności czasowej. Twierdzenie 7. Procedura Mergesort dla ciagu n - elementowego działa w czasie Θ(n lg n). Dowód: Niech T (n) oznacza czas potrzebny do posortowania n -elementowego ciagu. Zgodnie ze schematem "dziel i zwyciężaj" musimy zbadać, ile czasu potrzebanarealizację poszczególnych etapów: Dziel: Wyznaczenie środka przedziału - punktu podziału n+1 2 -zajmuje czas stały D(n) =Θ(1). Zwyciężaj: Rozwiazujemy rekurencyjnie dwa problemy każdy rozmiaru n/2 ( bn/2c lub dn/2e),co zajmuje czas 2T (n/2). Połacz: Procedura łaczenia działa w czasie C(n) =Θ(n) -trzypętle wykonuj ace co najwyżej n przebiegów każda. Przyjmujac, że sortowanie tablicy jednoelementowej odbywa się w czasie stałym Θ(1), uzyskujemy następujac a zależność rekurencyjna określajac a złożoność czasowa algorytmu Mergesort Θ(1) gdy n =1 T (n) = 2T ( n 2 )+C(n)+D(n) gdy n > 1 idalej T (n) = Θ(1) gdy n =1 2T ( n 2 )+Θ(n) gdy n > 1. 14
15 Kładac a =2, b =2if(n) =D(n) +C(n) =Θ(n) i korzystajac z punktu drugiego twierdzenia o rekurencji uniwersalnej mamy T (n) =Θ(n lg 2 lg n) =Θ(n lg n). Stwierdziliśmy już, że złożoność czasowa Mergesort jest rzędu liniowo-logarytmicznego. Nie zadowolimy się jeszcze ta informacja, gdyżniewiemy, jakiwspółczynnik kryje sięwnotacjiθ,może to być 2,3,4 wówczas otrzymany wynik odzwieciedla zachowanie algorytmu dla większości n. Jednak powyższa analiza nie pozwala nam wykluczyć przypadku, gdy współczynnik jest równy 10 20, 10 30, itd. Wtedy możemy powiedzieć, że czas działania jest liniowo-logarytmiczny tylko dla danych wejściowych o gigantycznych rozmiarach. Aby zbadać, jak jest w rzeczywistości, zajmijmy się ocena dokładnej liczby operacji dominujacych - porównań elementów ciagu sortowanego - wykonywanych przez Mergesort. Twierdzenie 8. Aby posortować n -elementow a tablicęzapomoc a sortowania przez scalanie należy wykonać n logn + O(n) porównań. Dowód: Dla uproszczenia tego dowodu zajmiemy się tylko tymi liczbami naturalnymi, które sa potęgami liczby 2. Niech C(n) oznacza liczbę porównań wykonywanych przez Mergesort przy sortowaniu n - elementowej tablicy. Wówczas liczba porównań wykonywanych w rekurencyjnych wywołaniach procedury po pierwszym podziale - sortowanie tablic dn/2e i bn/2c elemetowej - jest równa, odpowiednio C(dn/2e) oraz C(bn/2c). Liczba porównań wykonywanych w celu scalenia wynosi n - jedno dla każdej wartości k =1,..., n. Zatem całkowita liczba operacji dominujacych dana jest za pomoca rekurencji C(dn/2e)+C(bn/2c)+n dla n 2 C(n) = (23) 0 dla n =1. Ponieważ roważamy jedynie liczby naturalne n postaci n =2 k, dla pewnego k 2 N, rekurencję (23) możemy zapisać wnastępujacej formie 2C(2 C(2 k )= k 1 )+2 k dla k 1 0 dla k =0. Dzielac obie strony przez 2 k dostajemy C(2 k ) = C(2k 1 ) k 2 k 1 Iterujac k-krotnie powyższy wzór mamy C(2 k ) = C(2k 1 ) +1= C(2k 2 ) +2= C(2k 3 ) +3=... = C(20 ) + k = k, 2 k 2 k 1 2 k 2 2 k
16 co oznacza, że dla n =2 k rozwiazanie powyższej rekurencji jest C(n) =n log 2 n. W przypadku, gdy n jest dowolna liczba naturalna rozwiazanie rekurencji (23) wymaga pewnych dodatkowych obliczeń wykorzystujacych następujacy wzór sumacyjny: Lemat 9. Niech n 2 N. Dla dowolnej liczby naturalnej b 2 zachodzi blog b kc =(n +1)blog b nc bblog b nc+1 b. b 1 1 k n Twierdzenie 10. Dla dowolnego n 2 N liczba porównań wykonywanych przez Mergesort w celu posortowania n elementowej tablicy opisana jest rekurencja (23), której dokładne rozwiazanie ma postać C(n) =n blg nc +2n 2 blg nc+1. (24) Dowód: Wobec analizy przedstawionej w dowodzie twierdzenia 6. wystarczy jedynie wyznaczyć dokładne rozwiazanie rekurencji (23) dla dowolnych n 2 N. Rozważmy pomocniczo ciag 2 dla n =1 D(n) = C(n +1) C(n) dla n 2. Zauważmy, że D(bn/2c)+1 dla n 2 D(n) = 2 dla n =1. Istotnie, dla n parzystych mamy D(n) =C(d(n +1)/2e)+C(b(n +1)/2c)+n +1 C(dn/2e) C(bn/2c) n = C(n/2+1)+C(n/2) + n +1 C(n/2) C(n/2) n C(n/2+1) C(n/2) + 1 = D(bn/2c)+1. Podobnie postępujemy dla n nieparzystych D(n) =C(d(n +1)/2e)+C(b(n +1)/2c)+n +1 C(dn/2e) C(bn/2c) n (25) = C((n +1)/2) + C((n +1)/2) + n +1 C((n +1)/2) C((n 1)/2) n C((n 1)/2+1) C((n 1)/2) + 1 = D(bn/2c)+1. Zaten dla dowolnego n 2 zachodzi wzór (25). Wyznaczymy teraz jawnapostać ciagu D : D(n) =D(bn/2c)+1=D(bbn/2c /2c)
17 = D( n/2 2 j )+2=... = D( n/2 blg nck )+blg nc = blg nc +2. Stad C(n +1)=C(n)+blg nc +2 dla dowolnych n 1. Iteracja powyższego wzoru (odpowiednie twierdzenie 2 z wykładu o rozwiazaniach dokładnych rekurencji) pozwalajastwierdzić, że n C(n +1)= (blg kc +2) idalej,dlan 2 n 1 n 1 C(n) = (blg kc +2)=2n 2+ blg kc. k=1 k=1 k=1 Korzystajac zlematu3.możemy wyznaczyć wartość sumy n 1 blg kc =(n +1)blg nc 2 blg nc+1 +2 blg nc, k=1 ast ad mamy ostatecznie C(n) =n blg nc +2n 2 blg nc+1. Ćwiczenie 1. Zbadać własności funkcjibędacej rozwiazaniem rekurencji (23). Pokazać, że C(n) =n lg n + nθ(1 flg ng), gdzie θ(x) =1+x 2 x przyjmuje wartości dodatnie w przedziale (0, 1) idodatkowospełnia warunki θ(0) = θ(1) = 0 oraz 0 <θ(x) < dla x 2 (0, 1). Rozwiazanie: Podstawiajac blg nc =lgn flg ng do wzoru (24), otrzymujemy C(n) =n lg n nflg ng+2n 2 lg n flg ng+1 1 flg ng = n lg n nflg ng+2n n2 = n lg n + n(2 flg ng 2 1 flg ng )=nlg n + nθ(1 flg ng). Aby uzyskać żadane oszacowanie wystarczy wyznaczyć wartość największa funkcji θ w przedziale [0, 1]. W tym celu wyznaczmy punkty stacjonarne, tzn. miejsca zerowe pochodnej funkcji θ : θ 0 (x) =1 2 x ln 2. 17
18 Jak łatwo wyliczyć (szczególnie za pomoca dowolnego programu matematycznego rozwiazaniem równania 1 2 x ln(ln 2) ln 2 = 0 jest liczba x 0 = ln 2 (¼ ). Ponieważ θ(0) = θ(1) = 0 i θ(x 0 ) ¼ , wnosimy, że maksymalna wartość funkcji θ w przedziale [0, 1] nie przekracza 0.087, co ilustruje poniższy rysunek y Wykres funkcji [0, 1] 3 x! θ(x) x 5 Bibliografia 1. Banachowski L., Diks K., Algorytmy i struktury danych, Wydawnictwo Naukowo-Techniczne, Warszawa Cormen T.H., E.Leiserson Ch., Rivest R.L., Wprowadzenie do algorytmów, Wydawnictwo Naukowo-Techniczne, Warszawa, Manber U., Introduction to Algorithms, Addison-Wesley Publishing Company, New York, Sedgewick R., Flajolet P., An introduction to the Analysis of Algorithms, Addison-Wesley Publishing Company, New York,
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 4a: Rozwiązywanie rekurencji http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Czas działania programu Dla konkretnych
Krzysztof Gniłka. Twierdzenie o rekurencji uniwersalnej
Krzysztof Gniłka Twierdzenie o rekurencji uniwersalnej Spis treści Wstęp 3 Rozdział 1 Definicje i pomocnicze lematy 4 1 Części całkowite liczb 4 2 Logarytmy 9 3 Notacja asymptotyczna 12 Rozdział 2 Metoda
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:
Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Metoda Dziel i zwyciężaj. Problem Sortowania, cd. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Algorytmy
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Algorytm 1. Termin algorytm jest używany w informatyce
Wykład z równań różnicowych
Wykład z równań różnicowych 1 Wiadomości wstępne Umówmy się, że na czas tego wykładu zrezygnujemy z oznaczania n-tego wyrazu ciągu symbolem typu x n, y n itp. Zamiast tego pisać będziemy x (n), y (n) itp.
i = n = n 1 + n 2 1 i 2 n 1. n(n + 1)(2n + 1) n (n + 1) =
Druga zasada inducji matematycznej Niech m będzie liczbą całowitą, niech p(n) będzie ciągiem zdań zdefiniowanych na zbiorze {n Z: n m} oraz niech l będzie nieujemną liczbą całowitą. Jeśli (P) wszystie
Strategia "dziel i zwyciężaj"
Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania
Podstawy Informatyki. Sprawność algorytmów
Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych
Efektywna metoda sortowania sortowanie przez scalanie
Efektywna metoda sortowania sortowanie przez scalanie Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Metoda dziel i zwycięŝaj Dzielimy
Sortowanie przez scalanie
Sortowanie przez scalanie Wykład 2 12 marca 2019 (Wykład 2) Sortowanie przez scalanie 12 marca 2019 1 / 17 Outline 1 Metoda dziel i zwyciężaj 2 Scalanie Niezmiennik pętli - poprawność algorytmu 3 Sortowanie
Matematyka dyskretna dla informatyków
Matematyka dyskretna dla informatyków Część I: Elementy kombinatoryki Jerzy Jaworski Zbigniew Palka Jerzy Szymański Uniwersytet im. Adama Mickiewicza Poznań 2007 4 Zależności rekurencyjne Wiele zależności
Wykład 8. Informatyka Stosowana. 26 listopada 2018 Magdalena Alama-Bućko. Informatyka Stosowana Wykład , M.A-B 1 / 31
Wykład 8 Informatyka Stosowana 26 listopada 208 Magdalena Alama-Bućko Informatyka Stosowana Wykład 8 26..208, M.A-B / 3 Definicja Ciagiem liczbowym {a n }, n N nazywamy funkcję odwzorowujac a zbiór liczb
Zaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)
Algorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA WYDZIAŁ INŻYNIERII ELEKTRYCZNEJ i KOMPUTEROWEJ Katedra Automatyki i Technik Informacyjnych Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew
Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].
Zadanie 1. Wiązka zadań Od szczegółu do ogółu Rozważmy następujący algorytm: Dane: Algorytm 1: k liczba naturalna, A[1...2 k ] tablica liczb całkowitych. n 1 dla i=1,2,,k wykonuj n 2n s 1 dopóki s
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
Wykład 7. Informatyka Stosowana. 21 listopada Informatyka Stosowana Wykład 7 21 listopada / 27
Wykład 7 Informatyka Stosowana 21 listopada 2016 Informatyka Stosowana Wykład 7 21 listopada 2016 1 / 27 Relacje Informatyka Stosowana Wykład 7 21 listopada 2016 2 / 27 Definicja Iloczynem kartezjańskim
Rozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego
Rozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego WMS, 2019 1 Wstęp Niniejszy dokument ma na celu prezentację w teorii i na przykładach rozwiązywania szczególnych typów równań
Funkcja kwadratowa. f(x) = ax 2 + bx + c = a
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax, a R \ {0}.
Matematyka dyskretna. Andrzej Łachwa, UJ, /14
Matematyka dyskretna Andrzej Łachwa, UJ, 2012 andrzej.lachwa@uj.edu.pl 2/14 Funkcji podłogi z logarytmu można użyć do wyliczenia liczby cyfr liczby naturalnej k (k>0): w układzie dziesiętnym log 10 (k)
Równania różnicowe. Dodatkowo umawiamy się, że powyższy iloczyn po pustym zbiorze indeksów, czyli na przykład 0
Równania różnicowe 1 Wiadomości wstępne Umówmy się, że na czas tego wykładu zrezygnujemy z oznaczania n-tego wyrazu ciągu symbolem typu x n, y n itp Zamiast tego pisać będziemy x (n), y (n) itp Ponadto
Funkcja kwadratowa. f(x) = ax 2 + bx + c,
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax 2 + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax 2, a R \
Przykładowe zadania z teorii liczb
Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę
Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.
Funkcje wymierne Jerzy Rutkowski Teoria Przypomnijmy, że przez R[x] oznaczamy zbiór wszystkich wielomianów zmiennej x i o współczynnikach rzeczywistych Definicja Funkcją wymierną jednej zmiennej nazywamy
Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak
Indukcja Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Charakteryzacja zbioru liczb naturalnych Arytmetyka liczb naturalnych Jedną z najważniejszych teorii matematycznych jest arytmetyka
Ciagi liczbowe wykład 4
Ciagi liczbowe wykład 4 dr Mariusz Grzadziel Katedra Matematyki, Uniwersytet Przyrodniczy we Wrocławiu semestr zimowy, r. akad. 2016/2017 Definicja (ciagu liczbowego) Ciagiem liczbowym nazywamy funkcję
Ciągi liczbowe wykład 3
Ciągi liczbowe wykład 3 dr Mariusz Grządziel 3 kwietnia 203 Definicja (ciągu liczbowego). Ciagiem liczbowym nazywamy funkcję odwzorowuja- ca zbiór liczb naturalnych w zbiór liczb rzeczywistych. Wartość
Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne.
Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne. Definicja. Niech a i b będą dodatnimi liczbami rzeczywistymi i niech a. Logarytmem liczby b przy podstawie
Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra
Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2015 Co można zrobić z układem równań... tak, aby jego rozwiazania się nie zmieniły? Rozważam
Metody Numeryczne Wykład 4 Wykład 5. Interpolacja wielomianowa
Sformułowanie zadania interpolacji Metody Numeryczne Wykład 4 Wykład 5 Interpolacja wielomianowa Niech D R i niech F bȩdzie pewnym zbiorem funkcji f : D R. Niech x 0, x 1,..., x n bȩdzie ustalonym zbiorem
Programowanie dynamiczne cz. 2
Programowanie dynamiczne cz. 2 Wykład 7 16 kwietnia 2019 (Wykład 7) Programowanie dynamiczne cz. 2 16 kwietnia 2019 1 / 19 Outline 1 Mnożenie ciągu macierzy Konstruowanie optymalnego rozwiązania 2 Podstawy
Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku
Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Rekurencja 11 Wieże Hanoi Rekurencja jest to zdolność podprogramu (procedury lub funkcji) do wywoływania samego siebie Zacznijmy
Wykład z równań różnicowych
Wykład z równań różnicowych Umówmy się, że na czas tego wykładu zrezygnujemy z oznaczania n-tego wyrazu ciągu symbolem typu x n, y n itp. Zamiast tego pisać będziemy x (n), y (n) itp. Definicja 1. Operatorem
Finanse i Rachunkowość studia niestacjonarne Wprowadzenie do teorii ciągów liczbowych (treść wykładu z 21 grudnia 2014)
dr inż. Ryszard Rębowski DEFINICJA CIĄGU LICZBOWEGO Finanse i Rachunkowość studia niestacjonarne Wprowadzenie do teorii ciągów liczbowych (treść wykładu z grudnia 04) Definicja ciągu liczbowego Spośród
Wykład 2. Poprawność algorytmów
Wykład 2 Poprawność algorytmów 1 Przegląd Ø Poprawność algorytmów Ø Podstawy matematyczne: Przyrost funkcji i notacje asymptotyczne Sumowanie szeregów Indukcja matematyczna 2 Poprawność algorytmów Ø Algorytm
Metody numeryczne I Równania nieliniowe
Metody numeryczne I Równania nieliniowe Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/66 Równania nieliniowe 1. Równania nieliniowe z pojedynczym pierwiastkiem
Wykład 4: Iteracja, indukcja i rekurencja
Teoretyczne podstawy informatyki Wykład 4: Iteracja, indukcja i rekurencja Prof. dr hab. Elżbieta Richter-Wąs 1 Słowem wstępu Iteracja, indukcja i rekurencja to podstawowe zagadnienia pojawiające się przy
Rekurencja. Przykład. Rozważmy ciąg
Rekurencja Definicje rekurencyjne Definicja: Mówimy, iż ciąg jest zdefiniowany rekurencyjnie, jeżeli: (P) Określony jest pewien skończony zbiór wyrazów tego ciągu, zwykle jest to pierwszy wyraz tego ciągu
Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott Metody konstrukcji algorytmów: Siłowa (ang. brute force), Dziel i zwyciężaj (ang. divide-and-conquer), Zachłanna (ang.
Wstęp do programowania. Dziel i rządź. Piotr Chrząstowski-Wachtel
Wstęp do programowania Dziel i rządź Piotr Chrząstowski-Wachtel Divide et impera Starożytni Rzymianie znali tę zasadę Łatwiej się rządzi, jeśli poddani są podzieleni Nie chodziło im jednak bynajmniej o
Obliczenia naukowe Wykład nr 6
Obliczenia naukowe Wykład nr 6 Paweł Zieliński Katedra Informatyki, Wydział Podstawowych Problemów Techniki, Politechnika Wrocławska Literatura Literatura podstawowa [1] D. Kincaid, W. Cheney, Analiza
Luty 2001 Algorytmy (4) 2000/2001
Mając dany zbiór elementów, chcemy znaleźć w nim element największy (maksimum), bądź najmniejszy (minimum). We wszystkich naturalnych metodach znajdywania najmniejszego i największego elementu obecne jest
Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,
Oznaczenia: Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze, to interesuje nas złożoność obliczeniowa
VI. Równania różniczkowe liniowe wyższych rzędów
VI. 1. Równanie różniczkowe liniowe n-tego rzędu o zmiennych współczynnikach Niech podobnie jak w poprzednim paragrafie K = C lub K = R. Podobnie jak w dziedzinie rzeczywistej wprowadzamy pochodne wyższych
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 5 część I 2 Iteracja Rekurencja Indukcja Iteracja Rekurencja Indukcja Algorytmy sortujące Rozwiazywanie
Algorytmy i Struktury Danych, 2. ćwiczenia
Algorytmy i Struktury Danych, 2. ćwiczenia 2017-10-13 Spis treści 1 Optymalne sortowanie 5 ciu elementów 1 2 Sortowanie metodą Shella 2 3 Przesunięcie cykliczne tablicy 3 4 Scalanie w miejscu dla ciągów
Analiza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą
Wykład 5. Informatyka Stosowana. 7 listopada Informatyka Stosowana Wykład 5 7 listopada / 28
Wykład 5 Informatyka Stosowana 7 listopada 2016 Informatyka Stosowana Wykład 5 7 listopada 2016 1 / 28 Definicja (Złożenie funkcji) Niech X, Y, Z, W - podzbiory R. Niech f : X Y, g : Z W, Y Z. Złożeniem
Matematyka Dyskretna 2/2008 rozwiązania. x 2 = 5x 6 (1) s 1 = Aα 1 + Bβ 1. A + B = c 2 A + 3 B = d
C. Bagiński Materiały dydaktyczne 1 Matematyka Dyskretna /008 rozwiązania 1. W każdym z następujących przypadków podać jawny wzór na s n i udowodnić indukcyjnie jego poprawność: (a) s 0 3, s 1 6, oraz
Algorytmy w teorii liczb
Łukasz Kowalik, ASD 2004: Algorytmy w teorii liczb 1 Algorytmy w teorii liczb Teoria liczb jest działem matemtyki dotyczącym własności liczb naturalnych. Rozważa się zagadnienia związane z liczbami pierwszymi,
Rozdział 6. Ciągłość. 6.1 Granica funkcji
Rozdział 6 Ciągłość 6.1 Granica funkcji Podamy najpierw dwie definicje granicy funkcji w punkcie i pokażemy ich równoważność. Definicja Cauchy ego granicy funkcji w punkcie. Niech f : X R, gdzie X R oraz
Matematyka dyskretna
Matematyka dyskretna wykład 1: Indukcja i zależności rekurencyjne Gniewomir Sarbicki Literatura Kenneth A. Ross, Charles R. B. Wright Matematyka Dyskretna PWN 005 J. Jaworski, Z. Palka, J. Szymański Matematyka
Rozdział 4. Ciągi nieskończone. 4.1 Ciągi nieskończone
Rozdział 4 Ciągi nieskończone W rozdziale tym wprowadzimy pojęcie granicy ciągu. Dalej rozszerzymy to pojęcie na przypadek dowolnych funkcji. Jak zauważyliśmy we wstępie jest to najważniejsze pojęcie analizy
Zasady analizy algorytmów
Zasady analizy algorytmów A więc dziś w programie: - Kilka ważnych definicji i opisów formalnych - Złożoność: czasowa i pamięciowa - Kategorie problemów - Jakieś przykłady Problem: Zadanie możliwe do rozwiązania
Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).
Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z
VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.
VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa. W rozdziale tym zajmiemy się dokładniej badaniem stabilności rozwiązań równania różniczkowego. Pojęcie stabilności w
Wyk lad 7 Baza i wymiar przestrzeni liniowej
Wyk lad 7 Baza i wymiar przestrzeni liniowej 1 Baza przestrzeni liniowej Niech V bedzie przestrzenia liniowa. Powiemy, że podzbiór X V jest maksymalnym zbiorem liniowo niezależnym, jeśli X jest zbiorem
Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!
Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Pseudokod: silnia(n): jeżeli n == 0 silnia = 1 w przeciwnym
Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie
Więcej o sprawności algorytmów Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Załóżmy, że możemy wykonać dane zadanie przy użyciu dwóch algorytmów: jednego o złożoności czasowej
Łatwy dowód poniższej własności pozostawiamy czytelnikowi.
Rozdział 3 Logarytm i potęga 3.1 Potęga o wykładniku naturalnym Definicja potęgi o wykładniku naturalnym. Niech x R oraz n N. Potęgą o podstawie x i wykładniku n nazywamy liczbę x n określoną następująco:
Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra
Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Uwarunkowanie zadania numerycznego Niech ϕ : R n R m będzie pewna funkcja odpowiednio wiele
Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów
Treść wykładu Pierścienie wielomianów. Definicja Niech P będzie pierścieniem. Wielomianem jednej zmiennej o współczynnikach z P nazywamy każdy ciąg f = (f 0, f 1, f 2,...), gdzie wyrazy ciągu f są prawie
Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie:
Ciągi rekurencyjne Zadanie 1 Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie: w dwóch przypadkach: dla i, oraz dla i. Wskazówka Należy poszukiwać rozwiązania w postaci, gdzie
Rozdział 1 PROGRAMOWANIE LINIOWE
Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując
5. Rozwiązywanie układów równań liniowych
5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a
Tematyka do egzaminu ustnego z matematyki. 3 semestr LO dla dorosłych
Tematyka do egzaminu ustnego z matematyki 3 semestr LO dla dorosłych I. Sumy algebraiczne 1. Dodawanie i odejmowanie sum algebraicznych 2. Mnożenie sum algebraicznych 3. Wzory skróconego mnożenia - zastosowanie
Układy równań i równania wyższych rzędów
Rozdział Układy równań i równania wyższych rzędów Układy równań różniczkowych zwyczajnych Wprowadzenie W poprzednich paragrafach zajmowaliśmy się równaniami różniczkowymi y = f(x, y), których rozwiązaniem
Zaliczenie. Egzamin. lub. Wykład. Zaliczenie. Ćwiczenie. 3 zadania. Projekty. Ocena. Na ocenę
Zaliczenie Egzamin Ocena lub Zerówka Wykład z Zaliczenie Ocena Ćwiczenie Projekty 3 zadania Na ocenę Sylabus O http://wmii.uwm.edu.pl/~jakula/sylabus_23 17N1-ALISTD_PL.pdf JAK? CO? ILE? Polecane Cormen
n=0 (n + r)a n x n+r 1 (n + r)(n + r 1)a n x n+r 2. Wykorzystując te obliczenia otrzymujemy, że lewa strona równania (1) jest równa
Równanie Bessela Będziemy rozważać następujące równanie Bessela x y xy x ν )y 0 ) gdzie ν 0 jest pewnym parametrem Rozwiązania równania ) nazywamy funkcjami Bessela rzędu ν Sprawdzamy, że x 0 jest regularnym
Elementy metod numerycznych
Wykład nr 5 i jej modyfikacje. i zera wielomianów Założenia metody Newtona Niech będzie dane równanie f (x) = 0 oraz przedział a, b taki, że w jego wnętrzu znajduje się dokładnie jeden pierwiastek α badanego
Algorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Wymagania edukacyjne z matematyki klasa II technikum
Wymagania edukacyjne z matematyki klasa II technikum Poziom rozszerzony Obowiązują wymagania z zakresu podstawowego oraz dodatkowo: 1. JĘZYK MATEMATYKI I FUNKCJE LICZBOWE Uczeń otrzymuje ocenę dopuszczającą
Analiza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe 15 stycznia 2019 Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r P Jaka wartość zostanie zwrócona
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Organizacja wykładu. Problem Sortowania. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury
Zaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
Analiza Algorytmów - Moduł 2- Ćwiczenia
Analiza Algorytmów - Moduł 2- Ćwiczenia Aleksandra Orpel 1 Niezmienniki pętli Ćwiczenie 1. Wykaż, że podany warunek "k 4 > 2m 6 " jest niezmiennikiem pętli 1while 1 mdo 2 3 m := 2m; 4 k := 3k; 5 end: Rozwiazanie:
Matematyka Dyskretna Zestaw 2
Materiały dydaktyczne Matematyka Dyskretna (Zestaw ) Matematyka Dyskretna Zestaw 1. Wykazać, że nie istnieje liczba naturalna, która przy dzieleniu przez 18 daje resztę 13, a przy dzieleniu przez 1 daje
Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych klasa druga zakres rozszerzony
Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych klasa druga zakres rozszerzony Wymagania konieczne (K) dotyczą zagadnień elementarnych, stanowiących swego rodzaju podstawę, zatem
Programowanie Współbieżne. Algorytmy
Programowanie Współbieżne Algorytmy Sortowanie przez scalanie (mergesort) Algorytm :. JEŚLI jesteś rootem TO: pobierz/wczytaj tablice do posortowania JEŚLI_NIE to pobierz tablicę do posortowania od rodzica
Metody numeryczne. dr Artur Woike. Ćwiczenia nr 2. Rozwiązywanie równań nieliniowych metody połowienia, regula falsi i siecznych.
Ćwiczenia nr 2 metody połowienia, regula falsi i siecznych. Sformułowanie zagadnienia Niech będzie dane równanie postaci f (x) = 0, gdzie f jest pewną funkcją nieliniową (jeżeli f jest liniowa to zagadnienie
Układy równań i nierówności liniowych
Układy równań i nierówności liniowych Wiesław Krakowiak 1 grudnia 2010 1 Układy równań liniowych DEFINICJA 11 Układem równań m liniowych o n niewiadomych X 1,, X n, nazywamy układ postaci: a 11 X 1 + +
Wyk lad 11 1 Wektory i wartości w lasne
Wyk lad 11 Wektory i wartości w lasne 1 Wektory i wartości w lasne Niech V bedzie przestrzenia liniowa nad cia lem K Każde przekszta lcenie liniowe f : V V nazywamy endomorfizmem liniowym przestrzeni V
Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.
Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy
Rozwiazywanie układów równań liniowych. Ax = b
Rozwiazywanie układów równań liniowych Ax = b 1 PLAN REFERATU: Warunki istnienia rozwiazań układu Metoda najmniejszych kwadratów Metoda najmniejszych kwadratów - algorytm rekurencyjny Rozwiazanie układu
W. Guzicki Zadanie IV z Informatora Maturalnego poziom rozszerzony 1
W. Guzicki Zadanie IV z Informatora Maturalnego poziom rozszerzony 1 Zadanie IV. Dany jest prostokątny arkusz kartony o długości 80 cm i szerokości 50 cm. W czterech rogach tego arkusza wycięto kwadratowe
PLAN WYNIKOWY DLA KLASY DRUGIEJ POZIOM PODSTAWOWY I ROZSZERZONY. I. Proste na płaszczyźnie (15 godz.)
PLAN WYNIKOWY DLA KLASY DRUGIEJ POZIOM PODSTAWOWY I ROZSZERZONY I. Proste na płaszczyźnie (15 godz.) Równanie prostej w postaci ogólnej Wzajemne połoŝenie dwóch prostych Nierówność liniowa z dwiema niewiadomymi
Programowanie Równoległe i Rozproszone. Algorytm Kung a. Algorytm Kung a. Programowanie Równoległe i Rozproszone Wykład 8. Przygotował: Lucjan Stapp
Programowanie Równoległe i Rozproszone Lucjan Stapp Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska (l.stapp@mini.pw.edu.pl) 1/34 PRiR Algorytm Kunga Dany jest odcinek [a,b] i ciągła funkcja
Projektowanie i analiza algorytmów
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Projektowanie i analiza algorytmów www.pk.edu.pl/~zk/piaa_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład
Wykład 3. Metoda dziel i zwyciężaj
Wykład 3 Metoda dziel i zwyciężaj 1 Wprowadzenie Technika konstrukcji algorytmów dziel i zwyciężaj. przykładowe problemy: Wypełnianie planszy Poszukiwanie (binarne) Sortowanie (sortowanie przez łączenie
Klasa 1 technikum. Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:
Klasa 1 technikum Przedmiotowy system oceniania wraz z wymaganiami edukacyjnymi Wyróżnione zostały następujące wymagania programowe: konieczne (K), podstawowe (P), rozszerzające (R), dopełniające (D) i
Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Materiały dydaktyczne na zajęcia wyrównawcze z matematyki dla studentów pierwszego roku kierunku zamawianego Inżynieria Środowiska w ramach projektu Era inżyniera pewna lokata na przyszłość Projekt Era
S n = a 1 1 qn,gdyq 1
Spis treści Powtórzenie wiadomości... 9 Zadania i zbiory... 10 Obliczenia... 18 Ciągi... 27 Własności funkcji... 31 Funkcje liniowe i kwadratowe... 39 Wielomiany i wyrażenia wymierne... 45 Funkcje wykładnicze
Matematyka i Statystyka w Finansach. Rachunek Różniczkowy
Rachunek Różniczkowy Ciąg liczbowy Link Ciągiem liczbowym nieskończonym nazywamy każdą funkcję a która odwzorowuje zbiór liczb naturalnych N w zbiór liczb rzeczywistych R a : N R. Tradycyjnie wartość a(n)
Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61
Metody numeryczne I Dokładność obliczeń numerycznych. Złożoność obliczeniowa algorytmów Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61 ... the purpose of
Algorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 9: Programowanie
Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.
Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne. Funkcja homograficzna. Definicja. Funkcja homograficzna jest to funkcja określona wzorem f() = a + b c + d, () gdzie współczynniki
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego
2. FUNKCJE. jeden i tylko jeden element y ze zbioru, to takie przyporządkowanie nazwiemy FUNKCJĄ, lub
WYKŁAD 2 1 2. FUNKCJE. 2.1.PODSTAWOWE DEFINICJE. Niech będą dane zbiory i. Jeżeli każdemu elementowi x ze zbioru,, przyporządkujemy jeden i tylko jeden element y ze zbioru, to takie przyporządkowanie nazwiemy