OPTIMASI PENERAPAN ALGORITMA GREEDY PADA
OPTIMASI
PENERAPAN ALGORITMA GREEDY PADA
KASUS KNAPSACK 0/1
Siska Andriani, S.Kom
ALGORITMA GREEDY
Algoritma greedy adalah salah satu yang paling banyak digunakan dalam
masalah optimasi. Greedy berarti “tamak‟ atau “rakus‟.
Penamaan tersebut dikarenakan prinsip utama algoritma ini adalah
mengambil solusi yang paling baik pada saat itu juga. Solusi yang baik ini
adalah solusi yang memberikan sumbangan paling berarti (memiliki bobot paling
kecil ataupun keuntungan yang paling besar) dan masih memenuhi syarat-syarat
yang diberlakukan dalam pengambilan.
CARA KERJA GREEDY
Bertahap, pada setiap tahap diambil suatu keputusan yang
dianggap terbaik, tanpa memperhitungkan konsekuensi ke
depan. Ini berarti hanya memilih suatu optimum lokal.
Seolah mengatakan: take what you can get now
greedy
Saat algoritme berhenti, optimum local diharapkan merupakan
optimum global.
KNAPSACK
A. Pengertian
Knapsack adalah tas atau karung. Karung digunakan untuk memuat
sesuatu. Dan tentunya tidak semua objek dapat ditampung di dalam
karung tersebut. Karung tersebut hanya dapat menyimpan beberapa objek
dengan total ukurannya (weight) lebih kecil atau sama dengan ukuran
kapasitas karung.
B. Manfaat knapsack
Digunakan untuk mencari solusi optimal baik minimum, maupun maksimum
RATIONAL KNAPSACK (RK)
• Problem instance: Terdapatn objek, masing-masing dengan bobot wi dan
profit pi untuk1 ≤ i ≤ n. W adalah kapasitas knapsack
• Solusi fisibel: vektor(x1 , …, x n ) dengan 0 ≤ xi ≤ 1 untuk 1 ≤ i ≤ n
• Fungsi tujuan:
• Solusi optimal: maximum profit
IDE ALGORITMA GREEDY
Pada setiap tahap, akan diambil jumlah ukuran terbesar yang paling mungkin,
dengan catatan konstrains dipenuhi.
Langkah terhenti bila:
1. Knapsack penuh, atau
2. Semua objek telah berhasil ditempatkan dalam knapsack tanpa kelebihan
kapasitas
ALGORITMA YANG DIGUNAKAN UNTUK
KNAPSACK 0/1
GREEDY
Greedy By Profit (pi)
Greedy By Weight(wi)
Greedy By Density(pi/wi)
CONTOH PENYELESAIAN DENGAN ALGORITMA
GREEDY
Tinjau persoalan Integer Knapsack dengan n = 4.
w1 = 2;
p1 = 20
w2 = 5;
p2 = 30
w3 = 10;
p3 = 50
w4 = 5;
p4 = 10
Kapasitas knapsack W = 16
LANGKAH PENYELESAIAN
i
1
2
3
4
Properti Objek
Pi
Wi
Pi/Wi
20
2
10
30
5
6
50
10
5
10
5
2
Total bobot
Total keuntungan
Profit
0
1
1
0
15
80
Greedy By
Weight
1
1
0
1
12
60
Density
1
1
0
1
12
60
Solusi
Optimal
0
1
1
0
15
80
PSEUDO CODE ALGORITMA GREEDY
for i =1 to n do
x[i] = 0 { inisialisasi setiap status pengambilan objek i dengan 0 }
endfor
i=0
TotalBobot = 0
Available = true
while (i w
Kompleksitas O(2n)
PENERAPAN ALGORITMA GREEDY PADA
KASUS KNAPSACK 0/1
Siska Andriani, S.Kom
ALGORITMA GREEDY
Algoritma greedy adalah salah satu yang paling banyak digunakan dalam
masalah optimasi. Greedy berarti “tamak‟ atau “rakus‟.
Penamaan tersebut dikarenakan prinsip utama algoritma ini adalah
mengambil solusi yang paling baik pada saat itu juga. Solusi yang baik ini
adalah solusi yang memberikan sumbangan paling berarti (memiliki bobot paling
kecil ataupun keuntungan yang paling besar) dan masih memenuhi syarat-syarat
yang diberlakukan dalam pengambilan.
CARA KERJA GREEDY
Bertahap, pada setiap tahap diambil suatu keputusan yang
dianggap terbaik, tanpa memperhitungkan konsekuensi ke
depan. Ini berarti hanya memilih suatu optimum lokal.
Seolah mengatakan: take what you can get now
greedy
Saat algoritme berhenti, optimum local diharapkan merupakan
optimum global.
KNAPSACK
A. Pengertian
Knapsack adalah tas atau karung. Karung digunakan untuk memuat
sesuatu. Dan tentunya tidak semua objek dapat ditampung di dalam
karung tersebut. Karung tersebut hanya dapat menyimpan beberapa objek
dengan total ukurannya (weight) lebih kecil atau sama dengan ukuran
kapasitas karung.
B. Manfaat knapsack
Digunakan untuk mencari solusi optimal baik minimum, maupun maksimum
RATIONAL KNAPSACK (RK)
• Problem instance: Terdapatn objek, masing-masing dengan bobot wi dan
profit pi untuk1 ≤ i ≤ n. W adalah kapasitas knapsack
• Solusi fisibel: vektor(x1 , …, x n ) dengan 0 ≤ xi ≤ 1 untuk 1 ≤ i ≤ n
• Fungsi tujuan:
• Solusi optimal: maximum profit
IDE ALGORITMA GREEDY
Pada setiap tahap, akan diambil jumlah ukuran terbesar yang paling mungkin,
dengan catatan konstrains dipenuhi.
Langkah terhenti bila:
1. Knapsack penuh, atau
2. Semua objek telah berhasil ditempatkan dalam knapsack tanpa kelebihan
kapasitas
ALGORITMA YANG DIGUNAKAN UNTUK
KNAPSACK 0/1
GREEDY
Greedy By Profit (pi)
Greedy By Weight(wi)
Greedy By Density(pi/wi)
CONTOH PENYELESAIAN DENGAN ALGORITMA
GREEDY
Tinjau persoalan Integer Knapsack dengan n = 4.
w1 = 2;
p1 = 20
w2 = 5;
p2 = 30
w3 = 10;
p3 = 50
w4 = 5;
p4 = 10
Kapasitas knapsack W = 16
LANGKAH PENYELESAIAN
i
1
2
3
4
Properti Objek
Pi
Wi
Pi/Wi
20
2
10
30
5
6
50
10
5
10
5
2
Total bobot
Total keuntungan
Profit
0
1
1
0
15
80
Greedy By
Weight
1
1
0
1
12
60
Density
1
1
0
1
12
60
Solusi
Optimal
0
1
1
0
15
80
PSEUDO CODE ALGORITMA GREEDY
for i =1 to n do
x[i] = 0 { inisialisasi setiap status pengambilan objek i dengan 0 }
endfor
i=0
TotalBobot = 0
Available = true
while (i w
Kompleksitas O(2n)