2. Definisi
• Algoritma greedy merupakan metode yang
paling populer untuk memecahkan persoalan
optimasi
• Persoalan optimasi (optimization problems):
persoalan yang menuntut pencarian solusi
optimum
• Solusi optimum (terbaik) adalah solusi yang bernilai
minimum atau maksimum dari sekumpulan alternatif
solusi yang mungkin.
3. Definisi
• Elemen persoalan optimasi:
– kendala (constraints)
– fungsi objektif(atau fungsi optiamsi)
• Solusi yang memenuhi semua kendala disebut solusi
layak (feasible solution). Solusi layak yang
mengoptimumkan fungsi optimasi disebut solusi
optimum.
4. contoh
– Contoh masalah sehari-hari yang menggunakan
prinsip greedy:
• Memilih beberapa jenis investasi (penanaman
modal)
• Mencari jalur tersingkat dari Bandung ke
Surabaya
• Memilih jurusan di Perguruan Tinggi
• Bermain kartu remi
5. Penukaran Uang
• Misal pada suatu negara kita tersedia mata uang :
dolar (100 sen), kuarter (25 sen), dim(10 sen), nikel(5
sen) dan peni(1 sen)
• Masalah : Bagaimana menentukan algoritma untuk
memeberikan uang kembalian dari suatu
pembayaran di super market dengan menggunakan
sejumlah koin yang tersedia sekecil mungkin 100
25
10
5
1
6. Penukaran Uang
• Masalah : Ada seorang konsumen yan
mempunyai uang kembalian sebesar 2.89 $
(289 sen) berapa coin yang harus di berikan
oleh kasir ?
• Solusi : Kasir semestinya memberikan
kembalian dengan 10 coin :
– 2 $ ,3 kuarter, 1 dim, 4 peni
• Urutan pemberian adalah di mulai dari yang
terbesar
100
25
10
5
1
8. Algoritma
Function TukarKoin(n):himp koin
/*Buat kembalian n unit dengan kemungkinan jmlh koin paling sedikit
kontan C adalah jenis koin*/
Const C={100,25,10,5,1} /*kandidat yg di pilih*/
S atau {} /* S =himp solusi*/
S0 /* s jumlah dari item S*/
While sn do
x item terbesar dr C, dengan s+xn
if tidak ada item then return “solusi tidak ada”
SS {koin bernilai x}
ss+x
Return S
9. Algoritma
• Algoritma ini rakus/tamak karena setiap
langkahnya harus memilih koin terbesar yang
dapat di temukan, tanpa memikirkan
konsekwensi ke depannya.
10. Karakteristik AG
• 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).
11. Algoritma Greedy
procedure greedy(input C: himpunan_kandidat;
output S : himpunan_solusi)
{ menentukan solusi optimum dari persoalan optimasi dengan algoritma
greedy
Masukan: himpunan kandidat C
Keluaran: himpunan solusi S
}
Deklarasi
x : kandidat;
Algoritma:
S{} { inisialisasi S dengan kosong }
while (belum SOLUSI(S)) and (C {} ) do
xSELEKSI(C); { pilih sebuah kandidat dari C}
C C - {x} { elemen himpunan kandidat berkurang satu }
if LAYAK(S {x}) then
SS {x}
endif
endwhile
{SOLUSI(S) sudah diperoleh or C = {} }
12. • algoritma greedy tidak beroperasi secara
menyeluruh terhadap semua alternatif solusi
yang ada (sebagaimana pada metode exhaustive
search).
• pemilihan fungsi SELEKSI: Mungkin saja terdapat
beberapa fungsi SELEKSI yang berbeda, sehingga
kita harus memilih fungsi yang tepat jika kita ingin
algoritma bekerja dengan benar dan
menghasilkan solusi yang benar-benar optimum
13. BUATLAH PROGRAM-NYA MENGGUNAKAN JAVA?
Input Jumlah Koin =
Nilai Koin [1] =
Nilai Koin[2] =
……
Nilai Koin [N] =
Input Total Uang yang akan DITUKAR :
Solusi Greedy
Jumlah Koin [1] =
Jumlah Koin[2] =
……
Jumlah Koin [N] =
TOTAL KOIN :
TUGAS KELOMPOK min. 3 max 4 orang
DAN HITUNG LANGKAHNYA…
DIKUMPULKAN MINGGU DEPAN …