Algoritma Greedy Search adalah pendekatan pemecahan masalah yang selalu memilih pilihan terbaik yang tersedia pada setiap langkah tanpa mempertimbangkan dampak jangka panjang dari keputusan tersebut. Meskipun tidak menjamin menemukan solusi optimal global, metode ini sering bekerja dengan cepat dan mudah diterapkan.
Bagaimana itu bekerja
- Inisialisasi: Mulailah dengan solusi kosong atau awal.
- Pilihan Optimal Lokal: Pada setiap langkah, pilih pilihan optimal lokal berdasarkan fungsi tujuan atau kriteria yang ditentukan.
- Terapkan Pilihan: Terapkan pilihan optimal ke solusi saat ini.
- Ulangi: Ulangi langkah 2 hingga 4 hingga tidak ada pilihan lokal yang lebih baik yang dapat dibuat.
Contoh: Knapsack Problem
Pertimbangkan Knapsack Problem, di mana kita memiliki ransel dengan berat maksimum dan daftar barang dengan bobot dan nilai. Tujuannya adalah memilih item untuk memaksimalkan nilai total dalam ransel. Pendekatan Pencarian Serakah untuk masalah ini adalah memilih item berdasarkan rasio nilai-ke-berat tertinggi.
Contoh Kode di C++
Dalam contoh ini, kami menggunakan pendekatan Greedy Search untuk menyelesaikan Knapsack Problem. Kami mengurutkan item berdasarkan rasio nilai-terhadap-berat yang menurun dan memilih item dengan rasio tertinggi yang masih sesuai dengan batas berat ransel.