Penerapan BFS dan DFS pada Pencarian Solusi

dokumen-dokumen yang mirip
Penerapan BFS dan DFS pada Pencarian Solusi

Implementasi Algoritma BFS dan DFS dalam Penyelesaian Token Flip Puzzle

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

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

Algoritma Branch & Bound

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

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Pembentukan pohon pencarian solusi dan perbandingan masingmasing algoritma pembentuknya dalam simulasi N-Puzzle

ALGORITMA PENCARIAN. 1. Iterative-Deepening Depth-First Search (IDS) Nama : Gede Noverdi Indra Wirawan Nim : Kelas : VI A

Penerapan Algoritma Branch and Bound pada Penentuan Staffing Organisasi dan Kepanitiaan

Implementasi Algoritma DFS pada permainan Monument Valley

Kecerdasan Buatan. Penyelesaian Masalah dengan Pencarian... Pertemuan 02. Husni

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

Aplikasi Algoritma Traversal Dalam Binary Space Partitioning

Aplikasi dan Analisis Algoritma BFS dan DFS dalam Menemukan Solusi pada Kasus Water Jug

Kecerdasan Buatan Penyelesaian Masalah dengan Pencarian

Pemanfaatan Algoritma Runut-balik dalam Penentuan Golongan Suara pada Dunia Paduan Suara

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

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

PENYELESAIAN MASALAH MISSIONARIES DAN CANNIBAL MENGGUNAKAN ALGORITMA DFS DENGAN VARIASI PENGHINDARAN REPEATED STATE

Algoritma Branch and Bound. (Bagian 1)

Problem solving by Searching. Materi 3 Kecerdasan Buatan Oleh: Dewi Liliana TI PNJ

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

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

PENERAPAN ALGORITMA BFS PADA CHINESE SLIDE BLOCK PUZZLE (KLOTSKI)

ALGORITMA PENCARIAN (1)

Tujuan Instruksional

Breadth/Depth First Search (BFS/DFS) Bahan Kuliah IF2211 Strategi Algoritmik Oleh: Rinaldi Munir Update: Nur Ulfa Maulidevi 2 Maret 2015

Penerapan Algoritma BFS, DFS, DLS dan IDS dalam Pencarian Solusi Water Jug Problem

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

PENGGUNAAN ALGORITMA BRANCH AND BOUND UNTUK MENYELESAIKAN PERSOALAN PENCARIAN JALAN (PATH-FINDING)

Praktikum Blind Search (BFS dan DFS)

Pemodelan AI dalam Permainan Snake dengan Algoritma Branch and Bound

Analisis Penerapan Algoritma Backtracking Pada Pencarian Jalan Keluar di Dalam Labirin

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

Pemanfaatan Algoritma Runut-Balik dalam Menyelesaikan Puzzle NeurOn dalam Permainan Logical Cell

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

Breadth/Depth First Search. Bahan Kuliah IF2211 Strategi Algoritmik Oleh: Rinaldi Munir Update: Masayu Leylia Khodra 22 September 2013

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

METODE PENCARIAN BFS dan DFS

Penerapan Search Tree pada Penyelesaian Masalah Penentuan Jalur Kota Terpendek.

PERBANDINGAN ALGORITMA BFS DAN DFS DALAM PEMBUATAN RUTE PERJALANAN OBJEK PERMAINAN 2 DIMENSI

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

dengan Algoritma Branch and Bound

Bab 2 2. Teknik Pencarian

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

PENERAPAN ALGORITMA RUNUT-BALIK DALAM PENCARIAN SOLUSI TEKA-TEKI BATTLESHIP

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

Implementasi Logika Penurunan Persamaan Aritmatika pada Program Komputer

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

Algoritma Backtracking Pada Logic Game : Family Crisis (Game Penyebrangan)

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

5.Permutasi dan Kombinasi

Penerapan strategi runut-balik dalam penyelesaian permainan puzzle geser

Penerapan Algoritma Backtracking pada Game The Lonely Knight

Algoritma Branch and Bound dalam Kegunaannya Memecahkan Assignment Problem

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

METODE PENCARIAN DAN PELACAKAN

Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

Algoritma Runut-balik (Backtracking) Bagian 1

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

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Menentukan Susunan Terbaik Tim Proyek dengan Algoritma Branch and Bound

Penyelesaian N-Puzzle Menggunakan A* dan Iterative Deepening A*

Sistem Kecerdasan Buatan. Masalah, Ruang Masalah dan Pencarian Solusi. Masalah. Masalah Sebagai Ruang Keadaan 10/7/2015

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

Menyelesaikan Kakuro Puzzle dengan Kombinatorial

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Penerapan Algoritma Branch And Bound Dalam Optimasi Assigment Problem

Aplikasi Graf Breadth-First Search Pada Solver Rubik s Cube

Pencarian Solusi Permainan Pipe Puzzle Menggunakan Algoritma Backtrack

Penggunaan Pohon Biner Sebagai Struktur Data untuk Pencarian

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

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

memberikan output berupa solusi kumpulan pengetahuan yang ada.

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

BAB III METODE PELACAKAN/PENCARIAN

Masalah, Ruang Keadaan dan Pencarian 4/7/2016. fakultas ilmu komputer program studi informatika

Hal penting dalam menentukan keberhasilan sistem cerdas adalah kesuksesan dalam pencarian.

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

Metode Searching. Blind/Un-informed Search. Heuristic/Informed Search. Breadth-First Search (BFS) Depth-First Search (DFS) Hill Climbing A*

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

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

ALGORITMA PENCARIAN (HEURISTIC)

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

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

PENERAPAN ALGORITMA RUNUT-BALIK (BACKTRACKING) DALAM PENYELESAIAN PERMAINAN SUDOKU

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

Penerapan Algoritma Transversal pada Graf dan Algoritma Pencocokan String dalam Sistem Jual-Beli Tiket Bioskop

Perbandingan Algoritma Greedy & Bactracking Dalam Penyelesaian Permainan 2048

Perbandingan BFS dan DFS pada Pembuatan Solusi Penyelesaian Permainan Logika

Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir

Perbandingan BFS, DFS dan Greedy pada Permainan Logika Crossing Bridge

Aplikasi Pohon Pencarian Biner Seimbang sebagai Memo Table Dynamic Programming

Menentukan Titik Evakuasi Selanjutnya bagi Sekelompok Regu Tim SAR dengan Algoritma Branch and Bound

I. PENDAHULUAN. 1.1 Permainan Rush Hour

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PERGERAKAN CHESS KNIGHT DALAM PAPAN CATUR

Penggunaan Metode Depth First Search (DFS) dan Breadth First Search (BFS) pada Strategi Game Kamen Rider Decade Versi 0.3

Transkripsi:

Bahan Kuliah ke-8 IF5 Strategi Algoritmik Penerapan BFS dan DFS pada Pencarian Solusi Disusun oleh: Ir. Rinaldi Munir, M.T. Departemen Teknik Informatika Institut Teknologi Bandung 4

Struktur pencarian solusi: pohon dinamis Pohon dinamis: pohon yang dibangun selama pencarian solusi berlangsung Pohon dinamis dibangun dengan metode traversal: BFS dan DFS Pohon dinamis menyatakan status-status persoalan pada saat pencarian solusi berlangsung. - Status persoalan (problem state): simpulsimpul di dalam pohon dinamis yang memenuhi kendala (constraints). - Status solusi (solution state): satu atau lebih status yang menyatakan solusi persoalan. - Status tujuan (goal state): status solusi yang merupakan simpul daun - Ruang solusi (solution space): himpunan semua status solusi. - Ruang status (state space): Seluruh simpul di dalam pohon dinamis dan pohonnya dinamakan juga pohon ruang status (state space tree).

Contoh 6.. Pohon ruang status yang dibangkitkan untuk menghasilkan semua permutasi A, B, C: () A B C AB AC BA BC CA CB ABC ACB BAC BCA CAB CBA Ket: () = status kosong Gambar 6. Pohon ruang status pembangkitan permutasi A, B, C. Setiap simpul di dalam Gambar 6. menyatakan status persoalan. Status awal adalah akar yang berupa sebuah kosong. Setiap daun pada pohon tersebut (ABC, ACB, BAC, BCA, CAB. Dan CBA) menyatakan status solusi, dan semua daun adalah ruang solusi.

Contoh 6.. Permainan 8-puzzle: (a) Susunan awal (initial state) 3 8 4 7 6 5 (b) Susunan akhir (goal state) Gambar 6. Permainan 8-puzzle up down left right 6 4 8 4 5 8 7 3 left right left right down up up down 6 6 6 4 8 4 6 8 4 5 8 4 5 8 7 6 3 7 3 7 5 5 3 7 5 down 4 6 6 8... dan seterusnya Gambar 6.3 Sebagian pohon ruang status untuk permainan 8-puzzle. 3

Metode Pencarian Melebar (BFS) 3 4 3 4 5 6 (i) (ii) (iii) (iv) Gambar 6.4. Tahapan pembentukan pohon BFS S: () A S: S: S3: B C S4: S5: S6: S7: S8: S9: AB AC BA BC CA CB S: S: S: S3: S4: S5: ABC ACB BAC BCA CAB CBA Gambar 6.5 Pembentukan pohon ruang status persoalan pembangkitan permutasi A, B, C dengan metode BFS 4

S: up down left right S: 6 S: S3: S4: 4 8 4 5 8 7 3 left right left right down up up down S5: S6: S7: S8: S9: S: S: S: 6 6 6 4 8 4 6 8 4 5 8 4 5 8 7 6 3 7 3 7 5 5 3 7 5 S5: down 4 6 6 8... dan seterusnya Gambar 6.6 Pembentukan pohon ruang status persoalan 8-puzzle dengan metode BFS. Algoritma BFS:. Masukkan simpul akar ke dalam antrian Q. Jika simpul akar = simpul solusi (goal node), maka stop.. Jika Q kosong, tidak ada solusi. Stop. 3. Ambil simpul v dari kepala (head) antrian, bangkitkan semua anak-anaknya. Jika v tidak mempunyai anak lagi, kembali ke langkah. Tempatkan semua anak dari v di belakang antrian. 4. Jika suatu simpul anak dari v adalah simpul solusi, maka solusi telah ditemukan, kalau tidak kembali lagi ke langkah. 5

Contoh 6.3. Sebuah mainan yang terdiri atas 3 buah blok (dinomori,, dan 3). 3 3 (a) Susunan awal (b) Susunan akhir Gambar 6.7 Persoalan menyusun mainan yang terdiri atas 3 buah blok Operator perpindahan: PINDAHKAN X ke Y, yang berarti memindahkan objek X ke atas objek yang lain. Pada setiap saat, hanya satu buah blok yang boleh dipindahkan. Operator tidak digunakan untuk membangkitkan status yang sama lebih dari satu kali. 6

S: 3 S3: 3 S: S: 3 3 S8: S4: S5: S6: S7: 3 3 3 3 3 S9: 3 S: 3 Gambar 6.8 Pohon ruang status yang dibentuk selama pencarian solusi dengan metode BFS Dengan mengikuti lintasan dari simput akar (S) ke simpul solusi(s), kita memperoleh konfigurasi urutan perpindahan blok dari status awal sampai ke status akhir. Dengan metode BFS, jika terdapat sebuah solusi, maka BFS menjamin dapat menemukannya, dan jika terdapat lebih dari satu buah solusi, BFS selalu menemukan solusi pertama pada aras pohon yang paling rendah. 7

Kompleksitas waktu algoritma BFS: Asumsi: setiap simpul dapat membangkitkan b simpul baru. buah + b + b + b 3 +... + b d =(b d+ )/(b ) = O(b d ). Kompleksitas ruang algoritma BFS = sama dengan kompleksitas waktunya, karena semua simpul daun dari pohon harus disimpan di dalam memori selama proses pencarian. Metode Pencarian Mendalam (DFS) 4 4 4 3 3 3 5 3 5 6 (i) (ii) (iii) (iv) (v) (vi) (vii) Gambar 6.9. Tahapan pembentukan pohon DFS 8

S: () A S: S6: S: B C S: S4: S7: S9: S: S4: AB AC BA BC CA CB S3: S5: S8: S: S3: S5: ABC ACB BAC BCA CAB CBA Gambar 6. Pembentukan pohon ruang status persoalan pembangkitan permutasi A, B, C dengan metode DFS Algoritma DFS:. Masukkan simpul akar ke dalam antrian Q. Jika simpul akar = simpul solusi, maka Stop.. Jika Q kosong, tidak ada solusi. Stop. 3. Ambil simpul v dari kepala (head) antrian. Jika kedalaman simpul v sama dengan batas kedalaman maksimum, kembali ke langkah. 4. Bangkitkan semua anak dari simpul v. Jika v tidak mempunyai anak lagi, kembali ke langkah. Tempatkan semua anak dari v di awal antrian Q. Jika anak dari simpul v adalah simpul tujuan, berarti solusi telah ditemukan, kalau tidak, kembali lagi ke langkah. 9

Contoh 6.4. Sebuah bidak (pion) bergerak di dalam sebuah matriks pada Gambar 6.. Bidak dapat memasuki elemen matriks mana saja pada baris paling atas. Dari elemen matriks yang berisi, bidak dapat bergerak ke bawah jika elemen matriks di bawahnya berisi ; atau berpindah horizontal (kiri atau kanan) jika elemen di bawahnya berisi. Bila bidak berada pada elemen yang berisi, ia tidak dapat bergerak kemanapun. Tujuan permainan ini adalah mencapai elemen matriks yang mengandung pada baris paling bawah. 3 4 3 4 Operator yang digunakan: Gambar 6. Matriks bidak DOWN pindahkan bidak satu posisi ke bawah LEFT pindahkan bidak satu posisi ke kiri RIGHT pindahkan bidak satu posisi ke kanan Batas kedalaman maksimum pohon ruang status diandaikan 5.

S S S (,) S (,) S8 (,3) S8 (,4) S (,) S (,) S8 (,3) S3 (,4) S3 (,) S9 (,) S4 (,4) S3 (,) S9 (,4) S4 (,) S7 (,3) S (,) S5 (,4) S4 (,) S7 (,3) S (,4) S5 (3,) S (,) S3 (,3) S6 (3,4) S5 (3,) S (3,4) S6 (3,) S (3,) S7 (4,4) S6 (3,) S (4,4) (a) (b) Gambar 6. (a) Pohon ruang status yang mengandung duplikasi simpul, (b) Pohon ruang status yang menghindari pembangkitan simpul yang sama. Kompleksitas waktu asimptotik algoritma DFS pada kasus terburuk adalah O(b m ). Kompleksitas ruang algoritma DFS adalah O(bm), karena kita hanya hanya perlu menyimpan satu buah lintasan tunggal dari akar sampai daun, ditambah dengan simpul-simpul saudara kandungnya yang belum dikembangkan.

Untuk persoalan secara umum, metode DFS lebih cepat daripada BFS, karena DFS menemukan solusi setelah mengeksplorasi hanya sebagian kecil dari seluruh ruang status. Sedangkan BFS masih harus menelusuri semua lintasan pada aras d sebelum memeriksa solusi pada aras d. Varian DFS: Metode Pencarian Mendalam Berulang (IDS = Iterative Deepening Search) Kesulitan utama pada metode DFS adalah menentukan batas maksimum kedalaman pohon ruang status. Strategi yang digunakan untuk memecahkan masalah kedalaman terbaik ini adalah dengan mencoba semua kedalaman yang mungkin, mulamula kedalaman, kedalaman, kedalaman, dan seterusnya.