1 / 33

Analisa Algoritma Greedy Algorithm

Analisa Algoritma Greedy Algorithm. Tuti Widya Lestari, S.Kom. Contents. Algoritma Greedy Contoh Algoritma Greedy Masalah penukaran uang Knapsack 0/1. Pendahuluan. Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi .

damali
Télécharger la présentation

Analisa Algoritma Greedy Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AnalisaAlgoritmaGreedy Algorithm TutiWidya Lestari, S.Kom.

  2. Contents • Algoritma Greedy • ContohAlgoritma Greedy • Masalahpenukaranuang • Knapsack 0/1

  3. Pendahuluan • Algoritma greedy merupakanmetode yang paling populeruntukmemecahkanpersoalanoptimasi. • Persoalanoptimasi (optimization problems): • persoalanmencarisolusi optimum. • Hanyaadaduamacampersoalanoptimasi: • Maksimasi (maximization) • Minimasi (minimization)

  4. ContohPersoalanOptimasi • (MasalahPenukaranUang): Diberikanuangsenilai A. Tukar A dengankoin-koinuang yang ada. Berapajumlah minimum koin yang diperlukanuntukpenukarantersebut? • Persoalanminimasi

  5. PenukaranUang • Contoh 1: • Tersediabanyakkoin 1, 5, 10, 25 • Uangsenilai A = 32 dapatditukardenganbanyakcaraberikut: • 32 = 1 + 1 + … + 1 (32 koin) • 32 = 5 + 5 + 5 + 5 + 10 + 1 + 1 (7 koin) • 32 = 10 + 10 + 10 + 1 + 1 (5 koin) • … dst • Minimum: 32 = 25 + 5 + 1 + 1 (4 koin)

  6. Greedy • Greedy = rakus, tamak, loba, … • Prinsip greedy: “take what you can get now!”. • Algoritma greedy membentuksolusilangkah per langkah (step by step). • Padasetiaplangkah, terdapatbanyakpilihan yang perludieksplorasi. • Olehkarenaitu, padasetiaplangkahharusdibuatkeputusan yang terbaikdalammenentukanpilihan.

  7. Greedy (2) • Padasetiaplangkah, kitamembuatpilihan optimum lokal (local optimum) • denganharapanbahwalangkahsisanyamengarahkesolusi optimum global (global optimum).

  8. Algoritma Greedy • Algoritma greedy adalahalgoritma yang memecahkanmasalahlangkah per langkah;padasetiaplangkah: • Mengambilpilihan yang terbaik yang dapatdiperolehpadasaatitutanpamemperhatikankonsekuensikedepan (prinsip “take what you can get now!”) • Berharapbahwadenganmemilih optimum lokalpadasetiaplangkahakanberakhirdengan optimum global.

  9. Strategi Greedy padaPenukaranUang • Strategi greedy: Padasetiaplangkah, pilihlahkoindengannilaiterbesardarihimpunankoin yang tersisa. • Misal: A = 32, koin yang tersedia: 1, 5, 10, dan 25 • Langkah 1: pilih 1 buahkoin 25 (Total = 25) • Langkah 2: pilih 1 buahkoin 5 (Total = 25 + 5 = 30) • Langkah 3: pilih 2 buahkoin 1 (Total = 25+5+1+1= 32) • Solusi: Jumlahkoin minimum = 4 (solusi optimal!)

  10. Elemen-elemenAlgoritma Greedy • Elemen-elemenalgoritma greedy: • Himpunankandidat, C. • Himpunansolusi, S • Fungsiseleksi (selection function) • Fungsikelayakan (feasible) • Fungsiobyektif • Dengan kata lain: • Algoritma greedy melibatkanpencariansebuahhimpunanbagian, S, darihimpunankandidat, C; yang dalamhalini, S harusmemenuhibeberapakriteria yang ditentukan, yaitumenyatakansuatusolusidan S dioptimisasiolehfungsiobyektif.

  11. ElemenAlgoritma Greedy padaPenukaranUang • Himpunankandidat: himpunankoin yang merepresentasikannilai 1, 5, 10, 25, paling sedikitmengandungsatukoinuntuksetiapnilai. • Himpunansolusi: total nilaikoin yang dipilihtepatsamajumlahnyadengannilaiuang yang ditukarkan. • Fungsiseleksi: pilihlahkoin yang bernilaitertinggidarihimpunankandidat yang tersisa. • Fungsilayak: memeriksaapakahnilai total darihimpunankoin yang dipilihtidakmelebihijumlahuang yang harusdibayar. • Fungsiobyektif: jumlahkoin yang digunakan minimum.

  12. Skema Algoritma Greedy • Skemaumumalgoritma greedy: Padaakhirsetiapiterasi, solusi yang terbentukadalah optimum lokal. Padaakhirperulanganwhile-do diperoleh optimum global.

  13. Optimum Global danSolusiTerbaik • Warning: Optimum global belumtentumerupakansolusi optimum (terbaik), tetapi sub-optimum atau pseudo-optimum. • Kenapa? • Algoritma greedy tidakberoperasisecaramenyeluruhterhadapsemuaalternatifsolusi yang ada(sebagaimanapadametode exhaustive search). • Terdapatbeberapafungsi SELEKSI yang berbeda, sehinggakitaharusmemilihfungsi yang tepatjikakitainginalgoritmamenghasilkansolusi optimal. Jadi, padasebagianmasalahalgoritma greedy tidakselaluberhasilmemberikansolusi yang optimal.

  14. ContohOptimalisasiPadaAlgoritma Greedy • Tinjaumasalahpenukaranuang. (a) Koin: 5, 4, 3, dan 1 Uang yang ditukar = 7. Solusi greedy: 7 = 5 + 1 + 1 ( 3 koin) tidak optimal Solusi optimal: 7 = 4 + 3 ( 2 koin) (b) Koin: 10, 7, 1 Uang yang ditukar: 15 Solusi greedy: 15 = 10 + 1 + 1 + 1 + 1 + 1 (6 koin) Solusi optimal: 15 = 7 + 7 + 1 (hanya 3 koin) (c) Koin: 15, 10, dan 1 Uang yang ditukar: 20 Solusi greedy: 20 = 15 + 1 + 1 + 1 + 1 + 1 (6 koin) Solusi optimal: 20 = 10 + 10 (2 koin)

  15. Kasus Mata Uang Optimum • Untuksistemmatauang dollar AS, euro Eropa, dan crown Swedia, algoritma greedy selalumemberikansolusi optimum. • Contoh: Uang $6,39 ditukardenganuangkertas (bill) dankoinsen (cent), kitadapatmemilih: • Satubuahuangkertassenilai $5 • Satubuahuangkertassenilai $1 • Satukoin 25 sen • Satukoin 10 sen • Empatkoin 1 sen • $5 + $1 + 25c + 10c + 1c + 1c + 1c + 1c = $6,39

  16. SolusiHampiranAlgoritma Greedy • Jikajawabanterbaikmutlaktidakdiperlukan, makaalgoritma greedy seringbergunauntukmenghasilkansolusihampiran (approximation), daripadamenggunakanalgoritma yang lebihrumituntukmenghasilkansolusi yang eksak. • Bilaalgoritma greedy optimum, makakeoptimalannyaitudapatdibuktikansecaramatematis

  17. Contoh-contoh Algoritma Greedy • Masalahpenukaranuang • Nilaiuang yang ditukar: A • Himpunankoin (multiset): {d1, d2, …, dn}. • Himpunansolusi: X = {x1, x2, …, xn}, • xi= 1 jika di dipilih, xi = 0 jika di tidakdipilih.

  18. PenukaranUangdengan Exhaustive Search • Penyelesaiandengan exhaustive search • Terdapat 2nkemungkinansolusi • (nilai-nilai X = {x1, x2, …, xn} ) • Untukmengevaluasifungsiobyektif = O(n) • Kompleksitasalgoritma exhaustive search seluruhnya = O(n  2n)

  19. Integer Knapsack

  20. Exhaustive Search: 0/1 Knapsack • Penyelesaiandengan exhaustive search • Sudahdijelaskanpadapembahasan exhaustive search. • Kompleksitasalgoritma exhaustive search untukpersoalanini = O(n  2n).

  21. Greedy: 0/1 Knapsack • Penyelesaiandenganalgoritma greedy: • Masukkanobjeksatu per satukedalam knapsack. Sekaliobjekdimasukkankedalam knapsack, objektersebuttidakbisadikeluarkanlagi. • Terdapatbeberapastrategi greedy yang heuristik yang dapatdigunakanuntukmemilihobjek yang akandimasukkankedalam knapsack: Desain dan Analisis Algoritma

  22. Heuristik Greedy: 0/1 Knapsack • Greedy by profit. • Padasetiaplangkah, pilihobjek yang mempunyaikeuntunganterbesar. • Mencobamemaksimumkankeuntungandenganmemilihobjek yang paling menguntungkanterlebihdahulu. • Greedy by weight. • Padasetiaplangkah, pilihobjek yang mempunyaiberatteringan. • Mencobamemaksimumkankeuntungan.dengandenganmemasukkansebanyakmungkinobjekkedalam knapsack.

  23. Heuristik Greedy: 0/1 Knapsack • Greedy by density. • Padasetiaplangkah, knapsack diisidenganobjek yang mempunyai pi/witerbesar. • Mencobamemaksimumkankeuntungandenganmemilihobjek yang mempunyaikeuntungan per unit beratterbesar. • Pemilihanobjekberdasarkansalahsatudariketigastrategi di atastidakmenjaminakanmemberikansolusi optimal.

  24. Contoh: Greedy 0/1 Knapsack • Contoh1 w1 = 6; p1 = 12; w2 = 5; p2 = 15; w3 = 10; p3 = 50; w4 = 5; p4 = 10 Kapasitas knapsack K = 16 • Solusi optimal: X = (0, 1, 1, 0) • Greedy by profitdangreedyby densitymemberikansolusi optimal!

  25. Contoh 2: Greedy 0/1 Knapsack • w1 = 100; p1 = 40; w2 = 50; p2 = 35; w3 = 45; p3 = 18; • w4 = 20; p4 = 4; w5 = 10; p5 = 10; w6 = 5; p6 = 2 • Kapasitasknapsack K = 100 Ketigastrategigagalmemberikansolusioptimal!

  26. KesimpulanAlgoritma Greedy • Algoritma greedy tidakselaluberhasilmenemukansolusi optimal untukmasalah 0/1 Knapsack.

  27. Fractional Knapsack

  28. Fractional Knapsack • Penyelesaiandengan exhaustive search, tidakmungkindilakukan. • Olehkarena 0  xi 1, makaterdapattidakberhinganilai-nilai xi. • Persoalan Fractional Knapsack menjadi malar (continuous) sehinggatidakmungkindipecahkandenganalgoritmaexhaustive search.

  29. Fractional Knapsack: Algoritma Greedy • Penyelesaiandenganalgoritma greedy. • Ketigastrategi greedy yang telahdisebutkan di atasdapatdigunakanuntukmemilihobjek yang akandimasukkankedalam knapsack.

  30. Contoh Fractional Knapsack w1 = 18; p1 = 25; w2 = 15; p1 = 24 w3 = 10; p1 = 15 Kapasitas knapsack K = 20 • Solusi optimal: X = (0, 1, 1/2) • yang memberikan keuntungan maksimum = 31,5.

  31. StrategiAlgoritma Greedy: Knapsack • Strategipemilihanobjekberdasarkandensitas pi/witerbesarakanselalumemberikansolusi optimal. • Agar proses pemilihanobjekberikutnya optimal, makakitaurutkanobjekberdasarkan pi/wi yang menurun, sehinggaobjekberikutnya yang dipilihadalahobjeksesuaidalamurutanitu. Jika p1/w1 p2/w2 ... pn/wnmakaalgoritma greedy denganstrategipemilihanobjekberdasarkan pi/witerbesarmenghasilkansolusi yang optimum.

  32. Algoritma Fractional Knapsack • Algoritmapersoalan fractional knapsack: • Hitungharga pi/wi , i = 1, 2, ..., n • Urutkanseluruhobjekberdasarkannilai pi/widaribesarkekecil. • JalankanFractionalKnapsack.

  33. Pseudo-code Fractional Knapsack Kompleksitaswaktualgoritma = O(n).

More Related