MAKALAH MATEMATIKA

ALGORITMA GREEDY

DISUSUN OLEH : MIMIN SUMINAR 41101255 TI-A1 STEFANUS NUGROHO 41101274 TI-A2 PRAYOGI 41101363 TI-A2 SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER STMIK IKMI CIREBON
Jalan Perjuangan 10B Majasem Telp.0231 ± 490480, 490481 Cirebon Websites : www.ikmi.ac.id Email : stmik _ikmi@yahoo.com

0

Dengan penerapan ini akan ditemukan solusi yang benar untuk semua kondisi tanpa mengurangi kemangkusan dari algoritma. Kami mempunyai pemikiran untuk menerapkan Algoritma Branch & Bound pada prinsip pencarian solusi. algoritma yang selama ini sering digunakan untuk memecahkan masalah tersebut adalah algoritma dijkstra.1. Pendahuluan Prinsip pencarian lintasan terpendek memegang peranan yang penting selama ini. Tapi algoritma dijkstra yang selama ini kami pelajari. 1 . Hal ini dikarenakan pada algoritma dijkstra kita membandingkan semua lintasan yang mungkin dari simpul awal ke simpul akhir.membutuhkan waktu yang lama untuk menemukan solusinya.

Pendekatan yang digunakan di dalam algoritma greedy adalah membuat pilihan yang ³tampaknya´ memberikan perolehan terbaik. kami menggunakan algoritma Dijkstra untuk dibandingkan dengan algoritma B&B. dan keputusan tersebut tidak dapat diubah lagi pada langkah ± langkah selanjutnya. yaitu dengan membuat pilihan optimum lokal (local optimum) pada setiap langkah dengan harapan bahwa sisanya mengarah ke solusi optimum global (global optimm). Keputusan tersebut tidak perlu memperhatikan keputusan selanjutnya yang akan diambil. y Terdapat banyak pilihan yang perlu dieksplorasi pada setiap langkah solusi. y Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi. lalu kita namakan solusi tersebut dengan optimum lokal.2. Algoritma Greedy Definisi Algoritma Greedy Algoritma Greedy membentuk solusi langkah per langkah. Greedy = rakus. Dengan cara pengambilan nilai optimum lokal pada setiap langkah diharapkan akan tercapainya optimum global. Oleh karena itu. Keputusan yang telah diambil pada suatu langkah tidak dapat diubah lagi pada langkah selanjutnya. y y Prinsip greedy adalah: ³take what you can get now!´. yaitu tercapainya solusi optimum yang melibatkan keseluruhan langkah dari awal sampai akhir. Dalam makalah ini. tamak. Maksud dari prinsip tersebut adalah sebagai berikut. y 2 . pada setiap langkah dalam algoritma greedy kita ambil keputusan yang paling optimal untuk langkah tersebut tanpa memperhatikan konsekuensi pada langkah ± langkah selanjutnya. loba. «. Pada setiap langkah tersebut akan dipilih keputusan yang paling optimal. Prinsip utama algoritma greedy adalah prinsip ³take what you can get now!´. pada setiap langkah harus dibuat keputusan yang terbaik dalam menentukan pilihan. Contoh masalah sehari-hari yang menggunakan prinsip greedy: o Memilih beberapa jenis investasi (penanaman modal) o Mencari jalur tersingkat dari Bandung ke Surabaya o Memilih jurusan di Perguruan Tinggi o Bermain kartu remi y Algoritma greedy membentuk solusi langkah per langkah (step by step).

dan 25 Uang senilai 32 dapat ditukar dengan 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) « dan seterusnya Minimum: 32 = 25 + 5 + 1 + 1 ) hanya 4 koin Strategi greedy yang digunakan adalah: Pada setiap langkah. berharap bahwa dengan memilih optimum lokal pada setiap langkah akan berakhir dengan optimum global.y Algoritma greedy adalah algoritma yang memecahkan masalah langkah per langkah. Himpunan kandidat. dan pada akhir algoritma kita memperoleh optimum global (yang pada contoh ini merupakan solusi optimum). Bila algoritma berakhir. Tukar A dengan koin-koin uang yang ada. 5. Skema Umum Algoritma Greedy Algoritma greedy disusun oleh elemen-elemen berikut: 1. Contoh 1 (Masalah Penukaran uang): Persoalan: Diberikan uang senilai A. 10. mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan (prinsip ³take what you can get now!´) 2. pilihlah koin dengan nilai sebesar mungkin dari himpunan koin yang tersisa dengan syarat (kendala) tidak melebihi nilai uang yang ditukarkan. 10. Berapa jumlah minimum koin yang diperlukan untuk penukaran tersebut? Contoh: tersedia koin-koin 1. y Pada setiap langkah diperoleh optimum lokal. kita berharap optimum lokal menjadi optimum global. 5. Tinjau masalah menukarkan uang 32 dengan koin 1. 3 . pada setiap langkah: 1. dan 25: Langkah 1: pilih 1 buah koin 25 (Total = 25) Langkah 2: pilih 1 buah koin 5 (Total = 25 + 5 = 30) Langkah 3: pilih 2 buah koin 1 (Total = 25+5+1+1= 32) Solusi: Jumlah koin minimum = 4 (solusi optimal!) Pada setiap langkah di atas kita memperoleh optimum lokal.

yaitu fungsi yang memaksimumkan atau meminimumkan nilai solusi (misalnya panjang lintasan. 5. Algoritma: Sn{} { inisialisasi S dengan kosong } 4 . Kandidat yang sudah dipilih pada suatu langkah tidak pernah dipertimbangkan lagi pada langkah selanjutnya. 25. 5. Fungsi seleksi: pilihlah koin yang bernilai tertinggi dari himpunan kandidat yang tersisa. Himpunan kandidat: himpunan koin yang merepresentasikan nilai 1. Fungsi obyektif. 4. keuntungan. Kandidat yang layak dimasukkan ke dalam himpunan solusi. Pseudo-code algoritma greedy adalah sebagai berikut: procedure greedy(input C: himpunan_kandidat. dan lain-lain). Himpunan solusi Berisi kandidat-kandidat yang terpilih sebagai solusi persoalan. Fungsi kelayakan (feasible) Memeriksa apakah suatu kandidat yang telah dipilih dapat memberikan solusi yang layak.Berisi elemen-elemen pembentuk solusi. sedangkan kandidat yang tidak layak dibuang dan tidak pernah dipertimbangkan lagi. 5. Fungsi obyektif: jumlah koin yang digunakan minimum. Himpunan solusi: total nilai koin yang dipilih tepat sama jumlahnya dengan nilai uang yang ditukarkan. output S : himpunan_solusi) { menentukan solusi optimum dari persoalan optimasi dengan algoritma greedy Masukan: himpunan kandidat C Keluaran: himpunan solusi S } Deklarasi x : kandidat. 4. yakni kandidat tersebut bersama-sama dengan himpunan solusi yang sudah terbentuk tidak melanggar kendala (constraints) yang ada. Contoh pada masalah penukaran uang. Fungsi layak: memeriksa apakah nilai total dari himpunan koin yang dipilih tidak melebihi jumlah uang yang harus dibayar. 2. 3. 3. Fungsi seleksi (selection function) Memilih kandidat yang paling memungkinkan mencapai solusi optimal. 10. 2. paling sedikit mengandung satu koin untuk setiap nilai. elemen-elemen algoritma greedy-nya adalah: 1.

Alasan: y 1. Namun adakalanya optimum global merupakan solusi sub-optimum atau pseudo-optimum. solusi yang terbentuk adalah optimum lokal. maka keoptimalannya itu dapat dibuktikan secara matematis y (Sekali Lagi) Masalah Penukaran Uang Misalkan koin-koin dinyatakan dalam himpunan-ganda (multiset) {d1.while (belum SOLUSI(S)) and (C { {} ) do xnSELEKSI(C). Obyektif persoalan adalah Minimisasi F = § x i i !1 n (fungsi obyektif) 5 . «. Misalkan uang yang akan ditukar dengan sejumlah koin adalah A. xn}. dn}. y Bila algoritma greedy optimum. 2. «. Pada akhir kalang while-do diperoleh optimum global. algoritma greedy tidak beroperasi secara menyeluruh terhadap semua alternatif solusi yang ada (sebagaimana pada metode exhaustive search). maka algoritma greedy sering berguna untuk menghasilkan solusi yang menghampiri (approximation) optimum. daripada menggunakan algoritma yang lebih rumit untuk menghasilkan solusi yang eksak. pada sebagian masalah algoritma greedy tidak selalu berhasil memberikan solusi yang benar-benar optimum. atau xi = 0 jika di tidak dipilih. pemilihan fungsi SELEKSI: Mungkin saja terdapat beberapa fungsi SELEKSI yang berbeda. d2. { pilih sebuah kandidat dari C} Cn C . sedemikian sehingga xi = 1 jika di dipilih. x2. Solusi persoalan dinyatakan sebagai tupel X = {x1. sehingga kita harus memilih fungsi yang tepat jika kita ingin algoritma bekerja dengan benar dan menghasilkan solusi yang benar-benar optimum y Karena itu.{x} { elemen himpunan kandidat berkurang satu } if LAYAK(S Š {x}) then SnS Š {x} endif endwhile {SOLUSI(S) sudah diperoleh or C = {} } y Pada akhir setiap lelaran. Jika jawaban terbaik mutlak (benar-benar optimum) tidak diperlukan.

bergantung pada koin mata uang yang digunakan. (a) Koin: 5. pilihlah koin dengan nilai sebesar mungkin dari himpunan koin yang tersisa dengan syarat tidak melebihi nilai uang yang ditukarkan. Jika waktu pengurutan diperhitungkan. 3. Waktu yang dibutuhkan untuk mengevaluasi fungsi obyektif adalah O(n). Jika himpunan koin sudah terurut menurun. Solusi dengan algoritma greedy: 7=5+1+1 Solusi yang optimal: 7 = 4 + 3 ( 3 koin) ( 2 koin) tidak optimal (b) Koin: 10. y Agar pemilihan koin berikutnya optimal. Pemecahan Masalah dengan Algoritma Greedy y Strategi greedy yang digunakan dalam memilih koin berikutnya: Pada setiap langkah. 1 Uang yang ditukar: 15 Solusi dengan algoritma greedy: 6 . oleh karena itu kompleksitas algoritma exhaustive search untuk masalah ini adalah O(n ™ 2n ).dengan kendala §d x ! A i !1 i i n Algoritma Exhaustive Search y Karena setiap elemen X = {x1. y y y Contoh 2. maka kompleksitas algoritma greedy adalah O(n). 4. maka kompleksitas algoritma greedy ditentukan dari kompleksitas algoritma pengurutan. «. dan 1 Uang yang ditukar = 7. maka terdapat 2n kemungkinan nilai X. maka perlu mengurutkan himpunan koin dalam urutan yang menurun (noninceasing order). Apakah algoritma greedy untuk masalah penukaran uang ini selalu menghasilkan solusi optimum? Jawabannya: tidak selalu. 7. x2. xn } adalah 0 atau 1.

Kita ingin meminimumkan total waktu di dalam sistem. Waktu pelayanan untuk setiap pelanggan sudah ditetapkan sebelumnya.39 dengan uang kertas (bill) dan koin sen (cent). dan 1 Uang yang ditukar: 20 Solusi dengan algoritma greedy: 20 = 15 + 1 + 1 + 1 + 1 + 1 Solusi opgtimal: 20 = 10 + 10 (6 koin) (2 koin) y Untuk sistem mata uang dollar AS.39) Bagaimana dengan mata uang rupiah Indonesia? Minimisasi Waktu di dalam Sistem (Penjadwalan) Persoalan: Sebuah server (dapat berupa processor. t2 = 10. t3 = 3. euro Eropa. 10. meminimumkan waktu di dalam sistem ekivalen dengan meminimumkan waktu rata-rata. client) yang harus dilayani. yaitu pelanggan i membutuhkan waktu ti. dll) mempunai n pelanggan (customer.15 = 10 + 1 + 1 + 1 + 1 + 1 (6 koin) Solusi yang optimal: 15 = 7 + 7 + 1 (hanya 3 koin) (c) Koin: 15. Contoh 3. kasir di bank. kita dapat memilih: y Satu buah uang kertas senilai $5 y Satu buah uang kertas senilai $1 ($5 + $1 = $6)) y Satu koin 25 sen ($5 + $1 + 25c = $6. dan crown Swedia. n T= § i !1 (waktu di dalam sistem untuk pelanggan i) Karena jumlah pelanggan adalah tetap. 7 .35) y Empat koin 1 sen ($5 + $1 + 25c + 10c + 1c + 1c + 1c + 1c = $6.25) y Satu koin 10 sen ($5 + $1 + 25c + 10c = $6. pompa. Misalnya untuk menukarkan $6. Misalkan kita mempunyai tiga pelanggan dengan t1 = 5. algoritma greedy selalu memberikan solusi optimum.

3: 10 + (10 + 5) + (10 + 5 + 3) = 43 2.maka enam urutan pelayanan yang mungkin adalah: Urutan T ================================= 1. setiap pelanggan dinomori 1. Jika waktu pengurutan tidak dihitung. masukkan pelanggan yang membutuhkan waktu pelayanan terkecil di antara pelanggan lain yang belum dilayani. 3. 2. 1. procedure PenjadwalanPelanggan(input n:integer) { Mencetak informasi deretan pelanggan yang akan diproses oleh server tunggal Masukan: n pelangan. maka kompleksitas algoritma greedy untuk masalah minimisasi waktu di dalam sistem adalah O(n). n Keluaran: urutan pelanggan yang dilayani } Deklarasi i : integer 8 . 2: 5 + (5 + 3) + (5 + 3 + 10) = 31 2. Waktu yang dibutuhkan untuk mengevaluasi fungsi obyektif adalah O(n). 2: 3 + (3 + 5) + (3 + 5 + 10) = 29 n (optimal) 3. 2. y Agar proses pemilihan pelanggan berikutnya optimal. 1: 3 + (3 + 10) + (3 + 10 + 5) = 34 Pemecahan Masalah dengan Algoritma Exhaustive Search y y Urutan pelangan yang dilayani oleh server merupakan suatu permutasi Jika ada n orang pelanggan. 3: 5 + (5 + 10) + (5 + 10 + 3 ) = 38 1. 2. 1. 1: 10 + (10 + 3) + (10 + 3 + 5) = 41 3. 3. maka tedapat n! urutan pelanggan. oleh karena itu kompleksitas algoritma exhaustive search untuk masalah ini adalah O(nn!) Pemecahan Masalah dengan Algoritma Greedy Strategi greedy untuk memilih pelanggan berikutnya adalah: Pada setiap langkah. maka perlu mengurutkan waktu pelayanan seluruh pelanggan dalam urutan yang menaik. «.

Algoritma Exhaustive Search y i = 1. objek tersebut tidak bisa dikeluarkan lagi.. meminimumkan n k ij 1 e j e n T= §§ t k !1 j !1 untuk semua kemungkinan permutasi ij. Algoritma Greedy y Masukkan objek satu per satu ke dalam knapsack. n Algoritma exhaustive search untuk persoalan 0/1 Knapsack mempunyai kompleksitas O(n ™ 2n). 2. Jika t1 e t2 e « e tn maka pengurutan ij = j.. «. Terdapat beberapa strategi greedy yang heuristik yang dapat digunakan untuk memilih objek yang akan dimasukkan ke dalam knapsack: y 9 . 2. µ dilayani!¶) endfor Pemilihan srategi greedy untuk penjadwalan pelanggan akan selalu menghasilkan solusi optimum. Sekali objek dimasukkan ke dalam knapsack. Keoptimuman ini dinyatakan dengan Teorema 3. i.1. ..Algoritma: {pelanggan 1. Persoalan Knapsack (a) 0/1 Knapsack n maksimasi F = § i !1 px i i dengan kendala (constraint) §w x eW i !1 i i n yang dalam hal ini. n sudah diurut menaik berdasarkan ti} for in1 to n do write(µPelanggan µ.1 berikut: Teorema 3. xi = 0 atau 1.

Pada setiap langkah. w1 = 2. 3. pi /wi terbesar. Greedy by density. knapsack diisi dengan objek yang mempunyai keuntungan terbesar. Bahkan ada kemungkinan ketiga stategi tersebut tidak memberikan solusi optimum. Contoh 4. Pada setiap langkah. sedangkan pemilihan objek berdasarkan berat tidak memberikan solusi optimal. Greedy by profit. Strategi ini mencoba memaksimumkan keuntungan dengan memilih objek yang paling menguntungkan terlebih dahulu. Contoh 4 berikut memberikan ilustrasi kedua kasus ini. Pemilihan objek berdasarkan salah satu dari ketiga strategi di atas tidak menjamin akan memberikan solusi optimal. knapsack diisi dengan objek yang mempunyai berat paling ringan. Strategi ini mencoba memaksimumkan keuntungan dengan memilih objek yang mempunyai keuntungan per unit berat terbesar. Greedy by weight. 2. algoritma greedy dengan strategi pemilihan objek berdasarkan profit dan density memberikan solusi optimal. p1 = 10 Kapasitas knapsack W = 16 Solusi dengan algoritma greedy: Properti objek pi pi /wi 12 2 15 3 50 5 10 2 Total bobot Total keuntungan Greedy by weight 1 1 0 1 16 37 Solusi Optimal 0 1 1 0 15 65 y i 1 2 3 4 wi 6 5 10 5 profit 0 1 1 0 15 65 density 0 1 1 0 15 65 y Pada contoh ini. Tinjau persoalan 0/1 Knapsack dengan n = 4.1. p1 = 15 w3 = 10. knapsack diisi dengan objek yang mempunyai densitas. Tinjau persoalan 0/1 Knapsack lain dengan 6 objek: 10 .. p1 = 12 w2 = 5. p1 = 50 w4 = 5. Strategi ini mencoba memaksimumkan keuntungan dengan memasukkan sebanyak mungkin objek ke dalam knapsack. Pada setiap langkah.

p6 = 2 Kapasitas knapsack W = 100 Properti objek wi pi pi /wi 100 40 0. 0. «. n n maksimasi F = § i !1 px i i dengan kendala (constraint) §w x eW i !1 i i n yang dalam hal ini.7 45 18 0. (b) Fractional Knapsack Serupa dengan persoalan 0/1 Knapsack di atas.4 Total bobot Total keuntungan Greedy by weight 0 0 1 1 1 1 80 34 Solusi Optimal 0 1 1 0 0 0 100 55 i 1 2 3 4 5 6 profit 1 0 0 0 0 0 100 40 density 0 1 0 1 1 1 85 51 y Pada contoh ini.4 50 35 0. i = 1. 2. 2. 1. 1. «. algoritma greedy dengan ketiga strategi pemilihan objek tidak berhasil memberikan solusi optimal. Solusi optimal permasalah ini adalah X = (0.w1 = 100. n Algoritma Exhaustive Search 11 .2 10 10 1. Kesimpulan: Algoritma greedy tidak selalu berhasil menemukan solusi optimal untuk masalah 0/1 Knapsack.4 20 4 0. 0) dengan total keuntungan = 55. p3 = 18 w4 = 20. 0. p4 = 4 w5 = 10. p2 = 35 w3 = 45. tetapi 0 e xi e 1. p5 = 10 w6 = 5. 0 e xi e 1. untuk i = 1.0 5 2 0. p1 = 40 w2 = 50.

. maka kita perlu mengurutkan objek terlebih dahulu berdasarkan p i /wi dalam urutan yang menurun. Pemecahan Masalah dengan Algoritma Greedy y Ketiga strategi greedy yang telah disebutkan di atas dapat digunakan untuk memilih objek yang akan dimasukkan ke dalam knapsack. Hitung harga pi/wi . Contoh 5..2 density 0 1 1/2 20 31. maka terdapat tidak berhinga nilai-nilai xi.4 15 24 1. p1 = 25 w2 = 15. 2. i = 1. w1 = 18.5 Total bobot Total keuntungan Greedy by weight 0 2/3 1 20 31.5 y Penyelesaian persoalan knapsack yang memakai strategi pemilihan objek berdasarkan pi /wi terbesar memberikan keuntungan yang maksimum (optimum). p1 = 24 w3 = 10. Tinjau persoalan fractional knapsack dengan n = 3. Panggil SolveFractinonalKnapsack untuk mencari solusi optimum. y 12 . Algoritma persoalan fractional knapsack: 1. Persoalan Fractional Knapsack menjadi malar (continuous) sehingga tidak mungkin dipecahkan dengan algoritma exhaustive search. Solusi optmal persoalan knapsack di atas adalah X = (0. 1/2) yang memberikan keuntungan maksimum 31. . sehingga objek berikutnya yang dipilih adalah objek sesuai dalam urutan itu.6 10 15 1. y y Agar proses pemilihan objek berikutnya optimal.y Oleh karena 0 e xi e 1. n 2. p1 = 15 Kapasitas knapsack W = 20 Solusi dengan algoritma greedy: Properti objek wi pi pi /wi 18 25 1.5.. Urutkan seluruh objek berdasarkan nilai pi/wi yang menurun 3.0 i 1 2 3 profit 1 2/15 0 20 28. 1.

. w. Urutkan seluruh objek berdasarkan nilai pi/wi yang menurun 3. n : integer. W : real. 2. Baru kemudian panggil procedure SolveFractionalKnapsack ini } Deklarasi i : integer. output x : Tabel. kapasitas : real. . Hitung harga pi/wi . n 2. else MasihMuatUtuhnfalse endif endwhile { i > n or not MasihMuatUtuh } 13 . MasihMuatUtuh : boolean.. Algoritma: for in1 to n do xi n 0 { inisialisasi setiap fraksi objek i dengan 0 } endfor kapasitasnW { kapasitas knapsack awal } TotalUntungn0 in1 MasihMuatUtuhntrue while (i e n) and (MasihMuatUtuh) do if wi e kapasitas then xin1 TotalUntungnTotalUntung + pi kapasitasnkapasitas .procedure SolveFractionalKnapsack(input p. : Tabel.. TotalUntung : real) { Penyelesaian persoalan fractional knapsack dengan algoritma greedy yang menggunaka strategi pemilihan objek berdasarkan density (pi/wi) Asumsi: Sebelum pemanggilan SolveFractionalKnapsack. harus dilakukan prosedur pendahuluan sebagai berikut : 1.wi ini+1. i = 1.

14 .2. Hal ini dinyatakan dalam Teorema 3. Kesimpulan Algoritma greedy sangat mudah untuk diimplementasikan tetapi hasil yang didapatkan tidak selalu merupakan hasil yang optimal hal ini dikarenakan algoritma greedy tidak melakukan operasi terhadap semua kemungkinan yang ada serta banyaknya fungsi seleksi yang dapat kita pilih sehingga belum tentu fungsi yang kita pilih merupakan fungsi yang tepat. Masalah pencarian lintasan terpendek dapat diselesaikan dengan berbagai cara antara lain dengan algoritma dijkstra dan dengan algoritma B&B.if i e n then { objek terakhir yang akan dimasukkan} xi n kapasitas/wi TotalUntungnTotalUntungt + xi *pi endif y Kompleksitas waktu asimptotik algoritma di atas (dengan mangabaikan waktu pengurutan objek) adalah O(n).2 berikut ini. y Teorema 3. u pn/wn maka algoritma greedy dengan strategi pemilihan objek berdasarkan pi /wi terbesar menghasilkan solusi yang optimum. Jika p1/w1 u p2/w2 u . kami menyimpulkan bahwa algoritma B&B memiliki kemampuan yang lebih baik dibanding dijkstra dalam hal waktu yang dibutuhkan.. Algoritma greedy untuk persoalan fractional knapsack dengan strategi pemilihan objek berdasarkan pi /wi terbesar akan selalu memberikan solusi optimal. pengelolaan memori dan yang terutama adalah masalah efektifitas.. Dari hasil analisis di atas.

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.