Algoritma Greedy (lanjutan)

dokumen-dokumen yang mirip
Algoritma Greedy (lanjutan)

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

Design and Analysis Algorithm

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

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

APLIKASI GREEDY PADA ALGORITMA HUFFMAN UNTUK KOMPRESI TEKS

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum

Aplikasi Graf pada Persoalan Lintasan Terpendek dengan Algoritma Dijkstra

Implementasi Algoritma Greedy pada Permainan Ludo

Penerapan Algoritma Greedy untuk Memecahkan Masalah Pohon Merentang Minimum

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

Pencarian Jalur Terpendek dengan Menggunakan Graf dan Greedy dalam Kehidupan Sehari-hari

DEFINISI. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon 2


ALGORITMA GREEDY : MINIMUM SPANNING TREE. Perbandingan Kruskal dan Prim

Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Pohon. Bahan Kuliah IF2120 Matematika Diskrit. Program Studi Teknik Informatika ITB. Rinaldi M/IF2120 Matdis 1

Kompleksitas Algoritma dari Algoritma Pembentukan pohon Huffman Code Sederhana

BRUTE FORCE & GREEDY

Definisi. Pohon adalah graf tak-berarah, terhubung, dan tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon (ada sikuit) (tdk terhubung)

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

TERAPAN POHON BINER 1

Studi Algoritma Optimasi dalam Graf Berbobot

Pohon (TREE) Matematika Deskrit. Hasanuddin Sirait, MT 1

Matematika Diskret (Pohon) Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

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

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Design and Analysis of Algorithms CNH2G3- Week 8 Greedy Algorithm

Soal dan Jawaban Materi Graf, Pohon, dan Kompleksitas Algoritma

Analisis Penerapan Algoritma Kruskal dalam Pembuatan Jaringan Distribusi Listrik

Algoritma Brute Force (lanjutan)

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

PRINSIP ALGORITMA GREEDY DAN APLIKASINYA DALAM BERBAGAI ALGORITMA LAIN

MEMBANDINGKAN KEMANGKUSAN ALGORITMA PRIM DAN ALGORITMA KRUSKAL DALAM PEMECAHAN MASALAH POHON MERENTANG MINIMUM

Penerapan Teori Graf Pada Algoritma Routing

Algorima Greedy Pada Self Serve Gas Station

PENGGUNAAN ALGORITMA GREEDY PADA MESIN PENCARI

UNIVERSITAS GUNADARMA

Algoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik

PERBANDINGAN KOMPLEKSITAS PENERAPAN ALGORITMA GREEDY UNTUK BEBERAPA MASALAH

Perbandingan Algoritma Dijkstra dan Algoritma Floyd-Warshall dalam Penentuan Lintasan Terpendek (Single Pair Shortest Path)

Penerapan Algoritma Greedy dalam Optimasi Keuntungan Perusahaan Pengiriman Barang

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

Penggunaan Kode Huffman dan Kode Aritmatik pada Entropy Coding

RANCANG BANGUN APLIKASI MINIMUM SPANNING TREE (MST) MENGGUNAKAN ALGORITMA KRUSKAL

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

Graf untuk soal nomor 7

Penerapan Algoritma Greedy dalam Algoritma Disk Scheduling Shortest Seek Time First

Optimisasi Penjadwalan Proses Pada Central Processing Unit Dengan Menggunakan Algoritma Greedy

IMPLEMENTASI GRAF DENGAN MENGGUNAKAN STRATEGI GREEDY

Termilogi Pada Pohon Berakar 10 Pohon Berakar Terurut

IMPLEMENTASI GRAF DENGAN MENGGUNAKAN STRATEGI GREEDY

Algoritma Brute Force (lanjutan)

APLIKASI ALGORITMA GREEDY DALAM PENENTUAN SPESIFIKASI KOMPUTER RAKITAN

PENERAPAN ALGORITMA GREEDY UNTUK PENENTUAN JALUR DISTRIBUSI BANTUAN PASCA BENCANA ALAM

METODE GREEDY. Secara matematis, masalah knapsack tersebut dapat ditulis sebagai berikut :

Penerapan Algoritma Greedy dalam Algoritma Penjadwalan Prosesor Tunggal Shortest Job First

Definisi. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon

Aplikasi Algoritma Greedy pada Optimasi Pelaksanaan Misi dalam Permainan Assassins Creed : Revelations

Solusi UTS Stima. Alternatif 1 strategi:

INTRODUCTION TO GRAPH THEORY LECTURE 2

Program Dinamis. Oleh: Fitri Yulianti

IF5110 Teori Komputasi. Teori Kompleksitas. (Bagian 1) Oleh: Rinaldi Munir. Program Studi Magister Informatika STEI-ITB

APLIKASI POHON DALAM PENCARIAN CELAH KEAMANAN SUATU JARINGAN

Aplikasi Algoritma Greedy dalam Permainan Kartu Truf

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Program Dinamis (Dynamic Programming)

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

Pembahasan Pencarian Lintasan Terpendek Menggunakan Algoritma Dijkstra dan A*

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

What Is Greedy Technique

x 6 x 5 x 3 x 2 x 4 V 3 x 1 V 1

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

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

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO MULTIMEDIA. Kompresi. Oky Dwi Nurhayati, ST, MT

BAB II LANDASAN TEORI

Penerapan Algoritma Greedy Pada Game Tower Defense: Tower of Greece

Minimum Spanning Trees algorithm

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

8/29/2014. Kode MK/ Nama MK. Matematika Diskrit 2 8/29/2014

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

OPTIMISASI PARTICLE SWARM PADA PEMASANGAN JARINGAN PIPA AIR PDAM"

Penggunaan Algoritma Greedy dalam Optimasi Masalah Perkebunan

Sebuah pewarnaan dari graph G adalah sebuah pemetaan warna-warna ke simpulsimpul dari G sedemikian hingga simpul relasinya mempunyai warna warna yang

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data

SATUAN ACARA PERKULIAHAN MATA KULIAH LOGIKA DAN ALGORITMA (MI/D3) KODE: IT SKS: 3 SKS. Kemampuan Akhir Yang Diharapkan

Aplikasi Algoritma Greedy pada Pemilihan Jenis Olahraga Ringan

BAB 2 LANDASAN TEORI

ALGORITMA MENCARI LINTASAN TERPENDEK

Algoritma Brute Force Oleh: Rinaldi Munir

Sirkuit Euler & Sirkuit Hamilton SISTEM INFORMASI UNIVERSITAS GUNADARMA 2012/2013

Aplikasi Algoritma Greedy yang Dimodifikasi dalam Pencarian Lintasan Terpendek

Penerapan algoritma Greedy dalam penentuan Porter Generic Strategies untuk suatu perusahaan

Gambar 6. Graf lengkap K n

Algoritma Prim dengan Algoritma Greedy dalam Pohon Merentang Minimum

Penerapan Algoritma Prim dan Kruskal Acak dalam Pembuatan Labirin

Penerapan Algoritma Greedy untuk Permainan Halma

Transkripsi:

Algoritma Greedy (lanjutan)

5. Penjadwalan Job dengan Tenggat Waktu (Job Schedulling with Deadlines) Persoalan: -Adan buah job yang akan dikerjakan oleh sebuah mesin; -tiapjob diproses oleh mesin selama 1 satuan waktu dan tenggat waktu (deadline) setiap job i adalah d i 0; - job i akan memberikan keuntungan sebesar p i jika dan hanya jika job tersebut diselesaikan tidak melebihi tenggat waktunya;

- Bagaimana memilih job-job yang akan dikerjakan oleh mesin sehingga keuntungan yang diperoleh dari pengerjaan itu maksimum? Fungsi obyektif persoalan ini: Maksimasi F = i J p i Solusi layak: himpunan J yang berisi urutan job yang sedemikian sehingga setiap job di dalam J selesai dikerjakan sebelum tenggat waktunya. Solusi optimum ialah solusi layak yang memaksimumkan F.

Contoh 7. Misalkan A berisi 4 job (n = 4): (p 1, p 2, p 3, p 4 ) = (50, 10, 15, 30) (d 1, d 2, d 3, d 4 ) = (2, 1, 2, 1) Mesin mulai bekerja jam 6.00 pagi. Job Tenggat (d i ) Harus selesai sebelum pukul 1 2 jam 8.00 2 1 jam 7.00 3 2 jam 8.00 4 1 jam 7.00

Pemecahan Masalah dengan Exhaustive Search Cari himpunan bagian (subset) job yang layak dan memberikan total keuntungan terbesar.

Contoh: (p 1, p 2, p 3, p 4 ) = (50, 10, 15, 30) (d 1, d 2, d 3, d 4 ) = (2, 1, 2, 1) Barisan job Keuntungan (F) Keterangan {} 0 layak {1} 50 layak {2} 10 layak {3} 15 layak {4} 30 layak {1, 2} - tidak layak {1, 3} 65 layak {1, 4} - tidak layak {2, 1} 60 layak {2, 3} 25 layak {2, 4} - tidak layak {3, 1} 65 layak {3, 2} - tidak layak {3, 4} - tidak layak {4, 1} 0 layak (Optimum!) {4, 2} - tidak layak {4, 3} 45 layak Solusi optimum: J = {4, 1} dengan F = 80. Kompleksitas algoritma exhaustive search : O(n 2 n ).

Pemecahan Masalah dengan Algoritma Greedy Strategi greedy untuk memilih job: Pada setiap langkah, pilih job i dengan p i yang terbesar untuk menaikkan nilai fungsi obyektif F.

Contoh: (p 1, p 2, p 3, p 4 ) = (50, 10, 15, 30) (d 1, d 2, d 3, d 4 ) = (2, 1, 2, 1) Langkah J F = p i Keterangan 0 {} 0-1 {1} 50 layak 2 {4,1} 50 + 30 = 80 layak 3 {4, 1, 3} - tidak layak 4 {4, 1, 2} - tidak layak Solusi optimal: J = {4, 1} dengan F = 80.

function JobSchedulling1(input C : himpunan_job) himpunan_job { Menghasilkan barisan job yang akan diproses oleh mesin } Deklarasi i : integer J : himpunan_job { solusi } Algoritma J {} while C {} do i job yang mempunyai p[i] terbesar C C {i} if (semua job di dalam J {i} layak) then J J {i} endif endwhile { C = {} } return J Kompleksitas algoritma greedy : O(n 2 ).

6. Pohon Merentang Minimum 1 10 2 50 1 10 2 30 4 45 25 20 55 40 5 35 15 3 4 45 25 20 55 5 35 15 3 6 6 (a) Graf G = (V, E) (b) Pohon merentang minimum

(a) Algoritma Prim Strategi greedy yang digunakan: Pada setiap langkah, pilih sisi e dari graf G(V, E) yang mempunyai bobot terkecil dan bersisian dengan simpulsimpul di T tetapi e tidak membentuk sirkuit di T. Komplesiats algoritma: O(n 2 )

(a) Algoritma Kruskal Strategi greedy yang digunakan: Pada setiap langkah, pilih sisi e dari graf G yang mempunyai bobot minimum tetapi e tidak membentuk sirkuit di T. Kompleksitas algoritma: O( E log E )

7. Lintasan Terpendek (Shortest Path) Beberapa macam persoalan lintasan terpendek: Lintasan terpendek antara dua buah simpul tertentu (a pair shortest path). Lintasan terpendek antara semua pasangan simpul (all pairs shortest path). Lintasan terpendek dari simpul tertentu ke semua simpul yang lain (single-source shortest path). Lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu (intermediate shortest path).

Persoalan: Diberikan graf berbobot G = (V, E). Tentukan lintasan terpendek dari sebuah simpul asal a ke setiap simpul lainnya di G. Asumsi yang kita buat adalah bahwa semua sisi berbobot positif.

Strategi greedy: Lintasan dibentuk satu per satu. Lintasan berikutnya yang dibentuk ialah lintasan yang meminimumkan jumlah jaraknya.

Contoh 8. 45 1 50 2 10 40 15 35 20 10 20 30 5 3 15 4 3 6 Simpul Simpul Lintasan terpendek Jarak asal tujuan 1 3 1 3 10 1 4 1 3 4 25 1 2 1 3 4 2 45 1 5 1 5 45 1 6 tidak ada -

Algoritma Dijkstra Strategi greedy: Pada setiap langkah, ambil sisi yang berbobot minimum yang menghubungkan sebuah simpul yang sudah terpilih dengan sebuah simpul lain yang belum terpilih. Lintasan dari simpul asal ke simpul yang baru haruslah merupakan lintasan yang terpendek diantara semua lintasannya ke simpul-simpul yang belum terpilih.

45 1 50 2 10 40 15 35 20 10 20 30 5 3 15 4 3 6 Lelaran Simpul yang Lintasan S D dipilih 1 2 3 4 5 6 1 2 3 4 5 6 Inisial - - 0 0 0 0 0 0 0 50 10 40 45 (1,2) (1,3) (1,4) (1,5) (1,6) 1 1 1 1 0 0 0 0 0 50 10 40 45 (1,2) (1,3) (1,4) (1,5) (1,6) 2 3 1, 3 1 0 1 0 0 0 50 10 25 45 (1,2) (1,3) (1,3,4) (1,5) (1,6) 3 4 1, 3, 4 1 0 1 1 0 0 45 10 25 45 (1,3,4,2)(1,3)(1,3,4) (1,5) (1,6) 4 2 1, 3, 4, 2 1 1 1 1 0 0 45 10 25 45 (1,3,4,2)(1,3)(1,3,4) (1,5) (1,6) 5 5 1, 5 1 1 1 1 1 0 45 10 25 45

(450 km, 30 kbps) Aplikasi algoritma Dijkstra: Routing pada jaringan komputer (560 km, 56 kbps) Router 1 Router 2 Router 3 Router 3 (350 km, 5 kbps) Router 5 Router 6 (1210 km, 11 kbps) (1040 km, 10 kbps) (890 km, 10 kbps) (1225 km, 35 kbps) (340 km, 20 kbps) (2275 km, 25 kbps)

Lintasan terpendek (berdasarkan delai): Router Asal Router Tujuan Lintasan Terpendek 1 1 2 3 4 5 6-1, 4, 2 1, 4, 6, 3 1, 4 1, 4, 2, 5 1, 4, 6 2 1 2 3 4 5 6 3 1 2 3 4 5 6 4 1 2 3 4 5 6 2, 4, 1-2, 4, 6, 3 2, 4 2, 5 2, 4, 6 3, 6, 4, 1 3, 6, 4, 2-3, 6, 4 3, 5 3, 6 4, 1 4, 2 4, 6, 2 4, 6, 3 4, 2, 5 4, 6

Router Asal Router Tujuan Lintasan Terpendek 5 1 2 3 4 5 6 5, 2, 4, 1 5, 2 5, 3 5, 2, 4-5, 3, 6 6 1 2 3 4 5 6 6, 4, 1 6, 4, 2 6, 3 6, 4 6, 3, 5 -

Asal Tujuan Via 2 1 4 2 2-2 3 4 2 4 2 2 5 2 2 6 4 Asal Tujuan Via 4 1 4 4 2 4 4 3 6 4 4-4 5 2 4 6 4 (560 km, 56 kbps) Asal Tujuan Via 1 1-1 2 4 1 3 4 1 4 4 1 5 4 1 6 4 Router 1 (1040 km, 10 kbps) (2275 km, 25 kbps) Router 2 (1225 km, 35 kbps) (890 km, 10 kbps) Router 4 (340 km, 20 kbps) (450 km, 30 kbps) (1210 km, 11 kbps) Router 6 Asal Tujuan Via 6 1 4 6 2 4 6 3 6 6 4 6 6 5 3 6 6 - Router 3 Asal Tujuan Via 3 1 6 3 2 6 3 3-3 4 6 3 5 3 3 6 3 (350 km, 5 kbps) Router 5 Asal Tujuan Via 5 1 2 5 2 5 5 3 5 5 4 2 5 5-5 6 3

8. Pemampatan Data dengan Algoritma Huffman Prinsip kode Huffman: - karakter yang paling sering muncul di dalam data dengan kode yang lebih pendek; - sedangkan karakter yang relatif jarang muncul dikodekan dengan kode yang lebih panjang.

Fixed-length code Karakter a b c d e f ---------------------------------------------------------------- Frekuensi 45% 13% 12% 16% 9% 5% Kode 000 001 010 011 100 111 bad dikodekan sebagai 001000011 Pengkodean 100.000 karakter membutuhkan 300.000 bit.

Variable-length code (Huffman code) Karakter a b c d e f ------------------------------------------------------------------------ Frekuensi 45% 13% 12% 16% 9% 5% Kode 0 101 100 111 1101 1100 bad dikodekan sebagai 1010111 Pengkodean 100.000 karakter membutuhkan (0,45 1 + 0,13 3 + 0,12 3 + 0,16 3 + 0,09 4 + 0,05 4) 100.000 = 224.000 bit Nisbah pemampatan: (300.000 224.000)/300.000 100% = 25,3%

Algoritma Greedy untuk Membentuk Kode Huffman: 1. Baca semua karakter di dalam data untuk menghitung frekuensi kemunculan setiap karakter. Setiap karakter penyusun data dinyatakan sebagai pohon bersimpul tunggal. Setiap simpul di-assign dengan frekuensi kemunculan karakter tersebut. 2. Terapkan strategi greedy sebagai berikut: gabungkan dua buah pohon yang mempunyai frekuensi terkecil pada sebuah akar. Akar mempunyai frekuensi yang merupakan jumlah dari frekuensi dua buah pohon penyusunnya. 3. Ulangi langkah 2 sampai hanya tersisa satu buah pohon Huffman. Kompleksitas algoritma Huffman: O(n log n) untuk n karakter.

Contoh 9. Karakter a b c d e f ------------------------------------------------------- Frekuensi 45 13 12 16 9 5

1. f:5 e:9 c:12 b:13 d:16 a:45 2. fe:14 c:12 b:13 d:16 a:45 f:5 e:9 3. fe:14 d:16 cb:25 a:45 f:5 e:9 c:12 b:13

4. cb:25 fed:30 a:45 c:12 b:13 fe:14 d:16 f:5 e:9

5. cbfed:55 a:45 cb:25 fed:30 c:12 b:13 fe:14 d:16 f:5 e:9 6 0 acbfed:100 1 a:45 cbfed:55 0 1 cb:25 fed:30 0 1 0 1 c:12 b:13 fe:14 d:16 0 1 f:5 e:9