Transcript Pertemuan 3

Pertemuan-4 : Recurrences

    

Pendahuluan:

Pengertian, contoh, dll

Metode substitusi Metode pohon rekursi Metode master

1

Penemu fungsi rekursif

Lahir : Hungary, February 17, 1905 Meninggal : Hungary, February 16, 1977 2

• • •

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 rekursif

Kita dapat mendefinisikan barisan, himpunan atau fungsi secara rekursif.

3

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. 4

Contoh barisan yang didefinisikan secara rekursif

Berikan definisi rekursif dari a n =r n , dengan r  Bulat, r ≠ 0 dan n bilangan bulat positif.

Solusi:

Definisikan a 0 = r 0 = 1 dan a n+1 = r.a

n untuk n = 0, 1, 2, … 5

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 rekursif atau definisi induktif 6

Contoh fungsi yang didefinisikan secara rekursif

f(0) = 3 f(n + 1) = 2f(n) + 3

maka • • • • •

f(0) = 3 f(1) = 2f(0) + 3 = 2

3 + 3 = 9 f(2) = 2f(1) + 3 = 2

9 + 3 = 21 f(3) = 2f(2) + 3 = 2

21 + 3 = 45 f(4) = 2f(3) + 3 = 2

45 + 3 = 93

7

Bilangan Fibonacci

f 0

f n = 0, f 1 = 1 = f n-1 + f n-2 , n=2,3,4,…

f 0 = 0 f 1 = 1 f 2 = f 1 + f 0 = 1 + 0 = 1 f 3 = f 2 + f 1 = 1 + 1 = 2 f 4 = f 3 + f 2 = 2 + 1 = 3 f 5 = f 4 + f 3 = 3 + 2 = 5 f 6 = f 5 + f 4 = 5 + 3 = 8 8

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 kelinci yg mati.

recurrence

dari jumlah pasangan setelah n bulan, bila tidak ada 9

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 10

Solusi:

• • • Misalkan f n : jumlah pasangan kelinci setelah n bulan, maka, f 1 = 1, f 2 = 1. Untuk mencari f n , tambahkan jumlah pasangan pada bulan sebelumnya, f n-1 , dengan jumlah pasangan yang baru lahir, f n-2 . Jadi, f n = f n-1 + f n-2 .

11

Solusi:

dengan

disebut

golden ratio

12

Andaikan:

13

Komputasi rekursif:

recFib(n) { if (n ≤ 1) return n else return recFib(n-1) + recFib(n-2) } 14

T(n) = T(n-1) + T(n-2) 2T(n-2) ≤ T(n-1) + T(n-2) ≤ 2T(n-1)

T(n) = O(2

n

) T(n) = Ω(2

n/2

)

15

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)

16

Relasi rekursif (Recurrence)

• •

Relasi Recurrence

dimana n 0 untuk barisan {a n } adalah

persamaan

yang menyatakan a n dalam satu atau lebih bentuk a 0 , a 1 , …, a n-1 untuk semua n dengan n  n 0 bilangan bulat non-negatif. Barisan {a n } tersebut dikatakan sebagai

solusi

dari relasi

recurrence

ini bila a n memenuhi relasi

recurrence

.

17

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) 18

Metode substitusi

Diketahui :

T T

      1

T

  2 

n

Buktikan bahwa:

T

O

Buat tebakan T(n) = O(√n), berarti T(n) ≤ c√n 19

Bukti: dengan induksi matematika

Basis induksi :

n = 1, c=4 T(1) = 1 ≤ c√1 , c > 0

Langkah induksi:

(c/√2 + 1) ≤ c benar untuk c = 4 20

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 21

Metode iterasi/ rekursif:  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.

22

Contoh: Tentukan T(n), bila T(1) = 1 T(n) = T(n-1) + 1/n Jawab: Bila bentuk rekursif diuraikan: (lihat Cormen 3.9)    

n n

1  1

n

2 1 

i n

  1 1

i i

n

 2 1

i n

1  1

x dx n

1

n n

23

Contoh: T(n) = 3T([n/4])+ n Bila 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 3 i n/4 i Oleh karena n berkurang sebesar 4 pada setiap iterasi, maka proses berlangsung sampai log 4 N langkah 24

T(n) ≤ n + 3n/4 + 9n/16 + 27n/64 + . . .+ 3 log 4 N N / N

25

Menara Hanoi

Merupakan sebuah puzzle populer yang ditemukan oleh seorang matematikawan Perancis Edouard Lucas pada abad 19

Terdapat menara dengan 3 tiang untuk meletakkan sejumlah disk berukuran berbeda. Awalnya semua disk terletak secara terurut pada tiang pertama dengan disk terbesar paling bawah

Aturan

: 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.

26

• • • • Misalkan H Hanoi.

n : banyaknya langkah yg diperlukan untuk memindahkan n disk dalam masalah menara Kita mulai dengan n disk pada tiang 1. Kita dapat memindahkan n-1 disk paling atas dengan mengikuti aturan ke tiang 3 dalam H n-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 H n-1 langkah. Dengan demikian, kita telah memecahkan puzzle dengan banyak langkah:

H n = 2H n-1 + 1 dan H 1 = 1.

27

Untuk mencari solusinya, dilakukan proses iteratif:

H n = 2H n-1 + 1 = 2(2H n-2 = 2 2 (2H n-3 … + 1)+1 = 2 2 H n-2 + 2 +1 +1) + 2 +1 = 2 3 H n-3 + 2 2 + 2 +1 = 2 n-1 H 1 = 2 n-1 + 2 + 2 n-2 n-2 + 2 + 2 n-3 n-3 + … + 2 +1 + … + 2 +1 (deret geometri) = 2 n - 1

Jadi, untuk memindahkan 64 disk diperlukan langkah sebanyak :

2 64 - 1 = 18,446,744,073,709,551,615.

28

Contoh: T(n) = aT([n/4])+ n

a=3:

n, (3/4)n, (3/4)

2

n, ...

a=4:

n, (4/4)n, (4/4)

2

n, ...

a=5:

n, (5/4)n, (5/4)

2

n, ...

29

a = 3 30

a = 4 31

a = 5 32

Metode Master

• 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.

33

Kasus I: T(n) = aT(n/b) + f(n) a ≥ 1 , b > 1

jika

f(n) = O(n log b (a-ε) )

, ε > 0 maka

T(n) = Θ(n log b a )

dhi, f(n) secara polinomial lebih kecil dari n log b a n log b a dengan faktor n mendominasi ε , shg 34

Contoh: Jadi kasus I, shg:

35

Kasus II: T(n) = aT(n/b) + f(n) a ≥ 1 , b > 1

jika

f(n) = Θ(n log b a )

maka

T(n) = Θ(n log b a log n)

dhi,

cost

setiap langkah adalah

n log b a

sehingga, padahal ada sebanyak log n langkah, jadi

T(n) = Θ(n log b a log n)

36

Contoh: Jadi kasus II, shg:

37

Kasus III: T(n) = aT(n/b) + f(n) a ≥ 1 , b > 1

jika

f(n) = Ω(n log b (a+ε) )

, ε > 0 dan a f(n/b) ≤ c f(n) untuk c < 1 maka

T(n) = Θ(f(n))

dhi, f(n) > n log b a dgn faktor polinomial sehingga suku dominan adalah f(n) + f(n/b) + f(n/b 2 )…

O(f(n))

38

Contoh:

Jadi kasus III, krn f(n) mendominasi

39

Gunakan metode Master untuk menentukan T(n) = Θ(?) bila : T(n) = 7T(n/2) + n 2 Solusi: a = 7, b = 2, f(n) = n 2 , n log 2 7 n n 2 2 = O(n log 2 ≤ cn 2.803.. 7 ε ε ), oleh karena ε, c > 0 = n 2.803..

T(n) = Θ(n

log 2 7

)

40

Gunakan metode Master untuk menentukan T(n) = Θ(?) bila : T(n) = 4T(n/2) + n 2 Solusi: a = 4, b = 2, f(n) = n 2 n 2 = Θ(n log 2 4 ) = Θ(n 2 )

T(n) = Θ(n

log 2 4

log n) = Θ(n

2

log n)

41

Gunakan metode Master untuk menentukan T(n) = Θ(?) bila : T(n) = 2T(n/3) + n 3 Solusi: a = 2, b = 3, f(n) = n 3 n log 3 2 n 3 = n 0.63

..

= Ω(n log 3 2 + ε ) ok n 3

dan

≥ cn 0.63+ ε 2f(n/3) = 2n 3 /27 ≤ cn 3 ε, c > 0 utk 2/27 < c < 1

T(n) = Θ(n

3

)

42

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 log 2 3 - ε ) nlogn ≤ cn 1.5

logn < cn 0.5

c = 1, n 0 = 16 T(n) = Θ(n log 2 3 ) 43

Gunakan metode Master untuk menentukan T(n) = Θ(?) bila : Solusi:

a

= 2,

b

= 2,

f

(

n

) = 10

n

, log

b a

= log 2 2 = 1 dapat dicek bahwa jadi 44

Metode Master yg umum

45

46