What Is Greedy Technique

dokumen-dokumen yang mirip
Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi.

Pendahuluan. Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi.

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 06

Design and Analysis of Algorithms CNH2G3- Week 8 Greedy Algorithm

ALGORITHM. 5 Greedy Algorithm. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com

Design and Analysis Algorithm

Penerapan Algoritma Greedy dalam Algoritma Penjadwalan Prosesor Tunggal Shortest Job First

Implementasi Algoritma Greedy pada Permainan Ludo

Penerapan Algoritma Greedy dalam Permainan Othello

TUGAS RESUME MATERI KULIAH ALGORITMA DAN STRUKTUR DATA STRATEGI ALGORITMA : H

PERBANDINGAN KOMPLEKSITAS PENERAPAN ALGORITMA GREEDY UNTUK BEBERAPA MASALAH

Sistem Informasi Pemotongan Kayu menggunakan Algoritma Greedy

Penerapan Algoritma Greedy dalam Algoritma Disk Scheduling Shortest Seek Time First

Penggunaan Algoritma Greedy Untuk Menyelesaikan Permainan Cluedo

Penerapan Algoritma Greedy dalam Optimasi Keuntungan Perusahaan Pengiriman Barang

Penerapan Algoritma Greedy dan Breadth First Search pada Permainan Kartu Sevens

BAB III ALGORITMA GREEDY DAN PROGRAM DINAMIS

APLIKASI ALGORITMA GREEDY DALAM PENENTUAN SPESIFIKASI KOMPUTER RAKITAN

Pemilihan Monster yang Akan Digunakan dalam Permainan Yu-Gi-Oh! Capsule Monster Coliseum

BAB II LANDASAN TEORI

Penerapan Algoritma Greedy dalam Pemilihan Pemain di Game Football Manager

Eksplorasi Algoritma Brute Force, Greedy, dan Dynamic Programming untuk Persoalan Integer Knapsack

Implementasi Brute Force dan Greedy dalam Permainan Big Two (Capsa)

IMPLEMENTASI GRAF DENGAN MENGGUNAKAN STRATEGI GREEDY

Algoritma Greedy untuk AI dalam Permainan DotA

Penerapan Algoritma Greedy Dalam Permainan Clash Royale

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

Algoritma Greedy. Bahan Kuliah IF2211 Strategi Algoritma. Program Studi Informatika Sekolah Teknik Elektro dan Informatika ITB. Oleh: Rinaldi Munir

IMPLEMENTASI GRAF DENGAN MENGGUNAKAN STRATEGI GREEDY

Aplikasi Algoritma Greedy dalam Permainan Kartu Truf

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Penyelesaian Berbagai Permasalahan Algoritma dengan Kombinasi Algoritma Brute Force dan Greedy

Aplikasi Algoritma Greedy untuk Optimasi Sistem Booking Hotel Online

BAB 2 TINJAUAN PUSTAKA

IMPLEMENTASI ALGORITMA GREEDY UNTUK MENYELESAIKAN MASALAH KNAPSACK PROBLEM

Algorima Greedy Pada Self Serve Gas Station

Aplikasi Algoritma Greedy pada Pemilihan Jenis Olahraga Ringan

Penerapan Algoritma Greedy dalam Permainan MarketGlory

BAB 1 PENDAHULUAN. Persoalan lintasan terpanjang (longest path) merupakan persoalan dalam mencari

Penggunaan Algoritma Greedy untuk Meminimalkan Belanja

Penerapan Greedy pada Jalan Jalan Di Bandung Yuk! V1.71

PENERAPAN ALGORITMA GREEDY DALAM PENGISIAN RENCANA STUDI SEMESTER DI ITB SEBAGAI PERSOALAN BINARY KNAPSACK

Penerapan Algoritma Greedy Pada Permainan Killbots

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

Penerapan Algoritma Greedy dalam Pengisian Rencana Studi Semester di ITB sebagai Persoalan Binary Knapsack

Algoritma Greedy (lanjutan)

Penentuan Rute Belanja dengan TSP dan Algoritma Greedy

Penerapan Algoritma Greedy untuk Menentukan Loadout dalam Permainan PAYDAY 2

Implementasi Algoritma Greedy untuk Pembelian Saham

Penerapan algoritma Greedy dalam penentuan Porter Generic Strategies untuk suatu perusahaan

Algoritma Brute Force (lanjutan)

Penerapan Algoritma Greedy dalam Penyetokan Barang

Penerapan Algoritma Greedy pada Permainan Kartu 100

Penerapan Algoritma Greedy dalam Pembuatan Artificial Intelligence Permainan Reversi

Penerapan Algoritma Greedy Pada Game Tower Defense: Tower of Greece

Aplikasi Algoritma Greedy dalam Permainan Kartu Yu-Gi-Oh!

APLIKASI GREEDY PADA ALGORITMA HUFFMAN UNTUK KOMPRESI TEKS

Penerapan Algoritma Greedy untuk Permainan Halma

Implementasi Algoritma Greedy Dua Sisi pada Permainan 2048

PENGGUNAAN ALGORITMA GREEDY DALAM PERMAINAN KARTU BLACK JACK

PERBANDINGAN PENYELESAIAN KNAPSACK PROBLEM SECARA MATEMATIKA, KRITERIA GREEDY DAN ALGORITMA GREEDY

Penerapan Algoritma Greedy Pada Permainan Kartu Truf

Penyelesaian Permainan Sliding Puzzle 3x3 Menggunakan Algoritma Greedy Dengan Dua Fungsi Heuristik

Aplikasi Algoritma Greedy dalam Penjurusan Mahasiswa Tingkat Pertama Institut Teknologi Bandung

APLIKASI ALGORITMA GREEDY DALAM PERMAINAN JAWBREAKER

Strategi Perancangan Bot Player pada Permainan Tradisional Congklak dengan Algoritma Greedy

Algoritma Greedy pada Board Game Saboteur

Perbandinganan Penggunaan Algoritma Greedy dan Modifikasi Algoritma Brute Force pada Permainan Collapse XXL

Algoritma Greedy untuk Membangun Korpus Pengenalan Suara Al-Quran

Penerapan Algoritma Greedy pada Permainan Bubble Breaker

Penerapan Algoritma Greedy pada Permainan Tower Defense

Penerapan Algoritma Greedy dan Algoritma BFS untuk AI pada Permainan Greedy Spiders

Create PDF with GO2PDF for free, if you wish to remove this line, click here to buy Virtual PDF Printer

Design and Analysis of Algorithm

Pembahasan Pencarian Lintasan Terpendek Menggunakan Algoritma Dijkstra dan A*

Perbandingan Algoritma Dijkstra dan Algoritma Bellman Ford pada Routing Jaringan Komputer

PENERAPAN ALGORITMA GREEDY DALAM PENCARIAN SOLUSI TERBAIK PADA PERMAINAN TETRIS

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

PERBANDINGAN PENYELESAIAN KNAPSACK PROBLEM SECARA MATEMATIKA, KRITERIA GREEDY DAN ALGORITMAGREEDY

Algoritma Brute Force (lanjutan)

Design and Analysis of Algorithms CNH2G3- Week 7 Brute Force Algorithm Part 2: Exhaustive Search

ALGORITMA GREEDY : MINIMUM SPANNING TREE. Perbandingan Kruskal dan Prim

Algoritma Greedy (Bagian 2) IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

Penerapan Algoritma Greedy dalam Permainan Bantumi

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

PENERAPAN ALGORITMA GREEDY UNTUK PENENTUAN JALUR DISTRIBUSI BANTUAN PASCA BENCANA ALAM

Penerapan Algoritma Greedy Pada Pembacaan Blok di Hard Disk

Perbandingan Algoritma Greedy & Bactracking Dalam Penyelesaian Permainan 2048

Penerapan Algoritma Greedy dalam Permainan Tradisional Congklak

Penerapan Algoritma Greedy dan Backtrackng Dalam Penyelesaian Masalah Rubik s Cube

Algoritma Greedy (lanjutan)

Aplikasi Graf pada Penentuan Jadwal dan Jalur Penerbangan

PENERAPAN METODE GREEDY KNAPSACK DALAM MENENTUKAN KOMPOSISI BUAH PADA MASALAH KERANJANG. Abstract

Penerapan Algoritma Greedy pada Intelegensia Buatan untuk Transfer Pemain dalam Permainan Simulasi Sepakbola

Optimisasi Penjadwalan Proses Pada Central Processing Unit Dengan Menggunakan Algoritma Greedy

OPTIMASI MINIMUM LUAS KAIN PADA POLA UKURAN BAJU KOKO MENGGUNAKAN ALGORITMA GREEDY

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

Penentuan Rute Terbaik pada Permainan Taxi Rider

Algoritma Greedy untuk Penjadwalan Penerbangan di Gerbang - Gerbang Bandara

Transkripsi:

1

What Is Greedy Technique A technique constructing a solution through a sequence of steps, on each step it suggests a greedy grab of the best alternative available in the hope that a sequence of locally optimal choices will yield a globally optimal solution to the entire problem [Found.of Algorithm,Levitin]. Greedy is the most popular method to solve optimization problem. Greedy s principle : take what you can get now

Optimization Problems Persoalan optimasi (optimization problems): persoalan yang menuntut pencarian solusi optimum. Persoalan optimasi ada dua macam: Maksimasi (maximization) Minimasi (minimization) Solusi optimum (terbaik) adalah solusi yang bernilai minimum atau maksimum dari sekumpulan alternatif solusi yang mungkin. 3

Contoh Masalah Optimasi Memilih beberapa jenis investasi (penanaman modal) Mencari jalur tersingkat dari Bandung ke Surabaya Memilih jurusan di Perguruan Tinggi Bermain kartu remi 4

Contoh Penerapan Greedy Untuk memaksimumkan kesenangan hidup, beberapa orang melakukan: Algorithm 1: play game every day Algorithm 2: work hard, do assignments, get a degree, find a job with a high salary, make a lot of money, and retire early. Algorithm 1 merupakan greedy, dan tidak menghasilkan nilai yang optimum. 5

Skema Umum Algoritma Greedy Algoritma greedy disusun oleh elemenelemen berikut: 1. Himpunan kandidat Berisi elemenelemen pembentuk solusi. 2. Himpunan solusi Berisi kandidatkandidat yang terpilih sebagai solusi persoalan. 3. Fungsi seleksi (selection function) 4. Fungsi kelayakan (feasible) 5. Fungsi obyektif 6

Skema Umum (cont.) Fungsi Seleksi Memilih kandidat yang paling memungkinkan mencapai solusi optimal. Kandidat yang sudah dipilih pada suatu langkah tidak pernah dipertimbangkan lagi pada langkah selanjutnya. Fungsi Kelayakan Memeriksa apakah suatu kandidat yang telah dipilih dapat memberikan solusi yang layak, yakni kandidat tersebut bersamasama dengan himpunan solusi yang sudah terbentuk tidak melanggar kendala (constraints) yang ada. Fungsi Obyektif Fungsi yang memaksimumkan atau meminimumkan nilai solusi (misalnya panjang lintasan, keuntungan, dan lain-lain) 7

Problem 1 : Coin Change Persoalan: Diberikan uang senilai A. Tukar A dengan koin-koin uang yang ada. Berapa jumlah minimum koin yang diperlukan untuk penukaran tersebut? Contoh: tersedia koin-koin 1, 5, 10, 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) 8

Contoh pada masalah penukaran uang 1. Himpunan kandidat: himpunan koin yang merepresentasikan nilai 1, 5, 10, 25. 2. Himpunan solusi: total nilai koin yang dipilih tepat sama jumlahnya dengan nilai uang yang ditukarkan. 3. Fungsi seleksi: pilihlah koin yang bernilai tertinggi dari himpunan kandidat yang tersisa. 4. Fungsi layak: memeriksa apakah nilai total dari himpunan koin yang dipilih tidak melebihi jumlah uang yang harus dibayar. 5. Fungsi obyektif: jumlah koin yang digunakan minimum. 9

Misalkan koin-koin dinyatakan dalam himpunan-ganda (multiset) {d 1, d 2,, d n }. Solusi persoalan dinyatakan sebagai tupel X = {x 1, x 2,, x n }, sedemikian sehingga x i = 1 jika d i dipilih, atau x i = 0 jika d i tidak dipilih. Misalkan uang yang akan ditukar dengan sejumlah koin adalah A. Obyektif persoalan adalah n Minimisasi F = x i (fungsi obyektif) i= 1 dengan kendala n d x A i=1 = i i 10

Contoh lain Coin Change Problem Tinjau masalah menukarkan uang 32 dengan koin 1, 5, 10, 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!) 11

Exhaustive Vs Greedy on Coin Change Problem Exhaustive : Karena setiap elemen X = {x 1, x 2,, x n } adalah 0 atau 1, maka terdapat 2 n kemungkinan nilai X. Waktu yang dibutuhkan untuk mengevaluasi fungsi obyektif adalah O(n), oleh karena itu kompleksitas algoritma exhaustive search untuk masalah ini adalah O(n 2 n ). Greedy : Pada setiap langkah, pilihlah koin dengan nilai sebesar mungkin Agar pemilihan koin berikutnya optimal, maka perlu diurutkan decreasing order. kompleksitas algoritma greedy adalah O(n). 12

Contoh Greedy Not Optimal Pd Coin Change Problem (a) Koin: 5, 4, 3, dan 1 Uang yang ditukar = 7. Solusi dengan algoritma greedy: 7 = 5 + 1 + 1 ( 3 koin) tidak optimal Solusi yang optimal: 7 = 4 + 3 ( 2 koin) (b) Koin: 10, 7, 1 Uang yang ditukar: 15 Solusi dengan algoritma greedy: 15 = 10 + 1 + 1 + 1 + 1 + 1 (6 koin) Solusi yang optimal: 15 = 7 + 7 + 1 (3 koin) 13

Minimisasi Waktu di dalam Sistem (Penjadwalan) Persoalan: Sebuah server (dapat berupa processor, pompa, kasir di bank, dll) mempunyai n pelanggan (customer, client) yang harus dilayani. Waktu pelayanan untuk setiap pelanggan sudah ditetapkan sebelumnya, yaitu pelanggan i membutuhkan waktu t i. Kita ingin meminimumkan total waktu di dalam sistem, n T = (waktu di dalam sistem untuk pelanggan i) i= 1 Karena jumlah pelanggan adalah tetap, meminimumkan waktu di dalam sistem ekivalen dengan meminimumkan waktu rata-rata. 14

Contoh Misalkan kita mempunyai tiga pelanggan dengan t 1 = 5, t 2 = 10, t 3 = 3, maka enam urutan pelayanan yang mungkin adalah: 1, 2, 3: 5 + (5 + 10) + (5 + 10 + 3 ) = 38 1, 3, 2: 5 + (5 + 3) + (5 + 3 + 10) = 31 2, 1, 3: 10 + (10 + 5) + (10 + 5 + 3) = 43 2, 3, 1: 10 + (10 + 3) + (10 + 3 + 5) = 41 3, 1, 2: 3 + (3 + 5) + (3 + 5 + 10) = 29 (optimal) 3, 2, 1: 3 + (3 + 10) + (3 + 10 + 5) = 34 15

Pemecahan Masalah dengan Algoritma Exhaustive Search Urutan pelangan yang dilayani oleh server merupakan suatu permutasi Jika ada n orang pelanggan, maka tedapat n! urutan pelanggan. Waktu yang dibutuhkan untuk mengevaluasi fungsi obyektif adalah O(n), oleh karena itu kompleksitas algoritma exhaustive search untuk masalah ini adalah O(nn!) 16

Pemecahan Masalah dengan Algoritma Greedy Pada setiap langkah, masukkan pelanggan yang membutuhkan waktu pelayanan terkecil di antara pelanggan lain yang belum dilayani. Agar proses pemilihan pelanggan berikutnya optimal, maka perlu mengurutkan waktu pelayanan seluruh pelanggan dalam urutan yang menaik. Jika waktu pengurutan tidak dihitung, maka kompleksitas algoritma greedy untuk masalah minimisasi waktu di dalam sistem adalah O(n). 17

Pemilihan strategi greedy untuk penjadwalan pelanggan akan selalu menghasilkan solusi optimum. Keoptimuman ini dinyatakan dengan Teorema berikut: Teorema 3.1. Jika t 1 t 2 t n maka pengurutan i j = j, 1 j n meminimumkan T = n i t i j i= 1 j= 1 untuk semua kemungkinan permutasi i j. 18

0/1 Knapsack Problem Persoalan: Diberikan n buah objek dan sebuah knapsack dengan kapasitas bobot W. Setiap objek memiliki properti bobot (weigth) w i dan keuntungan(profit) p i. Solusi persoalan dinyatakan sebagai vektor n- tupel: X = {x 1, x 2,, x n } x i = 1 jika objek ke-i dimasukkan ke dalam knapsack, x i = 0 jika objek ke-i tidak dimasukkan. 19

Algoritma Greedy Masukkan objek satu per satu ke dalam knapsack. Sekali objek dimasukkan ke dalam knapsack, objek tersebut tidak bisa dikeluarkan lagi. Terdapat beberapa strategi greedy yang heuristik yang dapat digunakan untuk memilih objek yang akan dimasukkan ke dalam knapsack, yaitu Greedy by profit Greedy by weight Greedy by density 20

Greedy by Profit Pada setiap langkah, knapsack diisi dengan objek yang mempunyai keuntungan terbesar. Strategi ini mencoba memaksimumkan keuntungan dengan memilih objek yang paling menguntungkan terlebih dahulu. 21

Greedy by Weight Pada setiap langkah, knapsack diisi dengan objek yang mempunyai berat paling ringan. Strategi ini mencoba memaksimumkan keuntungan dengan memasukkan sebanyak mungkin objek ke dalam knapsack. 22

Greedy by Density Pada setiap langkah, knapsack diisi dengan objek yang mempunyai densitas, p i /w i terbesar. Strategi ini mencoba memaksimumkan keuntungan dengan memilih objek yang mempunyai keuntungan per unit berat terbesar. 23

Contoh 4 Tinjau persoalan 0/1 Knapsack dgn n = 4. w 1 = 6; p 1 = 12 w 2 = 5; p 1 = 15 w 3 = 10; p 1 = 50 w 4 = 5; p 1 = 10 Kapasitas knapsack W = 16 24

Solusi dengan algoritma greedy Properti objek Greedy by Solusi Optimal i w i p i p i /w i profit weight density 1 6 12 2 0 1 0 0 2 5 15 3 1 1 1 1 3 10 50 5 1 0 1 1 4 5 10 2 0 1 0 0 Total bobot 15 16 15 15 Total keuntungan 65 37 65 65 25

Contoh 5 Tinjau persoalan 0/1 Knapsack lain dengan 6 objek: w 1 = 100; p 1 = 40 w 2 = 50; p 2 = 35 w 3 = 45; p 3 = 18 w 4 = 20; p 4 = 4 w 5 = 10; p 5 = 10 w 6 = 5; p 6 = 2 Kapasitas knapsack W = 100 26

Solusi Properti objek Greedy by Solusi Optimal i w i p i p i /w i profit weight density 1 100 40 0,4 1 0 0 0 2 50 35 0,7 0 0 1 1 3 45 18 0,4 0 1 0 1 4 20 4 0,2 0 1 1 0 5 10 10 1,0 0 1 1 0 6 5 2 0,4 0 1 1 0 Total bobot 100 80 85 95 Total keuntungan 40 34 51 53 27

Kesimpulan 0/1 Knapsack Pada contoh ini, algoritma greedy dengan ketiga strategi pemilihan objek tidak berhasil memberikan solusi optimal. Solusi optimal permasalah ini adalah X = (0, 1, 1, 0, 0, 0) dengan total keuntungan = 53. Algoritma greedy tidak selalu berhasil menemukan solusi optimal untuk masalah 0/1 Knapsack. 28

Fractional Knapsack Problem Serupa dengan persoalan 0/1 Knapsack di atas, tetapi 0 x i 1, untuk i = 1, 2,, n maksimasi F = n p ix i i= 1 dengan kendala (constraint) w x W yang dalam hal ini, 0 x i 1, i = 1, 2,, n n i=1 i i 29

Algoritma Exhaustive Search Oleh karena 0 x i 1, maka terdapat tidak berhinga nilai-nilai x i. Persoalan Fractional Knapsack menjadi malar (continuous) sehingga tidak mungkin dipecahkan dengan algoritma exhaustive search. 30

Pemecahan Masalah dengan Algoritma Greedy Ketiga strategi greedy yang telah disebutkan di atas dapat digunakan untuk memilih objek yang akan dimasukkan ke dalam knapsack. 31

Contoh 6 Tinjau persoalan fractional knapsack dengan n = 3. w 1 = 18; p 1 = 25 w 2 = 15; p 1 = 24 w 3 = 10; p 1 = 15 Kapasitas knapsack W = 20 32

Solusi dengan algoritma greedy Properti objek Greedy by i w i p i p i /w i profit weight density 1 18 25 1,4 1 0 0 2 15 24 1,6 2/15 2/3 1 3 10 15 1,5 0 1 1/2 Total bobot 20 20 20 Total keuntungan 28,2 31,0 31,5 33

Penyelesaian persoalan knapsack yang memakai strategi pemilihan objek berdasarkan p i /w i terbesar memberikan keuntungan yang maksimum (optimum). Solusi optimal persoalan knapsack di atas adalah X = (0, 1, 1/2) yang memberikan keuntungan maksimum 31,5. Agar proses pemilihan objek berikutnya optimal, maka kita perlu mengurutkan objek terlebih dahulu berdasarkan p i /w i dalam urutan yang menurun, sehingga objek berikutnya yang dipilih adalah objek sesuai dalam urutan itu. 34

Kesimpulan Fractional Knapsack Algoritma greedy untuk persoalan fractional knapsack dengan strategi pemilihan objek berdasarkan p i /w i terbesar akan selalu memberikan solusi optimal. Hal ini dinyatakan dalam Teorema 3.2 berikut ini. Teorema 3.2. Jika p 1 /w 1 p 2 /w 2... p n /w n maka algoritma greedy dengan strategi pemilihan objek berdasarkan p i /w i terbesar menghasilkan solusi yang optimum. 35

Next.. Greedy Technique 36