Anda di halaman 1dari 8

Algoritma Pemrograman IIC

METODE GREEDY

Algoritma Greedy merupakan metode yang paling populer untuk memecahkan


persoalan optimasi.
Persoalan optimasi (optimization problems): persoalan yang menuntut pencarian
solusi optimum.
Persoalan optimasi hanya ada dua macam:
1 . Maksimasi (maximization)
2. Minimasi (minimization)

Solusi optimum (terbaik) adalah solusi yang bernilai minimum atau maksimum dari
sekumpulan alternatif solusi yang mungkin.
Solusi yang memenuhi semua kendala disebut solusi layak (feasible solution). Solusi
layak yang mengoptimumkan fungsi optimasi disebut solusi optimum.
Greedy = rakus, tamak, loba
Algoritma Greedy adalah algoritma yang memecahkan masalah langkah per langkah;
pada setiap langkah:
1. mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa
memperhatikan konsekuensi ke depan (prinsip “take what you can get now!”)
2. berharap bahwa dengan memilih optimum lokal pada setiap langkah akan berakhir
dengan optimum global

Contoh persoalan optimasi :

( Masalah Penukaran Uang) : Diberikan uang senilai A. Tukar A dengan koin-koin


uang yang ada. Berapa jumlah minimum koin yang diperlukan untuk penukaran
tersebut?

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


Uang senilai A = 32 dapat ditukar dengan banyak cara berikut:
32 = 1 + 1 + … + 1 (32 koin)
32 = 5 + 5 + 5 + 5 + 10 + 1 + 1 (7 koin)
32 = 10 + 10 + 10 + 1 + 1 (5 koin)

Algoritma Greedy 1
Algoritma Pemrograman IIC

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

Skema Umum Algoritma Greedy

Algoritma greedy disusun oleh elemen-elemen berikut:


 Himpunan kandidat.
Berisi elemen-elemen pembentuk solusi.
 Himpunan solusi
Berisi kandidat-kandidat yang terpilih sebagai solusi persoalan.
 Fungsi seleksi (selection function)
Memilih kandidat yang paling memungkinkan mencapai solusi optimal. Kandidat
yang sudah dipilih pada suatu langkah tidak pernah dipertimbangkan lagi pada
langkah selanjutnya.

 Fungsi kelayakan (feasible)


Memeriksa apakah suatu kandidat yang telah dipilih dapat memberikan solusi yang
layak, yakni kandidat tersebut bersama-sama dengan himpunan solusi yang sudah
terbentuk tidak melanggar kendala (constraints) yang ada. Kandidat yang layak
dimasukkan ke dalam himpunan solusi, sedangkan kandidat yang tidak layak dibuang
dan tidak pernah dipertimbangkan lagi.

 Fungsi obyektif, yaitu fungsi yang memaksimumkan atau meminimumkan


nilai solusi (misalnya panjang lintasan, keuntungan, dan lain-lain).

Pada masalah penukaran uang:


 Himpunan kandidat: himpunan koin yang merepresentasikan nilai 1, 5, 10, 25,
paling sedikit mengandung satu koin untuk setiap nilai.
 Himpunan solusi: total nilai koin yang dipilih tepat sama jumlahnya dengan
nilai uang yang ditukarkan.
 Fungsi seleksi: pilihlah koin yang bernilai tertinggi dari himpunan kandidat
yang tersisa.
 Fungsi layak: memeriksa apakah nilai total dari himpunan koin yang dipilih
tidak melebihi jumlah uang yang harus dibayar.
Algoritma Greedy 2
Algoritma Pemrograman IIC

 Fungsi obyektif: jumlah koin yang digunakan minimum

Minimum Spanning Tree / Pohon Rentangan Minimum


Permasalahan umum dari minimum spanning tree adalah mencari minimum biaya
(cost) spanning tree dari setiap ruas (edge) suatu graph yang membentuk pohon (tree).
Dalam mendapatkan solusi yang diharapkan maka akan dipilih ruas menurut kriteria
optimisasi yang menghasilkan biaya minimum. Dengan demikian penambahan jumlah
biayanya relatif kecil dari setiap ruas yang telah terpilih dan membentuk spanning
tree.
Untuk masalah minimum spanning tree, syarat graph dapat dicari minimum spanning
treenya adalah :
 Graph harus terhubung
 Ruasnya punya bobot / nilai
 Graphnya tidak berarah

Algoritma yang dapat dipakai untuk menentukan minimum spanning tree adalah :
 algoritma Solin
 Algoritma Kruskal
 Algoritma Prim’s

Apabila G suatu graf berbobot (suatu Network), maka Minimun Spanning Tree dari G
adalah Spanning Tree dengan jumlah bobot terkecil.
Dalam aplikasinya problem ini misalnya :
• Hendak direntangkan jaringan kabel listrik yang menghubungkan sejumlah lokasi
dengan panjang kabel yang digunakan sependek-pendeknya mungkin.
• Melihat pengelompokan data yang tersebar pada suatu ruang.
• Perencanaan jaringan transportasi/distribusi barang.

Algoritma Greedy 3
Algoritma Pemrograman IIC

 Algoritma Kruskal

Untuk mencari pohon rentang minimum dari graph dengan algoritma yang ditemukan
Kruskal, mula-mula semua garis dalam graph diurut berdasarkan bobotnya dari kecil
ke besar. Kemudian pilih garis dengan bobot terkecil. Pada setiap langkah dipilih
garis dengan bobot terkecil, tetapi tidak membentuk loop garis-garis yang sudah
dipilih terdahulu.

Contoh :
Pandang graph G sebagai berikut :
10 50
1 2

3
30 40
4 5 35

20 6 55 15

penyelesaian :
Edge cost spanning tree

(1,2) 10 1 2

1 2
( 3,6 ) 15
3

( 4,6 ) 20 1 2

3
4

Algoritma Greedy 4
Algoritma Pemrograman IIC

( 1,4 ) 30 1 2

3
4

( 3,5 ) 35 1 2

4 5

+
Total Cost : 105

Algoritma Greedy 5
Algoritma Pemrograman IIC

Contoh 2 :
Suatu Graf G :
Ini adalah graf berbobot awal. Graf
ini bukan pohon karena ada sirkuit.
Nama yang lebih tepat untuk
diagram ini adalah Graf atau
Network.Angka-angka dekat garis
penghubung/ruas adalah bobotnya.
Nilai bobot dari Graf tesebut adalah
: 86

Kita akan mencari MST dengan menggunakan Algoritma Kruskal untuk Graf G
diatas.

Penyelesaian :
1. Mula-mula kita buat Graf G hanya terdiri dari Simpul saja.

2. Urutkan Ruas dari bobot kecil ke besar (DF, AB, EG, AD, CE, BC, BE, FG, BD,
EF,DE), kemudian berdasarkan urutan tersebut, kita menambahkan ruas dengan
mencegah terbentuknya sirkuit.

Algoritma Greedy 6
Algoritma Pemrograman IIC

Algoritma Greedy 7
Algoritma Pemrograman IIC

Algoritma Greedy 8

Anda mungkin juga menyukai