1 / 48

Rekursi dan Relasi Rekurens

Rekursi dan Relasi Rekurens. Bahan Kuliah IF2120 Matematika Diskrit Oleh : Rinaldi MUnir. Program Studi Informatika Sekolah Teknik Elektro dan Informatika (STEI) ITB. Rekursi. Sebuah objek dikatakan rekursif ( recursive ) jika ia didefinisikan dalam terminologi dirinya sendiri .

lilka
Télécharger la présentation

Rekursi dan Relasi Rekurens

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RekursidanRelasiRekurens BahanKuliah IF2120 MatematikaDiskrit Oleh: RinaldiMUnir Program StudiInformatika SekolahTeknikElektrodanInformatika (STEI) ITB

  2. Rekursi • Sebuahobjekdikatakanrekursif (recursive) jikaiadidefinisikandalamterminologidirinyasendiri. • Prosesmendefinisikanobjekdalamterminologidirinyasendiridisebutrekursi (recursion). • Perhatikantigabuahgambarpadatigaslideberikutini.

  3. FungsiRekursif • Fungsirekursifdidefinisikanolehduabagian: (i) Basis • Bagian yang berisi nilai fungsi yang terdefinisi secara eksplisit. • Bagian ini juga sekaligus menghentikan rekursif (dan memberikan sebuah nilai yang terdefinisi pada fungsi rekursif). (ii) Rekurens • Bagian ini mendefinisikan fungsi dalam terminologi dirinya sendiri. • Berisi kaidah untuk menemukan nilai fungsi pada suatu input dari nilai-nilai lainnya pada input yang lebih kecil.

  4. basis • Contoh 1: Misalkanf didefinsikansecararekusifsbb Tentukannilai f(4)! Solusi: f(4) = 2f(3) + 4 = 2(2f(2) + 4) + 4 = 2(2(2f(1) + 4) + 4) + 4 = 2(2(2(2f(0) + 4) + 4) + 4) + 4 = 2(2(2(23 + 4) + 4) + 4) + 4 = 2(2(2(10) + 4) + 4) + 4 = 2(2(24) + 4) + 4 = 2(52) + 4 = 108 rekurens

  5. Cara lain menghitungnya: f(0) = 3 f(1) = 2f(0) + 4 = 2  3 + 4 = 10 f(2) = 2f(1) + 4 = 2  10 + 4 = 24 f(3) = 2f(2) + 4 = 2  24 + 4 = 52 f(4) = 2f(3) + 4 = 2  52 + 4 = 108 Jadi, f(3) = 108.

  6. Contoh 2: Nyatakann! dalamdefinisirekursif Solusi: Misalkan f(n) = n!, maka Menghitung 5! secararekursifadalah: 5! = 5  4! = 5  4  3! = 5  4  3  2! = 5  4  3  2  1! = 5  4  3  2  1  0! = 5  4  3  2  1  1 = 120

  7. Algoritmamenghitungfaktorial: functionFaktorial (inputn :integer)integer { mengembalikannilai n!; basis : jika n = 0, maka 0! = 1 rekurens: jika n > 0, maka n! = n  (n-1)! } DEKLARASI - ALGORITMA: ifn = 0 then return 1 { basis } else returnn * Faktorial(n– 1){ rekurens } end

  8. Contoh 3: Barisan Fibonacci 0, 1, 1, 2, 3, 5, 8, 11, 19, …. Dapatdinyatakansecararekursifsebagaiberikut: • Contoh 4: Fungsi (polinom) Chebysevdinyatakansebagai

  9. Contoh 5: Deretdidefinisikansecararekursifsebagaiberikut: sehingga

  10. Latihan 1. Definisikanansecararekursif , yang dalamhalini a adalahbilanganriiltidak-noldannadalahbilanganbulattidak-negatif. 2. Nyatakana bsecararekursif, yang dalamhaliniadanb adalahbilanganbulatpositif. (Solusinyaadasetelah slide berikut!)

  11. Solusi: 1. sehingga: 2.

  12. HimpunanRekursif • String adalahrangkaiansejumlahkarakter Contoh: ‘itb’ disusunolehkarakteri, t,dan b ‘informatika’ disusunolehkarakteri, n, f, o, r, m, a, t, i, k, a • String kosong (null string) atau ‘’ adalah string denganpanjangnol . Notasi:  • Alfabetadalahhimpunankarakter yang elemen-elemennyaadalahpenyusun string. Notasi:  Contoh:  = {0, 1},  = {a, b, c, …, z}

  13. Misalkan* adalahhimpunan string yang dibentukdarialfabet , maka * dapatdidefinisikansecararekursifsebagaiberikut: (i) Basis:   * (ii) Rekurens: Jikaw  *danx  , makawx  * • Contoh 6: Misalkan  = {0, 1}, makaelemen-elemen * dibentuksebagaiberikut: (i)  (basis) (ii) 0 +  = 0, 1 +  = 1 0 + 1 = 01, 0 + 0 = 00, 1 + 0 = 10, 0 + 0 = 00, 1 + 1 = 11 00 + 1 = 001, 010, 110, 1110, 110001, ….dst

  14. Sebuahstringdibentukdaripenyambungan (concatenation) sebuah string dengan string lain. Contoh: ‘a’  ‘b’ = ‘ab’ ‘w’  ‘xyz’ = ‘wxyz’ ‘itb’  ‘ ‘ = ‘itb ‘ (tandamenyatakanconcatenation) • Penggabunganduabuah string dapatdidefinisikansecararekursifsebagaiberikut: (i) Basis: Jikaw *, makaw = w, yang dalamhalini  adalah string kosong (ii) Rekurens: Jikaw1 *danw2 *danx  , maka w1w2 x = (w1w2) x

  15. Panjangsebuah string adalahbanyaknyakarakterdidalam string tersebut. Contoh: ‘itb’ panjangnya 3 ‘informatika’ panjangnya 11  (string kosong) panjangnya 0 • Panjang string (disimbolkandengan L) dapatdidefinisikansecararekursif: (i) Basis: L() = 0 (ii) Rekurens: L(wx) = L(w) + 1 jikaw  *danx  

  16. StrukturRekursif • Struktur data yang pentingdalamkomputeradalahpohonbiner (binary tree).

  17. Simpul (node) padapohonbinermempunyai paling banyakduabuahanak. • Jumlahanakpadasetiapsimpulbisa 1, 2, atau 0. • Simpul yang mempunyaianakdisebutsimpulcabang (branch node) atausimpuldalam (internal node) • Simpul yang tidakmempunyaianakdisebutsimpuldaun (leave).

  18. Pohonbineradalahstruktur yang rekursif, sebabsetiapsimpulmempunyaicabang yang jugaberupapohon. Setiapcabangdisebutupapohon (subtree).

  19. Olehkarenaitu, pohondapatdidefinisikansecararekursifsebagariberikut: (i) Basis: kosongadalahpohonbiner (ii) Rekurens: Jika T1 dan T2 adalah pohon biner, maka  adalah pohon biner T1T2

  20. Prosespembentukanpohonbinersecararekursif: (i)  (ii)

  21. BarisanRekursif • Perhatikanbarisanbilanganberikutini: 1, 2, 4, 8, 16, 64, … Setiapelemenke-nuntukn = 0, 1, 2, … merupakanhasilperpangkatan 2 dengann, atauan= 2n. Secararekursif, setiapelemenke-nmerupakanhasil kali elemensebelumnyadengan 2, atauan= 2an – 1. Basis: a0 = 1 Rekurens: an= 2an – 1.

  22. Contoh 7: Kolonibakteridimulaidari lima buahbakteri. Setiapbakterimembelahdirimenjadiduabakteribarusetiapsatu jam. Berapajumlahbakteribarusesudah4 jam? Misalkanan = jumlahbakterisetelahn jam, yang dapatdinyatakandalamrelasirekursifsebagaiberikut: n = 1  jumlahbakteri = a1 = 2a0 = 2  5 = 10 n = 2  jumlahbakteri = a2 = 2a1 = 2  10 = 20 n = 3  jumlahbakteri = a3 = 2a2 = 2  20 = 40 n = 4  jumlahbakteri = a4 = 2a3 = 2  40 = 80 Jadi, setelah 4 jam terdapat 80 buahbakteri

  23. RelasiRekurens • Barisan (sequence) a0, a1, a2, …, andilambangkandengan {an} • Elemenbarisanke-n, yaituan, dapatditentukandarisuatupersamaan. • Bilapersamaan yang mengekspresikanandinyatakansecararekursifdalamsatuataulebihtermelemensebelumnya, yaitua0, a1, a2, …, an–1, makapersamaantersebutdinamakanrelasirekurens. Contoh: an = 2an–1+ 1 an= an–1 + 2an–2 an = 2an–1 – an–2

  24. Kondisiawal(initial conditions) suatubarisanadalahsatuataulebihnilai yang diperlukanuntukmemulaimenghitungelemen-elemenselanjutnya. Contoh: an = 2an–1+ 1; a0 = 1 an= an–1 + 2an–2 ; a0 = 1 dana1 = 2 • Karenarelasirekurensmenyatakandefinisibarisansecararekursif, makakondisiawalmerupakanlangkah basis padadefinisirekursiftersebut. • Contoh 8. Barisan Fibonacci 0, 1, 1, 2, 3, 5, 8, 13, … dapatdinyatakandenganrelasirekurens fn = fn–1 + fn–2 ; f0 = 0 danf1 = 1 • Kondisiawalsecaraunikmenentukanelemen-elemenbarisan. Kondisiawal yang berbedaakanmenghasilkanelemen-elemenbarisan yang berbeda pula.

  25. Solusidarisebuahrelasirekurensadalahsebuah formula yang tidakmelibatkanlagitermrekursif. Formula tersebutmemenuhirelasirekurens yang dimaksud. • Contoh9: Misalkan {an} adalahbarisan yang memenuhirelasirekurensberikut: an = 2an–1 – an–2 ; a0 = 1 dana1 = 2 Periksaapakahan = 3nmerupakansolusirelasirekurenstersebut. Penyelesaian: 2an–1 – an–2 = 2[3(n – 1)] – 3(n – 2) = 6n – 6 – 3n + 6 = 3n = an Jadi, an = 3nmerupakansolusidarirelasirekurenstersebut.

  26. Apakahan = 2nmerupakansolusirelasirekurens an = 2an–1 – an–2 ; a0 = 1 dana1 = 2? Penyelesaian: 2an–1 – an–2 = 22n–1 – 2n–2 = 2n–1 + 1 – 2n–2 = 2n – 2n–2 2n Jadi, an = 2nbukanmerupakansolusirelasirekurenstsb. Cara lain: Karenaa0 = 1 dana1 = 2, makadapatdihitung a2 = 2a1 – a0 = 22 – 1 = 3 Dari rumusan = 2ndapatdihitunga0 = 20 = 1, a1 = 21 = 2, dana2 = 22 = 4 Karena 3  4, makaan = 2nbukanmerupakansolusi darirelasirekurenstsb.

  27. PemodelandenganRelasiRekurens • Bungamajemuk. Contoh 10. Misalkanuangsebanyak Rp10.000 disimpandi bank dengansistembungaberbungadenganbesarbunga 11% per tahun. Berapabanyakuangsetelah 30 tahun? MisalkanPnmenyatakannilaiuangsetalahntahun. Nilaiuangsetelahntahunsamadengannilaiuangtahunsebelumnyaditambahdenganbungauang: Pn = Pn–1 + 0,11 Pn–1 ; P0 = 10.000

  28. SolusirelasirekurensPn = Pn–1 + 0,11 Pn–1 ; P0 = 10.000 dapatdipecahkansebagaiberikut: Pn = Pn–1 + 0,11 Pn–1 = (1,11) Pn–1 = (1,11)[(1,11)Pn–2] = (1,11)2Pn–2 = (1,11)2 [(1,11) Pn–3] = (1,11)3Pn–3 = … = (1,11)nP0 Jadi, Pn=(1,11)n P0 = 10.000 (1,11)n Setelah 30 tahun, banyaknyauangadalah P30=10.000 (1,11)30 = Rp228.922,97

  29. 2. Menara Hanoi (The Tower of Hanoi) Contoh 11. MenaraHanoi adalahsebuahpuzzle yang terkenalpadaakhirabad 19. Puzzle iniditemukanolehmatematikawanPerancis, Edouard Lucas. Dikisahkanbahwadikota Hanoi, Vietnam, terdapattigabuahtiangtegaksetinggi 5 meter dan 64 buahpiringan (disk) dariberbagaiukuran. Tiappiringanmempunyailubangditengahnya yang memungkinkannyauntukdimasukkankedalamtiang. Padamulanyapiringantersebuttersusunpadasebuahtiangsedemikianrupasehinggapiringan yang dibawahmempunyaiukuranlebihbesardaripadaukuranpiringandiatasnya. PendetaBudhamemberipertanyaankepadamurid-muridnyanya: bagaimanamemindahkanseluruhpiringantersebutkesebuahtiang yang lain; setiap kali hanyasatupiringan yang bolehdipindahkan, tetapitidakbolehadapiringanbesardiataspiringankecil. Tiang yang satulagidapatdipakaisebagaitempatperalihandengantetapmemegangaturan yang telahdisebutkan. MenurutlegendapendetaBudha, bilapemindahanseluruhpiringanituberhasildilakukan, makaduniaakankiamat!

  30. Pemodelan:

  31. Kasusuntukn = 3 piringan

  32. Secaraumum, untukn piringan, penyelesaiandengancaraberpikirrekursifadalahsebagaiberikut: Kita harusmemindahkanpiringan paling bawahterlebihdahuluketiangBsebagai alas bagipiringan yang lain. Untukmencapaimaksuddemikian, berpikirlahsecararekursif: pindahkann – 1 piringanteratasdariA keC,lalupindahkanpiringan paling bawahdariAkeB,lalupindahkann – 1 piringandariCkeB. pindahkan n– 1 piringandari A ke C pindahkan 1 piringanterbawahdari A ke B pindahkan n– 1 piringandari C ke B Selanjutnyadengantetapberpikirrekursif-pekerjaanmemindahkann – 1 piringandarisebuahtiangketiang lain dapatdibayangkansebagaimemindahkann – 2 piringanantarakeduatiangtersebut, lalumemindahkanpiringanterbawahdarisebuahtiangketiang lain, begituseterusnya.

  33. MisalkanHnmenyatakanjumlahperpindahanpiringan yang dibutuhkanuntukmemecahkanteka-tekiMenara Hanoi. pindahkan n– 1 piringandari A ke C  Hn-1 kali pindahkan 1 piringanterbawahdari A ke B  1 kali pindahkan n– 1 piringandari C ke B  Hn-1 kali Makajumlahperpindahan yang terjadiadalah: Hn= 2Hn-1+ 1 dengankondisiawalH1 = 1

  34. Penyelesaianrelasirekurens: Hn= 2Hn-1+ 1 = 2(2Hn-2 + 1) + 1 = 22 Hn-2+ 2 + 1 = 22 (2Hn-3+ 1) + 2 + 1 = 23 Hn-3+ 22 + 2 + 1  = 2n-1 H1+ 2n-2 + 2n-3 + … + 2 + 1 = 2n-1 + 2n-2 + 2n-3 + … + 2 + 1  deretgeometri = 2n – 1 • Untuk n = 64 piringan, jumlahperpindahanpiringan yang terjadiadalah H64 = 264 – 1 = 18.446.744.073.709.551.615

  35. Jikasatu kali pemindahanpiringanmembutuhkanwaktu 1 detik, makawaktu yang diperlukanadalah 18.446.744.073.709.551.615 detik atausetaradengan 584.942.417.355 tahunatausekitar 584 milyartahun! • Karenaitu, legenda yang menyatakanbahwaduniaakankiamatbilaorangberhasilmemindahkan 64 piringandimenara Hanoi adajugabenarnya, karena 584 milyartahuntahunadalahwaktu yang sangat lama, duniasemakintua, danakhirnyahancur. Wallahualam

  36. PenyelesaianRelasiRekurens • Relasirekurensdapatdiselesaikansecaraiteratifataudenganmetode yang sistematis. • Secaraiteratifmisalnyapadacontohbungamajemuk (Contoh 10) danMenara Hanoi (Contoh 11). • Secarasistematisadalahuntukrelasirekurens yang berbentukhomogenlanjar (linear homogeneous). • Relasirekurensdikatakanhomogenlanjarjikaberbentuk an= c1an–1 + c2an–2 + … + ckan–k yang dalamhalini c1, c2, …, ckadalahbilanganriildan ck 0.

  37. Contoh 12. Pn = (1,11) Pn–1  homogenlanjar fn= fn–1 + fn–2 homogenlanjar an = 2an–1 – a2n–2 tidakhomogenlanjar Hn= 2Hn–1 – 1  tidakhomogenlanjar an = nan–1  tidakhomogenlanjar Penjelasan: Hn= 2Hn–1 – 1 tidakhomogenlanjarkarenaterm -1 tidakdikalidengannilaiHjuntuksembarangj an = nan–1 tidakhomogenlanjarkarenakoefisiennyabukankonstanta.

  38. Solusirelasirekurens yang berbentukhomogenlanjaradalahmencaribentuk an= rn yang dalamhalini r adalahkonstanta. • Sulihkanan= rnkedalamrelasirekurenhomugenlanjar: an= c1an–1 + c2an–2 + … + ckan–k menjadi rn= c1rn–1 + c2rn–2 + … + ckrn–k

  39. Bagikeduaruasdenganrn–k , menghasilkan rk– c1rk–1 – c2rk–2 –… – ck – 1 r – ck = 0 • Persamaandiatasdinamakanpersamaankarakteristikdarirelasirekurens. • Solusipersamaankarakteristikdisebutakar-akarkarakteristik, danmerupakankomponensolusirelasirekurens yang kitacari (an= rn).

  40. Untukrelasirekurenshomogenlanjarderajatk = 2, an= c1an–1 + c2an–2 persamaankarakteristiknyaberbentuk: r2– c1r– c2 = 0 • Akarpersamaankarakteristikadalahr1danr2. • Teorema 1: Barisan{an} adalahsolusirelasirekurensan = c1an–1 + c2an–2 jikadanhanyajikaan = 1rn1 + 2rn2 untuk n = 0, 1, 2, … dengan1 dan2adalahkonstan.

  41. Contoh 13. Tentukansolusirelasirekurensberikut: an = an–1 + 2an–2; a0 = 2 dana1 = 7? Penyelesaian: Persamaankarakteristik: r2– r– 2= 0. Akar-akarnya: (r – 2) (r + 1) = 0  r1= 2 danr2= -1 an= 1rn1 + 2rn2  an = 12n+ 2(-1)n a0= 2  a0 = 2 = 120+ 2(-1)0 = 1 + 2 a1= 7  a1= 7 = 121+ 2(-1)1 = 1 – 2 Diperolehduapersamaan: 1 + 2= 2 dan1 – 2= 7, solusinyaadalah1 = 3 dan2= –1 Jadi, solusirelasirekurensadalah: an= 32n – (-1)n

  42. Jikapersamaankarakteristikmemilikiduaakar yang sama (akarkembar, r1 = r2), makaTeorema 1 tidakdapatdipakai. TerapkanTeorema 2 berikutini. • Teorema2: Misalkanr2– c1r– c2 = 0 mempunyaiakarkembarr0. Barisan{an} adalahsolusirelasirekurensan = c1an–1 + c2an–2 jikadanhanyajikaan = 1rn0 + 2nrn0 untukn = 0, 1, 2, … dengan1 dan2adalahkonstan. • Contoh14. Tentukansolusirelasirekurensberikut: an = 6an–1 – 9an–2; a0 = 1 dana1 = 6? Penyelesaian:

  43. Penyelesaian: Persamaankarakteristik: r2– 6r+ 9= 0. Akar-akarnya: (r – 3)(r– 3 ) = 0  r1 = r2= 3 r0 an = 1rn0 + 2nrn0  an = 13n+ 2n3n a0= 1  a0 = 1 = 130+ 2 030 = 1 a1 = 6  a1 = 6 = 131+ 2131 = 31 + 32 Diperolehduapersamaan: 1 = 1 dan31 + 32= 6, solusinyaadalah1 = 1 dan2= 1 Jadi, solusirelasirekurensadalah: an = 3n + n3n

  44. Latihan. Selesaikanrelasirekurensberikut: (a) an = 2an–1 ; a0 = 3 (b) an = 5an–1 – 6an–2; a0 = 1 dana1= 0?

More Related