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

dokumen-dokumen yang mirip
METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

Pemecahan Masalah Knapsack dengan Menggunakan Algoritma Branch and Bound

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

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

Algoritma Branch and Bound dalam Kegunaannya Memecahkan Assignment Problem

dengan Algoritma Branch and Bound

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

Menentukan Susunan Terbaik Tim Proyek dengan Algoritma Branch and Bound

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

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

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

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

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

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

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

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

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

Pemodelan AI dalam Permainan Snake dengan Algoritma Branch and Bound

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

Penggunaan Algoritma Pathfinding pada Game

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

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

Menentukan Susunan Pengambil Tendangan Penalti dalam Skema Adu Penalti pada Pertandingan Sepak Bola dengan Algoritma Branch and Bound

Pemanfaatan Algoritma BFS pada Graf Tak Berbobot untuk Mencari Jalur Terpendek

Aplikasi Branch and Bound Pada Pencarian Jalan Pada Software Navigasi

Algoritma Branch and Bound. (Bagian 1)

Algoritma Branch & Bound

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

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

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

Penggunaan Algoritma Runut-balik Pada Pencarian Solusi dalam Persoalan Magic Square

Aplikasi Algoritma Traversal Dalam Binary Space Partitioning

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

Menentukan Starting Lineup Futsal Terbaik dengan Algoritma Branch and Bound

Penyusunan Jarkom HMIF ITB dengan Menggunakan Algoritma Branch and Bound

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

Penerapan Algoritma A-star (A*) Untuk Menyelesaikan Masalah Maze

Pencarian Lintasan Terpendek Pada Aplikasi Navigasi Menggunakan Algoritma A*

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

Penggunaan Strategi Algoritma Backtracking pada Pencarian Solusi Puzzle Pentomino

Aplikasi Algoritma B&B untuk Memperoleh Poin Maksimum pada Permainan Diner Dash

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

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

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

Penerapan BFS dan DFS pada Pencarian Solusi

UNNES Journal of Mathematics

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Analisis Penerapan Algoritma Backtracking Pada Pencarian Jalan Keluar di Dalam Labirin

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

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

Representasi Graf Berarah dalam Mencari Solusi Jalur Optimum Menggunakan Algoritma A*

ALGORITMA RUNUT BALIK DALAM PENYELESAIAN PERMAINAN WORD DIAGRAM

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

Penerapan Algoritma Branch & Bound dan Backtracking pada Game Flow

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

Penerapan Algoritma Branch And Bound Dalam Optimasi Assigment Problem

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

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

Perbandingan Algoritma Depth-First Search dan Algoritma Hunt-and-Kill dalam Pembuatan Labirin

Implementasi Algoritma Greedy, BFS, Branch and Bound, dan Metode Heuristik dalam Permainan Reversi

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

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

Penerapan Algoritma Branch and Bound dalam Menentukan Jalur Terpendek pada Permainan Clash of Clans

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

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

Pembentukan Pohon Pencarian Solusi dalam Persoalan N-Ratu (The N-Queens Problem)

MAKALAH STRATEGI ALGORITMIK (IF 2251) ALGORITMA RUNUT BALIK DALAM GAME LABIRIN

IMPLEMENTASI PROGRAM DINAMIS DENGAN ALGORITMA NEEDLEMAN-WUNSCH PADA PENSEJAJARAN DNA DAN PROTEIN

Penerapan Algoritma Branch and Bound dalam Pemacahan Travelling Salesman Problem (TSP) dalam Graf Lengkap

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Pengaturan Sistem Lampu Lalu Lintas dengan Algoritma Branch and Bound dengan Waktu Tunggu Menggunakan Algoritma Greedy

Penerapan Algoritma Backtrack pada Knight s Tour

Analisis Algoritmik Fitur AutoComplete Tracks dari Video Game RollerCoaster Tycoon 3

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

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

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

Penyelesaian Permainan Pacman yang disederhanakan dengan Algoritma Backtracking

Algoritma Puzzle Pencarian Kata

Aplikasi Graf pada Persoalan Lintasan Terpendek dengan Algoritma Dijkstra

Penerapan Algoritma Runut-balik pada Permainan Math Maze

Penerapan Algoritma Backtracking pada Game The Lonely Knight

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

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

VARIASI PENGGUNAAN FUNGSI HEURISTIK DALAM PENGAPLIKASIAN ALGORITMA A*

PERBANDINGAN ALGORITMA GREEDY DAN BRUTE FORCE DALAM SIMULASI PENCARIAN KOIN

Penggunaan Algoritma Backtracking pada Permainan Mummy Maze

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

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

METODE PERKIRAAN UKURAN POHON PENCARIAN

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

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENCARIAN KOEFISIEN ROOK POLYNOMIAL

UNTUK PEMECAHAN MASALAH PADA PERMAINAN HASHIWOKAKERO

Solusi Terbaik Permainan Rocket Mania Deluxe dengan Pendekatan Algoritma BFS dan Algoritma Greedy

Transkripsi:

PENGGUNAAN ALGORITMA BRANCH AND BOUND UNTUK MENYELESAIKAN PERSOALAN PENCARIAN JALAN (PATH-FINDING) R. Aditya Satrya Wibawa (NIM. 30064) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika - Institut Teknologi Bandung Jalan Ganeca no. 0 Bandung e-mail: if064@students.if.itb.ac.id ABSTRAK Persoalan pencarian jalan (path-finding) adalah persoalan menjacari lintasan dari titik awal menuju titik akhir yang ditentukan dengan melewati hambatan-hambatan (constrains) yang ada. Pada makalah ini akan dibahas algoritma pencari lintasan dengan menggunakan algoritma Branch and Bound. Algoritma Branch and Bound mirip dengan algoritma A* dan banyak digunakan pada permainanpermainan berjenis arcade atau adventure. Kata kunci: path-finding, pencari lintasan, branch and bound, shortest path, lintasan terpendek.. PENDAHULUAN Persoalan pencarian jalan (path-finding) adalah persoalan menjacari lintasan dari titik awal menuju titik akhir yang ditentukan dengan melewati hambatanhambatan (constrains) yang ada. pemrograman Java dan dapat didownload di situs: http://students.if.itb.ac.id/~if064/pathfinder 2. BRANCH AND BOUND [2] 2. Konsep Branch and Bound Sebagaimana pada algortima runut-balik, algoritma Branch & Bound juga merupakan metode pencarian di dalam ruang solusi secara sistematis. Ruang Solusi diorganisasikan ke dalam pohon ruang status. Pembentukan pohon ruang status. Pembentukan pohon ruang status pada algoritma B&B berbeda dengan pembentukan pohon pada algoritma runut-balik. Bila pada algoritma runut-balik ruang solusi dibangun secara Depth- First Search(DFS), maka pada algoritma B&B ruang solusi dibangun dengan skema Breadth-First Search (BFS). Pada algoritma B&B, pencarian ke simpul solusi dapat dipercepat dengan memilih simpul hidup berdasarkan nilai ongkos (cost). Setiap simpul hidup diasosiasikan dengan sebuah ongkos yang menyatakan nilai batas (bound). Pada prakteknya, nilai batas untuk setiap simpul umumnya berupa taksiran atau perkiraan. Fungsi heuristik untuk menghitung taksiran nilai tersebut dinyatakan secara umum sebagai : c(i) = ƒ(i) + g(i) yang dalam hal ini, Gambar. Salah satu contoh persoalan path-finding. S adalah titik awal dan F adalah titik akhir. Pada makalah ini, akan dijelaskan cara penyelesaian persoalan path-finding dengan menggunakan algoritma Branch and Bound dengan menggunakan suatu fungsi heuristic sederhana. Contoh kode (code sample) program yang dijelaskan pada makalah ini adalah dalam bahasa c(i) = ongkos untuk simpul i ƒ(i) = ongkos mencapai simpul i dari akar g(i) = ongkos mencapai simpul tujuan dari simpul akar i Nilai c digunakan untuk mengurutkan pencarian. Simpul berikutnya yang dipilih untuk diekspansi adalah simpul yang memiliki c minimum. 2.2 Algoritma Branch and Bound MAKALAH IF22 STRATEGI ALGORITMIK TAHUN 2007

Algoritma B&B jika dituliskan secara prosedural adalah. Masukkan simpul akar ke dalam antrian Q. Jika simpul akar adalah simpul solusi (goal node), maka solusi telah ditemukan. Stop. 2. Jika Q kosong, tidak ada solusi. Stop. 3. Jika Q tidak kosong, pilih dari antrian Q simpul i yang mempunyai c(i) paling kecil. Jika terdapat beberapa simpul i yang memenuhi, pilih satu secara sembarang. 4. Jika simpul i adalah simpul solusi, berarti solusi sudah ditemukan, stop. Jika simpul i bukan simpul solusi, maka bangkitkan semua anak-anaknya. Jika i tidak mempunyai anak, kembali ke langkah 2.. Untuk setiap anak j dari simpul i, hitung c(j), dan masukkan semua anak-anak tersebut ke dalam antrian Q. 6. Kembali ke langkah 2. 2. PENYELESAIAN PERSOALAN y finish = nomor kolom titik finish x i = nomor baris titik simpul i yi = nomor kolom titik simpul i Dengan persamaan c(i) = ƒ(i) + g(i) dapat ditentukan cost untuk simpul i c(i) = ƒ(i) + x finish x i + y finish - y i dapat dihitung c(2) = 0 + 3 2 + = 6 c(3) = 0 + 3 3 + 2 = 3 c(4) = 0 + 3 2 + = 6 Karena simpul 3 yang memiliki cost terkecil, maka simpul 3 yang pertama kali dibangkitkan. Akan dihasilkan pohon ruang penyelesaian sebagai berikut. 3. Algoritma Algoritma penyelesaian persoalan akan ditunjukkan lewat sebuah contoh sederhana berikut ini. 2 3 S F 4 Gambar 2. Salah satu contoh persoalan path-finding. S adalah titik awal dan F adalah titik akhir S merupakan titik awal dan F merupakan titik akhir. Tujuan algoritma path-finding adalah menemukan jalan terpendek dari S ke F. Sebagai batasan persoalan, pergerakan hanya dapat dilakukan secara vertikal atau horizontal (tidak diagonal). Langkah pertama, jadikan titik (,) sebagai simpul akar dari pohon ruang penyelesaian. Selanjutnya, bangkitkan anak-anaknya, yaitu titik-titik yang berada di atas (2,), kanan (3,2), dan bawahnya (4,) (titik di sebelah kiri tidak ada). Sebagai catatan, pembangkitan selalu dimulai dari sisi atas, kanan, bawah, dan kiri secara berurutan. Untuk menghitung cost tiap simpul, terlebih dahulu kita set cost akar adalah 0 dan menentukan fungsi heuristic. Fungsi heuristic yang akan digunakan adalah g(i) = x finish x i + y finish - y i dengan x finish = nomor baris titik finish Gambar 3. Pohon ruang penyelesaian 2 2() 4 4() Gambar 4. Gambar pada matriks yang berseuaian keterangan: = simpul hidup = simpul mati n(m) = simpul yang bersesuaian simpul n anak dari m Nomor simpul merupakan urutan dibangkitkannya simpul. Nomor pada sisi menunjukkan lokasi titik yang bersesuaian dengan simpul. Nomor yang terletak pada bagian atas simpul merupakan nilai cost untuk simpul tersebut. MAKALAH IF22 STRATEGI ALGORITMIK TAHUN 2007 2

Selanjutnya akan dibangkitkan anak-anak simpul 3. Titik-titik yang bersesuaian adalah (2,2) dan (4,2). Titik (3,) dan (3,3) tidak dibangkitkan karena (3,) sudah dibangkitkan dan (3,3) merupakan constrain yang tidak bisa dilewati. Dengan perhitungan cost yang sama seperti sebelumya, akan dihasilkan pohon ruang penyelesaian sebagai berikut. simpul 7 dan 8 merupakan simpul daun dan bukan merupakan solusi, sehingga simpul 7 dan 8 akan dibunuh. Pada gambar, ini ditandai dengan garis horizontal di bawah simpul. Pohon ruang penyelesaiannya adalah sebagai berikut. Gambar 7. Pohon ruang penyelesaian Gambar. Pohon ruang penyelesaian 2 2() (3) 4 4() 6(3) Gambar 6. Gambar pada matriks yang berseuaian Karena simpul 2 merupakan simpul hidup yang memiliki nilai cost yang paling kecil, maka simpul 2 akan dibangkitkan anak-anaknya. Simpul 2 dibangkitkan lebih dulu daripada simpul 4 karena simpul 2 terletak lebih kiri. Simpul 2 akan hanya membangkitkan satu anak yaitu simpul 7 yang bersesuaian dengan titik (,). Simpul yang bersesuaian dengan titik (2,2), (3,) tidak dibangkitkan simpul-simpul tersebut sudah pernah dibangkitkan. Berikut ini pohon ruang penyelesaian yang digasilkan. Simpul 2 akan membangkitkan simpul anak dengan cost 2. Karena simpul hidup dengan cost terkecil sekarang adalah simpul 4, maka akan dibangkitkan anak-anak simpul 4 yang akan menghasilkan satu simpul anak dengan cost 2. Dengan membangkitkan simpul-simpul anak dari simpul dan 6 secara berurutan, akan didapat bahwa 7(2) 9() 2 2() (3) 4 4() 6(3) 8(4) 0(6) Gambar 8. Gambar pada matriks yang berseuaian Dengan meneruskan pembangkitan simpul-simpul anak, pada akhirnya aka didapatkan pohon ruang penyelesaian sebagai berikut. MAKALAH IF22 STRATEGI ALGORITMIK TAHUN 2007 3

7(2) 9() (9) 3() (3) 2 2() (3) 7() 3 3() 8(6) 9(7) 4 4() 6(3) 6(4) 8(4) 0(6) 2(0) 4(2) Gambar 8. Gambar pada matriks yang berseuaian Untuk mengetahui lintasan penyelesaian, dilakukan runut dari belakang, atau dari simpul anak ke orang tuanya, yaitu simpul 9 7 3 9 3. Dengan membalik urutan di atas dan menuliskan titiktitik yang bersesuaian, dapat ditemukan lintasan solusi dari titik awal ke titik akhir, yaitu titik (3,), (3,2), (2,), (,2), (,3), (,4), (,), (2,), dan (3,). 3.2 Pseudo-Code Algoritma procedure findpath() while not found and ada simpul hidup node n = findleastcost(); generatechilds(n); function findleastcost() : node {mengembalikan node dengan cost terkecil} procedure generatechilds(node n) {membangkitkan simpul anak n} 4. UJI SIMULASI Algoritma ini akan diuji coba pada kasus yang lebih rumit. yaitu pada matriks ukurang 2 x dengan hambatan-habatan yang lebih banyak. Pada bagian ini hanya akan diperlihatkan hasil programnya (PathFinder.0). Program tersebut dibuat oleh penulis untuk keperluan pengujian. Berikut ini adalah matriks yang diberikan. Gambar 9. Pohon ruang penyelesaian yang mengandung solusi Gambar 9. Screenshot program MAKALAH IF22 STRATEGI ALGORITMIK TAHUN 2007 4

Tanda x pada gambar merupakan hambatan yang tidak dapat dilalui. Tanda S merupakan titik awal dan tanda F merupakan titik akhir. Hasil dari program tersebut adalah seperti di bawah ini. Gambar 9. Screenshot program (solusi) Tanda * menyatakan lintasan penyelesaian. Jika tidak terdapat penyelesaian, maka program akan mencetak Tidak ada solusi. REFERENSI [] Lester, Patrick, A* Pathfinding for Beginners, http://www.policyalmanac.org/games/astartutorial.htm, 200. Waktu akses : 22 Mei 2007 pukul 4.00 [2] Munir, Rinaldi, Diktat Kuliah IF22 Startegi Algoritmik, 2007. MAKALAH IF22 STRATEGI ALGORITMIK TAHUN 2007