Salah satu penggunaan metode greedy adalah untuk menyelesaiakan permasalahan Knapsack (Knapsack problem), knapsack problem bisa kita gambarkan, misalnya kita mempunyai sebuah kantong atau tas dengan kapasitas tertentu sedangkan dihadapan kita terdapat begitu banyak pilihan barang, maka kita harus memilih barang mana saja yang kira-kira akan kita ungkut sesuai kapasitas kantong yang kita miliki supaya kita bisa mendapatkan keuntungan yang sebesar-besarnya atau maksimal.
Dalam menghadapi masalah di atas, metode greedy memiliki 3 pilihan strategi pengangkutan, yaitu:
- Greedy by Profit
Strategi ini mengharapkan keuntungan maksimal dengan cara memasukan barang atau objek dengan nilai keuntungan terbesar terlebih dahulu ke dalam kantong atau knapsack. Jadi strategi ini hanya mempertimbangkan jumlah keuntungan dari sekumpulan barang, dengan catatan berat barang yang akan dibawa tidak melebihi kapasitas kantong yang kita miliki. - Greedy by weight
Pada strategi ini, kita berusaha memasukan barang sebanyak-banyaknya kedalam kantong, jadi barang atau objek yang dimasukan terlebih dahulu adalah barang dengan bobot paling ringan terlebih dahulu, dengan harapan dengan banyaknya barang atau objek yang terangkut kita bisa mendapatkan keuntungan sebesar-besarnya. - Greedy by density
Strategi ini mengharapkan keuntungan sbesar-besarnya dengan memasukan barang yang memiliki keuntungan per unit terbesar (Pi/Wi) terlebih dahulu kedalam kantong.
- Masukkan objek satu per satu ke dalam knapsack. Sekali objek dimasukkan ke dalam knapsack, objek tersebut tidak bisa dikeluarkan lagi.
Namun karena metode greedy hanya mempertimbangkan keuntungan local dengan harapan mendapat keuntungan global –seperti yang sudah dijelaskan sebelumnya-, maka metode ini juga tidak menjamin akan memberikan solusi optimal
Contoh 1:
Tinjau persoalan 0/1 Knapsack dengan n = 4. w1 = 6; p1 = 12
w2 = 5; p1 = 15
w3 = 10; p1 = 50
w4 = 5; p1 = 10
Kapasitas knapsack W = 16
Properti objek
|
Greedy by
|
Solusi
Optimal
| |||||
i
|
wi
|
pi
|
pi /wi
|
profit
|
weight
|
density
| |
1
|
6
|
12
|
2
|
0
|
1
|
0
|
0
|
2
|
5
|
15
|
3
|
1
|
1
|
1
|
1
|
3
|
10
|
50
|
5
|
1
|
0
|
1
|
1
|
4
|
5
|
10
|
2
|
0
|
1
|
0
|
0
|
Total bobot
|
15
|
16
|
15
|
15
| |||
Total keuntungan
|
65
|
37
|
65
|
65
|
· Pada contoh diatas, algoritma greedy dengan strategi pemilihan objek berdasarkan profit dan density memberikan solusi optimal, sedangkan pemilihan objek berdasarkan berat tidak memberikan solusi optimal.
Kemudian perhatikan contoh berikut ini
Contoh 2:
persoalan Knapsack lain dengan 6 objek:
w1 = 100; p1 = 40
w2 = 50; p2 = 35
w3 = 45; p3 = 18
w4 = 20; p4 = 4
w5 = 10; p5 = 10
w6 = 5; p6 = 2
Kapasitas knapsack W = 100
Properti objek
|
Greedy by
|
Solusi
Optimal
| |||||
i
|
wi
|
pi
|
pi /wi
|
profit
|
weight
|
density
| |
1
|
100
|
40
|
0,4
|
1
|
0
|
0
|
0
|
2
|
50
|
35
|
0,7
|
0
|
0
|
1
|
1
|
3
|
45
|
18
|
0,4
|
0
|
1
|
0
|
1
|
4
|
20
|
4
|
0,2
|
0
|
1
|
1
|
0
|
5
|
10
|
10
|
1,0
|
0
|
1
|
1
|
0
|
6
|
5
|
2
|
0,4
|
0
|
1
|
1
|
1
|
Total bobot
|
100
|
80
|
85
|
100
| |||
Total keuntungan
|
40
|
34
|
51
|
55
|
- Pada contoh2, terlihat algoritma greedy dengan ketiga strategi pemilihan objek tidak berhasil memberikan solusi optimal. Solusi optimal permasalah ini adalah X = (0, 1, 1, 0, 0, 0) dengan total keuntungan = 55.
Kesimpulan: Algoritma greedy tidak selalu berhasil menemukan solusi optimal untuk masalah 0/1 Knapsack.
pada contoh kedua berhasil kaliii memberikan solusi optimal.
ReplyDeletecoba cara yg density itu diperhatiin lg deh, kan bisa tuh yg diberi angka 1 yg di kolom 0,7 | 0,4(yg wi nya = 50) | 0,4(yg wi nya = 45) | 0,4(yg wi nya = 5)
dapet dah tuh solusi optimal
total bobot = 100
total keuntungan = 55
CMIIW
Kalo di greedy, bagian density itu dipilih dari hasil density paling besar dulu, jadi gabisa langsung 0,7 tapi harus ngurut, dari 1,0 dulu
DeleteMasih bingung gmana cara dapetin profit weight sama density nya
ReplyDelete