Solving Recurrence
Download
Report
Transcript Solving Recurrence
SOLVING RECURRENCE
Gilles Brassard and Paul Bratley
Solving Recurrence’s Technique
Intelligent guesswork
Homogeneous recurrences
Inhomogeneous recurrences
Change of Variable
Range of transformations
Asymtotic recurrences
Intelligent Guesswork
• Pendekatan ini umumnya berlangsung dalam 3
tahapan : (1) hitung beberapa nilai pertama dari
rekursi, (2) cari keberaturan atau pola, (3) tebak
bentuk umum yang paling sesuai, dan (4) buktikan
dengan induksi matematika.
• Contoh, perhatikan rekursi berikut
0
jika n = 0
T(n) =
3T(n 2) + n
untuk n yang lain
Intelligent Guesswork - Cont
n sebaiiknya dibatasi sebagai exact power of 2 (n =
2).
Beberapa nilai pertama ditabulasikan
n
1
2
4
8
16
32
T(n)
1
5
19
65
211 665
Penjabaran (penulisan kembali) untuk menemukan
pola
Intelligent Guesswork - Cont
(Penulisan kembali)
Ketimbang menulis T(2) = 5, akan
lebih bermanfaat untuk menulis
T(2) = 3 x 1 + 2. Sehingga
T(4) = 3 x T(2) + 4 = 3 x (3 x 1 +
2) + 4
= 32 x 1 + 3 x 2 + 4
Intelligent Guesswork - Cont
Pencarian pola
n
T(n)
1
1
2
3x1+2
22
32 x 1 + 3 x 2 + 22
23
3 3 x 1 + 32 x 2 + 3 x 2 2 + 2 3
24
3 4 x 1 + 33 x 2 + 3 2 x 2 2 + 3 x 2 3 + 2 4
25
3 5 x 1 + 34 x 2 + 3 3 x 2 2 + 3 2 x 2 3 + 3 x 2 4 + 2 5
Intelligent Guesswork - Cont
Pola sudah terlihat
T(2k) = 3k20 + 3k-121 + 3k-222 + ... + 312k-1 + 302k
= ∑ i = 0 .. k 3k-i2i
= 3k∑i = 0..k(2/3)i (deret geometri r = 2/3)
= 3k x (1 – (2/3)k+1) / (1 – 2/3)
k+1
k+1
=3 –2
Intelligent Guesswork - Cont
Bagaimana ketika n bukan power of 2 (n ≠ 2i) ?
Tulis kembali persamaan dalam T(n) ketimbang
T(2k). Karena n = 2k, maka k = lg n.
Sehingga
T(n) = T(2lg n) = 3lg n + 1 – 2lg n +1
= 3x3lg n – 2x2lg n
= 3 nlg 3 – 2 nlg 2
= 3 nlg 3 – 2n
Intelligent Guesswork - Cont
Sehingga
T(n) = 3 nlg 3 – 2n
ketika n merupakan power of 2.
Dengan notasi asymtotic
bersyarat, disimpulkan bahwa
T(n) (nlg 3 | n is a power of 2).
Homogeneous Recurrences
Rekurensi berbentuk
a0tn + a1tn-1 + ... + aktn-k = 0 ...... rekurensi linier
homogen dengan koefisien konstan.
(Teknik persamaan karakteristik), dengan intelligent
guesswork menyarankan mencari solusi-solusi dengan
bentuk
tn = xn
dengan x merupakan konstanta yang belum diketahui.
Homogeneous Recurrences - Const
Sehingga
a0xn + a1xn-1 + ... + akxn-k = 0
untuk x = 0 persamaan berlaku, trivial solution.
Sebaliknya persamaan berlaku iff
a0xk + a1xk-1 + ... + ak = 0.
a0xk + a1xk-1 + ... + ak = p(x) persamaan dengan degree k
dalam x disebut persamaan karakteristik dari
rekurensi, dan disebut polinomial karakteristik.
Homogeneous Recurrences - Const
p(x) difaktorkan sebagai product dari k monomials
p(x) = ∏i=1..k(x – ri)
dengan ri bisa berupa bilangan-bilangan kompleks. ri
merupakan satu-satunya solusi dari persamaan p(x) =
0.
Karena p(ri) = 0, berarti x = ri merupakan solusi
persamaan karakteristik. Sehingga,
merupakan solusi untuk rekurensi.
ri
n
Homogeneous Recurrences - Const
Karena kombinasi liniernya juga
merupakan solusi, maka
k
t n ci ri n
i 1
memenuhi rekurensi untuk sebarang
pemilihan konstanta-konstanta c1, c2,
..., ck.
Homogeneous Recurrences - Const
Contoh (fibonacci)
n
jika n = 0, 1
fn =
fn-1 + fn-2 untuk n yang lain
Polinomial karakteristiknya :
x2 – x – 1
yang mempunyai akar-akar
r1 = (1 + 5)/2 dan r2 = (1 - 5)/2
Homogeneous Recurrences - Const
Sehingga “general solution” dalam bentuk
fn c r c r
n
1 1
n
2 2
Initial conditions digunakan untuk menentukan
konstanta2 c1 dan c2. (untuk n = 0, 1; fn = n).
Sehingga
c1 + c2 = 0
r1 c1 + r2 c2 = 1
c1
1
5
dan c2
1
5
Homogeneous Recurrences - Const
Jadi
fn
1
5
1 5
2
n
1 5
2
n
yang merupakan rumus Moivre terkenal.
Secara umum, jika akar r mempunyai multiplisitas m,
maka
n
n
2 n
m1 n
nsemuanyan merupakan
n solusi-solusi yang
n
berbeda
untuk rekurensi.
t r , t nr , t n r ,...,t n r
Homogeneous Recurrences - Const
Jika r1, r2, ..., rl adalah l akar-akar yang berbeda dari
polinomial karakteristik dan apabila multiplisitas
masing-masing m1, m2, ..., ml ; kemudian
l
mi 1
tn cij n r
i 1 j 0
j n
i
merupakan general solution untuk rekurensi yang
polinomial karakteristik mempunyai akar-akar sama.
Inhomogeneous Recurrences
Bentuk umum
a0tn + a1tn-1 + ... + aktn-k = bnp(n)
dengan b sebarang konstanta, dan p(n) merupakan
polinomial dalam n dengan degree d.
Perhatikan contoh-contoh
tn – 2tn-1 = 3n
Inhomogeneous Recurrences - Cont
Dari rekurensi (slide sebelum ini) bisa diperoleh b = 3
dan p(n) = 1 d = 0.
Cara lain (manipulasi aljabar)
(1) kalikan rekurensi dengan 3, dan diperoleh
3tn – 6tn-1 = 3n+1
(2) ganti n dengan n – 1 dalam rekurensi, dan
diperoleh
3tn-1 – 6tn-2 = 3n
Inhomogeneous Recurrences - Cont
(3) lakukan pengurangan
tn – 2tn-1 = 3n
3tn-1 – 6tn-2 = 3n
tn – 5tn-1 + 6tn-2 = 0 ......................... (*)
(*) merupakan rekurensi linier homogen.
Contoh lain,
tn – 2tn-1 = (n + 5)3n untuk n 1.
Inhomogeneous Recurrences - Cont
(1) tulis kembali rekurensi,
(2) ganti n dalam rekurensi dengan n – 1 kemudian
kalikan dengan -6, dan
(3) ganti n dalam rekurensi dengan n – 2 kemudian
kalikan dengan 9,
Akhirnya, (1)+(2)+(3) = rekurensi homogen
tn – 8tn-1 + 21tn-2 – 18tn-3 = 0
Polinomial Karakteristiknya,
x3 – 8x2 + 21x – 18 = (x – 2)(x – 3)2
Inhomogeneous Recurrences - Cont
Generalization, gunakan polinomial karakteristik
(a0xk + a1xk-1 + ... + ak)(x – b)d+1
Contoh (Towers of Hanoi Problem)
0
jika m = 0
t(m) =
2t(m – 1) + 1 untuk m yang lain.
Untuk m = 1, 2, ... Berlaku t(m) – 2t(m – 1) = 1, dan
diperoleh b = 1, p(n) = 1.
Inhomogeneous Recurrences - Cont
Perhatikan rekurensi
tn = 2 tn-1 + n.
Rekurensi bisa ditulis ulang sebagai
tn – 2 tn-1 = n atau tn – 2 tn-1 = 1n n.
sehingga b = 1 dan p(n) = n (d = 1).
Polinomial karakteristiknya
(x – 2)(x – 1)2 (1+1)
dengan akar-akar : 2 (multiplisitas 1) dan 1
(multiplisitas 2).
Inhomogeneous Recurrences - Cont
General solution : tn = c12n + c21n + c3n1n.
Selama t0 0, tn 0 untuk semua n, dan bisa
disimpulkan bahwa tn (2n). Untuk memperlihatkan
tn (2n) diperlukan analisis lebih lanjut.
Dengan substitusi,
n = tn – 2 tn-1
= (c12n + c2 + c3n) – 2(c12n-1 + c2 + c3(n-1))
= (2c3 – c2) – c3n
Inhomogeneous Recurrences - Cont
Sehingga dengan menyamakan koefisien,
diperoleh
2c3 – c2 = 0 dan – c3 = 1 (tanpa kondisi
awal)
Jadi c3 = – 1 dan c2 = – 2, dan penyelesaian
khususnya tn = c12n – n – 2.
Selama t0 0, tn 0 untuk semua n,
akibatnya c1 harus benar-benar positif.
Kesimpulan bahwa tn (2n).
Inhomogeneous Recurrences - Cont
Perhatikan rekurensi
1
jika n = 0
tn =
4 tn-1 – 2n untuk n yang lain
Rekursi bisa ditulis ulang sebagai
tn – 4 tn-1 = – 2n, (tn – 4 tn-1 = 2n (– 1))
Sehingga b = 2 dan p(n) = – 1 (polinomial
dengan degree 0, d = 0)
Inhomogeneous Recurrences - Cont
Sehingga polinomial karakteristiknya
(x – 4)(x – 2)
General solution : tn = c14n + c22n .
Lakukan substitusi,
– 2n = tn – 4 tn-1
= ...
Diperoleh c2 = 1 apapun keadaan awalnya.
Diketahuinya c2 tidak langsung relevan untuk
menentukan “exact order of tn”.
Inhomogeneous Recurrences - Cont
Generalization,
a0tn + a1tn-1 + ... + aktn-k = b1np1(n) + b1np1(n)
+ ...
dengan bi konstanta-konstanta yang
berbeda, dan pi(n) polinomial-polinomial
dalam n masing-masing dengan degree di.
Polinomial karakteristik nya adalah :
(a0xk + a1xk-1 + ... + ak)(x – b1)d1+1(x –
b2)d2+1...
Inhomogeneous Recurrences - Cont
Perhatikan rekurensi,
0
jika n = 0
tn =
2tn-1 + n + 2n untuk n yang lain
Rekurensi ditulis ulang sebagai,
tn – 2tn-1 = n + 2n, (tn – 2tn-1 = 1nn + 2n1n)
b1 = 1, p1(n) = n, dan b1 = 2, p2(n) = 1.
Polinomial karakteristiknya
(x – 2)(x – 1)2(x – 2)
Inhomogeneous Recurrences - Cont
General solution :
tn = c11n + c2n1n + c32n + c4n2n.
Kesimpulan dari persamaan : tn (n2n), tanpa
harus menghitung konstanta2 ci.
Untuk mengetahui “exact order of tn“ lakukan
substitusi
n + 2n = tn – 2tn-1
= (c11n + c2n1n + c32n + c4n2n) – 2(c11n-1 +
c2(n – 1)1n-1 + c32n-1 + c4(n – 1)2n-1)
Inhomogeneous Recurrences - Cont
Atau n + 2n = (2c2 – c1) – c2n + c42n.
dengan menyamakan koefisien c4 = 1, c2 = – 1,
dan 2c2 – c1 = 0 (c1 = – 2).
Untuk mencari c3, substitusikan nilai-nilai c1, c2
dan c4 ke tn = c11n + c2n1n + c32n + c4n2n
untuk n = 0 diperoleh
0 = (– 2) + 0 + c3 + 0)
0 = – 2 + c3
2 = c3.
Change of Variable
Perhatikan rekurensi yang sudah diselesaikan
dengan “intelligent guesswork” hanya untuk n =
2i .
1
jika n = 1
T(n) =
3T(n/2) + n jika n = 2i, n > 1
T(n) akan ditransformasikan ke bentuk yang bisa
diselesaikan. Untuk tujuan ini diperkenalkan
rekurensi baru ti , didefinisikan ti = T(2i).
Transformasi sangat bermanfaat karena n/2
menjadi 2i / 2 = 2i-1 = ti-1.
Change of Variable - Cont
Sehingga rekurensi yang baru,
ti = T(2i) = 3T(2i-1) + 2i = 3 ti-1 + 2i
Penulisan ulang, menjadi
ti = 3 ti-1 + 2i atau ti 3 ti-1 = 2i
(inhomogeneous recurrence) ...
... ketika n = 2i, maka cukup untuk
menyimpulkan bahwa :
T(n) O(nlg 3 | n is a power of 2)
Change of Variable - Cont
Untuk bisa menyimpulkan sesuatu tentang
“exact order of” T(n) perlu diperlihatkan
bahwa c1 positif.
Dibutuhkan persamaan
n = T(n) – 3T(n/2)
= ... = –c2 n/2 n = –c2 n/2 c2 = – 2.
karena c2 negatif, c1 harus positif.
Sehingga T(n) (nlg 3 | n is a power of 2)
Untuk mencari c1 gunakan initial value, untuk
n =1 dan 2.
Change of Variable - Cont
Contoh lain,
T(n) = 2T(n/2) + n lg n, n = 2i dan n 2.
seperti sebelumnya,
ti = T(2i) = 2T(2i-1) + 2i i = 2 ti-1 + 2i i
Setelah ditulis ulang,
ti 2 ti-1 = 2i i
Polinomial karakteristik :
(x – 2)(x – 2)2 = (x – 2)3
Change of Variable - Cont
T(n) = c1 n + c2 n lg n + c3 n lg2 n.
Substitusi
n lg n = T(n) – 2T(n/2)
= ... = (c2 – c3)n + 2c3 n lg n
diperoleh c2 – c3 = 0 dan 2c3 = 1, sehingga c2
= c3 = ½.
T(n) = c1 n + ½ n lg n + ½ n lg2 n.
Kesimpulan : T(n) (n lg2 n | n is a
power of 2)
Range of Transformation
Perhatikan rekurensi,
1/3
jika n = 1
T(n) =
nT2(n/2) untuk n yang lain (n = 2i)
karena n = 2i, seperti sebelumnya persamaan
menjadi
ti = T(2i) = 2i T2(2i /2) = 2i T2(2i-1 ) = 2i ti-12
menulis ulang persamaan menjadi
ti = 2i ti-12 (belum ada bentuk yang
mencocoki).
Range of Transformation – Cont
Transformasi, kedua ruas diambil logaritmanya
lg ti = lg 2i ti-12 lg ti = lg 2i + lg ti-12
lg ti = i + 2lg ti-1
Substitusi ui = lg ti diperoleh persamaan
rekurensi baru
ui = i + 2 ui-1 ui 2ui-1 = i
Persamaan karakteristik
(x – 2)(x – 1)2 = 0
...