You are on page 1of 8

1. METODE GREEDY Metode/Algoritma Greedy merupakan algoritma yang membentuk solusi langkah per langkah.

Pada setiap langkah tersebut akan dipilih keputusan yang paling optimal. Keputusan tersebut tidak perlu memperhatikan keputusan selanjutnya yang akan diambil, dan keputusan tersebut tidak dapat diubah lagi pada langkah selanjutnya. Metode Greedy digunakan untuk memecahkan persoalan optimasi. Persoalan optimasi adalah persoalan mencari solusi optimum. Persoalan optimasi ada 2, yaitu maksimasi dan minimasi. Algoritma greedy membentuk solusi langkah per langkah (step by step). Pada setiap langkah terdapat banyak pilihan yang perlu dieksplorasi. Sehingga, pada setiap langkah harus dibuat keputusan yang terbaik dalam menentukan pilihan. (keputusan yang telah diambil pada suatu langkah tidak dapat diubah lagi pada langkah selanjutnya). Pada setiap langkah membuat pilihan optimum lokal dengan harapan bahwa langkah sisanya mengarah ke solusi optimum global. a. Prinsip Utama Algoritma Greedy Prinsip utama algoritma greedy adalah pada setiap langkah dalam algoritma greedy, kita ambil keputusan yang paling optimal untuk langkah tersebut tanpa memperhatikan konsekuensi pada langkah selanjutnya. Kita namakan solusi tersebut dengan optimum lokal. Kemudian saat pengambilan nilai optimum lokal pada setiap langkah, diharapkan tercapai optimum global, yaitu tercapainya solusi optimum yang melibatkan keseluruhan langkah dari awal sampai akhir. b. Elemen-elemen algoritma greedy: 1. Himpunan kandidat, C. 2. Himpunan solusi, S 3. Fungsi seleksi (selection function) 4. Fungsi kelayakan (feasible) 5. Fungsi obyektif Dengan kata lain: algoritma greedy melibatkan pencarian sebuah himpunan bagian, S, dari himpunan kandidat, C; yang dalam hal ini, S harus memenuhi beberapa kriteria yang ditentukan, yaitu menyatakan suatu solusi dan S dioptimisasi oleh fungsi obyektif. Metode Greedy banyak digunakan dalam berbagai penyelesaian maslah, antara lain adalah : 1. Optimal Storage on Tapes Problem 2. Kanpsack Problem 3. Minimum Spanning Tree Problem

4. Shortest Path Problem Contoh Masalah Optimasi: Penukaran Uang Diberikan uang senilai A. Tukar A dengan koin-koin uang yang ada. Berapakah jumlah minimum koin yang diperlukan untuk penukaran uang tersebut. Persoalan Minimasi. Contoh 1: tersedia banyak koin 1, 5, 10, 25 32 = 1 + 1 + + 1 32 = 5 + 5 + 5 + 5 + 10 + 1 + 1 32 = 10 + 10 + 10 + 1 + 1 Minimum: 32 = 25 + 5 + 1 + 1 Pada masalah penukaran uang: Himpunan kandidat: himpunan koin yang merepresentasikan nilai 1, 5, 10, 25, paling sedikit mengandung satu koin untuk setiap nilai. Himpunan solusi: total nilai koin yang dipilih tepat sama jumlahnya dengan nilai uang yang ditukarkan. Fungsi seleksi: pilihlah koin yang bernilai tertinggi dari himpunan kandidat yang tersisa. Fungsi layak: memeriksa apakah nilai total dari himpunan koin yang dipilih tidak melebihi jumlah uang yang harus dibayar. Fungsi obyektif: jumlah koin yang digunakan minimum. Warning: Optimum global belum tentu merupakan solusi optimum (terbaik), tetapi sub-optimum atau pseudo-optimum. Alasan: 1. Algoritma greedy tidak beroperasi secara menyeluruh terhadap semua alternatif solusi yang ada. 2. Terdapat beberapa fungsi SELEKSI yang berbeda, sehingga kita harus memilih fungsi yang tepat jika kita ingin algoritma menghasilkan solusi optiamal. (32 koin) (7 koin) (5 koin) (4 koin)

Jadi, pada sebagian masalah algoritma greedy tidak selalu berhasil memberikan solusi yang optimal. Contoh 2: Tinjau masalah penukaran uang. (a) Koin: 5, 4, 3, dan 1 Uang yang ditukar = 7. Solusi greedy: 7 = 5 + 1 + 1 ( 3 koin) tidak optimal Solusi optimal: 7 = 4 + 3 (b) Koin: 10, 7, 1 Uang yang ditukar: 15 Solusi greedy: 15 = 10 + 1 + 1 + 1 + 1 + 1 Solusi optimal: 15 = 7 + 7 + 1 (c) Koin: 15, 10, dan 1 Uang yang ditukar: 20 Solusi greedy: 20 = 15 + 1 + 1 + 1 + 1 + 1 Solusi optimal: 20 = 10 + 10 Contoh Metode Greedy (6 koin) (2 koin) (6 koin) (hanya 3 koin) ( 2 koin)

2. Dynamic Programming Dynamic Programming adalah suatu teknik algoritma untuk memecahkan masalah dimana solusi optimal dari masalah tersebut dapat dipandang sebagai suatu deret keputusan. Tidak seperti program linier, Program Dinamik (PD) tidak mempunyai standar formulasi matematik. PD lebih merupakan suatu cara umum untuk melakukan optimasi dengan persamaan matematik yang cocok dengan masalah yang dihadapi. Insight dan ingenuity dibutuhkan untuk mengenali penggunaan PD dalam menyelesaikan masalah lapangan. Cara terbaik penyampaian PD adalah dengan mengenalkan beberapa permasalahan yang dapat diselesaikan dengan PD.

Pemrograman dinamik menyelesaikan permasalahan dengan cara menyelesaikan subsub permasalahan, kemudian mengabungkannya menjadi penyelesaian permasalahan tersebut. Hal ini mirip dengan metoda divide-and-conquer. Pemrograman dinamik sering diterapkan pada permasalahan optimasi, yang mana mempunyai banyak kemungkinan penyelesaian. Algoritma pemrograman dinamik dapat dibagai kedalam 4 langkah: 1. Menentukan struktur dari suatu penyelesaian optimal. 2. Mendefinisikan secara rekursif nilai dari penyelesaian optimal. 3. Menghitung nilai dari penyelesaian optimal dengan cara bottom-up. Langkah 1 sampai 3 ini merupakan basis dari penyelesaian pemrograman dinamik. Langkah 4 dapat diabaikan apabila hanya diperlukan sebuah solusi optimal. 4. Membentuk suatu penyelesaian optimal dari informasi yang didapat.

Karateristik Program Dinamik

1. Permasalahannya dapat dibagi menjadi tahapan dengankeputusan kebijakan pada tiap tahap. 2. Tiap tahap mempunyai sejumlah kondisi terkait. 3. Pengaruh keputusan kebijakan pada setiap tahapan adalah transformasi kondisi saat ini kepada sebuah kondisi yang terkait dengan awal dari tahapan berikutnya.

4. Prosedur penyelesaian dirancang untuk mendapatkan kebijakan optimum untuk seluruh tahapan yaitu dengan membuat kebijakan optimum untuk setiap tahap pada setiap kemungkinan kondisi. 5. Pada suatu kondisi, sebuah kebijakan optimum untuk tahapan selanjutnya tidak terkait oleh kebijakan optimumdari tahapan sebelumnya. Jadi keputusan optimum yang diambil hanya tergantung pada kondisi sekarang bukan dari bagaimana kita sampai pada kondisi sekarang. Inilah yang dinamai prinsip optimum dari Program Dinamik. 6. Prosedur penyelesaian mulai dengan mendapatkan solusi optimum untuk tahap terakhir. 7. Hubungan rekursif untuk memperoleh solusi optimum untuk tahap n, dengan solusi optimum untuk tahap n+1 telah diketahui. Rumus tersebut menjadi:

Contoh Dynamic Programing

TUGAS RESUME

METODE GREEDY DAN DYNAMIC PROGRAMING

NAMA : MAYA SYUKRILA NIM : H12111291

JURUSAN MATEMATIKA PROGRAM STUDI STATISTIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS HASANUDDIN MAKASSAR 2012

You might also like