Sunteți pe pagina 1din 10

PERTEMUAN 14

METODE GREEDY

 Metode Greedy digunakan untuk memecahkan persoalan optimasi.


 Persoalan optimasi  adalah persoalan mencari solusi optimum
 Persoalan optimasi ada 2 Maksimasi
 Minimasi

Contoh Masalah Optimasi:


Penukaran Uang
Diberikan uang senilai A. Tukar A dengan koin-koin uang yang ada.
Berapakah jumlah minimum koin yang diperlukan untuk penukaran uang tersebut.

Persoalan Minimasi.

Contoh 1: tersedia banyak koin 1, 5, 10, 25

32 = 1 + 1 + … + 1 (32 koin)
32 = 5 + 5 + 5 + 5 + 10 + 1 + 1 (7 koin)
32 = 10 + 10 + 10 + 1 + 1 (5 koin)
Minimum: 32 = 25 + 5 + 1 + 1 (4 koin)

Greedy = rakus, tamak


 Algoritma greedy membentuk solusi langkah per langkah (step by step).
 Pada setiap langkah terdapat banyak pilihan yang perlu dieksplorasi.
 Sehingga, pada setiap langkah harus dibuat keputusan yang terbaik dalam
menentukan pilihan.
(keputusan yang telah diambil pada suatu langkah tidak dapat diubah lagi pada
langkah selanjutnya).
 Pada setiap langkah  membuat pilihan optimum lokal
Dengan harapan bahwa langkah sisanya mengarah kesolusi optimum global.

Metode Greedy digunakan dalam menyelesaikan masalah


 Optimal Storage on Tapes Problem
 Knapsack Problem
 Minimum Spanning Tree Problem
 Shortest Path Problem

Penjelasan Storage on Tape Problen ada pada SLIDE.


Knapsack Problem

Knapsack dapat diartikan sebagai karung, kantung, atau buntilan.


Karung digunakan untuk memuat sesuatu.
Dan tentunya tidak semua objek dapat ditampung di dalam karung. Karung tersebut
hanya dapat menyimpan beberapa objek dengan total ukurannya (weight) lebih kecil
atau sama dengan ukuran kapasitas karung.
Setiap objek itupun tidak harus kita masukkan seluruhnya. Tetapi bisa juga sebagian
saja.
knapsack 0/1, yaitu suatu objek diambil seluruh bagiannya atau tidak sama sekali.
Setiap objek mempunyai nilai keuntungan atau yang disebut dengan profit.
Tujuan ingin mendapatkan profit yang maksimal. Untuk mendapatkan profit
maksimal Belum tentu menggunakan banyak objek yang masuk akan
menguntungkan. Bisa saja hal yang sebaliknya yang terjadi.
o Cara terbaik agar menguntungkan : bukan hanya dari hasilnya optimal tetapi juga
banyaknya langkah yang dibutuhkan

Knapsack 0/1

Diberikan n buah objek dan sebuah knapsack dengan kapasitas bobot W.


Setiap objek memiliki properti bobot (weigth) wi dan keuntungan(profit) pi.

persoalan adalah memilih memilih objek-objek yang dimasukkan ke dalam


knapsack sedemikian sehingga memaksimumkan keuntungan. Total bobot objek
yang dimasukkan ke dalam knapsack tidak boleh melebihi kapasitas knapsack.

Solusi persoalan dinyatakan sebagai vektor n-tupel:

X = {x1, x2, … , xn}

xi = 1 jika objek ke-i dimasukkan ke dalam knapsack,


xi = 0 jika objek ke-i tidak dimasukkan.

Persoalan 0/1 Knapsack dapat kita pandang :


sebagai mencari himpunan bagian (subset) dari keseluruhan objek yang muat ke
dalam knapsack dan memberikan total keuntungan terbesar.

Penyelesaian dengan Greedy:


1. Greedy by Profit
Pada setiap langkah Knapsack diisi dengan obyek yang mempunyai keuntungan
terbesar.
Strategi ini mencoba memaksimumkan keuntungan dengan memilih objek yang
paling menguntungkan terlebih dahulu.

Pertama kali dilakukan adalah menurutkan secara menurun obyek-obyek


berdasarkan profitnya . Kemudian obyek-obyek yang dapat ditampung oleh
knapsack diambil satu persatu sampai knapsack penuh atau (sudah tidak ada obyek
lagi yang bisa dimasukan).

Data awal :
w1 = 6; p1 = 12
w2 = 5; p2 = 15
w3 = 10; p3 = 50
w4 = 5; p4 = 10
Kapasitas knapsack W = 16

2. Greedy by Wight
Pada setiap langkah, knapsack diisi dengan objek yang mempunyai berat paling
ringan. Strategi ini mencoba memaksimumkan keuntungan dengan memasukan
sebanyak mungkin objek kedalam knapsack.

Pertama kali yang dilakukan adalah mengurutkan secara menaik objek-objek


berdasarkan weight-nya. Kemudian obyek-obyek yang dapat ditampung oleh
knapsack diambil satu persatu sampai knapsack penuh atau (sudah tidak ada obyek
lagi yang bisa dimasukan).
3. Greedy By Density
Pada setiap langkah, knapsack diisi dengan obyek yang mempunyai densitas terbesar
(perbandingan nilai dan berat terbesar).
Strategi ini mencoba memaksimumkan keuntungan dengan memilih objek yang
mempunyai keuntungan per unit berat terbesar.
Pertama kali yang dilakukan adalah mencari nilai profit per unit/ density dari tiap-
tiap objek. Kemudian obyek-obyek diurutkan berdasarkan densitasnya.
Kemudian obyek-obyek yang dapat ditampung oleh knapsack diambil satu persatu
sampai knapsack penuh atau (sudah tidak ada obyek lagi yang bisa dimasukan).

Perbandingan hasil:

Penggunaan 3 strategi diatas tidak menjamin akan memberikan solusi optimal.

CONTOH 2:

Kapasitas M=20, dengan jumlah barang =3


Berat Wi masing-masing barang (W1,W2,W3)  (18,15,,10)
Nilai Profit masing-masing barang (P1,P2,P3)  (25,24,15)

Pilih Barang dengan nilai profit maksimal


P1=25  x1=1. batas atas nilai
P2=24  x2=2/15.
P3=15  x3 =0. batas bawah nilai.
Pilih barang dengan berat minimal
W1 = 18  x1=0. batas bawah
W2=15  x2 = 2/3
W3=10  x3=1. batas atas.

Pilih barang dengan menghitung perbandingan yang terbesar dari profit dibagi Berat
(Pi/Wi) diurut secara tidak naik.

P1/w1=25/18 (1.38)  x1=0. karena terkecil x1=0


P2/w2=24/ 15 (1.6) x2=1. karena terbesar x2=1
P3/w3=15/10 (1.5) x3=1/2 dicari dengan fungsi pembatas x3=1/2.

Buat Tabel
Solusi (x1,x2,x3) Σwixi Σpixi
Pi max 1,2/15,0 20 28.2
Wi min 0,2/3,1 20 31.0
Pi/Wi max 0,1,1/2 20 31.5

Nilai profit maksimal = 31.5.


PERTEMUAN 13
PENYELESAIAN DENGAN ALGORITMA PEMROGRAMAN GREEDY

PROSEDUR DALAM SLIDE

PROCEDURE GREEDY KNAPSACK (P, W, x, n)


REAL P(1 : n), W(1 : n),x(1 : n),M,isi;
INTEGER i, n;
x(1 : n) ß 0 ; isi ß M ;
FOR i ß 1 TO n DO
IF W(i) > Isi THEN EXIT ENDIF
x(i) ß 1
isi ß isi - W(i)
REPEAT
IF i £ n THEN x(i) ß isi/W(i) ENDIF
END_GREEDY KNAPSACK

Penjelasan program ada pada slide.

Model Graph Dalam metode Greedy


Graph
teori graph terdiri dari titik-titik.
Bila dirangkaikan, titik-titk tersebut mebentuk suatu object yang kita
kenal sebagai grafis.

Graph :
 Terdiri dari node dan
 Terdiri dari link

 node disebut vertex


 link disebut edge
 informasi penting dlm graph adalah koneksi antar vertex
Graph Berbobot

 Contoh salah satu representasi visual dari graf adalah peta.


 representasi dari peta antara lain:
 menentukan jalur terpendek dari satu tempat ke tempat lain
 menggambarkan 2 kota yang bertetangga dengan warna yang berbeda pada
peta
 menentukan tata letak jalur transportasi
 Salah satu konsep graph yang banyak digunakan adalah konsep pohon.

Pohon adalah graf tak-berarah dan tidak berbentuk sirkuit


T = ( V,E ) +
Keterangan :
T : Tree
V : Vertices atau node atau vertex atau simpul, V
merupakan himpunan tidak kosong.
V = {v1,v2,…,vn}
E : Edges atau sisi yang menghubungkan simpul
E = {e1,e2,…,en}

Minimum Spanning Tree


Contoh kasus pada pemeliharaan jalan raya. Dengan Spanning Tree, pemerintah
dapat mengalokasikan dana secara optimal dengan mencari jalur pemeliharaan
dengan bobot biaya yang minimum.
MST
lintasan pada graf berbobot dengan jumlah bobot yang paling kecil.
digunakan untuk memilih jalur dengan bobot terkrcil yang akan meminimalkan cost.

Algoritma Prim untuk membentuk pohon merentang dari Graph :


1. Ambil sisi dari graf G yang berbobot merentang. ,masukkan kedalam T.
2. Pilih sisi (u,v) yang mempunyai bobot minimum dan bersisian dengan simpul di T,
tetapi (u,v) tidak membentuk sirkuit di T. Tambahkan(u,v)ke dalamT
3. Ulangi langkah 2 sebanyak n 2 kali.

Proses pembentukan pohon merentang (spanning tree).


Pada setiap langkah dipilih sisi graf G yang mempunyai bobot minimum dan
terhubung dengan MST yang telah terbentuk
Kriteria2 dr spanning tree, yakni :
1. Setiap ruas pada graph harus terhubung (conected)
2. Setiap ruas pd graph hrs mpy nilai (label graph)
3. Setiap ruas pd graph tdk mpy arah (graph tdk berarah)
Proses.Total minimum cost terbentuknya graph dgn tahapan sbb:
• Dari graph yg tetbentuk, apakah memenuhi kriteria MST.
• Lakukan secara urut dr simpul ruas awal s/d ruas akhir
• Pada setiap simpul ruas perhatikan nilai/cost dr tiap-tiap ruas
• Ambil nilai yg paling kecil (jarak tertpendek setiap ruas).
• Lanjutkan s/d semua simpul ruas tergambar pd spanning tree
• Jumlahkan nilai/cost yg dipilih tadi.

Contoh :

SHORTEST PATH PROBLEM

• Permasalahan= menghitung jalur terpendek dari sebuah graph berarah.


• bagaimana mencari sebuah jalur pada graf yang meminimalkan jumlah bobot
sisi pembentuk jalur tersebut.

Ada beberapa macam persoalan lintasan terpendek,
antara lain:
a. Lintasan terpendek antara dua buah simpul tertentu (a pair shortets path).
b. Lintasan terpendek antara semua pasangan simpul (all pairs shortest path). 
c. Lintasan terpendek dari simpul tertentu ke semua  simpul yang lain (single­source shoertes 
path).
d. Lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu 
(intermediate shortest path).

Kriteria utk permasalahan jalur terpendek/SP problem tsb :


1. Setiap ruas pd graph hrs mpy nilai (label graph)
2. Setiap ruas pd graph tdk hrs terhubung (unconnected)
3. Setiap ruas pd graph tsb hrs mempunyai arah (graph berarah).

S-ar putea să vă placă și