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

dokumen-dokumen yang mirip
Design and Analysis of Algorithm

Algoritma Brute Force (lanjutan)

Algoritma Brute Force (lanjutan)

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

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

Design and Analysis of Algorithms CNH2G3- Week 8 Greedy Algorithm

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

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Penentuan Rute Belanja dengan TSP dan Algoritma Greedy

PENGGUNAAN ALGORITMA HUNGARIAN DALAM MENYELESAIKAN PERSOALAN MATRIKS BERBOBOT

Analisis Algoritma: Anany Levitin, Introduction to Design and Analysis of Algorithm, 3 rd Edition, Pearson Education, Inc.

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

Design and Analysis Algorithm

Design and Analysis of Algorithms CNH2G3- Week 5 Kompleksitas waktu algoritma rekursif part 2: Metode Karakteristik

BAB I PENDAHULUAN. 1.1 Latar Belakang

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

BAB 1 PENDAHULUAN. 1.1 Latar belakang

BAB II KAJIAN TEORI 2.1 Kajian Penelitian Sebelumnya

Pemodelan Pembagian Kelompok Tugas Besar Strategi Algoritma dengan Masalah Sum of Subset

Algoritma Brute Force Oleh: Rinaldi Munir

Design and Analysis of Algorithm

Teori Kompleksitas (Bagian 2)

BAB II LANDASAN TEORI

What Is Greedy Technique

Algoritma Greedy (lanjutan)

Design and Analysis of Algorithm

BAB I PENDAHULUAN 1.1. Latar Belakang dan Permasalahan

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Penggunaan Metode Branch And Bound With Search Tree

Penyelesaian Traveling Salesman Problem dengan Algoritma Heuristik

ALGORITMA RUTE FUZZY TERPENDEK UNTUK KONEKSI SALURAN TELEPON

Matematika dan Statistika

Design and Analysis Algorithm

BAB 2 LANDASAN TEORI. Definisi Graf G didefinisikan sebagai pasangan himpunan (V, E), yang dalam hal ini:

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

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

PERBANDINGAN KINERJA ALGORITMA GENETIK DAN ALGORITMA BRANCH AND BOUND PADA TRAVELLING SALESMAN PROBLEM

BAB II LANDASAN TEORI

Pengantar Strategi Algoritma

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

TARGET BERORIENTASI METODE CABANG DAN BATAS UNTUK OPTIMISASI GLOBAL

BAB III ALGORITMA BRANCH AND BOUND. Algoritma Branch and Bound merupakan metode pencarian di dalam ruang

Algoritma Branch & Bound

IMPLEMENTASI ALGORITMA GREEDY UNTUK MENYELESAIKAN MASALAH KNAPSACK PROBLEM

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum

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

Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir

JURNAL IT STMIK HANDAYANI

Permasalahan Clique dalam Graf

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Berbagai Variasi Teknik Program Dinamis dalam Penyelesaian Masalah

PERBANDINGAN KOMPLEKSITAS PENERAPAN ALGORITMA GREEDY UNTUK BEBERAPA MASALAH

BAB 2 LANDASAN TEORI

IMPLEMENTASI GRAF DENGAN MENGGUNAKAN STRATEGI GREEDY

IMPLEMENTASI GRAF DENGAN MENGGUNAKAN STRATEGI GREEDY

Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem

II TINJAUAN PUSTAKA 2.1 Graf Definisi 1 (Graf, Graf Berarah dan Graf Takberarah) 2.2 Linear Programming

Penerapan Algoritma Brute Force di Permainan Nonogram

Branch and Bound untuk Rute Terpendek Tur Pengenalan Labtek V Gedung Benny Subianto Chita Najmi Nabila /

BAB II LANDASAN TEORI

Solusi UTS Stima. Alternatif 1 strategi:

Program Dinamis (Dynamic Programming)

BAB I PENDAHULUAN. Kompetisi Global yang kian hari kian meningkat memaksa perusahaan

PERMASALAHAN OPTIMASI 0-1 KNAPSACK DAN PERBANDINGAN BEBERAPA ALGORITMA PEMECAHANNYA

Design and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1

Implementasi Algoritma Greedy pada Permainan Ludo

Penyelesaian Berbagai Permasalahan Algoritma dengan Kombinasi Algoritma Brute Force dan Greedy

EKSPLORASI ALGORITMA BRUTE FORCE, GREEDY DAN PEMROGRAMAN DINAMIS PADA PENYELESAIAN MASALAH 0/1 KNAPSACK

Algoritma Greedy (lanjutan)

PENYELESAIAN TRAVELLING SALESMAN PROBLEM DENGAN ALGORITMA BRANCH AND BOUND

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

I PENDAHULUAN II LANDASAN TEORI

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

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

Design and Analysis of Algorithm

BAB I PENDAHULUAN. 1.1 Latar Belakang

Algoritma Branch & Bound untuk Optimasi Pengiriman Surat antar Himpunan di ITB

PERBANDINGAN ALGORITME ANT COLONY OPTIMIZATION DENGAN ALGORITME GREEDY DALAM TRAVELING SALESMAN PROBLEM

BAB 1 PENDAHULUAN. dapat menyelesaikan masalah maka perlu dirumuskan terlebih dahulu langkahlangkah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN 1.1 LATAR BELAKANG

Operations Management

Strategi Algoritma Penyelesaian Puzzle Hanjie

Bab 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

PENYELESAIAN TRAVELLING SALESMAN PROBLEM MENGGUNAKAN METODE SIMPLE HILL CLIMBING

Algoritma Brute Force

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 OPTIMISASI KOMBINATORIAL

BAB II TINJAUAN PUSTAKA

DAFTAR ISI... HALAMAN JUDUL... HALAMAN PERSETUJUAN... LEMBAR PERNYATAAN... HALAMAN PERSEMBAHAN... HALAMAN MOTTO... KATA PENGANTAR... DAFTAR TABEL...

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Aplikasi Divide and Conquer pada Perkalian Large Integer untuk Menghitung Jumlah Rute TSP Brute Force

PENERAPAN ALGORITMA GENETIKA DALAM PENYELESAIAN TRAVELLING SALESMAN PROBLEM WITH PRECEDENCE CONSTRAINTS (TSPPC)

STUDI PERBANDINGAN ALGORITMA CHEAPEST INSERTION HEURISTIC DAN ANT COLONY SYSTEM DALAM PEMECAHAN TRAVELLING SALESMAN PROBLEM

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

APLIKASI ALGORITMA BRANCH AND BOUND UNTUK MENYELESAIKAN INTEGER PROGRAMMING. Enty Nur Hayati Dosen Fakultas Teknik Universitas Stikubank Semarang

Review Teori P dan NP

ALGORITMA MENCARI LINTASAN TERPENDEK

Transkripsi:

Design and Analysis of Algorithms CNH2G3- Week 7 Brute Force Algorithm Part 2: Exhaustive Search Dr. Putu Harry Gunawan (PHN) Daftar Isi 1 Pendahuluan..................................... 1 2 Traveling Salesman Problem........................... 1 3 Knapsack Problem................................. 5 4 Assignment Cost Problem............................. 6 1 Pendahuluan Berbagai macam masalah biasanya perlu menemukan sebuah elemn dengan properti khusus pada sebuah domain yang dapat membesar secara exponensial. Biasanya terdapat pada masalah yang masuk secara implisit maupun explisit ke dalam kombinatorik, seperti permutasi, kombinasi, dan subset dari sebuah himpunan. Seperti pada masalah optimasi: yaitu bertujuan untuk menemukan suatu elemen yang memaksimumkan atau meminimumkan beberapa karakteristik yang diinginkan seperti pada sebuah panjang lintasan atau sebuah biaya. Exhaustive search merupakan sutau pendekatan brute force untuk masalah yang berkaitan dengan kombinatorik. Algoritma ini mengijinkan: membentuk setiap elemen dari domain permasalahan, menyeleksi elemen yang memenuhi semua konstrain, menemukan sebuah elemen yang diinginkan ( sesuatu yang mengoptimalkan fungsi objek). Catatan bahawa, meskipun ide dari exhaustive search straightforward/ lempeng, implementasinya membutuhkan secara khusus algoritma yang membentuk kombinasi obkjek. Berikut akan diberikan beberapa contoh dalam algoritma exhaustive search seperti: Traveling Salesman Problem, Knapsack 0/1, dan assignment problem. 2 Traveling Salesman Problem Traveling salesmen problem (TSP) sudah menjadi hal yang sering diperhatikan oleh peneliti dari 150 tahun yang lalu, karena merupakan formula yang sederhana, aplikasi 1

penting, dan koneksi menarik untuk masalah kombinasi lainnya. Salah satu contoh masalah TSP adalah menemukan tour terpendek dari sebuah himpunan n kota yang harus dikunjungi tepat sekali dan balik kembali ke kota awal keberangkatan. Model dari masalah ini dapat dimodelkan dengan graf berbobot (weighted graph, dengan vertek dari graf mempresentasikan kota dan garis menyatakan besaran jarak. Sehingga masalah ini dapat dikategorikan sebagai masalah menemukan sirkuit Hamilton terpendek dari graf. (A Hamiltonian circuit is defined as a cycle that passes through all the vertices of the graph exactly once. It is named after the Irish mathematician Sir William Rowan Hamilton (1805-1865), who became interested in such cycles as an application of his algebraic discoveries.) Algoritma exhaustive search untuk persoalan TSP: 1. Enumerasikan ( list ) semua sirkuit Hamilton dari graf lengkap dengan n buah simpul. 2. Hitung ( evaluasi ) bobot setiap sirkuit Hamilton yang ditemukan pada langkah 1. 3. Pilih sirkuit Hamilton yang mempunyai bobot terkecil. Example 2.1 Berikut diberikan contoh untuk n = 4 dan simpul awal a. Tour length 1. a ---> b ---> c ---> d ---> a I = 2 + 8 + 1 + 7 = 18 2. a ---> b ---> d ---> c ---> a I = 2 + 3 + 1 + 5 = 11 optimal 3. a ---> c ---> b ---> d ---> a I = 5 + 8 + 3 + 7 = 23 4. a ---> c ---> d ---> b ---> a I = 5 + 1 + 3 + 2 = 11 optimal 5. a ---> d ---> b ---> c ---> a I = 7 + 3 + 8 + 5 = 23 6. a ---> d ---> c ---> b ---> a I = 7 + 1 + 8 + 2 = 18 Gambar 1: Solusi dari contoh traveling salesman problem menggunakan exhaustive search. Jadi rute perjalanan terpendeknya adalah: 1. a > b > d > c > a 2

2. a > c > d > b > a yang nilanya sebesar 11. Untuk n buah simpul semua rute perjalanan yang mungkin dibangkitkan dengan permutasi dari n 1 buah simpul. Permutasi dari n 1 buah simpul adalah (n 1)!. Pada contoh di atas, untuk n = 4 akan terdapat (4 1)! = 3! = 6 buah rute perjalanan. Beberapa karakteristik yang didapat dari contoh di atas adalah: Jika diselesaikan dengan metode exhaustive search, maka kita harus mengenumerasi sebanyak (n 1)! buah sirkuit Hamilton, menghitung setiap bobotnya, dan memilih sirkuit Hamilton dengan bobot terkecil. Kompleksitas waktu algoritma exhaustive search untuk persoalan TSP sebanding dengan (n 1)! dikali dengan waktu untuk menghitung bobot setiap sirkuit Hamilton. Menghitung bobot setiap sirkuit Hamilton membutuhkan waktu O(n), sehingga kompleksitas waktu algoritma exhaustive search untuk persoalan TSP adalah O(n n!). Perbaikan : setengah dari rute perjalanan adalah hasil pencerminan dari setengah rute yang lain, yakni dengan mengubah arah rute perjalanan 1 dan 6, 2 dan 4, 3 dan 5. maka dapat dihilangkan setengah dari jumlah permutasi ( dari 6 menjadi 3). Ketiga buah sirkuit Hamilton yang dihasilkan adalah seperti gambar di bawah ini : Dengan demikian, untuk graf dengan buah simpul, kita hanya perlu mengevaluasi sirkuit Hamilton sebanyak (n 1)!/2 buah. Untuk ukuran masukan yang besar, algoritma exhaustive search menjadi sangat tidak mangkus. Pada persoalan TSP misalnya, untuk jumlah simpul n = 20 akan terdapat (19!)/2 = 6 10 16 sirkuit Hamilton yang harus dievaluasi satu per satu. Sayangnya, untuk persoalan TSP tidak ada algoritma lain yang lebih baik daripada algoritma exhaustive search. Jika anda dapat menemukan algoritma yang mangkus untuk TSP, anda akan menjadi terkenal dan kaya! Algoritma yang mangkus selalu mempunyai kompleksitas waktu dalam orde polinomial. 3

Exercise 2.2 Tentukan rute dan jarak terpendek dari contoh-contoh berikut. 1. Pada TSP berikut: 2. Pada TSP berikut (UTS 2004): 3. Pada TSP berikut: 4

3 Knapsack Problem Masalah Knapsack adalah masalah yang terkenal dalam algoritma. Diberikan n items/objek yang memiliki properti seperti bobot w 1, w 2, w n dan keuntungan p 1, p 2,, p n. Dengan kapasitas bobot Knapsack K. Permasalahan yang terjadi adalah bagaimana memilih memilih objek - objek yang dimasukkan ke dalam knapsack sedemikian sehingga memaksimumkan keuntungan. Total bobot objek yang dimasukkan ke dalam knapsack tidak boleh melebihi kapasitas knapsack K. If you do not like the idea of putting yourself in the shoes of a thief who wants to steal the most valuable loot that fits into his knapsack, think about a transport plane that has to deliver the most valuable set of items to a remote location without exceeding the plane s capacity. Persoalan 0/1 Knapsack dapat kita pandang sebagai mencari himpunan bagian (subset) dari keseluruhan objek yang muat ke dalam knapsack dan memberikan total keuntungan terbesar. Solusi persoalan dinyatakan sebagai vektor n-tupel: X = {x 1, x 2,, x n } dengan x i = 1 jika objek ke-i dimasukkan ke dalam knapsack, x i = 0 jika objek ke-i tidak dimasukkan. Formualsi matemntaikanya dapat dibentuk menjadi: dengan kendala Maximumkan F = n p i x i i n w i x i K dengan i = 0 atau 1, i = 1, 2, n. Algoritma exhaustive search untuk persoalan 0/1 Knapsack : i 1. Enumerasikan (list) semua himpunan bagian dari himpunan dengan n objek. 2. Hitung (evaluasi) total keuntungan dari setiap himpunan bagian dari langkah 1. 3. Pilih himpunan bagian yang memberikan total keuntungan terbesar. Example 3.1 Diberikan data untuk n = 4 seperti berikut ini: w 1 = 2; p 1 = 20 w 2 = 5; p 2 = 30 w 3 = 10; p 3 = 50 w 4 = 5; p 4 = 10 5

Kapasitas knapsack K = 16. Langkah - langkah pencarian solusi 0/1 Knapsack secara exhaustive search dirangkum dalam tabel di bawah ini : Tabel 1: Solusi menggunakan exhaustive search, bagian tebal menyatkan solusi optimal. Himpunan bagian objek yang memberikan keuntungan maksimum adalah {2, 3} dengan total keuntungan adalah 80. Sehingga solusi: X = {0, 1, 1, 0}. Berapa banyak himpunan bagian dari sebuah himpunan dengan n elemen? Jawabnya adalah 2 n. Waktu untuk menghitung total bobot objek yang dipilih = O(n). Sehingga, Kompleksitas algoritma exhaustive search untuk persoalan 0/1 Knapsack = O(n 2 n ). TSP dan 0/1 Knapsack, adalah contoh persoalan eksponensial. Keduanya digolongkan sebagai persoalan NP (Non-deterministic Polynomial), karena tidak mungkin dapat ditemukan algoritma polinomial untuk memecahkannya. Exercise 3.2 Diberikan data untuk n = 4 seperti berikut ini: w 1 = 7; p 1 = $42 w 2 = 3; p 2 = $12 w 3 = 4; p 3 = $40 w 4 = 5; p 4 = $25 Kapasitas knapsack K = 10. Tentukan solusi optimalnya. 4 Assignment Cost Problem Pada contoh ketiga dari masalah yang bisa diselesaikan dengan exhaustive search, adalah masalah Biaya Kerja. Masalahnya dimulai dengan adanya n orang yang perlu di berikan 6

pekerjaan yang sebanyak n tugas. Syaratnya adalah satu orang satu pekerjaan, yang artinya setiap orang tepat mendapat satu pekerjaan dan setiap pekerjaan dikerjakan oleh tepat satu orang. Biaya yang dikeluarkan jika orang ke-i ditempatkan pada pekerjaan ke-j disebut sebagai quantity C[i, j] untuk setiap i, j = 1, 2,, n. Selanjutnya akan dicari assignment/penempatan orang terhadap pekerjaan dengan memperhatikan total biaya harus minimum. Sebagai contoh, perhatikan nilai C[i, j] berikut ini: Job 1 Job 2 Job 3 Job 4 Dono 9 2 7 8 Kasino 6 4 3 7 Indro 5 8 1 8 Toyib 7 6 9 4 Dengan jelas dapat kita lihat bahwa penempatan pekerja dapat di gambarkan dengan matrik biaya C. Dalam matrix, masalahnya adalah memilih setiap elemen pada baris sehingga setiap elemen memiliki kolom berbeda, dan total biaya minimum. Solusi dari masalsah ini tidak begitu jelas. Misalkan kita memilih satu pekerja pada biaya yang minimum, akan tetapi akan ada kemungkinan pekerja lain memiliki baya minimum pada kolom yang sama. Solusi persoalan dinyatakan sebagai vektor n-tupel: X = {x 1, x 2,, x n } dengan x i menyatakan kolom dari elemen yang dipilih pada baris ke-i. Sebagai contoh pada matrix di atas, {2, 3, 4, 1} mengindikasikan bahwa Dono ke Job 1, Kasino ke Job 3, Indro ke Job 4, Toyib ke Job 1. Exhaustive search menangani masalah ini dengan membangkitkan semua permutasi dari bilangan bulat 1, 2,, n, menghitung total biaya dari setiap assignment. Sebagai contoh, untuk mengerjakan masalah di atas: Maka kandidat slusinya adalah C = 9 2 7 8 6 4 3 7 5 8 1 8 7 6 9 4 {1, 2, 3, 4}, cost = 9 + 4 + 1 + 4 = 18 {1, 2, 4, 3}, cost = 9 + 4 + 8 + 9 = 30 {1, 3, 2, 4}, cost = 9 + 3 + 8 + 4 = 24 {1, 3, 4, 2}, cost = 9 + 3 + 8 + 6 = 26 {1, 4, 2, 3}, cost = 9 + 7 + 8 + 9 = 33 {1, 4, 3, 2}, cost = 9 + 7 + 1 + 6 = 23 dst... Karena jumlah permutasi dapat diperumum, maka kompleksitas waktunya adalah O(n!), sehingga exhaustive search sangatlah tidak praktis digunakan. Untungnya, terdapat algoritma yang lebih effisien yang dikenal dengan the Hungarian method setelah matematikawan dari Hungaria König and Egerváry yang memulai metode tersebut (see, e.g., [Kol95]). 7

References 1. Anany, L. (2003). Introduction to the design and analysis of algorithms. Villanova University. 2. http://www.csd.uoc.gr/ hy583/papers/ch11.pdf 3. [Kol95] Kolman, B. and Beck, R.E. Elementary Linear Programming with Applications, 2nd ed. Academic Press, 1995. 8