A Notacjaasymptotycza Badaj c du»e obiekty kombiatorycze cz sto ie jest koiecze pozaie dokªadej warto±ci okre±loej wielko±ci (szczególie gdy wzór dokªady jest skomplikoway), a jedyie jej warto± przybli»o, poda prostym wzorem. Tego typu mo»liwo±ci daje otacja asymptotycza, której po±wi coy jest te rozdziaª. A.1. Asymptotyka bez otacji asymptotyczej. Przykªad A.1. Zbada zachowaie asymptotycze liczb Fiboacciego. Pokaza,»e F = roud ( 1 5 Φ ), gdzie roud( ) ozacza zaokr gleie do ajbli»szej liczby caªkowitej, Φ = 1+ 5 2, zaa jest jako zªota liczba (ozaczaa tak a cze± greckiego architekta i rze¹biarza Fidiasza, który w swoich dzieªach stosowaª zªoty podziaª). Twierdzeie A.1. (Stirlig). Dla ka»dego N zachodzi 2π e <! < 2π e + 1 12. (A.1) Tabela A.1 pokazuje,»e przybli»eie Stirliga jest do± dokªade awet dla maªych warto±ci. Tablica A.1: Przybli»eia Stirliga dla 10 (bª d w %) 2π e 2π e + 1 12! bª d bª d 1 1 0,922 7,7863 1,002 0,2274 2 2 1,919 4,0498 2,001 0,0326 3 6 5,836 2,7298 6,001 0,0100 4 24 23,506 2,0576 24,001 0,0043 5 120 118,019 1,6507 120,003 0,0022 6 720 710,078 1,3780 720,009 0,0013 7 5 040 4 980,396 1,1826 5 040,040 0,0008 8 40 320 39 902,395 1,0357 40 320,218 0,0005 9 362 880 359 536,873 0,9213 362 881,378 0,0004 10 3 628 800 3 598 695,619 0,8296 3 628 810,051 0,0003
2 A. Notacja asymptotycza W obu powy»szych przypadkach, mo»a zauwa»y brak otacji, która pozwalaªa by precyzyjie zapisa ró»e wariaty potoczego wyra»eia,»e dwie wielko±ci s w przybli-»eiu rówe dla du»ych. A.2. Symbol o-du»e (O) Pierwszym rozpatrywaym symbolem asymptotyczym jest symbol O (czytaj o du»e). Przy pomocy tego symbolu mo»emy zapisywa asymptotycze zachowaie si jedej fukcji w stosuku do asymptotyczego zachowaia si drugiej. Deicja A.1. (Symbol O). Niech f, g : N R b d dwiema fukcjami. Mówimy,»e f() jest rz du co ajwy»ej g() (przy ) i zapisujemy f() = O (g()), wtedy i tylko wtedy, gdy c>0 f() c g(). Przykªad A.2. Niech f : N R b dzie fukcj tak,»e f() = 2 dla ka»dego N. Sprawdzi które z ast puj cych wyra»e«s prawdziwe (a) f() = O (), (b) f() = O ( 2 ), (c) f() = O ( 3 ). Wyra»eie O (f()) = O (g()) ozacza,»e ka»da fukcja która jest O (f()) jest tak»e O (g()) (p. O ( 2 ) = O ( 3 )). Uwaga. Zapis przy u»yciu symboli asymptotyczych (w szczególym przypadku O) ie jest symetryczy. To zaczy, piszemy p. f() = O ( 2 ), ale ie mo»emy zapisa O ( 2 ) = f(). Podobie O ( 2 ) = O ( 3 ) ale O ( 3 ) O ( 2 ). Aby to sobie lepiej uzmysªowi mo»emy iterpretowa O (f()) jako klas fukcji które s rz du co ajwy»ej f(). Przykªad A.3. Pokaza,»e dla dowolych fukcji f, g : N R (a) f() = O (f()), (b) je»eli f() = O (g()), to f() = O (αg()) dla dowolej staªej α 0, (c) f() + g() = O (max{ f(), g() }), (d) je»eli istieje f(), to f() = O (g()) wtedy i tylko wtedy, gdy <. Wªaso± (d) z poprzediego przykªadu cz sto uªatwia sprawdzaie czy f() = O (g()), je»eli potramy wyliczy (oszacowa ) graic f(). Jedak ie zawsze ta graica istieje, co pokazuje ast puj cy przykªad: Przykªad A.4. Poda przykªady takich fukcji f, g : N R,»e f() = O (g()), ie istieje. a f() Przykªad A.5. Udowodi,»e log = O ( ) i O (log ).
A.3. Symbol o-maªe (o) 3 Przykªad A.6. Niech w : N R b dzie wielomiaem daym przez w() = a k k + a k 1 k 1 + + a 1 + a 0, gdzie a k 0. Pokaza,»e w() = O ( k). Wyra»eia zawieraj ce symbole asymptotycze mog by bardziej skomplikowae, a przykªad wyra»eie f() = g() + O (h()), rozumiemy jako f() g() = O (h()). Przykªad A.7. Pokaza,»e ( + 1) 3 = 3 + O ( 2 ). Przykªad A.8. Zale¹ bª d w ast puj cym rozumowaiu: Niech S() = 1+2+3+...+. Poiewa», ka»dy skªadik tej sumy jest, wi c uogóliaj c Przykªad A.3(c) a sum skªadików otrzymamy S() = O (max{1, 2,...,}) = O (). Zauwa»my,»e z Przykªadu 1.7 wyika,»e S() = 1 2 2 1, co w poª czeiu z Przykªadem A.2(a) daje S() O (). 2 Przykªad A.9. Poda przykªad takich fukcji f, g : N R,»e f() O (g()) i g() O (f()). A.3. Symbol o-maªe (o) Notacj asymptotycz o-maªe stosujemy, gdy jeda fukcja jest rz dowo (pomijalie) miejsza od drugiej. Deicja A.2. (Symbol o). Niech f,g : N R b d dwiema fukcjami. Mówimy wówczas,»e f() jest rz du miejszego i» g() (przy ) i zapisujemy f() = o(g()), je»eli c>0 f() < c g(). Przykªad A.10. Pokaza,»e dla dowolych fukcji f,g : N R (a) f() o(f()); (b) je»eli f() = o(g()), to f() = o(αg()) dla dowolej staªej α 0; (c) je»eli f() = o(g()), to f() = O (g()); (d) je»eli istieje, to f() = (g()) wtedy i tylko wtedy, gdy = 0. Czasami u»ywa si rówie» otacji ω zdeiowaej ast puj co: f() = ω(g()) wtedy i tylko wtedy, gdy g() = o(f()). Je»eli graica f() istieje, to f() = ω(g()) wtedy i tylko wtedy, gdy =. A.4. Pozostaªe symbole asymptotycze Przypomijmy,»e symbol O ozacza rz du co ajwy»ej. Istieje rówie» symbol asymptotyczy ozaczaj cy rz du co ajmiej jest im Ω.
4 A. Notacja asymptotycza Deicja A.3. (Symbol Ω). Niech f, g : N R b d dwiema fukcjami. Mówimy wówczas,»e f() jest rz du co ajmiej g() (przy ) i zapisujemy f() = Ω(g()), wtedy i tylko wtedy, gdy c>0 f() c g(). Zwró my uwag,»e f() = Ω(g()) wtedy i tylko wtedy, gdy g() = O (f()). Kolejy symbol asymptotyczy Θ odpowiada sformuªowaiu jest tego samego rz du. Deicja A.4. (Symbol Θ). Niech f, g : N R b d dwiema fukcjami. Mówimy wówczas,»e f() jest tego samego rz du co g() (przy ) i zapisujemy f() = Θ(g()), je»eli c 1,c 2 >0 c 1 g() f() c 2 g(). Zwró my uwag,»e f() = Θ(g()) wtedy i tylko wtedy, gdy f() = O (g()) i f() = Ω(g()). Przykªad A.11. Udowodi,»e log! = Θ( log ), gdzie wszystkie logarytmy s o podstawie a > 1. Deicja A.5. (Symbol ). Niech f, g : N R b d dwiema fukcjami. Mówimy wówczas,»e f() jest asymptotyczie rówe g() (przy ) i zapisujemy f() g(), je»eli ε>0 (1 ε)g() f() (1 + ε)g(). Przykªad A.12. Pokaza ast puj ce wªaso±ci symbolu (dla dowolych fukcji f, g, h : N R): (a) f() f() (tj. relacja jest zwrota); (b) je»eli f() g(), g() f() (tj. relacja jest symetrycza); (c) je»eli f() g() i g() h(), to f() h() (tj. relacja jest przechodia); f() (d) je»eli istieje, to f() f() g() wtedy i tylko wtedy, gdy = 1. Przykªad A.13. Pokaza,»e f() g() wtedy i tylko wtedy, gdy f() = g()(1+o(1)). Tabela A.2 podsumowuje wiadomo±ci o otacji asymptotyczej w przypadku, gdy graica istieje oraz = g. A.5. Twierdzeie o rekurecji uiwersalej W aalizie algorytmów cz sto mamy do czyieia z podziaªem problemu a miejsze podproblemy, rozwi zywaiem ich i a podstawie uzyskaych wyików wyzaczaiem rozwi zaia dla problemu orygialego (p. algorytmy typu dziel i rz d¹).
A.5. Twierdzeie o rekurecji uiwersalej 5 Tablica A.2: Zestawieie symboli asymptotyczych g = 0 g (0, 1) g = 1 g (1, ) g = f() = O (g()) tak tak tak tak ie f() = Ω(g()) ie tak tak tak tak f() = Θ(g()) ie tak tak tak ie f() g() ie ie tak ie ie f() = o(g()) tak ie ie ie ie f() = ω(g()) ie ie ie ie tak Przykªad A.14. Zaªó»my,»e rozwi zaie problemu wielko±ci wymaga rozwi zaia dwóch problemów wielko±ci i 2 a ast pie poª czeia ich w caªo± kosztem a, 2 gdzie a jest staª, a rozwi zaie problemu wymiaru 1 dokoywae jest kosztem staªym b. Wówczas koszt rozwi zaia tego problemu t() speªia ast puj ce rówaie rekurecyje: ( ( t() = t + t + a, t(1) = b. 2 ) Spróbuj rozwi za to rówaie. Twierdzeie A.2. (O rekurecji uiwersalej). Dla a 0, b > 0, N oraz f : N R + iech Wówczas { at( ) + f(), dla b, t() = b Θ(1), dla = 1, 2,...,b 1. je»eli f() = O ( log b a ε) (ε > 0), to t() = Θ( log a b ); je»eli f() = Θ( log b a ), to t() = Θ( log a b log ); je»eli f() = O ( log a+ε) b i af( ) cf() (ε > 0 i 0 < c < 1), to t() = Θ(f()). b Twierdzeie o rekurecji uiwersalej mo»emy stosowa jedyie, je»eli algorytm dzieli zadaie a pew liczb rówych cz ±ci. W ogólym przypadku ajsiliejszym arz dziem do badaia zªo»oo±ci algorytmów typu dziel i rz d¹ jest twierdzeie Akra i Bazzi: Twierdzeie A.3. (Akra-Bazzi). Dla ustaloego k N, iech a i 0, b i (0, 1) b d staªymi dla i = 1, 2,...,k, f : N R +, f (x) = O (x c ) (c staªe) i h i () = O Wówczas t() = k i=1 a i t(b i + h i ()) + f(), dla 0, Θ(1), dla = 1, 2,..., 0 1. ( )) t() = Θ ( p f(x) 1 + 1 x p+1dx, gdzie p zdeiowae jest rówo±ci k a i b p i = 1. i=1 ( log 2 )
6 A. Notacja asymptotycza A.6. Zadaia Zadaie A.1. Sprawd¹, które z ast puj cych wyra»eia s poprawe: (a) 2 +1 = O (2 ), (b) ( + 1)! = O (!), (c) dla dowolej fukcji f : N R, f() = O () (f()) 2 = O ( 2 ), (c) dla dowolej fukcji f : N R, f() = O () 2 f() = O (2 ). Zadaie A.2. Udowodij,»e relacja O jest przechodia, to zaczy: je»eli f() = O (g()) i g() = O (h()), to f() = O (h()). Zadaie A.3. Niech fukcje f 1,f 2, g 1,g 2 b d dodatie (tj. f 1,f 2,g 1,g 2 : N R + ) i iech ozacza jed z operacji arytmetyczych: +,,,/. Pokaza,»e zdaie: Je»eli f 1 () = O (g 1 ()) oraz f 2 () = O (g 2 ()), to f 1 () f 2 () = O (g 1 () g 2 ()) jest prawdziwe dla {+, } i faªszywe dla {, /}. Zadaie A.4. Uporz dkuj symbolem O (p. O ( 1 ) = O (1) = O () = O ( 2 )) ast puj ce fukcje: l, 1+ε, (1 + ε), l, ( + l 2 ) 5, gdzie 0 < ε < 1. Zadaie A.5. Pokaza,»e dla dowolych a,b > 1, log a = Θ(log b ). Zadaie A.6. Pokaza,»e dla dowolego k N zachodzi(wªaso± ta zachodzi rówie» dla wszystkich k rzeczywistych takich,»e k > 1) i k = Θ( k+1 ). i=1 Zadaie A.7. Udowodij,»e 2 = o(!) = o( ). Zadaie A.8. Jaki symbol asymptotyczy mo»a wstawi w miejsce X w wyra»eiu f() = X(g(), aby byªo oo prawdziwe, je»eli (a) f() = i g() = 2; (b) f() = l i g() = 2 l ; (c) f() = ( + 1)! i g() =! (d) f() = ( 2 ) i g() = 4 ; (e) f() = O () i g() = (f()) 2.
A.6. Zadaia 7 Zadaie A.9. Dla ka»dego z poi»szych zda«albo udowodij,»e jest oo prawdziwe dla dowolych fukcji f, g : N R, albo udowodij,»e jest oo ieprawdziwe dla wszystkich fukcji, albo podaj przykªady fukcji dla których zdaie jest prawdziwe i przykªady fukcji dla których zdaie jest ieprawdziwe. (a) f() = O ((f() 2 ); (b) f() = o(g()) i f() = Ω(g()); (c) f() O (g()) i g() O (f()); (d) f() = Ω(g()) i f() = ω(g()); (e) f() = O ( 2 l f()). Zadaie A.10. Udowodij,»e (a) 2 2 = O (5 ); (b) + = O (); (c) k 2 = O (4 ), gdzie k N jest staª ; Zadaie A.11. Poprawi rezultat z Przykªadu A.11, dowodz c,»e l! l. Zadaie A.12. Niech f, g : N R + b d dwiema fukcjami dodatimi. Udowodi,»e (a) f() = Θ(g()) wtedy i tylko wtedy, gdy l f() = lg() + O (1); (b) je»eli f() = Θ(g()), to ie koieczie lf() = O (l g()); (c) je»eli f() = Θ(g()) i g(), to lf() l g(). Zadaie A.13. Udowodi, korzystaj c z twierdzeia Stirliga, ast puj cy wzór Stirliga! ( ) 2π. e Zadaie A.14. Zajd¹ asymptotycze rozwi zaia rówa«rekurecyjych, wszystkie z zaªo»eiem,»e t(1) = 1: (a) t() = t ( + ; (b) t() = 2t ( + ; (c) t() = 3t ( + ; (d) t() = t ( ( 3 ) + t + ; (e) t() = t ( 3) + l ; (f) t() = 3t ( 5) + l 2 ;