Upload
josh
View
111
Download
3
Embed Size (px)
DESCRIPTION
Pertemuan-4 : Recurrences. Pendahuluan: Pengertian, contoh, dll Metode substitusi Metode pohon rekursi Metode master. Lahir : Hungary, February 17, 1905. Meninggal : Hungary, February 16, 1977. Penemu fungsi rekursif. Pendahuluan. - PowerPoint PPT Presentation
Citation preview
1
Pertemuan-4 : Recurrences Pendahuluan:
Pengertian, contoh, dll Metode substitusi Metode pohon rekursi Metode master
2
Penemu fungsi rekursifLahir : Hungary, February 17, 1905
Meninggal : Hungary, February 16, 1977
3
Pendahuluan• Ada kalanya kita mengalami kesulitan untuk
mendefinisikan suatu objek secara eksplisit. • Dalam kasus ini, mungkin lebih mudah untuk
mendefinisikan objek tersebut menggunakan dirinya sendiri. Ini dinamakan sebagai proses proses rekursifrekursif
• Kita dapat mendefinisikan barisan, himpunan atau fungsi secara rekursif.
4
Langkah-langkah mendefinisikan barisan secara rekursif:
1. Langkah basis: Spesifikasi anggota awal.
2. Langkah rekursif: Berikan aturan untuk membangun anggota baru dari anggota yang telah ada.
5
Contoh barisan yang didefinisikan secara rekursif
Berikan definisi rekursif dari an=rn, dengan rBulat, r ≠ 0 dan n bilangan bulat positif.
Solusi:
Definisikan a0 = r0 = 1
dan an+1 = r.an untuk n = 0, 1, 2, …
6
Langkah-langkah mendefinisikan fungsi secara rekursif dgn domain bil. cacah
1. Langkah basis: Tentukan nilai fungsi pada saat nol
2. Langkah rekursif: Berikan aturan untuk mencari nilai fungsi untuk setiap bilangan bulat berdasarkan nilai fungsi pada bilangan bulat yang lebih kecil.
Definisi seperti itu disebut rekursifrekursif atau definisi induktifdefinisi induktif
7
Contoh fungsi yang didefinisikan secara rekursif
f(0) = 3
f(n + 1) = 2f(n) + 3
maka• f(0) = 3• f(1) = 2f(0) + 3 = 23 + 3 = 9• f(2) = 2f(1) + 3 = 29 + 3 = 21• f(3) = 2f(2) + 3 = 221 + 3 = 45• f(4) = 2f(3) + 3 = 245 + 3 = 93
8
Bilangan Fibonacci•f0 = 0, f1 = 1
•fn = fn-1+ fn-2, n=2,3,4,…
f0= 0
f1= 1
f2= f1+ f0= 1 + 0 = 1
f3= f2+ f1= 1 + 1 = 2
f4= f3+ f2= 2 + 1 = 3
f5= f4+ f3= 3 + 2 = 5
f6= f5+ f4= 5 + 3 = 8
9
Pertumbuhan populasi kelinci
Sepasang kelinci ditaruh di suatu pulau. Pasangan kelinci ini tidak akan beranak sampai berumur 2 bulan. Setelah berumur 2 bulan, setiap sepasang menghasilkan sepasang yg lain setiap bulannya. Tentukan relasi recurrence dari jumlah pasangan setelah n bulan, bila tidak ada kelinci yg mati.
10
Populasi kelinci:• bulan 0 : 1 pasang• bulan 1 : 1 pasang• bulan 2 : 1 + 1 pasang• bulan 3 : 2 + 1 pasang• bulan 4 : 3 + 2 pasang• ...• bulan n : bulan(n-1) + bulan(n-2) pasang
11
Solusi:
• Misalkan fn: jumlah pasangan kelinci setelah n bulan, maka, f1 = 1, f2 = 1.
• Untuk mencari fn, tambahkan jumlah pasangan pada bulan sebelumnya, fn-1, dengan jumlah pasangan yang baru lahir, fn-2.
• Jadi, fn = fn-1 + fn-2.
12
Solusi:
dengan
disebut golden ratio
13
Andaikan:
14
Komputasi rekursif:
recFib(n) {
if (n ≤ 1)
return n
else
return recFib(n-1) + recFib(n-2)
}
15
T(n) = T(n-1) + T(n-2)
2T(n-2) ≤ T(n-1) + T(n-2) ≤ 2T(n-1)
T(n) = O(2n)
T(n) = Ω(2n/2)
16
Komputasi iteratif:
IterFib (n) {
f[0] = 0;
f[1] = 1;
for ( i=2 ; i ≤ n ; i++)
f[i] = f[i-1] + f[i-2];
} T(n) = O(n)
17
Relasi rekursifRelasi rekursif (Recurrence (Recurrence))• Relasi Recurrence untuk barisan {an}
adalah persamaan yang menyatakan an dalam satu atau lebih bentuk a0, a1, …, an-1 untuk semua n dengan n n0 dimana n0 bilangan bulat non-negatif.
• Barisan {an} tersebut dikatakan sebagai solusi dari relasi recurrence ini bila an memenuhi relasi recurrence.
18
Penyelesaian relasi rekursif Metode substitusi:
dengan cara membuat tebakan terhadap solusinya, kemudian tebakan tsb dibuktikan dengan induksi matematika
Metode (pohon) rekursif:dengan cara mengubah bentuk rekursif menjadi bentuk penjumlahan, kemudian diselesaikan.
Metode master:digunakan utk menyelesaikan pers rekursif dalam bentuk : T(n) = aT(n/b) + f(n)
19
Metode substitusi
nTnT
Tn
2
11Diketahui :
nOnT Buktikan bahwa:
Buat tebakan T(n) = O(√n), berarti T(n) ≤ c√n
20
Bukti: dengan induksi matematika
Basis induksi : n = 1, c=4T(1) = 1 ≤ c√1 , c > 0
Langkah induksi:
(c/√2 + 1) ≤ c benar untuk c = 4
21
Selesaikan T(n) = 2T ([n/2]) + n, T(1)=1
Misalnya digunakan tebakan : O(n log n)
T(n) = 2 T([n/2]) + n , T(1) = 1
T(n) ≤ 2(c[n/2]log([n/2])) + n
≤ c.n.lg([n/2]) + n
≤ c.n.lg n - c.n.lg 2 + n
≤ c.n.lg n - c.n + n
≤ c.n.lg n
yang berlaku untuk c ≥ 1
22
Metode iterasi tidak memerlukan tebakan solusinya, tetapi memerlukan manipulasi aljabar yang lebih intensif dari pada metode substitusi.
Ide dasarnya adalah dengan mengembangkan bentuk rekursif tersebut serta merepresentasi-kannya dalam bentuk jumlah. Teknik untuk
mengevaluasi bentuk jumlah dapat digunakan untuk mendapatkan nilai batas dari solusinya.
Metode iterasi/ rekursif:
23
Contoh: Tentukan T(n), bila
T(1) = 1
T(n) = T(n-1) + 1/n
Jawab: Bila bentuk rekursif diuraikan: (lihat Cormen 3.9)
1 1 1 1 1 11 2 1
1 2 1
1 1 1 1 ln 1 lnnn n
n
n n n i i xi i
T n dx n n
24
Contoh: T(n) = 3T([n/4])+ nBila bentuk rekursif diuraikan:
T(n) = n + 3T([n/4])= n + 3([n/4]) + 3T(n/4[/4]))= n + 3([n/4]+ 3([n/16]+ 3T(n/64)))= n + 3n/4+ 9n/16+ 27T(n/64)
Suku ke-i berbentuk 3in/4i
Oleh karena n berkurang sebesar 4 pada setiap iterasi, maka proses berlangsung sampai log4N langkah
25
T(n) ≤ n + 3n/4 + 9n/16 + 27n/64 + . . .+ 3log4
N N / N
26
Menara HanoiMenara Hanoi
Terdapat menara dengan 3 tiang untuk meletakkan sejumlah disk berukuran berbeda. Awalnya semua disk terletak secara terurut pada tiang pertama dengan disk terbesar paling bawahAturan: Satu disk dapat dipindahkan setiap waktu dari satu tiang ke tiang lain selama disk tsb tidak berada di atas disk yang lebih kecil.Tujuan: Memindahkan semua disk ke tiang kedua dengan disk terbesar di urutan paling bawah.
Merupakan sebuah puzzle populer yang ditemukan oleh seorang matematikawan Perancis Edouard Lucas pada abad 19
27
• Misalkan Hn: banyaknya langkah yg diperlukan untuk memindahkan n disk dalam masalah menara Hanoi.
• Kita mulai dengan n disk pada tiang 1. Kita dapat memindahkan n-1 disk paling atas dengan mengikuti aturan ke tiang 3 dalam Hn-1 langkah.
• Kemudian, dengan menggunakan 1 langkah kita bisa memindahkan disk terbesar ke tiang 2.
• Selanjutnya, pindahkan n-1 disk dari tiang 3 ke tiang 2, dengan mengikuti aturan dalam Hn-1 langkah. Dengan demikian, kita telah memecahkan puzzle dengan banyak langkah:
Hn = 2Hn-1 + 1 dan H1 = 1.
28
Untuk mencari solusinya, dilakukan proses iteratif:Hn = 2Hn-1 + 1
= 2(2Hn-2 + 1)+1 = 22Hn-2 + 2 +1 = 22(2Hn-3 +1) + 2 +1 = 23Hn-3 + 22 + 2 +1
…
= 2n-1H1 + 2n-2 + 2n-3 + … + 2 +1= 2n-1 + 2n-2 + 2n-3 + … + 2 +1 (deret geometri)= 2n - 1
Jadi, untuk memindahkan 64 disk diperlukan langkah sebanyak:264 - 1 = 18,446,744,073,709,551,615.
29
a=3: n, (3/4)n, (3/4)2n, ...
a=4: n, (4/4)n, (4/4)2n, ...
a=5: n, (5/4)n, (5/4)2n, ...
Contoh: T(n) = aT([n/4])+ n
30
a = 3
31
a = 4
32
a = 5
33
• Metode master menyediakan semacam “cookbook” untuk menyelesaikan persamaan rekursif dalam bentuk:
T(n) = aT(n/b) + f(n)
dengan a ≥ 1 dan b > 1 adalah konstanta dan f(n) adalah fungsi yang secara asimtotik positif.
• Dalam metode master perlu diingat 3 kasus, namun sesudahnya bentuk-bentuk rekursif dapat diselesaikan dengan lebih mudah.
Metode Master
34
Kasus I:
T(n) = aT(n/b) + f(n) a ≥ 1 , b > 1
jika f(n) = O(nlogb
(a-ε)), ε > 0 maka T(n) = Θ(nlog
ba)
dhi, f(n) secara polinomial lebih kecildari nlog
ba dengan faktor nε, shg
nlogba mendominasi
35
Contoh:
Jadi kasus I, shg:
36
Kasus II:T(n) = aT(n/b) + f(n) a ≥ 1 , b > 1
jika f(n) = Θ(nlogb
a) maka T(n) = Θ(nlog
balog n)
dhi, cost setiap langkah adalah nlogb
a sehingga, padahal ada sebanyak log nlangkah, jadi T(n) = Θ(nlog
balog n)
37
Contoh:
Jadi kasus II, shg:
38
Kasus III:
T(n) = aT(n/b) + f(n) a ≥ 1 , b > 1
jika f(n) = Ω(nlogb
(a+ε)), ε > 0 dan a f(n/b) ≤ c f(n) untuk c < 1 maka T(n) = Θ(f(n))
dhi, f(n) > nlogba dgn faktor polinomial
sehingga suku dominan adalahf(n) + f(n/b) + f(n/b2)… O(f(n))
39
Contoh:
Jadi kasus III, krn f(n) mendominasi
40
Gunakan metode Master untuk menentukan
T(n) = Θ(?) bila : T(n) = 7T(n/2) + n2
Solusi:
a = 7, b = 2, f(n) = n2, nlog2
7 = n2.803..
n2 = O(nlog2
7 - ε), oleh karena
n2 ≤ cn2.803..- ε ε, c > 0
T(n) = Θ(nlog27)
41
Gunakan metode Master untuk menentukan
T(n) = Θ(?) bila : T(n) = 4T(n/2) + n2
Solusi:
a = 4, b = 2, f(n) = n2
n2 = Θ(n log24) = Θ(n2)
T(n) = Θ(nlog24log n) = Θ(n2log n)
42
Gunakan metode Master untuk menentukan
T(n) = Θ(?) bila : T(n) = 2T(n/3) + n3
Solusi:a = 2, b = 3, f(n) = n3
nlog3
2 = n0.63..
n3 = Ω(nlog3
2 + ε) ok n3 ≥ cn0.63+ ε ε, c > 0
dan 2f(n/3) = 2n3/27 ≤ cn3 utk 2/27 < c < 1
T(n) = Θ(n3)
43
Gunakan metode Master untuk menentukan
T(n) = Θ(?) bila : T(n) = 3T(n/2) + nlogn
Solusi:
a = 3, b = 2, f(n) = n logn
nlogn = O(n log23 - ε)
nlogn ≤ cn1.5
logn < cn0.5
c = 1, n0 = 16T(n) = Θ(nlog
23)
44
Gunakan metode Master untuk menentukan
T(n) = Θ(?) bila :
Solusi:a = 2, b = 2, f(n) = 10n, logba = log22 = 1
dapat dicek bahwa
jadi
45
Metode Master yg umum
46