260 likes | 972 Views
Pertemuan 11 METODE GREEDY (1). Matakuliah : T0034 / Perancangan & Analisis Algoritma Tahun : 2008. JENIS SOLUSI MASALAH. Salah satu fungsi algoritma adalah untuk menghitung penyelesaian problem / masalah Sebuah problem bisa : Memiliki satu set solusi tunggal
E N D
Pertemuan 11METODE GREEDY (1) Matakuliah : T0034 / Perancangan & Analisis Algoritma Tahun : 2008
JENIS SOLUSI MASALAH • Salah satu fungsi algoritma adalah untuk menghitung penyelesaian problem / masalah • Sebuah problem bisa : • Memiliki satu set solusi tunggal • Memiliki beberapa set solusi yang sama-sama benar • Memiliki beberapa set solusi dengan tingkat kebenaran berbeda • Tidak memiliki set solusi yang ”total” benar, tapi ada beberapa set solusi yang mendekati benar • Tidak memiliki set solusi sama sekali [buku utama, bab 6.1]
TEKNIK PENYELESAIAN MASALAH • Beberapa teknik yang populer : • Metode Greedy • Dynamic Programming • Kompresi Data • Backtracking • Branch and Bound
METODE GREEDY • Greedy = serakah • Algoritma sering melakukan beberapa tahap perhitungan sebelum menemukan solusi akhir. • Kadang tahap-tahap tersebut menghasilkan sejumlah elemen yang nantinya akan dipergunakan untuk menyusun solusi akhir. • Metode Greedy akan ”mengabaikan” perhitungan lengkap dalam pencarian solusi, menggantikannya dengan memakai elemen-elemen tersebut untuk menghitung solusi dengan lebih cepat. • Sangat berguna jika pencarian solusi 100% memakan waktu terlalu lama. • Daripada membuang banyak waktu untuk menghitung solusi ”terbaik”, lebih baik dihemat dengan mencari solusi yang ”cukup baik”. • Sayangnya, tidak semua jenis masalah dapat diselesaikan dengan Metode Greedy [buku utama, bab 6.2]
UNIVERSAL SOLUSI • Sebuah problem memiliki : • Universal solusi • Yaitu semua kemungkinan solusi baik yang benar dan yang salah • Solusi Feasible • Yaitu semua kemungkinan solusi yang benar, tetapi tingkat kebenarannya berbeda-beda • Fungsi objektif • Yaitu fungsi untuk mengukur solusi mana yang lebih benar (lebih baik) • Solusi optimal • Yaitu solusi yang paling benar (paling baik)
KNAPSACK PROBLEM • Seorang pencuri memasuki sebuah rumah. Dia membawa tas yang hanya muat mengangkut 20 kg barang. Di dalam rumah terdapat barang A, B, C, D, E Barang A beratnya 7 kg, nilainya $2975 Barang B beratnya 3 kg, nilainya $1230 Barang C beratnya 9 kg, nilainya $3870 Barang D beratnya 2 kg, nilainya $840 Barang E beratnya 5 kg, nilainya $2250 • Barang apa saja yang harus dibawa si pencuri agar hasilnya maksimal? (tidak boleh melebihi kapasitas tas-nya yaitu 20 kg) [buku utama, bab 6.3]
VARIASI KNAPSACK PROBLEM • Fractional Knapsack Problem • Barang boleh dibawa sebagian saja (unit dalam pecahan). • 0/1 Knapsack Problem • Setiap barang hanya tersedia 1 unit, take it or leave it. • Bounded Knapsack Problem • Setiap barang tersedia sebanyak N unit (jumlahnya terbatas). • Unbounded Knapsack Problem • Setiap barang tersedia lebih dari 1 unit, jumlahnya tak terbatas.
MENGHITUNG SOLUSI FEASIBLE • Jika contoh di atas adalah kasus 0/1 Knapsack, solusi feasible-nya: [buku utama, tabel 6.1]
PENYELESAIAN • 0/1 Knapsack Problem • Tidak dapat diselesaikan dengan Metoda Greedy • Mengapa? • Unbounded Knapsack Problem • Bisa diselesaikan dengan Metoda Greedy • Hitung value per kg • Ambil value tertinggi • Masukkan barang dengan value tertinggi sebanyak dimungkinkan (perhatikan batas maksimal berat dan jumlah ketersedian barang). • Jika ada sisa berat, gunakan barang dengan value kedua tertinggi dst • Hitung kompleksitas algoritmanya! • Fractional Unbounded Knapsack Problem • Bisa diselesaikan dengan Metoda Greedy • Hitung value per kg • Ambil value tertinggi • Masukkan barang dengan value tertinggi sebanyak dimungkinkan (perhatikan batas maksimal berat dan jumlah ketersedian barang). • Hitung kompleksitas algoritmanya!
UNBOUNDED KNAPSACK PROBLEM (1) • Langkah 1 : hitung value per kg • Barang A beratnya 7 kg, nilainya $2975 value per kg = $425 • Barang B beratnya 3 kg, nilainya $1230 value per kg = $410 • Barang C beratnya 9 kg, nilainya $3870 value per kg = $430 • Barang D beratnya 2 kg, nilainya $840 value per kg = $420 • Barang E beratnya 5 kg, nilainya $2250 value per kg = $450 • Langkah 2 : ambil value tertinggi • Value tertinggi adalah $450 per kg, berarti barang E akan diambil. • Langkah 3 : masukkan barang dengan value tertinggi sebanyak dimungkinkan • Berat maksimal yang dapat dibawa adalah 20 kg, barang E tersedia sangat banyak (tanpa batas), berarti pencuri itu dapat membawa pulang 4 buah barang E. Keuntungan yang diperoleh adalah 4 x 2250 = $9000 • Langkah 4 : jika ada sisa berat, masukkan barang dengan value kedua tertinggi dan seterusnya. • Dalam kasus di atas, tidak terdapat sisa berat karena 4 buah barang E sudah memiliki berat total 20 kg, menyamai batas berat maksimal.
UNBOUNDED KNAPSACK PROBLEM (2) • Andai berat maksimal diubah menjadi 23 kg • Langkah 1 : hitung value per kg • Barang A beratnya 7 kg, nilainya $2975 value per kg = $425 • Barang B beratnya 3 kg, nilainya $1230 value per kg = $410 • Barang C beratnya 9 kg, nilainya $3870 value per kg = $430 • Barang D beratnya 2 kg, nilainya $840 value per kg = $420 • Barang E beratnya 5 kg, nilainya $2250 value per kg = $450 • Langkah 2 : ambil value tertinggi • Value tertinggi adalah $450 per kg, berarti barang E akan diambil. • Langkah 3 : masukkan barang dengan value tertinggi sebanyak dimungkinkan • Berat maksimal yang dapat dibawa adalah 23 kg, barang E tersedia sangat banyak (tanpa batas), berarti pencuri itu dapat membawa pulang 4 buah barang E. Keuntungan yang diperoleh adalah 4 x 2250 = $9000 • Langkah 4 : jika ada sisa berat, masukkan barang dengan value kedua tertinggi dan seterusnya. • Barang C (value kedua tertinggi) tidak bisa dibawa karena melebihi batas berat • Barang A (value ketiga tertinggi) tidak bisa dibawa karena melebihi batas berat • Barang D (value keempat tertinggi) dibawa sebanyak 1 buah, total berat kini 22 kg • Sisa berat 1 kg, tidak ada barang lain yang bisa dibawa • 4 barang E dan 1 barang D bernilai $9420 • Andai pencuri membawa 4 E dan 1 B, dia bisa memperoleh $10320 Metode Greedy tidak optimal
FRACTIONAL KNAPSACK PROBLEM • Berat maksimal 23 kg • Langkah 1 : hitung value per kg • Barang A beratnya 7 kg, nilainya $2975 value per kg = $425 • Barang B beratnya 3 kg, nilainya $1230 value per kg = $410 • Barang C beratnya 9 kg, nilainya $3870 value per kg = $430 • Barang D beratnya 2 kg, nilainya $840 value per kg = $420 • Barang E beratnya 5 kg, nilainya $2250 value per kg = $450 • Langkah 2 : ambil value tertinggi • Value tertinggi adalah $450 per kg, berarti barang E akan diambil. • Langkah 3 : masukkan barang dengan value tertinggi sebanyak dimungkinkan • Berat maksimal yang dapat dibawa adalah 23 kg, barang E tersedia dalam jumlah pecahan, berarti pencuri itu dapat membawa pulang 4,6 barang E. Keuntungan yang diperoleh adalah 4,6 x 2250 = $10350 • Kali ini Metode Greedy menghasilkan solusi optimal !
PENGURUTAN JOBS BERDASAR DEADLINE • Bentuk sederhana dari masalah penjadwalan. • Terdapat sejumlah job yang harus dilakukan. • Job akan menghasilkan profit apabila berhasil diselesaikan sebelum batas waktunya (deadline). [buku utama, bab 6.4]
CONTOH KASUS n=4; (p1,p2,p3,p4)=(110,47,25,20); (d1,d2,d3,d4)=(2,1,2,1) • Terdapat 4 buah job. • Job 1 dapat menghasilkan keuntungan 110 jika diselesaikan dengan deadline urutan (sequence) kedua. • Job 2 dapat menghasilkan keuntungan 47 jika diselesaikan dengan deadline urutan pertama. • Job 3 dapat menghasilkan keuntungan 25 jika diselesaikan dengan deadline urutan kedua. • Job 4 dapat menghasilkan keuntungan 20 jika diselesaikan dengan deadline urutan pertama. • Dengan teknik biasa (complete) : • (1) sequence (1) profit 110 • (2) sequence (2) profit 47 • (3) sequence (3) profit 25 • (4) sequence (4) profit 20 • (1, 2) sequence (2, 1) profit 157 • (1, 3) sequence (1, 3) atau (3, 1) profit 135 • (1, 4) sequence (4, 1) profit 130 • (2, 3) sequence (2, 3) profit 72 • (3, 4) sequence (4, 3) profit 45
DENGAN METODE GREEDY [buku utama, tabel 6.2]
LATIHAN • Seorang pencuri memasuki sebuah rumah. Dia membawa tas yang hanya muat mengangkut 14 kg barang. Di dalam rumah terdapat barang A, B, C, D, E Barang A beratnya 4 kg, nilainya $980 Barang B beratnya 5 kg, nilainya $1275 Barang C beratnya 2 kg, nilainya $480 Barang D beratnya 6 kg, nilainya $1410 Barang E beratnya 3 kg, nilainya $750 Semua barang berbentuk bubuk, jadi bisa diambil sebagian (tidak harus diambil dalam satuan bulat) Tentukan barang yang harus dibawa si pencuri dan jumlahnya agar hasilnya maksimal! • Terdapat sebuah problem pengurutan jobs sebagai berikut : • n=6 • (p1,p2,p3,p4,p5,p6)=(65,75,45,30,35,70) • (d1,d2,d3,d4,d5,d6)=(2,1,1,2,3,2) Tentukan jobs yang harus diambil berdasarkan Metode Greedy!
REVIEW • Apa yang sudah dipahami? • Apa yang akan dibahas selanjutnya?