Matakuliah Tahun : T0034 / Perancangan & Analisis Algoritma : 2008 Pertemuan 11 METODE GREEDY (1) 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] Bina Nusantara TEKNIK PENYELESAIAN MASALAH • Beberapa teknik yang populer : – – – – – Bina Nusantara 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] Bina Nusantara 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) Bina Nusantara 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] Bina Nusantara 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. Bina Nusantara MENGHITUNG SOLUSI FEASIBLE • Jika contoh di atas adalah kasus 0/1 Knapsack, solusi feasible-nya: Barang Bina Nusantara Berat Nilai Barang Berat Nilai {} 0 0 {A,B,C} 19 8075 {A} 7 2975 {A,B,D} 12 5045 {B} 3 1230 {A,B,E} 15 6455 {C} 9 3870 {A,C,D} 18 7685 {D} 2 840 {A,C,E} 21 9095 {E} 5 2250 {A,D,E} 14 6065 {A,B} 10 4205 {B,C,D} 14 5940 {A,C} 16 6845 {B,C,E} 17 7350 {A,D} 9 3815 {B,D,E} 10 4320 {A,E} 12 5225 {C,D,E} 16 6960 {B,C} 12 5100 {A,B,C,D} 21 8915 {B,D} 5 2070 {A,B,C,E} 24 10325 {B,E} 8 3480 {A,B,D,E} 17 7295 {C,D} 11 4710 {A,C,D,E} 23 9935 {C,E} 14 6120 {B,C,D,E} 19 8190 {D,E} 7 3090 {A,B,C,D,E} 27 11165 [buku utama, tabel 6.1] PENYELESAIAN • 0/1 Knapsack Problem – – • Unbounded Knapsack Problem – – – – – – • Tidak dapat diselesaikan dengan Metoda Greedy Mengapa? 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 – – – – – Bina Nusantara 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 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 value per kg = $425 value per kg = $410 value per kg = $430 value per kg = $420 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. Bina Nusantara UNBOUNDED KNAPSACK PROBLEM (2) • Andai berat maksimal diubah menjadi 23 kg • Langkah 1 : hitung value per kg – – – – – • 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. – – – – – • Value tertinggi adalah $450 per kg, berarti barang E akan diambil. Langkah 3 : masukkan barang dengan value tertinggi sebanyak dimungkinkan – • value per kg = $425 value per kg = $410 value per kg = $430 value per kg = $420 value per kg = $450 Langkah 2 : ambil value tertinggi – • 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 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 Bina Nusantara FRACTIONAL KNAPSACK PROBLEM • Berat maksimal 23 kg • Langkah 1 : hitung value per kg – – – – – • 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 value per kg = $425 value per kg = $410 value per kg = $430 value per kg = $420 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 ! Bina Nusantara 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] Bina Nusantara 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) : – – – – – – – – – Bina Nusantara (1) (2) (3) (4) (1, (1, (1, (2, (3, 2) 3) 4) 3) 4) sequence sequence sequence sequence sequence sequence sequence sequence sequence (1) (2) (3) (4) (2, (1, (4, (2, (4, 1) 3) atau (3, 1) 1) 3) 3) profit profit profit profit profit profit profit profit profit 110 47 25 20 157 135 130 72 45 DENGAN METODE GREEDY Job Consideration Action Φ Job 1 Can be assigned to [1,2], accept {1} Job 2 Can’t fit, reject {1} Job 3 Can be assigned to [1,2], accept {1,3} Job 4 Can’t fit, reject [buku utama, tabel 6.2] Bina Nusantara 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! Bina Nusantara REVIEW • Apa yang sudah dipahami? • Apa yang akan dibahas selanjutnya? Bina Nusantara
© Copyright 2024 Paperzz