Pengantar Strategi Algoritma

dokumen-dokumen yang mirip
Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir

Analisis dan Strategi Algoritma

Penerapan Algoritma Runut-balik pada Permainan Math Maze

PENGENALAN ANALISIS ALGORITMA

ALGORITMA RUNUT-BALIK (BACKTRACKING ALGORITHM) PADA MASALAH KNIGHT S TOUR

Algoritma Branch & Bound

Program Dinamis (Dynamic Programming)

Penyelesaian Berbagai Permasalahan Algoritma dengan Kombinasi Algoritma Brute Force dan Greedy

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

Penerapan Algoritma Backtracking pada Game The Lonely Knight

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

Algoritma Runut-balik (Backtracking) Bagian 1

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Branch & Bound. Bahan Kuliah IF2211 Strategi Algoritma Rinaldi Munir & Masayu Leylia Khodra

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

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

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Kompleksitas Algoritma untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum

Pengantar Matematika. Diskrit. Bahan Kuliah IF2091 Struktur Diksrit RINALDI MUNIR INSTITUT TEKNOLOGI BANDUNG

Penerapan Algoritma Branch and Bound pada Penentuan Staffing Organisasi dan Kepanitiaan

RENCANA PEMBELAJARAN SEMESTER (RPS)

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

ALGORITMA RUNUT-BALIK UNTUK MENGGANTIKAN ALGORITMA BRUTE FORCE DALAM PERSOALAN N-RATU

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

Penerapan Algoritma Backtracking pada Knight s Tour Problem

Review Teori P dan NP

Penentuan Menu Makan dengan Pemrograman Dinamis

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

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

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

Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour

Pemanfaatan Pohon dalam Realisasi Algoritma Backtracking untuk Memecahkan N-Queens Problem

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

Algoritma Runut-balik (Backtracking)

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

SATUAN ACARA PERKULIAHAN PERANCANGAN DAN ANALISIS ALGORITMA ** (S1/TEKNIK INFORMATIKA) PTA 2010/2011

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

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

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

Penerapan Algoritma Branch & Bound dan Backtracking pada Game Flow

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

Algoritma Brute Force (lanjutan)

Strategi Optimized Brute Force Pada Tent Puzzle Solver

Design and Analysis Algorithm

Pengantar Matematika. Diskrit. Bahan Kuliah IF2120 Matematika Diksrit RINALDI MUNIR INSTITUT TEKNOLOGI BANDUNG

Hubungan Kompleksitas Algoritma dengan Cara Belajar

Penyelesaian Game Lights Out dengan Algoritma Runut Balik

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

Penerapan Algoritma Brute Force pada permainan Countdown Number

PENCARIAN MAKSIMUM CLIQUE DALAM GRAF DENGAN MENGGUNAKAN ALGORITMA BRANCH AND BOUND

RENCANA PEMBELAJARAN SEMESTER (RPS)

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Penyusunan Jarkom HMIF ITB dengan Menggunakan Algoritma Branch and Bound

Penyelesaian Permasalahan Knight s Tour Menggunakan Algoritma Breadth First Search (BFS)

PERMASALAHAN OPTIMASI 0-1 KNAPSACK DAN PERBANDINGAN BEBERAPA ALGORITMA PEMECAHANNYA

Penggunaan Algoritma Branch and Bound dan Program Dinamis Dalam Pemecahan Masalah Rubik s Cube

Aplikasi Algoritma Brute Force Pada Knight s Tour Problem

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

PENERAPAN ALGORITMA BRANCH AND BOUND DALAM MENENTUKAN RUTE TERPENDEK UNTUK PERJALANAN ANTARKOTA DI JAWA BARAT

APLIKASI GREEDY PADA ALGORITMA HUFFMAN UNTUK KOMPRESI TEKS

Penerapan Algoritma Brute Force pada Teka-teki Magic Square 3 x 3

Departemen Teknik Informatika Institut Teknologi Bandung 2004

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

Penerapan Algoritma Backtrack pada Knight s Tour

Asah Otak dengan Knight s Tour Menggunakan Graf Hamilton dan Backtracking

Penyelesaian Barisan Rekursif dengan Kompleksitas Logaritmik Menggunakan Pemangkatan Matriks

Aplikasi Algoritma Runut Balik dalam Pembangkitan Elemen Awal Permainan Sudoku

Penerapan Algoritma Program Dinamis dalam Penjadwalan Pengerjaan Sekumpulan Tugas Pelajar

Penghematan BBM pada Bisnis Antar-Jemput dengan Algoritma Branch and Bound

Teori Kompleksitas (Bagian 2)

ALGORITMA RUTE FUZZY TERPENDEK UNTUK KONEKSI SALURAN TELEPON

Penerapan BFS dan DFS pada Pencarian Solusi

Graf. Bekerjasama dengan. Rinaldi Munir

Implementasi Algoritma Greedy Dua Sisi pada Permainan 2048

ANALISIS TEKNIK PENGISIAN KATA DALAM PERMAINAN TEKA-TEKI SILANG

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

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

Pemecahan Masalah Knapsack dengan Menggunakan Algoritma Branch and Bound

dengan Algoritma Branch and Bound

Penyelesaian Traveling Salesman Problem dengan Algoritma Heuristik

Design and Analysis of Algorithm

Penerapan Algoritma Backtracking pada Pewarnaan Graf

Penerapan Teori Graf untuk Menyelesaikan Teka-Teki Permainan The Knight's Tour

Penerapan Algoritma Branch and Bound untuk Optimasi Rute Penempelan Poster di Papan Mading ITB

Penggunaan Metode Branch And Bound With Search Tree

Pelacakan dan Penentuan Jarak Terpendek terhadap Objek dengan BFS (Breadth First Search) dan Branch and Bound

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Penentuan Lintasan Terbaik Dengan Algoritma Dynamic Programming Pada Fitur Get Driving Directions Google Maps

Decrease and Conquer

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

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

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

Journal of Informatics and Technology, Vol 1, No 1, Tahun 2012, p

Program Dinamis (Dynamic Programming)

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

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

Transkripsi:

PROGRAM STUDI TEKNIK INFORMATIKA Sekolah Teknik Elrektro dan Informatika INSTITUT TEKNOLOGI BANDUNG Pengantar Strategi Algoritma Bahan Kuliah IF2211 Strategi Algoritma RINALDI MUNIR Lab Ilmu dan Rekayasa Komputasi Kelompok Keahlian Informatika Institut Teknologi Bandung

Kampus ITB yang indah Foto oleh Eko Purwono (AR ITB)

Inilah STEI-ITB

LabTek V, di sini Informatika ITB berada Foto oleh Budi Rahardjo (EL ITB)

Salah satu mata kuliahnya. IF2211 Strategi Algoritma

Apakah Strategi Algoritma itu? Strategi algoritma (algorithm strategies) adalah: pendekatan umum untuk memecahkan persoalan secara algoritmis yang dapat diterapkan pada bermacam-macam persoalan dari berbagai bidang komputasi [Levitin, 2003] Nama lain: algorithm design technique

Persoalan (Problem) Persoalan: pertanyaan atau tugas yang kita cari jawabannya. Contoh-contoh persoalan: 1. [Persoalan pengurutan] Diberikan senarai (list) S yang terdiri dari n buah integer. Bagaimana mengurutkan n buah integer tersebut sehingga terurut secara menaik? Jawaban: barisan nilai di dalam senarai yang terurut menaik. 7

2. [Persoalan pencarian] Tentukan apakah suatu bilangan x terdapat di dalam sebuah senarai S yang berisi n buah bilangan bulat! Jawaban: ya jika x ditemukan di dalam senarai, atau tidak jika x tidak terdapat di dalam senarai. 8

Instansiasi persoalan: parameter nilai yang diasosiasikan di dalam persoalan. Jawaban terhadap instansiasi persoalan disebut solusi Contoh: Selesaikan persoalan pengurutan untuk S = [15, 4, 8, 11, 2, 10, 19] n = 7 Solusi: S = [2, 4, 8, 10, 11, 15, 19]. 9

Beberapa Contoh Persoalan Klasik 1. Travelling Salesperson Problem (TSP) Persoalan: Diberikan n buah kota serta diketahui jarak antara setiap kota satu sama lain. Temukan perjalanan (tour) terpendek yang dimulai dari sebuah kota dan melalui setiap kota lainnya hanya sekali dan kembali lagi ke kota asal keberangkatan. 10

2. Integer Knapsack Problem Persoalan: Diberikan n buah objek dan sebuah knapsack (karung, tas, buntilan, dsb) dengan kapasitas bobot K. Setiap objek memiliki properti bobot (weigth) w i dan keuntungan (profit) p i. Bagaimana memilih objek-objek yang dimasukkan ke dalam knapsack sedemikian sehingga tidak melebihi kapasitas knapsack namun memebrikan keuntungan maksimal? 11

3. Persoalan penugasan (assignment problem) Misalkan terdapat n orang dan n buah pekerjaan (job). Setiap orang akan di-assign dengan sebuah pekerjaan. Penugasan orang ke-i dengan pekerjaan ke-j membutuhkan biaya sebesar c(i, j). Bagaimana melakukan penugasan sehingga total biaya penugasan adalah seminimal mungkin?

Contoh instansiasi persoalan: d c b a Job Job Job Job C Orang Orang Orang Orang 4 9 6 7 4 1 8 5 7 3 4 6 8 7 2 9 4 3 2 1

4. Persoalan N-Ratu (The N-Queens Problem) Persoalan: Diberikan sebuah papan catur yang berukuran N N dan N buah bidak ratu. Bagaimana menempatkan N buah ratu (Q) itu pada petak-petak papan catur sedemikian sehingga tidak ada dua ratu atau lebih yang terletak pada satu baris yang sama, atau pada satu kolom yang sama, atau pada satu diagonal yang sama? 14

5. Mencari Pasangan Titik Terdekat (Closest Pair) Persoalan: Diberikan n buah titik, tentukan dua buah titik yang terdekat satu sama lain. 15

6. Permainan 15-Puzzle Persoalan: Diberikan sebuah 15-puzzle yang memuat 15 buah ubin (tile) yang diberi nomor 1 sampai 15, dan satu buah slot kosong yang digunakan untuk menggerakkan ubin ke atas, ke bawah, ke kiri, dan ke kanan. Misalkan diberikan keadaan awal dan keadaaan akhir susunan ubin. Kita ingin menransformasikan susunan awal menjadi susunan akhir. (a) Susunan awal (b) Susunan akhir 16

7. Menemukan jalan keluar dari labirin (Maze Problem) Persoalan: Diberikan sebuah labirin dengan satu atau lebih pintu masuk dan satu atau lebih pintu keluar. Temukan jalan yang harus dilalui sehingga seseorang dapat keluar dengan selamat dari labirin tersebut (tidak tersesat di dalamnya). 17

8. Pewarnaan Graf (Graph Colouring) Persoalan: Diberikan sebuah graf G dengan n buah simpul dan disediakan m buah warna. Warnailah seluruh simpul graf G sedemikian sehingga tidak ada dua buah simpul bertetangga yang mempunyai warna sama (Perhatikan juga bahwa tidak seluruh warna harus dipakai) 18

9. Lintasan terpendek (shortest path) Persoalan: Diketahui n buah kota dan diberikan jarak antara dua buah kota yang bertetangga. Tentukan lintasan terpendek dari sebuah kota asal ke sebuah kota tujuan.

Algoritma Untuk persoalan dengan instansiasi yang besar, solusinya menjadi lebih sulit ditentukan. Perlu sebuah prosedur umum yang berisi langkahlangkah penyelesaian persoalan algoritma Algoritma: urutan langkah-langkah untuk memecahkan suatu persoalan, dengan memproses masukan menjadi keluaran. 20

Analisis Algoritma Tujuan analis: mengukur kinerja (performance) algoritma dari segi kemangkusannya (efficient) Alat ukur kemangkusan algoritma: 1. Kompleksitas waktu, T(n) 2. Kompleksitas ruang, S(n) n = ukuran masukan yang diproses oleh algoritma 21

T(n) : jumlah tahap komputasi yang dilakukan untuk menjalankan sebuah algoritma sebagai fungsi dari ukuran masukan n. S(n): ruang memori yang dibutuhkan algoritma sebagai fungsi dari ukuran masukan n. Tiga notasi kebutuhan waktu asimptotik: 1. O(g(n)): batas lebih atas kebutuhan waktu algoritma 2. (g(n)): batas lebih bawah kebutuhan waktu algoritma 3. (g(n)) : jika dan hanya jika O(g(n)) = (g(n)) 22

Strategi Algoritma 1. Algoritma Brute-Force 2. Algoritma Greedy 3. Algoritma Divide and Conquer 4. Algoritma Decrease and Conquer 5. Algoritma Bactracking 6. Algoritma Branch and Bound 7. Dynamic programming

Mengapa Perlu Mempelajari Strategi Algoritma? Ada dua alasan (Levitin, 2003): 1. Memberikan panduan (guidance) untuk merancang algoritma bagi persoalan baru. 2. Dapat mengklasifikasikan algoritma berdasarkan gagasan perancangan yang mendasarinya. 24

Klasifikasi Strategi Algoritma: 1. Strategi solusi langsung (direct solution strategies) - Algoritma Brute Force - Algoritma Greedy 2. Strategi berbasis pencarian pada ruang status (state-space base strategies) - Algoritma Backtracking - Algoritma Branch and Bound 25

3. Strategi solusi atas-bawah (top-down solution strategies) - Algoritma Divide and Conquer. - Algoritma Decrease and Conquer 4. Strategi solusi bawah-atas (bottom-up solution strategies) - Dynamic Programming. Catatan: klasifikasi ini tidak kaku, bisa berbeda bergantung pendekatan ayng digunakan. 26