Rownania liniowe dekompozycji – postac kanoniczna
Transkrypt
Rownania liniowe dekompozycji – postac kanoniczna
Rownania liniowe dekompozycji – postac kanoniczna BentleyaHackena Saxe'a – przemyslenia po wykladzie, Przemyslaw Oltarzewski :) 1) Rekurencyjne rownania dekompozycji w postaci liniowej T n=aT n/ b f n T 1=c Gdzie: a – liczba podproblemow b – wspolczynnik podzialu (ile razy podproblem jest mniejszy od n) f – funkcja, wyrazajaca koszt podzialu zadania w zaleznosci od jego rozmiaru c – pewna stala, przyjmujemy ze problem jednostkowy ma koszt staly Dodatkowo przyjmujemy, ze rozmiar problemu jest zawsze podzielny przez wspolczynnik podzialu (mozemy dzielic problem na podproblemy, az do uzyskania jednosci). Czyli n musi byc pewna potega b: n=b q 2) Doprowadzenie rownania dekompozycji do postaci kanonicznej BentleyaHackena Saxe'a: Polega na zaprezentowaniu rownania dekompozycji w postaci, ktora pozwala wyznaczyc schemat rozwiazania takiego rownania. W tym celu, dokonujemy przeksztalcen: a=b p f n=gn⋅n p Parametr “p” moze byc dowolna liczba, takze takie przeksztalcenie nie wymaga specjalnych zalozen. Podobnie g(n) moze byc dowolna funkcja rozmiaru problemu. Wtedy rownanie dekompozycji przyjmuje forme: T n=b p T n/bn p gn T 1=c Po co przeksztalcamy w ten sposob? W kolejnych punktach umozliwia to wyznaczenie ogolnego rozwiazania rownania. Majac konkretne zadanie, zamiast poszukiwac rozwiazania na wlasna reke “domowymi metodami”, mozemy przeksztalcic rownanie rekurencyjne do postaci BHS i posluzyc sie rozwiazaniem ogolnym. 3) Ogolne rozwiazanie rownania dekompozycji w postaci BHS: Rownanie postaci BHS jest zalezne od q (gdyz n=b^q). Mozna zaobserwowac, wstawiajac kolejne wartosci q, ze: q=0 ⇒ b q =b 0 =1=n T n=T 1=c q=1 ⇒ b q =b1=b=n p p T n=b T n /bn g n T b=b p T b /bb p g b=b p T 1b p g b=b p cg b q=2 ⇒ b q =b 2 =n T b 2 =b p T b 2 /bb 2 p g b=b p T bb 2 p gb 2 =b p⋅b p cg bb 2 p g b 2 T b 2 =b 2 p cg bg b 2 Kontynuujac wstawianie, dochodzimy do wniosku, ze: q ⇒ n=b q T n=b qp cgbgb 2 gb 3 gb q Zapisujac to w bardziej zwartej postaci: n=b q ⇒ b qp =n p q T n=n c∑ g bi rozwiazanie ogolne BHS p i=1 4) Rozwiazanie rownania dekompozycji w postaci BHS dla funkcji kosztu podzialu postaci f=cn^k: Dla funkcji f postaci: f n=cn k mozna znacznie uproscic wyznaczanie rozwiazania rownania dekompozycji w postaci BHS. Dokonujemy przeksztalcenia rozwiazania ogolnego BHS: f n=g n n p ⇔ g n= f n/ n p =cn k / n p =cn k− p gb i =cb ik− p q T n=n c∑ g b i r.o.BHS p i=1 q T n=n c∑ cb p ik− p =cn i=1 p q ∑ bk− pi i=0 Ostatecznie, po przyjeciu dodatkowych oznaczen: s=b k− p q T n=cn p ∑ s i i=0 Otrzymalismy rozwiazanie rownania BHS dla funkcji kosztu podzialu postaci f=cn^k. 5) Szczegolowe rozwiazanie dla funkcji kosztu podzialu f=cn^k: W zaleznosci od relacji parametrow k i p, mozna bardziej szczegolowo obliczyc wynik rownania z pkt 4: Przypadek 1: k= p ⇒ s=b k− p =b 0 =1 q T n=cn p ∑ 1=cn p q1 0 q n=b ⇔ q=log b n T n=cn p logb n1 Asymptotycznie: T n∈O n p log n Przypadek 2: k≠ p ⇒ s≠1 q1 −1 p s T n=cn s−1 Przeksztalcamy: cs −c T n= ⋅n p s q ⋅n p s−1 s−1 p q p k− pq p q k− p p k− p k n s =n b =n b =n n =n cs −c T n= ⋅n k ⋅n p s−1 s−1 cs −c T n= An k Bn p gdzie : A= , B= s−1 s−1 Teraz mozemy przeliczyc stale A i B, usuwajac parametr s: a=b p 1 cs cb k− p bp a A= = k− p =c /1− k− p =c /1− k =c /1− k s−1 b −1 b b b −c −c bk bk B= = k− p =c /1− p =c /1− s−1 b −1 a b Ostatecznie dostajemy: T n= An k Bn p a A=c /1− k b bk B=c /1− a Asymptotycznie, mamy dwa podprzypadki: k p ⇒ T n∈O n k k p ⇒ T n∈O n p 6) Przyklady zadan z rownan dekompozycji: Przyklad 1: T n=2 T n /2n T n=b p T n/ bcn k , BHS: T 1=1 T 1=c Korzystajac z postaci BHS dla funkcji kosztu podzialu postaci f=cn^k, wyznaczamy parametry (przez porownanie zmiennych literowych i liczb w zaleznosciach powyzej): k =1, c=1, b=2, p=1 Widzimy, ze mamy do czynienia z przypadkiem k=p. W takim razie rozwiazaniem bedzie: T n=cn p logb n1 T n=1 n1 log2 n1=nlog2 n1 Przyklad 2: T n=3 T n /2n T n=b p T n/bcn k , BHS: T 1=1 T 1=c Znow mamy do czynienia z funkcja postaci f=cn^k. Wyznaczamy parametry. Uwaga na wartosci wspolczynnikow b i p! k=1, c=1, b=2, b p =3⇔ 2 p =3⇔ p=log2 3 Tym razem k<p, czyli korzystamy z zaleznosci: log2 3 T n= AnBn T n= An k Bn p log 3 a 2 3 bp A=c /1− k A=1/1− k =1/1− =1/1− =−2 2 2 ,stale: b b k k b 2 2 b B=c /1− B=1/1− p =11− log 3 =1/1− =3 a 3 b 2 2 2 Ostatecznie: T n=3 n log2 3 −2 n Przyklad 3: T n=3 T n /2n 2 T n=b p T n /bcn k , BHS: T 1=c T 1=1 Kolejny raz funkcja f=cn^k. Obliczamy parametry: k=2, c=1, b=2, b p =3⇔ 2 p =3⇔ p=log2 3 Teraz k>p. Rozwiazanie przyjmie postac: log2 3 T n= An 2 Bn T n= An k Bn p log 3 a 2 3 bp A=1/1− k A=1/1− k =1/1− =1/1− =4 , stale: 4 4 b b k k b 4 b B=1/1− B=1/1− p =1/1− =−3 a 3 b 2 Ostatecznie: T n=4 n 2 −3 n log2 3 Przyklad 4: T n=2 T n /2nlgn T n=b p T n/ bn p gn , BHS: T 1=1 T 1=c Tym razem f nie jest postaci cn^k. Nie mozna posluzyc sie rozwiazaniem dla tego przypadku. Trzeba skorzystac z ogolnego rozwiazania formy BHS. Wyliczamy parametry: b=2, c=1, p=1, g n=lgn Teraz korzystamy z r.o. BHS: q T n=n c∑ gbi p i=0 q q T n=n1∑ lg2 =n1∑ i⋅lg2=n1 q i=0 q i i=0 q⋅q1 2 n=b ⇔ n=2 ⇔ q=lgn 1 1 1 T n=n1 lg 2 n lgn= nlg 2 nlgn2 2 2 2