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

dokumen-dokumen yang mirip
Tujuan Instruksional

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

Bab 2 2. Teknik Pencarian

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

Penerapan Search Tree pada Penyelesaian Masalah Penentuan Jalur Kota Terpendek.

Kecerdasan Buatan Penyelesaian Masalah dengan Pencarian

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

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Aplikasi Algoritma Traversal Dalam Binary Space Partitioning

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

ALGORITMA PENCARIAN (1)

Penerapan BFS dan DFS pada Pencarian Solusi

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

Penerapan BFS dan DFS pada Pencarian Solusi

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

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

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

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

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

TEKNIK PENYELESAIAN MASALAH BERDASARKAN AI

PERBANDINGAN METODE PENCARIAN DEPTH-FIRST SEARCH, BREADTH-FIRST SEARCH DAN BEST-FIRST SEARCH PADA PERMAINAN 8-PUZZLE

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

METODE PENCARIAN DAN PELACAKAN

SSSS, Problem Solving. State Space Search. Erick Pranata. Edisi I

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

IKI 30320: Sistem Cerdas Kuliah 4: Uninformed Search Strategies (Rev.)

Pertemuan-07 INFORMATIKA FASILKOM UNIVERSITAS IGM

Implementasi Algoritma DFS pada permainan Monument Valley

METODE PENCARIAN BFS dan DFS

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

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

Implementasi Logika Penurunan Persamaan Aritmatika pada Program Komputer

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

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

Implementasi Algoritma BFS dan DFS dalam Penyelesaian Token Flip Puzzle

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

MASALAH, RUANG KEADAAN & PENCARIAN

Pencarian Lintasan Terpendek Pada Aplikasi Navigasi Menggunakan Algoritma A*

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

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

PENERAPAN ALGORITMA A* PADA PERMASALAHAN OPTIMALISASI PENCARIAN SOLUSI DYNAMIC WATER JUG

Update 2012 DESAIN DAN ANALISIS ALGORITMA SEARCHING

IKI30320 Kuliah 4 5 Sep Ruli Manurung. Ulasan. Breadth-first. Uniform-cost. Depth-first. Pengulangan state. Ringkasan

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Penerapan Metode Best First Search Pada Permainan Tic Tac Toe

Penerapan Algoritma BFS dan DFS dalam Permainan Ular Tangga

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

ALGORITMA PENCARIAN (HEURISTIC)

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

Overview. Searching. Deskripsi. Intro Searching 2/4/2012 IF-UTAMA 1

memberikan output berupa solusi kumpulan pengetahuan yang ada.

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

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

Problem-solving Agent: Searching

BAB III ANALISIS DAN PERANCANGAN SISTEM

Algoritma Pencarian Blind. Breadth First Search Depth First Search

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

Penerapan Algoritma DFS dalam Menyelesaikan Permainan Buttons & Scissors

Penerapan BFS dan DFS dalam Garbage Collection

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

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

Algoritma Penentuan Graf Bipartit

Ruang Pencarian PERTEMUAN 3

Penggunaan Algoritma DFS dan BFS Dalam Pencarian Jarak Tedekat di Game Civilization V

PENERAPANAN ALGORITMA BFS, DFS, DAN UCS UNTUK MENCARI SOLUSI PADA MASALAH ROMANIA

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

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

Pemanfaatan Algoritma BFS pada Graf Tak Berbobot untuk Mencari Jalur Terpendek

Penggunaan Algoritma Pathfinding pada Game

Perbandingan Algoritma Penelusuran Depth First Search dan Breadth First Search pada Graf serta Aplikasinya

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

Pengantar Sistem Pakar

Penerapan Algoritma A* Sebagai Algoritma Pencari Jalan Dalam Game

dengan Algoritma Branch and Bound

Masalah, Ruang Masalah dan Pencarian

Penggunaan BFS dan DFS untuk Pixel Traversing

I. PENDAHULUAN. Kata Kunci Greedy-Best First Search, SMA*, jalur pendek-efisien, Heuristic

Penerapan Algoritma BFS & DFS untuk Routing PCB

Kecerdasan Buatan. Pertemuan 03. Pencarian Branch & Bound dan Heuristik (Informed)

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

Pembahasan Pencarian Lintasan Terpendek Menggunakan Algoritma Dijkstra dan A*

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

Perbandingan BFS, DFS dan Greedy pada Permainan Logika Crossing Bridge

Implementasi DFS dan BFS Dalam Recognizer Pushdown Automata

KECERDASAN BUATAN METODE HEURISTIK / HEURISTIC SEARCH ERWIEN TJIPTA WIJAYA, ST., M.KOM

Menentukan Susunan Terbaik Tim Proyek dengan Algoritma Branch and Bound

1, 2, 3

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

Implementasi Brute Force pada Game Mahjong Titans

Problem-Solving Agent & Search

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

Penentuan Keputusan dalam Permainan Gomoku dengan Program Dinamis dan Algoritma Greedy

IKI 30320: Sistem Cerdas Kuliah 3: Problem-Solving Agent & Search

Search Strategy. Search Strategy

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

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

Transkripsi:

Aplikasi dan Analisis Algoritma BFS dan DFS dalam Menemukan Solusi pada Kasus Water Jug Rizkydaya Aditya Putra NIM : 13506037 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung Jl. Ganesha no. 10, Bandung e-mail: if16037@students.if.itb.ac.id ABSTRAK Dalam sebuah kasus water jug (kendi air) diberikan dua buah kendi air yang masing-masing memiliki kapasitas isi 3 liter dan 4 liter. Solusi yang diharapkan adalah bagaimana memperoleh 2 liter air di dalam ember yang berkapasitas 4 liter dengan penakaran hanya memakai dua buah ember tersebut. Kemungkinan solusi dari permasalahan ini dapat direpresentasikan dengan pohon pencarian atau tree search. Salah satu algoritma yang bisa diterapkan untuk menelusuri setiap simpul dalam tree search ini adalah Breadth First Search dan Depth First Search atau biasa disingkat BFS dan DFS. Inti dari algoritma ini yaitu mengeksplor simpul yang levelnya lebih bawah. Bagaimanakah caranya? Dalam menemukan solusinya digunakan algoritma BFS dan DFS sekaligus analisa algoritmanya. Kata kunci: Water Jug, Algoritma BFS dan DFS, Analisis Algoritma. Gambar 1. Contoh Water Jug Problem Melalui paper ini diasumsikan state awal kedua kendi dalam keadaan kosong. Misalkan kendi pertama berkapasitas p liter dan kendi kedua berkapasitas q liter dengan syarat 1 < p < q. Dari p dan q dapat kita peroleh sejumlah bilangan bulat antara 1 sampai p+q. Kita mulai dengan menyederhanakan masalah tersebut dengan memberikan suatu contoh untuk menggambarkan algoritmanya. Kita akan mencari secara sequensial setiap aksi yang nantinya menjadi sebuah solusi. 1. PENDAHULUAN Kasus water jug yang terdapat pada IEEE Gamebook yaitu jika ada 2 kendi kosong dengan kapasitas 5 liter dan 3 liter, bagaimana caranya mendapatkan tepat 4 liter pada kendi yang berkapasitas 5 liter? Masalah ini sangat terkenal dan pernah diangkat ke layar lebar dalam film Die Hard 3. 2. METODE 2.1 Rumus Pencarian State : deskripsi kasus dalam dunia nyata beriisikan kombinasi dari volume kendi State Space : himpunan semua state yang mungkin P={0,1,2,3} dan q={0,1,2,3,4} 4 * 5 = 20 state

[A,B] [A+B-4,4] Jika A+B>4 7.Kosongkan kendi 3 liter. [A,B] [0,B] 8.Kosongkan kendi 4 liter. [A,B] [A,0] 2.3 Algoritma Pencarian Water Jug Gambar 2. Contoh State-state dalam Water Jug Search Node : struktur data dimana informasi state disimpan untuk pencarian Search Tree : Graph berarah G=(V,E) V adalah himpunan dari node (state) E adalah himpunan dari busur (perubahan aksi dari state ke state) Initial State : Inisial state awal Kedua kendi kosong. Successor States : Kumpulan dari state yang dibangkitkan oleh aksi di state tertentu. Goal State : State yang memenuhi objek pencarian Kendi dengan isi 4 liter Goal Test : Cara memutuskan state tujuan. Open list : List dari state-state yang dibangkitkan oleh state sebelumnya pada saat pencarian solusi. Closed list : List dari state-state yang telah dikunjungi pada saat pencarian solusi. Solution : Jalur (path) dari inisial state ke goal state. 2.2 Metode Pencarian Water Jug State : Order AB Dimisalkan state A adalah kendi dengan kapasitas 3 liter dan state B adalah kendi dengan kapasitas 4 liter. State space : himpunan semua state yang mungkin. Terdapat 14 kemungkinan state. Edges (sisi) : Semua kemungkinan aksi dari state. 1.Isi kendi 3 liter. [A,B] [3,B] 2.Isi kendi 4 liter. [A,B] [4,B] 3.Pindahkan seluruh isi kendi 3 liter ke 4 liter [A,B] [0,A+B] Jika A+B 4 4.Pindahkan seluruh isi kendi 4 liter ke 3 liter [A,B] [A+B,0] Jika A+B 3 5. Isikan kendi 3 liter dari kendi 4 liter [A,B] [3,A+B-3] Jika A+B>3 6.Isikan kendi 4 liter dari kendi 3 liter Initial state : State 00. OPEN={00}//List dari state-state yang dibangkitkan CLOSED={}//List dari state-state yang telah dikunjungi while OPEN is not empty { X = state removed from OPEN if X is (n2) or (2n) then return solution else { add X to CLOSED generate successor states via actions on X ignore successors already in OPEN or CLOSED add successors to OPEN } } return FAILURE // Tidak ada solusi Goal state : Dengan state n2 atau 2n. Dimana n adalah bilangan bulat berapapun. Open List: Pada contoh ini, kita menggunakan metoda FIFO atau antrian untuk membangkitkan state pada list open. Cara ini disebut juga dengan breadth-first search (BFS). Ada cara lain untuk menangani state pada list open yaitu dengan menggunakan metoda LIFO atau stack. Cara ini disebut juga dengan depth-first search (DFS). 2.4 Pohon Pencarian Water Jug Dalam strategi pencarian dapat dilakukan dengan menggunakan : 2.4.1. BREADTH-FIRST SEARCH (BFS) Breadth-First Search akan mengunjungisemua node pada kedalaman n sebelummengunjungi node lain pada kedalaman n+1 atau dengan kata lain akan dilakukan penelusuran per level. Algoritma BFS: create nodelist (a queue) and initialize to the start state. repeat until a goal state is found or nodelist = {} remove the first element from nodelist: apply all possible rules and add resulting states to nodelist

Tabel 1. Tabel Water Jug dengan BFS dan memiliki faktor pencabangan b. Goal state terletak pada kedalaman d pada tree. Goal state pada kasus umum biasanya terdapat pada bagian tengah dari pohon. Gambar 4. Goal State pada kasus rata - rata BFS Space Requirement: Antrian diinisialisasi dengan satu state. Kemudian antrian akan berisi b state dan kemudian semua b states akan diproses berdasarkan antriannya dalam satu level. BFS Time Analysis (Complexity) Merupakan pengukuran waktu dalam mengunjungi sejumlah state. Diasumsikan pada kasus water jug setiap proses node memiliki waktu yang sama. Time = # level 1 nodes + #level 2 nodes + + # level d-1 nodes + (# level d nodes/2). = 1 + b + b2 + b3 + + bd-1 + bd/2 Є O(bd) Gambar 3. Diagram State Water Jug dengan BFS Karakteristik BFS: Jika ada solusi, BFS akan menemukannya BFS akan menemukan solusi dengan jalur terpendek BFS tidak akan terjebak dalam looping BFS membutuhkan space untuk menyimpan node list antrian dan space yang dibutuhkan dan mungkin space yang dibutuhkan adalah cukup besar. Analisis waktu dan space BFS Asumsi : Terdapat solusi dalam pohon. Pencarian tree adalah secara terurut 2.4.2 Depth-First Search (DFS) Depth-First Search akan memproses semua anak/pilihan dari sebuah node sebelum mempertimbangkan node saudaranya (node pada kedalaman yang sama). Depth-First Search menggunakan stack, lain halnya dengan BFS yang menggunakan queue. Depth-First Search dapat dengan mudah digambarkan secara rekursif. Algoritma DFS create nodelist (a stack) and initialize to the start state. repeat until a goal state is found or nodelist = {} pop the first element from nodelist,:apply all possible rules and add (push) resulting states to nodelist.

Tabel 2. Tabel Water Jug dengan DFS DFS Time Analysis (Complexity) Dalam kasus terbaik, goal state berada pada pencarian pertama kali pada kedalaman d Dalam kasus terburuk, goal state akan terakhir kali diperiksa yaitu akan melihat seluruh node 1+b+b2+b3+ +bd = (bd+1-1) / (b-1) Є O(bd) 2.5 BFS vs DFS Gambar 6. Perbandingan BFS dan DFS Gambar 5. Diagram State Water Jug dengan DFS Karakteristik Depth-First Search Tidak perlu menyimpan jalur dari list yang terdiri dari banyak state. Dapat menemukan solusi dengan sangat cepat (bisa juga tidak pada kasus tertentu). Pruning/pemutusan dapat terjadi contoh: branch-and-bound Dapat terjebak dalam looping DFS Space Analysis Setelah langkah pertama stack akan berisikan sejumlah b node Setelah langkah kedua stack akan berisikan sejumlah (b - 1) + b nodes. Setelah langkah ke tiga stack akan berisikan (b-1) + (b-1) + b nodes. Setalah d(kedalaman) pertama stack akan bernilai (b-1)*d + 1 nodes (kedalaman maksimum) Hal-hal penting dalam menemukan solusi. Dalam kasus ini, solusi kita adalah sebuah keterurutan aksi-aksi atau jalur dari inisial state ke goal state. Dalam pencarian node adalah irresponsible, karena jalur node anak dari parent state tidak disimpan. Dalam prakteknya, kita membuat setiap node pengingat parentnya, kemudian dilakukan backtrack dari goal state ke initial state. Responsible Children: Gambar 7. Responsible Children

3. KESIMPULAN Dari uraian penyelesaian masalah water jug dengan menggunakan algoritma BFS dan DFS diperoleh bahwa kompleksitas waktu algoritma BFS dan DFS yang dinotasikan dengan Big-oh yaitu sebanding dengan O(bd). Ini berarti kedua algoritma tersebut memerlukan waktu yang relatif sama dalam proses pencarian solusi. Namun dari karakteristiknya, space requirement, dan cost yang dibutuhkan untuk DFS adalah lebih baik meskipun cost yang dibutuhkan untuk melakukan setiap aksi dalam water jug adalah sama. Dari uraian di atas dapat ditarik beberapa kesimpulan mengenai algoritma Depth First Search yang diterapkan pada permasalahan water jug di antaranya : Kelebihan Depth First Search adalah: 1. Pemakain memori hanya sedikit, berbeda jauh dengan Breadth First Search yang harus menyimpan semua node yang pernah dibangkitkan. 2. Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka Depth First Search akan menemukannya secara cepat. Kelemahan Depth First Search adalah: 1. Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga), maka tidak ada jaminan untuk menemukan solusi (incomplete). 2. Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka pada Depth First Search tidak ada jaminan untuk menemukan solusi yang paling baik (Tidak Optimal). Selain itu, dari uraian di atas dapat diketahui bahwa metode Depth First Search dengan backtrack dapat lebih mengefisienkan penelusuran pada pohon pencarian untuk menemukan solusi. REFERENSI [1] Munir, Rinaldi. (2006). Diktat Kuliah IF2251 Strategi Algoritmik. Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. [2] http://blue.utb.edu/ltang/cosc4350/ch3.ppt. Tanggal akses 18 Mei 2008 pukul 14.21 WIB. [3] http://www.cs.rpi.edu/~hollingd/ai/lectures/blind_ search.pdf. Tanggal akses 18 Mei 2008 pukul 18.00 WIB. [4]http://en.wikipedia.org/wiki/Depth-first_search. Tanggal akses 19 Mei 2008 pukul 12.11 WIB. [5] Kusdiarti, Ellyana. Penerapan Algoritma Depth First Search pada Permasalahan Water Jug. Volume I, 2005, halaman 2-3.