My first Magazine pemrograman-kompetitif-dasar | Page 68

6 Greedy optimal. Seperti yang terlihat pada Gambar 6.3, pemilihan ini dapat memotong dua aktivitas lain yang sebenarnya dapat kita ikuti. • Memilih aktivitas dengan waktu akhir paling awal. Gambar 6.4: Contoh pemilihan aktivitas dengan waktu akhir paling awal. Dengan memilih aktivitas yang selesai lebih awal, kita mempunyai sisa waktu lebih banyak untuk aktivitas lainnya. Tanpa peduli kapan aktivitas ini mulai atau berapa durasinya, memilih yang selesai lebih awal pasti menguntungkan. Pilihan ini adalah merupakan greedy choice , yang selalu menghasilkan solusi optimal. 6.4 Penyelesaian dengan Teknik Greedy Secara umum, persoalan dapat diselesaikan dengan teknik greedy dengan melakukan greedy choice untuk mendapatkan subpersoalan, kemudian secara rekursif menyelesaikan subpersoalan tersebut. Pada kasus activity selection, kita dapat menentukan aktivitas yang akan diikuti pertama kali. Selanjutnya kita mendapatkan subpersoalan, yang ternyata dapat diselesaikan dengan cara serupa! Gambar 6.5: Konfigurasi masukan awal. Berikut simulasi penyelesaian activity selection menggunakan greedy . Misalkan, Anda diberikan interval-interval aktivitas h1, 7i, h2, 6i, h5, 7i, h6, 9i, h9, 12i, h10, 12i, h11, 15i, h13, 14i yang divisualisasikan di Gambar 6.5. Kita akan melakukan serangkaian greedy choice yang disimulasikan pada Gambar 6.6 sampai Gambar 6.13. Gambar 6.6: Langkah 1: Pilihan yang ada: h1, 7i, h2, 6i, h5, 7i, h6, 9i, h9, 12i, h10, 12i, h11, 15i, h13, 14i. Kita pilih interval h2, 6i karena interval tersebut memiliki waktu selesai paling awal. 58