Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir

dokumen-dokumen yang mirip
Pengantar Strategi Algoritma

Analisis dan Strategi Algoritma

PENGENALAN ANALISIS ALGORITMA

Penerapan Algoritma Runut-balik pada Permainan Math Maze

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

Algoritma Branch & Bound

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

Kompleksitas Algoritma untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy

Program Dinamis (Dynamic Programming)

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

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

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

Penerapan Algoritma Backtracking pada Game The Lonely Knight

Penyelesaian Berbagai Permasalahan Algoritma dengan Kombinasi Algoritma Brute Force dan Greedy

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

Penentuan Menu Makan dengan Pemrograman Dinamis

Algoritma Runut-balik (Backtracking)

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Algoritma Brute Force (lanjutan)

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

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

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

II. TEORI DASAR I. PENDAHULUAN. utang piutang dengan strategi algoritma greedy.

Algoritma Runut-balik (Backtracking) Bagian 1

Penerapan BFS dan DFS pada Pencarian Solusi

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

RENCANA PEMBELAJARAN SEMESTER (RPS)

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

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

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

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Penerapan BFS dan DFS pada Pencarian Solusi

Hubungan Kompleksitas Algoritma dengan Cara Belajar

RENCANA PEMBELAJARAN SEMESTER (RPS)

Review Teori P dan NP

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

CLIQUE MAKSIMAL SEBAGAI KONSEP DASAR PEMBUATAN ALGORITMA CLIQUE-BACK UNTUK MENYELESAIKAN MASALAH N-RATU

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

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

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum

Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik. Penjelasannya adalah sebagai berikut: T(n) = (n + 2) log(n 2 + 1) + 5n 2

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

Kompleksitas Algoritma

KONTRAK PEMBELAJARAN (KP) MATA KULIAH. Algoritma dan Pemrograman

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Design and Analysis of Algorithm

Penyelesaian Persoalan Penukaran Uang dengan Program Dinamis

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Kompleksitas Algoritma

RENCANA PEMBELAJARAN SEMESTER (RPS)

Penerapan Algoritma Backtracking pada Knight s Tour Problem

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

PERBANDINGAN ALGORITMA GREEDY DAN BRUTE FORCE DALAM SIMULASI PENCARIAN KOIN

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

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

STRUKTUR DATA KULIAH KE : 3 ALGORITMA

Penyelesaian Barisan Rekursif dengan Kompleksitas Logaritmik Menggunakan Pemangkatan Matriks

Kunci Jawaban & Hint Try Out OSK 2017 Oleh : Lie, Maximilianus Maria Kolbe

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

Aplikasi Algoritma Runut Balik dalam Pembangkitan Elemen Awal Permainan Sudoku

Algoritma Brute Force (lanjutan)

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

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

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Teori Kompleksitas (Bagian 2)

Penyusunan Jarkom HMIF ITB dengan Menggunakan Algoritma Branch and Bound

IMPLEMENTASI GRAF DENGAN MENGGUNAKAN STRATEGI GREEDY

BAB II LANDASAN TEORI

PERMASALAHAN OPTIMASI 0-1 KNAPSACK DAN PERBANDINGAN BEBERAPA ALGORITMA PEMECAHANNYA

BAB 2 LANDASAN TEORI

Penerapan Algoritma Brute Force pada permainan Countdown Number

Memanfaatkan Pewarnaan Graf untuk Menentukan Sifat Bipartit Suatu Graf

BAB 2 LANDASAN TEORI. Algoritma Optimal Mismatch ini mencari data secara berurut pada tiap

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

Menyelesaikan Puzzle Matematika Braingle dengan Algoritma Brute Force

Departemen Teknik Informatika Institut Teknologi Bandung 2004

Penerapan Algoritma Branch and Bound pada Penentuan Staffing Organisasi dan Kepanitiaan

Penerapan strategi BFS untuk menyelesaikan permainan Unblock Me beserta perbandingannya dengan DFS dan Branch and Bound

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

PENCARIAN MAKSIMUM CLIQUE DALAM GRAF DENGAN MENGGUNAKAN ALGORITMA BRANCH AND BOUND

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

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

IMPLEMENTASI GRAF DENGAN MENGGUNAKAN STRATEGI GREEDY

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

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

PERBANDINGAN KOMPLEKSITAS PENERAPAN ALGORITMA GREEDY UNTUK BEBERAPA MASALAH

Strategi Optimized Brute Force Pada Tent Puzzle Solver

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

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

Implementasi Algoritma Greedy Dua Sisi pada Permainan 2048

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Kompleksitas Algoritma

Penerapan Algoritma Branch & Bound dan Backtracking pada Game Flow

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

Transkripsi:

Pengantar Strategi Algoritmik Oleh: Rinaldi Munir 1

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

2. [Masalah pencarian] Tentukan apakah suatu bilangan x terdapat di dalam sebuah senarai S yang beriri n buah bilangan bulat! Jawaban dari masalah ini: ya jika x ditemukan di dalam senarai, atau tidak jika x tidak terdapat di dalam senarai. 3

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

Algoritma Untuk masalah dengan instansiasi yang besar, solusinya menjadi lebih sulit. Perlu sebuah prosedur umum yang berisi langkahlangkah penyelesaian masalah algoritma Algoritma:urutan langkah-langkah untuk memecahkan suatu masalah 5

Definisi lain: Algoritma adalah deretan langkah-langkah komputasi yang mentransformasikan data masukan menjadi keluaran [COR92]. Algoritma adalah deretan instruksi yang jelas untuk memecahkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukan dalam jumlah waktu yang terbatas. [LEV03]. Algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran. Jadi, algoritma adalah deretan langkah komputasi yang mentransformasikan masukan menjadi keluran [COR89]. 6

Algoritmik: Studi mengenai algoritma. Notasi apapun dapat digunakan untuk menuliskan algoritma asalkan mudah dibaca dan dipahami. Algoritma dapat ditulis dengan notasi: 1. Bagan alir (flow chart) 2. Kalimat-kalimat deskriptif 3. Pseudo-code (gabungan antara bahasa alami dengan bahasa pemrograman) 7

Analisis Algoritma Sebuah algoritma tidak hanya harus benar, tetapi juga harus mangkus (efficient) Ukuran kemangkusan algoritma: waktu dan ruang memori (space). Algoritma yang mangkus: algoritma yang meminimumkan kebutuhan waktu dan ruang 8

Alat ukur kemangkusan algoritma: 1. Kompleksitas waktu, T(n) 2. Kompleksitas ruang, S(n) n = ukuran masukan yang diproses oleh algoritma T(n) : jumlah operasi 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 9

Operasi yang dihitung hanyalah operasi dasar (basic operation) saja Operasi dasar: operasi khas yang mendasari suatu algoritma Misalnya: - operasi perbandingan elemen pada algoritma pengurutan/pencarian - operasi penjumlahan dan perkalian pada algoritma perkalian matriks 10

Kompleksitas waktu asimptotik: - perkiraan kasar kebutuhan waktu algoritma dengan meningkatnya nilai n - menyatakan laju pertumbuhan waktu, bukan menyatakan jumlah operasi dasar sesungguhnya. Tiga cara menyatakan waktu asimptotik: 1. O(f(n)): untuk batas atas laju kebutuhan waktu 2. Ω(g(n)): untuk batas bawah laju kebutuhan waktu 3. Θ(h(n)) : jika f(n) = g(n) 11

Strategi algoritmik Nama mata kuliah di IF ITB saja Di luar negeri dikenal dengan nama: Teknik Perancangan Algoritma (Algorithm Design Techniques ) Strategi algoritmik: pendekatan umum untuk memecahkan masalah secara algoritmis yang dapat diterapkan pada beraneka ragam masalah guna mencapai tujuan 12

Strategi algoritmik bertujuan mencari algoritma yang mangkus untuk memecahkan masalah Ukuran kemangkusan algoritma dinyatakan dengan notasi O, Ω, atau Θ. 13

Dua alasan mempelajari strategi algoritmik: 1. memberikan panduan untuk merancang algoritma bagi masalah baru. 2. mengklasifikasikan algoritma berdasarkan gagasan perancangan yang mendasarinya. 14

Klasifikasi Strategi Algoritmik: 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 15

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

Beberapa Masalah 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. a 12 b 10 5 9 8 d 15 c 17

2. Integer Knapsack (1/0 Knapsack) 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 objekobjek yang dimasukkan ke dalam knapsack sehingga tidak melebihi kapasitas knapsack namun memaksimumkan total keuntungan yang diperoleh. 18

Contoh instansiasi masalah: n = 5; K = 20 w 1 = 5; p 1 = 20; w 2 = 8; p 2 = 30 w 3 = 4; p3 = 50; w 4 = 6; p 4 = 10 19

3. Persoalan N-Ratu (The N- Queens Problem) Persoalan: Diberikan sebuah papan catur yang berukuran N N dan delapan buah ratu. Bagaimana menempatkan N buah ratu (Q) itu pada petakpetak 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? 20

4. Mencari Pasangan Titik yang Jaraknya Terdekat (Closest Pair) Persoalan: Diberikan n buah titik, tentukan dua buah titik yang terdekat satu sama lain. y p 5 p 2 p 4 p 3 p 6 p 1 p 8 p 7 x 21

5. 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. 1 3 4 15 1 2 3 4 2 5 12 5 6 7 8 7 6 11 14 9 10 11 12 8 9 10 13 (a) Susunan awal 13 14 15 (b) Susunan akhir 22

6. 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). 23

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