Secara harafiah, greedy berati rakus atau tamak. Algoritma Greedy merupakan algoritma sederhana dan lempang yang paling populer untuk pemecahan persoalan optimasi (maksimum atau minimum). Prinsip greedy adalah “take what you can get now!”, yang digunakan dalam konteks positif. Ada tiga pendekatan dalam menyelesaikan persoalan integer knapsack dengan algoritma Greedy, yaitu :
Contoh Soal Knapsack Problem
-
-
Greedy by profit
Pada setiap langkah, knapsack diisi dengan objek yang mempunyai keuntungan terbesar. Strategi ini memcoba memaksimumkan keuntungan dengan memilih objek yang paling menguntungkan terlebih dahulu. Pertama kali yang dilakukan adalah mengurutkan secara menurun objekobjek berdasarkan profit-nya. Kemudian baru diambil satu-persatu objek yang dapat ditampung oleh knapsack sampai knapsack penuh atau sudah tidak ada objek lagi yang bisa dimasukkan.
-
Greedy by weight
Pada setiap langkah, knapsack diisi dengan objek yang mempunyai berat paling ringan. Strategi ini memcoba memaksimumkan keuntungan dengan memasukkan sebanyak mungkin objek ke dalam knapsack. Pertama kali yang dilakukan adalah mengurutkan secara menaik objekobjek berdasarkan weight-nya. Kemudian baru diambil satu-persatu objek yang dapat ditampung oleh knapsack sampai knapsack penuh atau tidak ada objek lagi yang bisa dimasukkan.
-
Greedy by density
Pada setiap langkah, knapsack diisi dengan objek yang mempunyai densitas (pi/wi) terbesar. Strategi ini mencoba memaksimumkan keuntungan per unit berat terbesar. Pertama kali yang dilakukan adalah mencari nilai profit per unit (density) dari tiap-tiap objek. Kemudian objek-objek tersebut diurutkan secara menurun berdasarkan density-nya. Kemudian baru diambil satu-persatu objek yang dapat ditampung oleh knapsack sampai knapsack penuh atau tidak ada objek lagi yang bisa dimasukkan.
-
Pemilihan objek berdasarkan salah satu dari ketiga strategi di atas tidak menjamin akan memberikan solusi optimal. Bahkan ada kemungkinan ketiga strategi tersebut tidak memberikan solusi optimum.
Pembahasan lainnya :
-
- Konsep Dasar Stack
- Jenis-Jenis Binary Tree
- Strategi Algoritma Greedy
- Pengertian Knapsack Problem
- Algoritma Dynamic Programming
- Elemen Elemen Algoritma Greedy
- Karakteristik Algoritma Brute Force
- Keunggulan Bahasa Pemrograman Java
- Pengertian Logaritma dan Sifat-Sifatnya
- Efisiensi Algoritma Ditinjau dari 2 Dua Hal
- Algoritma Boyer Moore untuk String Matching
- Penyelesaian Knapsack Problem dengan Kriteria Greedy