Anda di halaman 1dari 5

Tugas 4 Algoritma dan Struktur Data

Rangkuman Materi Kuliah (Metode Greedy dan Dynamic Programming)

YUNITA INDRASWARI H12111254 STATISTIKA

Jurusan Matematika Fakultas Matematika dan Ilmu Perngetahuan Alam Universitas Hasanuddin Makassar 2012

Metode Greedy
Metode greedy adalah metode yang digunakan untuk memecahkan persoalan optimasi, ada 2 macam persoalan optimasi, yaitu maksimasi dan minimasi, artinya dengan metode greedy kita bemaksud mencari solusi terbaik, yaitu solusi yang benilai minimum atau maksimum dari sekumpulan alternatif solusi yang ada. Arti kata greedy sendiri adalah RAKUS. Namun maksud dari metode greedy adalah kita melihat solusi optimal lokal, atau solusi optimal yang tampak didepan mata, dengan harapan mendapatkan solusi optimal secara global atau secara keseluruhan. Contohnya adalah pada kasus penukaran uang, misalkan kita memiliki uang senilai 32 dan akan kita tukarkan dengan koin, uang koin pecahan yang tersedia adalah 1, 5, 10, 25, jika kita mengharapkan agar pecahan yang kita miliki sedikit mungkin maka kita bisa menggunakan metode greedy dengan cara memilih pecahan terbesar terlebih dahulu. Mari kita lihat uang 32. Pecahan 1, 5, 10, 25. Dengan metode greedy kita harus memilih pecahan terbesar terlebih dahulu yaitu 25, kemudian baru mengambil sampai sesuai dengan uang yang kita miliki. yaitu= 25+5+1+1=32(4 koin) sebenarnya ada beberapa alternatif solusi pemecahan masalah diatas sebagai berikut 32=1+1+1+1+...+1 (32 koin) 32=5+5+5+5+10+1+1 (7koin) 32=10+10+10+1+1 (5koin) Dalam hal ini metode greedy berhasil mendapat kan hasil maksimal secara global atau secara keseluruhan dengan mengambil koin yang terbesar terlebih dahulu. Namun ada kalanya metode greedy gagal mendapatkan solusi optimal, hal ini juga dikarenakan oleh sifat metode greedy itu sendiri yang memperhatikan keuntungan lokal (diawal) tanpa memperhatikan kemungkinan solusi yang lain, contoh: Uang yang ditukar sebesar 7. Koin yang tersedia 5,4,3, dan 1. Jika kita menukarkan uang tersebut dengan metode greedy maka kita harus mengambil pecahan terbesar lebih dulu yaitu 5, baru kemudian kita memilih pecahan berikutnya hingga genap berjumlah 7. 7 = 5 + 1 + 1 (3koin) Alternatif solusi 7 = 4 + 3 (2koin) Pada contoh diatas jelas terlihat bahwa metode greedy gagal memberikan solusi optimal.

Untuk mata uang dollar AS, euro Eropa, dan crown Swedia, algoritma greedy selalu memberikan solusi optimum. Misalnya untuk menukarkan $6,39 dengan uang kertas (bill) dan koin sen (cent), kita dapat memilih: Satu buah uang kertas senilai $5 Satu buah uang kertas senilai $1 ($5 + $1 = $6)) Satu koin 25 sen ($5 + $1 + 25c = $6,25) Satu koin 10 sen ($5 + $1 + 25c + 10c = $6,35) Empat koin 1 sen ($5 + $1 + 25c + 10c + 1c + 1c + 1c + 1c = $6,39)

Misalkan sebuah Negara memiliki 5 satuan koin $1, $5, $10, $100, $200. Andaikan seorang memiliki uang dengan jumah $12,352. Berapa jumlah koin minimal dengan nominal tersebut. Jawab : Himpunan solusi feasible : $ 12.352 {$1, $5, $10, $100, $200} [ ] = 61 buah koin x $200 = $ 12.200 Sisa $ 152 Himpunan solusi fesiable $ 152 {$1, $5, $10, $100} [ ]= 1 buah koin x 100 = $ 100 Sisa $ 52 Himpunan solusi fesiable $ 52 {$1, $5, $10} [ ] = 5 buah koin x 10 = $ 50 Sisa $ 2 Himpuna solusi fesiable $ 2 {$1, $5} [ ]= 2 koin x 1 = $ 2 Sisa 0

Dynamic Programming
Program dinamis adalah suatatu teknik matematis yang biasanya digunakan untuk membuat suatu keputusan dari serangkaian keputusan yang saling berkaitan. Dalam hal ini program dinamis menyediakan prosedur sistematis untuk menentukan kombinasi keputusan yang optimal. Tujuan utama model ini ialah untuk mempermudah penyelesaian persoalan optimasi yang mempunyai karakteristik tertentu Tidak seperti pemrograman linier, tidak ada bentuk matematis standar untuk perumusan pemrograman dinamis. Akan tetapi, pemrograman dinamis adalah pendekatan umum untuk

pemecahan masalah dan persamaan tertentu yang digunakan di dalamnya harus dibentuk sesuai dengan situasi masalah yang dihadapi. Istilah yang biasa digunakan antara lain: 1. Stage(tahap) adalah bagian persoalan yang mengandung decision variable. 2. Alternatif, pada setiap stage terdapat decision variable dan fungsi tujuan yang menentukan besarnya nilai setiap alternative. 3. State, state menunjukkan kaitan satu stage dengan stage lainnya, sedemikian serupa sehingga setiap stage dapat dioptimisasikan secara terpisah sehingga hasil optimasi layak untuk seluruh psrsoalan. Program dinamis (dynamic programming) yang ditemukan oleh Richard Bell man pada tahun 1953 merupakan suatu metode penyelesaian masalah di mana solusi persoalan dapat dipandang sebagai serangkaian keputusan yang salinng berkaitan. Program dinamis merupakan salah satu metode yang yang biasanya digunakan untuk menyederhanakan persoalan-persoalan rekursif. Program dinamis fokus pada bagian permasalahan yang tumpang-tindih (overlapping subproblems). Rangkaian keputusan dibuat dennngan prinsip optimalitas (optimal substructure),dimana solusi optimal dari bagian solusi permasalahan bisa digunakan untuk menemukan solusi optimal untuk masalah secara keseluruhan. Penerapan program dinamis ini sangat luas. Di antaranya, yang sederhana, adalah untung menghitung angka koefisien binominal. Juga terdapat sejumlah algoritma lain yang didasarkan pada program dinamis, seperti algoritma Cocke-Younger-Kasami (CYK) untuk menentukan apakah string dapat diterima suatu context-free grammar, algoritma Viterbi untuk model hidden Markov, algoritma Earley untuk chart parser, algoritma Needleman-Wunsch yang dipakai dalam bionformatik, algoritma Floyds All-Pairs untuk mencari lintasan terpendek, algoritma Selinger untuk optimal query suatu basis data, algoritma De Boor untuk evaluasi kurva B-spline, dan lain-lain.

5 6 B 3 5 4 5 A 2 C 6

F 4 G 3

J 5

6 L 2 6 K 5

3 D

2 4

Metode Greedy : Dari A ke L = 2+4+3+5 = 12 yaitu dilihat kedepannya yang mana lebih kecil.

Dynamic Programming : Dist (E) = { Dist (F) = { Dist (G) = { Dist (H) = { Dist (I) = { Dist (J) = { Dist (K) = { Dist (L) = { } } } } } } } }

cost (E) = 8 cost (F) = 6 cost (G) = 7 cost (H) = 5 cost (I) = 7

cost (J) = 6+3 = 9 cost (K) = 5+2 = 7 cost (L) = 7 + 6= 13

Anda mungkin juga menyukai