6. Pecacaha Lajut Relasi Rekuresi Relasi rekuresi utuk dereta {a } adalah persamaa yag meyataka a kedalam satu atau lebih suku sebelumya, yaitu a 0, a,, a -, utuk seluruh bilaga bulat, dega 0, dimaa 0 adalah bilaga bulat tak egatif. Suatu dereta disebut sebagai jawaba dari relasi rekuresi jika suku-sukuya memeuhi relasi rekuresi. Dg kata lai, relasi rekuresi mirip dega dereta yag didefiisika secara rekursif, tetapi tapa meyebutka ilai (kodisi) awalya. Maka, relasi rekuresi bisa (da biasaya) memiliki jawaba gada (multiple solutio). Jika kodisi awal da relasi rekuresi disebutka dua-duaya, maka dereta dapat ditetuka secara uik. Cotoh 6.: Tijau relasi rekursi berikut: a = 2a - a -2 utuk = 2, 3, 4, Apakah dereta {a } dega a =3 merupaka solusi dari relasi rekursi tsb? Jawab: Utuk 2 kita peroleh 2a - a -2 = 2(3( )) 3( 2) = 3 = a. Jadi, {a } dega a = 3 adalah jawaba dari relasi rekuresi tsb. Apakah dereta {a } dega a =5 solusi dari relasi rekuresi tsb? Utuk 2 kita memperoleh 2a - a -2 = 2 5-5 = 5 = a. Jadi, {a } dega a = 5 juga jawaba dari relasi rekuresi tsb. Pemodela dega Relasi Rekuresi Cotoh 6.2: Seorag asabah meyimpa uag sebayak $0.000 di bak dega suku buga (majemuk) 5% pertahu. Berapa uag yag dimilikiya setelah 30 tahu? Jawab: Mis. P jumlah uag di tabuga setelah tahu. Bagaimaa cara meghitug P jika P - diketahui? Kita bisa meuruka relasi rekuresi berikut: P = P - + 0.05P - =.05P -. Kodisi awalya adalah P 0 = 0.000. Sehigga diperoleh: 6. Pecacaha Lajut -
P =.05P 0 P 2 =.05P = (.05) 2 P 0 P 3 =.05P 2 = (.05) 3 P 0 P =.05P - = (.05) P 0 Kita sekarag puya rumus utuk meghitug P utuk tahu ke- da meghidari iterasi. Dega megguaka rumus tsb kita bisa memperoleh besarya tabuga 30 tahu kemudia, P 30, jika tabuga awal (kodisi awal) P 0 = 0.000 P 30 = (.05) 30 0.000 = 43.29,42 Setelah 30 tahu, tabuga tersebut mejadi $43.29,42. Cotoh 6.3 : Adaika a adalah jumlah bit strig yag pajagya bit tapa dua bit ol beruruta. Strig yag demikia kita sebut sebagai valid strigs. Tetuka relasi rekuresiya da berika kodisi awal utuk {a }. Jawab: [Ide] Bayakya valid strig aka sama dega bayakya valid strig yag berakhir dega 0 ditambah dega bayakya valid strig yag berakhir dega. Kita asumsika 3, sehigga strig tsb megadug sedikitya 3 bit. Selajutya kita asumsika juga bahwa bayakya valid strig sepajag (-) adalah a -, da bayakya valid strig dg pajag (-2) adalah a -2. Maka, berapakah bayakya valid strig sepajag, jika strig berakhira bit? Ada a - strig yag demikia, yaitu himpua valid strig sepajag ( ) dega bit ditambahka di akhir strig tsb. Catata: Meambah pada valid strig ii tidak megubah status strig tsb (masih valid strig). 6. Pecacaha Lajut - 2
Sekarag kita perlu tahu: ada berapa valid strig sepajag, jika strig berakhir dega 0? Valid strig sepajag yag berakhir dega 0 haruslah memiliki bit pada posisi ke ( ) (jika tidak demikia, maka aka berakhir dega 00). Da berapa bayak valid strig sepajag ( ) yag berakhira bit? Kita tahu bahwa ada a - buah strig sepajag yag berakhira bit. Jadi, ada a -2 buah strig sepajag ( ) yag berakhira bit. Jadi ada a -2 buah valid strig sepajag yag berakhir dg bit 0 (semua valid strig sepajag ( 2) dega bit-bit 0 ditambahka padaya). Seperti telah disebutka sebelumya, bayakya valid strig adalah bayakya valid strig berakhira 0 ditambah valid strig berakhira. Kita medapatka relasi rekuresi berikut : a = a - + a -2 Bagaimaa kodisi awalya? a = 2 {, 0} a 2 = 3 {, 0, 0, 00} a 3 = a 2 + a = 3 + 2 = 5 {, 0, 0, 00, 0, 00, 00, 000} a 4 = a 3 + a 2 = 5 + 3 = 8 a 5 = a 4 + a 3 = 8 + 5 = 3 Teryata dereta ii memeuhi relasi rekuresi seperti pada dereta Fiboacci. Karea a = f 3 da a 2 = f 4, diperoleh a = f +2. Memecahka Persamaa Rekuresi Pada umumya, kita lebih memilih memiliki rumus eksplisit utuk megitug a, daripada melakuka iterasi. Formula tersebut bisa diperoleh dega cara sistematis utuk satu jeis relasi rekuresi. Yaitu relasi rekuresi yag meyataka suatu suku didalam dereta sebagai kombiasi liier dari suku-suku sebelumya. 6. Pecacaha Lajut - 3
Defiisi. Relasi rekuresi homoge derajat k dega koefisie kosta adalah relasi rekursi berbetuk: a = ca + c2a 2 +... + cka k dimaa c, c 2,, c k bilaga riil, da c k 0. Dereta yag memeuhi relasi rekursi yag demikia dapat ditetuka secara uik dega relasi rekursi da k buah kodisi awal a 0 = C 0, a = C, a 2 = C2,., a k- = C k- Cotoh: Relasi rekursi P = (.05)P - adalah relasi rekuresi liier homoge ber-derajat satu. Relasi rekursi f = f - + f -2 adalah relasi rekuresi liier homoge derajat dua. Relasi rekursi a = a 5 adalah relasi rekursi homoge liier derajat lima. Pada saat memecahka relasi rekuresi yag demikia, kita mecari solusi berbetuk a = r, dimaa r kostata. a = r jika a jawaba dari relasi rekuresi a = ca + c a + + c a jika da haya jika 2 2... k k r = cr + c2 r +... + c r 2 k k Kita bagi persamaa ii dega r -k da kuragka kedua sisi dega sisi kaa: r cr c r... c r c = 0 k k k 2 2 k k Persamaa ii disebut sebagai persamaa karakteristik dari relasi rekursi. Jawaba dari persamaa karakteristik ii disebut sebagai akar karakteristik dari relasi rekuresi. Kita tijau relasi rekursi homoge liier derajat dua. 6. Pecacaha Lajut - 4
Teorema. Misalka c da c 2 bilaga riil. Jika r 2 cr c2 = 0 mempuyai dua akar berbeda r da r 2, maka dereta {a } adalah jawaba dari relasi rekursi a = ca + c a 2 2 jika da haya jika a = α r + α r utuk = 0,, 2,, dimaa α da α 2 kostata. 2 2 [Bukti dapat dilihat didalam buku referesi.] Cotoh 6.4: Tetuka jawaba dari relasi rekuresi a = a + 2a 2 dega a 0 =2 da a =7? 2 Jawaba: Persamaa karakteristik dari relasi rekuresi tersebut adalah r r 2= 0. Akarya adalah r = 2 da r = -. Maka, dereta {a} adalah jawaba dari relasi rekuresi jika da haya jika: a α 2 α ( ) 2 ( ) 2 = + utuk kostata α da α 2 tertetu. Dega persamaa a = α 2 + α da kodisi awal a 0 =2 da a =7, diperoleh a 0 = 2 = α + α 2 a = 7 = α 2 + α 2 (-) Pemecaha kedua persamaa diatas memberika α = 3 da α 2 = -. Jadi, jawaba relasi a = 32. rekursi da kodisi awal adalah dereta {a } dega ( ) Cotoh 6.5: Berika rumus eksplisit bilaga Fiboacci. Jawab: Bilaga Fiboacci memeui relasi rekuresi f = f + f 2 dega kodisi awal f 0 =0 da f =. Persamaa karakteristiya adalah r 2 r = 0. Akar-akarya adalah 5 5 r = +, r2 = 2 2 Dega demikia, bilaga Fiboacci diberika oleh 5 5 f α + α = + 2 2 2 utuk suatu kostata α da α 2. Kita bisa meetuka ilai kostata ii sehigga dereta memeuhi persyarata f 0 = 0 da f = : f0 = α+ α2 = 0 6. Pecacaha Lajut - 5
5 5 f α + α = + 2 2 2 = Solusi uik sistem dua persamaa dega da dua variabel ii adalah α =, α2 =. 5 5 Akhirya rumus eksplisit bilaga Fiboacci ditemuka: f + 5 5 = 5 2 5 2 Tetapi bagaimaa jika persamaa karakteristik itu haya memiliki satu akar? Bagaimaa mecocokka persamaa tersebut dega syarat awal a 0 da a? Teorema. Misalka c da c 2 bilaga riil dimaa c 2 0. Adaika r 2 c r c 2 =0 haya mempuyai satu akar r 0. Dereta {a } adalah jawaba dari relasi rekursi a = ca + c a 2 jika da haya jika a = α r + α r, utuk = 0,, 2,, dimaa α da α 2 adalah kostata. 0 2 0 Cotoh 6.6: Tetuka jawaba dari relasi rekursi a = 6a - 9a -2 dega a 0 = da a = 6? Jawaba: Satu-satuya akar dari r 2 6r + 9 = 0 adalah r 0 = 3.Maka, jawaba dari relasi rekursi ii adalah a = α 3 + α 2 3 utuk kostata α da α 2. Utuk memeuhi kodisi awal, diperluka a 0 = = α da a = 6 = α 3 + α 2 3 Pemecaha persamaa ii meghasilka α = da α 2 =. Akibatya, solusi keseluruha adalah a = 3 + 3. 6. Pecacaha Lajut - 6
Relasi Pecah-Belah-da-Kuasai Ada algoritma yag memecahka masalah dega cara memecah masalah tsb kedalam beberapa bagia masalah yag lebih kecil sampai diperoleh jawaba yag trivial. Misalya,algoritma pecaria bier berturut-turut membagi masuka kedalam dua bagia da kemudia meghilagka bagia yag tak releva higga tiggal yag releva. Tekik ii disebut sebagai tekik divide ad coquer (pecah-belah-da-kuasai). Kita bisa megguaka relasi rekuresi utuk megaalisa kompleksitas algoritma yag demikia. Misalka suatu algoritma membagi masalah (masuka) berukura ke a buah sub-masalah, dimaa setiap sub-masalah berukura /b. Asumsika bahwa sebayak g() operasi dilaksaaka utuk setiap bagia masalah tsb. Maka, jika f() adalah bayakya operasi yag diperluka utuk memecahka masalah tsb, maka f aka memeuhi relasi rekuresi f() = af(/b) + g(). Ii disebut sebagai relasi rekuresi divide-ad-coquer (pecah belah da kuasai). Cotoh 6.7: Algoritma pecaria bier meguragi pecaria suatu aggota dari dereta berukura ke pecaria bier berukura /2 (utuk geap). Diperluka dua kali proses pembadiga utuk melakuka peguraga ii. Maka, jika f() bayakya pembadiga yag diperluka utuk mecari suatu aggota dalam dereta berukura, maka f() = f(/2) + 2 jika geap. Biasaya, kita tidak mecoba memecahka relasi devide-ad-coquer tsb, tetapi megguakaya utuk meuruka estimasi big-o dari kompleksitas algoritma. Teorema. Adaika f fugsi meigkat yag memeuhi relasi rekuresi f() = af(/b) + c d utuk = b k, dimaa k adalah bilaga bulat positif, a, c, da d bilaga dimaa a, da b bilaga bulat lebih dari. Maka f() adalah O( d ), jika a < b d, 6. Pecacaha Lajut - 7
O( d log ) jika a = b d, O( log ba ) jika a > b d Cotoh 6.8: Utuk pecaria bier, f() = f(/2) + 2, sehigga a =, b = 2, da d = 0 (d = 0 karea di sii, g() tidak bergatug pada ). Akibatya, a = b d, da, f() adalah O( d log ) = O(log ). Algoritma pecaria bier memiliki kompleksitas waktu yag logaritmis. 6. Pecacaha Lajut - 8