Anda di halaman 1dari 31

Knapsack

Problem
Nama Kelompok
1. Gede Beny Indrawan (1915101002)
2. Ketut Gede Subiksa (1915101007)
3. Eugene (1915101009)
4. I Gusti Agung Bajrajnana (1915101020)
Prosedur Perhitungan Algoritma Greedy
Pada Integer Knapsack
▪ Greedy by Profit
▪ Greedy by Weight
▪ Greedy by Density
Penerapan Algoritma pada Persoalan
Integer knapsack
▪  
Penerapan Algoritma pada Persoalan
Integer knapsack
Data bobot dan keuntungan barang (n=4)
wi pi
Barang ke-i
1 2 80

2 1 60

3 1 75

4 2 40
Greedy by Profit
1. Tetapkan nilai kapasitas maksimum knapsack
2. Urutkan objek-objek berdasarkan keuntungan (profit) dari yang terbesar
3. Isi knapsack dengan objek yang memiliki keuntungan terbesar terlebih
dahulu
4. Ambil satu-persatu objek yang dapat ditampung sampai kapasitas
knapsack penuh
5. Hitung jumlah bobot dan keuntungan
Greedy by Profit
Data bobot dan keuntungan barang (n=4)
wi pi
Barang ke-i
1 2 80

2 1 60

3 1 75

4 2 40
Greedy by Profit
Barang ke-i wi pi Status

1 2 80 Diambil (1)

3 1 75 Diambil (1)

2 1 60 Diambil (1)

4 2 40 Tidak (0)
Greedy by Weight
1. Tetapkan nilai kapasitas maksimum knapsack
2. Urutkan objek-objek berdasarkan berat dari yang teringan
3. Isi knapsack dengan objek yang memiliki berat teringan terlebih dahulu
4. Ambil satu-persatu objek yang dapat ditampung sampai kapasitas
knapsack penuh
5. Hitung jumlah bobot dan keuntungan
Greedy by Weight
Data bobot dan keuntungan barang (n=4)
wi pi
Barang ke-i
1 2 80

2 1 60

3 1 75

4 2 40
Greedy by Weight
Barang ke-i wi pi Status

3 1 75 Diambil (1)

2 1 60 Diambil (1)

1 2 80 Diambil (1)

4 2 40 Tidak (0)
Greedy by Density
▪  
Greedy by Density
Data bobot dan keuntungan barang (n=4)
wi pi
Barang ke-i
1 2 80

2 1 60

3 1 75

4 2 40
Greedy by Density
Barang ke-i wi pi Wi / pi Status

1 1 75 75 Diambil (1)

2 1 60 60 Diambil (1)

3 2 80 40 Diambil (1)

4 2 40 20 Tidak (0)
Data yang Diketahui
n = 3 (1,2,3) → objek
M = 20 → kapasitas
Nilai probabilitas 0 ≤ Xi ≤ 1

wi pi Pi/Wi
Barang ke-i
1 18 25 1.39

2 15 24 1.6

3 10 15 1.5
Susun data sesuai kriteria
(P2, P3, P1) = (24, 15, 25)
Dan
(W2, W3, W1) = (15, 10, 18)

wi pi Pi/Wi
Barang ke-i
2 15 24 1.6

3 10 15 1.5

1 18 25 1.39
1) PROCEDURE GREEDY KNAPSACK (P, W, X, n)  nama prosedur / proses
2) REAL  variable yang digunakan
3) INTEGER  variable yang digunakan
4)
5) isi =
6) FOR
7) IF > isi THEN EXIT ENDIF
8) (i) = 1
9) isi = isi – W(i)
10) REPEAT
11) IF i n THEN X(i) = isi/W (i) ENDIF
12) END GREEDY KNAPSACK  akhir prosedur / proses
Proses kegiatan dimulai dari langkah ke-4 sampai dengan 11
4) X(1:3) = 0, artinya X(1) = 0, X(2) = 0, X(3) = 0
5) isi = M = 20
6) Pengulangan untuk i = 1 sampai dengan 3, untuk i = 1
7) Apakah W(1) > isi
Apakah 15 > 20, jawabannya tidak, karena tidak maka perintah dibawah IF dikerjakan.
8) X(1) = 1 → nilai probabilitas untuk objek pada urutan pertama (X1)
9) isi = 20 -15 = 5
10) Repeat → mengulang untuk perulangan FOR
6) untuk i = 2
7) Apakah W(2) > isi
Apakah 15 > 5, jawabannya ya, karena yamaka perintah EXIT dikerjakan. Yaitu keluar
dari pengulangan / FOR dan mengerjakan perintah di bawah REPEAT.
11) Apakah 2 ≤ 3, jawabannya ya, karena ya maka X(2) = 5/10 = 1/2 → nilai probabilitas
untuk objek pada urutan kedua (X2).
12) Selesai (akhir dari prosedur greedy knapsack).

Berarti untuk nilai X(3) = 0 atau X3 = 0, sebab nilai probabilitas untuk objek ke-3 tidak
pernah dicari.
Jadi :
(P1, P2, P3) = (24, 15, 25)
(W2, W3, W1) = (15, 10, 18)
(X1, X2, X3) = (1, ½, 0)
Fungsi Pembatas :
∑ Wi x Xi ≤ M
(W1 x X1) + (W2 x X2) + (W3 x X3) ≤ M
(15 x 1) + (10 x ½ ) + (18 x 0) ≤ 20
= 20 ≤ 20
Fungsi Tujuan :
∑ Pi x Xi = (P1 x X1) + (P2 x X2) + (P3 x X3)
= (24 x 1) + (15 x ½ ) + (25 x 0)
= 31.5
Hasil akhir dari program yang telah dijalankan :

Properti Objek Greedy by

N Wi Pi Pi/Wi Profit Weight Density

1 18 25 1.39 1 1 0

2 15 24 1.6 0 0 1

3 10 15 1.5 0 0 0

Total Bobot 18 18 15

Total Keuntungan 25 25 24
Fractional Knapsack Problem Dengan
Strategi Penyelesaian Algoritma Greedy
▪ Masalah fractional knapsack atau knapsack pecahan merupakan teknik
yang digunakan untuk menyelesaikan masalah knapsack. Dalam
fractional knapsack, barang-barang dipecah untuk memaksimalkan
keuntungan.
▪ Dalam pendekatan greedy yang proses perhitungannya adalah rasio
keuntungan / berat untuk menentukan barang , maka dari itu barang
dengan rasio tertinggi akan dipilih terlebih dahulu.
Strategi Penyelesaian
1) Untuk setiap barang, hitung rasio nilai / bobotnya.
2) Atur semua barang dalam urutan menurun dari rasio nilai / beratnya
3) Mulailah memasukan barang ke dalam knapsack mulai dari barang dengan rasio
tertinggi. Masukan sebanyak mungkin barang ke dalam knapsack
Contoh Permasalahan :
Dengan M = 60
A B C D
Item

Profit 280 100 120 120

Weight 40 10 20 24

Ratio (Pi/Wi) 7 10 6 5
Setelah diurutkan berdasarkan Ratio (Pi/Wi)

A B C D
Item

Profit 100 280 120 120

Weight 10 40 20 24

Ratio (Pi/Wi) 10 7 6 5
Algorithm: Greedy-Fractional-Knapsack (w[1..n], p[1..n], W)
1) for i = 1 to n
2) Do x[i] = 0
3) weight = 0
4) for i = 1 to n
5) if weight + w[i] ≤ M then
X[i] = 1
weight = weight + w[i]
6) else
X[i] = (M - weight) / w[i]
weight = w
Break
7) return x
1) Pengulangan untuk i = 1 sampai dengan 4, untuk i = 1
2) X(i) = 0
3) weight = 0
4) Pengulangan i = 1 , w(1) = 10
5) 0 + 10 = 10 apakah kurang dari 60 , ya
X(i) = 1
Weight = 0 + 10
7) return x
1) Pengulangan untuk i = 1 sampai dengan 4, untuk i = 2
2) X(i) = 1
3) weight = 10
4) Pengulangan i = 2 , w(2) = 40
5) 10 + 40 = 50 apakah kurang dari 60 , ya
X(i) = 1
Weight = 10 + 40
7) return x
1) Pengulangan untuk i = 1 sampai dengan 4, untuk i = 3
2) X(i) = 2
3) weight = 50
4) Pengulangan i = 3 , w(3) = 20
5) 50 + 20 = 70 apakah kurang dari 60 , Tidak
X(i) = (60 - 50)/20 = ½ (diambil setengahnya)
Weight = 20/2 = 10
7) Break
1) Setelah disortir semua item , kemudian menurut item pertama dipilih karena berat B
kurang dari M yaitu 10 < 60 maka sisa M = 50
2) Selanjutnya item A dipilih karena kapasitas knapsack tersedia M = 50 - 40 = 10
3) Kemudian item C dipilih sebagai item berikutnya. Karena seluruh item C tidak dapat
dipilih maka fraksi C (60-50)/20) = dipilih ½
4) Sekarang kapasitas knapsack sama dengan item yang dipilih. Maka dari itu tidak ada
lagi item yang dapat dipilih.
5) Berat total item yang dipilih adalah 10 + 40 + 20 * (10/20) = 60
6) dan total keuntungannya adalah 100 + 280 + 120 * (10/20) = 380 + 60 = 440

Hasil diatas merupakan solusi optimal.


Terima Kasih

Anda mungkin juga menyukai