46
1 Pertemuan-4 : Recurrences Pendahuluan: Pengertian, contoh, dll Metode substitusi Metode pohon rekursi Metode master

Pertemuan-4 : Recurrences

  • 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

Page 1: Pertemuan-4 : Recurrences

1

Pertemuan-4 : Recurrences Pendahuluan:

Pengertian, contoh, dll Metode substitusi Metode pohon rekursi Metode master

Page 2: Pertemuan-4 : Recurrences

2

Penemu fungsi rekursifLahir : Hungary, February 17, 1905

Meninggal : Hungary, February 16, 1977

Page 3: Pertemuan-4 : Recurrences

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.

Page 4: Pertemuan-4 : Recurrences

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.

Page 5: Pertemuan-4 : Recurrences

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, …

Page 6: Pertemuan-4 : Recurrences

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

Page 7: Pertemuan-4 : Recurrences

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

Page 8: Pertemuan-4 : Recurrences

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

Page 9: Pertemuan-4 : Recurrences

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.

Page 10: Pertemuan-4 : Recurrences

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

Page 11: Pertemuan-4 : Recurrences

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.

Page 12: Pertemuan-4 : Recurrences

12

Solusi:

dengan

disebut golden ratio

Page 13: Pertemuan-4 : Recurrences

13

Andaikan:

Page 14: Pertemuan-4 : Recurrences

14

Komputasi rekursif:

recFib(n) {

if (n ≤ 1)

return n

else

return recFib(n-1) + recFib(n-2)

}

Page 15: Pertemuan-4 : Recurrences

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)

Page 16: Pertemuan-4 : Recurrences

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)

Page 17: Pertemuan-4 : Recurrences

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.

Page 18: Pertemuan-4 : Recurrences

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)

Page 19: Pertemuan-4 : Recurrences

19

Metode substitusi

nTnT

Tn

2

11Diketahui :

nOnT Buktikan bahwa:

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

Page 20: Pertemuan-4 : Recurrences

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

Page 21: Pertemuan-4 : Recurrences

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

Page 22: Pertemuan-4 : Recurrences

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:

Page 23: Pertemuan-4 : Recurrences

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

Page 24: Pertemuan-4 : Recurrences

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

Page 25: Pertemuan-4 : Recurrences

25

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

N N / N

Page 26: Pertemuan-4 : Recurrences

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

Page 27: Pertemuan-4 : Recurrences

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.

Page 28: Pertemuan-4 : Recurrences

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.

Page 29: Pertemuan-4 : Recurrences

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

Page 30: Pertemuan-4 : Recurrences

30

a = 3

Page 31: Pertemuan-4 : Recurrences

31

a = 4

Page 32: Pertemuan-4 : Recurrences

32

a = 5

Page 33: Pertemuan-4 : Recurrences

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

Page 34: Pertemuan-4 : Recurrences

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

Page 35: Pertemuan-4 : Recurrences

35

Contoh:

Jadi kasus I, shg:

Page 36: Pertemuan-4 : Recurrences

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)

Page 37: Pertemuan-4 : Recurrences

37

Contoh:

Jadi kasus II, shg:

Page 38: Pertemuan-4 : Recurrences

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

Page 39: Pertemuan-4 : Recurrences

39

Contoh:

Jadi kasus III, krn f(n) mendominasi

Page 40: Pertemuan-4 : Recurrences

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)

Page 41: Pertemuan-4 : Recurrences

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)

Page 42: Pertemuan-4 : Recurrences

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)

Page 43: Pertemuan-4 : Recurrences

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)

Page 44: Pertemuan-4 : Recurrences

44

Gunakan metode Master untuk menentukan

T(n) = Θ(?) bila :

Solusi:a = 2, b = 2, f(n) = 10n, logba = log22 = 1

dapat dicek bahwa

jadi

Page 45: Pertemuan-4 : Recurrences

45

Metode Master yg umum

Page 46: Pertemuan-4 : Recurrences

46