METODE GREEDY
Metode Greedy digunakan untuk mendapatkan solusi optimal dari
permasalahan yg mempunyai dua
kriteria yaitu Fungsi Tujuan/Utama & nilai pembatas (constrain).
Proses Kerja Metode Greedy :
Untuk menyeselesaikan suatu permasalahan
dengan dan input data yang terdiri dari beberapa fungsi pembatas & 1 fungsi
tujuan yang diselesaikan dengan memilih beberapa solusi yang mungkin (feasible
solution/feasible sets), yaitu bila telah memenuhi fungsi tujuan/obyektif.
Metode GREEDY digunakan dlm
penyelesaian masalah - masalah :
1. Optimal On Tape Storage Problem
2. Knapsack Problem
3. Minimum Spanning Tree Problem
4. Shortest Path Problem.
1.
Optimal Storage On Tapes Problem
a.
Permasalahan Bagamana
mengoptimalisasi storage/memory dalam komputer agar data yg disimpan dapat
termuat dgn optimal.
b.
Misalkan terdapat n program yang
akan disimpan didalam pita (tape).Pita tersebut mempunyai panjang maksimal
sebesar L, masing-masing program yang akan disimpan mempunyai panjang
L1,L2,L3...,Ln. Cara penyimpanan adalah penyimpanan secara terurut (sequential).
Bagamana susunan penyimpanan program
tersebut sehingga L1+ L2+ L3+ ... + Ln= L ?
jika program-program tersebut disimpan dlm
Order, dimisalkan adalah Order I, yaitu : jsama dengan Σtik maka akan didapat k=1.
Contoh soal :
Misal terdapat 3 buah program.(n=3)
yg masing-masing mempunyai panjang program (I1,I2,I3)=(5,10,3). Tentukan urutan
penyimpanannya secara berurutan (sequential) agar optimal....?
Penyelesaiannya
:
Dari 3 program tersebut akan didapat
6 buah kemungkinan order, yg didapat dari nilai faktorial 3 3! (ingat faktorial
n!).
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN2dyFyQKIUuOyC_ml-GRfPwaQWyV05GBOWRDhYf604yW79cc6R72SA3Qqa7KaRdB1GQPx73lC1Ug3ZPB1tS-tn3zqLD7vbvJVB317_Dxke5Ml4gzJkbdZltOhFQOVZFOrZ-VRqyRz4i0/s1600/2.png)
Dari tabel tersebut, didapat Susunan
/ order yg optimal,sbb :
ü susunan pertama untuk program ke tiga
ü susunan kedua untuk program kesatu
ü susunan ketiga untuk program kedua
2. KNAPSACK
Problem
Kasus : Terdapat N obyek (Xi;i=1,2,3,....n) yang
masing-masing mempunyai berat (weight)/ Wi & masing-masing memiliki nilai
(profit)/Pi yg berbeda-beda.
Masalah :
Bagamana
obyek-obyek tersebut dimuat / dimasukan kedalam ransel (knapsack) yg mempunyai
kapasitas maks. = M. Sehingga timbul permasalahan sbb:
![*](file:///C:\Users\Nur_Aini\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif)
![*](file:///C:\Users\Nur_Aini\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif)
Penyelesaian Knapsack Problem :
1. Dengan Secara Matematika
2. Dengan Kriteria Greedy.
3. Dengan Algoritma Pemrograman
Greedy
Penyelesaian Knapsack Dengan
SecaraMatematika :
Fungsi tujuan= fungsi
utama/obyektif= fungsi yg mjd penyelesaian permasalahan dgn mendptkan solusi yg
optimal.
Solusi dimaksud = menemukan
nilai/Profit yg maks. utk jml obyek yg dimuat dlm ransel shg sesuai kapasitas. N Fungsi Tujuan Maksimum : ∑Pi Xi I=1.
Fungsi pembatas= fungsi subyektif=
fungsi yg bertujuan untuk memberikan batas maks. dr setiap obyek untuk dapat
dimuat dalam ransel sehingga kapasitas nya tdk melebihi dr jumlah maks.daya
tampung ransel.
Penyelesaian Dengan Kriteria Greedy.
Konsep dr kriteria yg ditawarkan
oleh metode
Greedy yaitu :
![*](file:///C:\Users\Nur_Aini\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif)
![*](file:///C:\Users\Nur_Aini\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif)
![*](file:///C:\Users\Nur_Aini\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif)
Penyelesaiannya
:
Dengan Kriteria
Greedy.
Diketahui bahwa kapasitas M = 20kg
,Dengan jumlah barang n=3 ,Berat Wi masing-masing barang (1, W2, W3) = (18, 15,
10),Nilai Pi masing-masing barang (P1, P2, P3) = (25, 24, 15).
Pilih barang dengan Nilai Profit
Maksimal
v
P1 = 25 X1 = 1,
dimisalkan sebagai batas atas nilai
![](file:///C:\Users\Nur_Aini\AppData\Local\Temp\msohtmlclip1\01\clip_image004.png)
v
P2 = 24 X2 =
2/15, dihitung dengan Fungsi Pembatas
![](file:///C:\Users\Nur_Aini\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png)
v
P3 = 15 X3 = 0,
dimisalkan sebagai batas bawah nilai
![](file:///C:\Users\Nur_Aini\AppData\Local\Temp\msohtmlclip1\01\clip_image006.png)
Pilih barang dengan Berat Minimal
v W1 = 18
X1 = 0, sebagai batas bawah
v W2 = 15
X2 = 2/3,dihitung dgn Fungsi
Pembatas
v W3 = 10
X3 = 1, sebagai batas atas
Pilih barang dgn menghitung perbandingan
yg
terbesar dr Profit dibagi Berat
(Pi/Wi) yg diurut
secara tidak naik, yaitu :
v P1/W1 = 25/18
karena terkecil maka X1 = 0
v P2/W2 = 24/15
karena terbesar maka X2 = 1
v P3/W3 = 15/10
dengan Fungsi pembatas X3 = 1/2
Dibuatkan tabel berdasarkan elemen
dr
ke-3 kriteria metode Greedy
Solusi ke
Nilai profit maksimal = 31.5 dengan komposisi
yang sama
soal
& penyelesaian menggunakan metode greedy
1. Kita diberikan sebuah knapsack
(ransel) yang dapat menampung berat maksimum 15 Kg dan sehimpunan benda A = {a0, a1, a2, a3} yang
berbobot (dalam Kg) W = {5,9,2,4}. Setiap benda tersebut diberikan nilai profit
P = {100, 135, 26, 20}. Jika kita diperbolehkan memasukkan zi
bagian dari benda ai
yang ada ke dalam knapsack dimana 0 ≤ zi ≤ 1 , maka tentukanlah Z =
{z0,z1,z2,z3} agar diperoleh total
profit yang maksimal !
Jawab :
dik : n = 4; M = 15;
W = { 5,9,2,4 };
P = { 100,135,26,20 },
dit : total profit yang maksimal ?
Barang ke -
|
Berat(Wi)
|
Keuntungan(Pi)
|
Pi/Wi
|
Z0
|
5
|
100
|
20
|
Z1
|
9
|
135
|
15
|
Z2
|
2
|
26
|
13
|
Z3
|
4
|
20
|
5
|
Z ← 0
cu ← 15
i = 0
karena W(0) 〈 cu yaitu : 5 〈
15 berarti : Z(0) ← 1
cu ← 15 - 5 = 10
i = 1
karena W(1) 〈 cu yaitu : 9 〈
10 berarti : Z(1) ← 1
cu ← 10 - 9 = 1
i = 2
karena W(2) 〉 cu yaitu : 2 〉
1 berarti : keluar dari loop (exit)
Karena 2 ≤ 3 maka Z(2) ←
cu/W(2) = 1/2 = 0,5
Jadi optimisasi masalah
knapsack diperoleh bila Z = { 1; 1; 0,5; 0 }
Sehingga Q = 1 x 100 + 1
x 135 + 0,5 x 26 + 0 x 20
= 100 + 135 + 13 + 0
= 248
ALGORITMA DIVIDE DAN CONQUER
Divide: membagi persoalan menjadi beberapa upa-masalah yang memiliki
kemiripan dengan persoalan semula namun berukuran lebih kecil (idealnya berukuran hampir sama).
Conquer (solve): memecahkan (menyelesaikan) masing-masing upa-masalah
secara rekursif
Combine: mengabungkan solusi masing-masing upa-masalah sehingga membentuk solusi
persoalan semula
Algoritma Divide and Conquer adalah strategi pemecahan masalah yang
besar dengan cara melakukan pembagian masalah yang besar tersebut menjadi
beberapa bagian yang lebih kecil secara rekursif hingga masalah tersebut dapat
dipecahkan secara langsung. Solusi yang didapat dari setiap bagian kemudian
digabungkan untuk membentuk sebuah solusi yang utuh.
Skema umum Algoritma Divide and Conquer
>> Persoalan Minimum dan Maksimum (MinMaks)
Persoalan : Misalnya diketahui table A yang berukuran n eleman sudah
berisi nilai integer. Kita ingin menentukan nilai minimum dan nilai maksimum
sekaligus di dalam table tersebut. Misalkan tabel A berisi elemen-elemen
sebagai berikut :
Ide dasar algoritma secara Divide and Conquer :
Ukuran table hasil pembagian
dapat dibuat cukup kecil sehingga mencari minimum dan maksimum dapat
diselesaikan (SOLVE) secara lebih mudah. Dalam hal ini, ukuran kecil yang
dipilih adalah 1 elemen atau 2 elemen.
Algoritma MinMaks :
1. Untuk kasus n = 1 atau n = 2,
SOLVE : Jika
n = 1, maka min = maks = An. Jika n = 2, maka bandingkan kedua elemen untuk
menentukan min dan maks.
2. Untuk kasus n > 2,
DIVIDE :
Bagi dua table A secara rekursif menjadi dua bagian yang berukuran sama, yaitu
bagian kiri dan bagian kanan.
CONQUER : Terapkan
algoritma Divide and Conquer untuk masing-masing bagian, dalam hal ini min dan
maks dari table bagian kiri dinyatakan dalam peubah min1 dan maks1, dan min dan
maks dari table bagian kanan dinyatakan dalam peubah min2 dan maks2.
COMBINE :
Bandingkan min1 dan min2 untuk menentukan min table A, serta bandingkan maks1
dan maks2 untuk menentukan maks table A.
a. Asumsi : n = 2k dan titik-titik
diurut berdasarkan absis (x).
b. Algoritma Closest Pair :
- SOLVE : jika n = 2, maka jarak
kedua titik dihitung langsung dengan rumus Euclidean.
- DIVIDE : Bagi titik-titik itu ke
dalam dua bagian, PLeft dan PRight, setiap bagian mempunyai jumlah titik yang
sama
- CONQUER :Secara rekursif, terapkan
algoritma D-and-C pada masingmasing bagian.
- Pasangan titik yang jaraknya
terdekat ada tiga kemungkinan letaknya :
Pasangan titik terdekat terdapat di
bagian PLeft.
Pasangan titik terdekat terdapat di
bagian PRight.
Pasangan titik terdekat dipisahkan
oleh garis batas L, yaitu satu titik di PLeft dan satu titik di PRight.
Jika kasusnya adalah (c), maka
lakukan tahap COMBINE untuk mendapatkan jarak dua titik terdekat sebagai solusi
persoalan semula.
http://www.academia.edu/8719785/Modul_11._Algoritma_Divide_and_Conquer