Penerapan Algoritma BFS dan DFS pada Permainan Logika Wolf, Sheep, and Cabbage

dokumen-dokumen yang mirip
Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

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

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

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

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

Aplikasi Algoritma Traversal Dalam Binary Space Partitioning

Perbandingan BFS dan DFS pada Pembuatan Solusi Penyelesaian Permainan Logika

Aplikasi Algoritma Greedy, BFS dan DFS pada Penyelesaian Permainan Mahjong Solitaire

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

ALGORITMA PENCARIAN (1)

Penggunaan Algoritma Pathfinding pada Game

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

Implementasi Logika Penurunan Persamaan Aritmatika pada Program Komputer

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

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

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

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

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

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

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

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

Implementasi Algoritma DFS pada Pewarnaan Gambar Sederhana Menggunakan Bucket tool

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

Penggunaan Strategi Algoritma Backtracking pada Pencarian Solusi Puzzle Pentomino

Penerapan Algoritma BFS dan DFS dalam Permainan Ular Tangga

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

Perbandingan BFS, DFS dan Greedy pada Permainan Logika Crossing Bridge

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

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

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

Penerapan Algoritma Backtracking pada Game The Lonely Knight

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

dengan Algoritma Branch and Bound

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

Update 2012 DESAIN DAN ANALISIS ALGORITMA SEARCHING

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Pemodelan AI dalam Permainan Snake dengan Algoritma Branch and Bound

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

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

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

Pencarian Solusi Permainan Pipe Puzzle Menggunakan Algoritma Backtrack

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

IMPLEMENTASI ALGORITMA BREADTH FIRST SEARCH DAN STRING MATCHING PADA SISTEM PAKAR

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

Penerapan Algoritma Greedy dan Breadth First Search pada Permainan Kartu Sevens

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

Implementasi Algoritma DFS pada permainan Monument Valley

ALGORITMA RUNUT BALIK DALAM PENYELESAIAN PERMAINAN WORD DIAGRAM

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

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

Penerapah Graf untuk Memecahkan Teka-Teki Menyeberangi Sungai

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

Menentukan Susunan Terbaik Tim Proyek dengan Algoritma Branch and Bound

PENCARIAN SOLUSI DENGAN ALGORITMA BACKTRACKING UNTUK MENYELESAIKAN PUZZLE KAKURO

Algoritma Backtracking Pada Permainan Peg Solitaire

Penerapan Algoritma Greedy untuk Permainan Flood It

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

Penyelesaian Permainan 3 missionaries and 3 cannibals Dengan Algoritma Runut-Balik

PENYELESAIAN TEKA-TEKI PENYUSUNAN ANGKA MENGGUNAKAN ALGORITMA RUNUT BALIK

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

Penerapan BFS dan DFS pada Pencarian Solusi

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

Penerapan BFS dan DFS pada Pencarian Solusi

memberikan output berupa solusi kumpulan pengetahuan yang ada.

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

Penerapan BFS dan DFS dalam Garbage Collection

PENGGUNAAN ALGORITMA GREEDY PADA MESIN PENCARI

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

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

Penerapan strategi runut-balik dalam penyelesaian permainan puzzle geser

Aplikasi Graf Breadth-First Search Pada Solver Rubik s Cube

Penerapan Algoritma Branch and Bound pada Penentuan Staffing Organisasi dan Kepanitiaan

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

Penggunaan Algoritma DFS dalam Pencarian Strategi Permainan Catur

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

Penggunaan Algoritma Backtracking pada Permainan Mummy Maze

Algoritma Puzzle Pencarian Kata

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Penerapan Algoritma DFS dalam Menyelesaikan Permainan Buttons & Scissors

Pemecahan Masalah Knapsack dengan Menggunakan Algoritma Branch and Bound

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

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

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

Artificial Intelegence/ P_2. Eka Yuniar

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

Penyelesaian Permasalahan Nonogram dengan Algoritma Runut Balik

PENERAPAN ALGORITMA GREEDY DALAM PENCARIAN SOLUSI TERBAIK PADA PERMAINAN TETRIS

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

Pencarian Jalan untuk Menghasilkan Skor Tertinggi pada Permainan Voracity

Penerapan Algoritma BFS & DFS untuk Routing PCB

PENCARIAN BARANG DALAM BASIS DATA ONLINE SHOP MENGGUNAKAN ALGORITMA BFS, DFS, DAN KMP

Implementasi Algoritma Backtracking untuk Memecahkan Puzzle The Tile Trial pada Permainan Final Fantasy XIII-2

Penerapan Algoritma Backtracking pada Knight s Tour Problem

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Transkripsi:

Penerapan Algoritma BFS dan DFS pada Permainan Logika Wolf, Sheep, and Cabbage Sandy Socrates / 13508044 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 1 if18044@students.if.itb.ac.id Abstrak Dalam permainan logika Wolf, Sheep, and Cabbage. Diceritakan ada seorang petani yang hendak menyeberangi sungai membawa hasil belanjanya dari pasar, yaitu sekeranjang penuh kubis, juga seekor serigala dan seekor domba. Pemain diminta untuk menyebrangkan petani, serigala, domba, dan keranjang kubis menggunakan sebuah perahu yang hanya muat ditempati oleh dua penumpang. Yang dapat menggunakan perahu hanya sang petani. Permasalahnya adalah pada saat petani tidak ada, serigala akan memakan domba, dan domba akan memakan kubis. Salah satu algoritma yang bisa digunakan untuk memecahkan permasalahan ini adalah Breadth First Search dan Depth First Search. Dengan Kedua algoritma ini kita bisa memodelkan permasalahan ini ke dalam sebuah struktur pohon yang dapat dijelajah untuk menemukan jawabannya. bahwa permainan ini telah didistribusikan ke seluruh penjuru dunia selama ratusan tahun melalui mulut ke mulut dan tulisan. Kata Kunci BFS, DFS, logic, Wolf Sheep and Cabbage I. PENDAHULUAN Permainan logika Wolf, Sheep and Cabbage ini adalah permainan logika penyebrangan sungai yang cukup popular di dunia maya sebagai permainan pengisi waktu sekaligus pengasah otak. Permainan ini memiliki banyak sekali versi, perbedaannya hanya terdapat dalam nama hewan hewan yang terdapat dalam cerita, versi lain yang cukup dikenal adalah Fox, Goose, and bag of beans. Walaupun terdapat perbedaan dalam hewan yang berpartisipasi dalam cerita ini, logika yang digunakan tetap sama bahwa A, B, dan C harus menyebrangi sungai dengan sebuah perahu yang hanya dapat menampung si manusia yang harus selalu naik untuk mendayung perahu dan salah satu dari A, B, dan C; sementara A dan B serta C tidak boleh ditinggalkan berdua dengan pasangan yang dapat membunuhnya. Permainan ini mulai berkembang pada sekitar awal abad ke Sembilan dan telah menjadi bagian dari cerita daerah di berbagai tempat di dunia. Disebutkan bahwa penggagas cerita permainan logika ini adalah Alcuin of York (735-804) dalam suratnya kepada salah seorang muridnya yaitu Charlemagne[1]. Adapun pengagas pasti dari permainan ini tidak perlu diperdebatkan, karena fakta yang lebih menarik adalah Gambar 1. Contoh permainan Wolf, Sheep, and Cabbage dalam format flash Gambar 2. Contoh tampilan mode permainan Dalam permainan ini, kita bisa menggunakan algoritma Breadth-First Search (BFS) dan Depth-First Search (DFS) untuk mencari jawaban urutan pemindahan hewanhewan tadi. BFS dan DFS adalah algoritma yang digunakan untuk mengunjungi simpul di dalam sebuah struktur pohon.

II. ALGORITMA PENCARIAN BFS DAN DFS A. Breadth-First Search BFS adalah sebuah algoritma pencarian yang digunakan dalam sebuah struktur pohon. Pada algoritma ini pencarian dilakukan dimulai dari simpul akar, dan kemudian pencarian dilakukan secara menyebar sesuai dengan tingkat dari masing-masing simpul di dalam pohon.[2] Kelebihan DFS terletak pada jumlah memori yang diigunakan untuk melakukan komputasi sedikit, karena cukup satu simpul yang diingat untuk menjelajah isi pohon, yaitu simpul yang sedang digunakan. Pencarian dengan Algoritma DFS juga memiliki kelemahan, yaitu solusi yang ditemukan tidak selalu optimal, karena yang didahulukan dalam pencarian adalah menuruni pohon. 1 0 2 III. METODE PEMECAHAN MASALAH Untuk memfasilitasi pemecahan masalah Wolf, Sheep, dan Cabbage menggunakan algoritma pencarian BFS dan DFS kita akan mendefinisikan permasalahan ini sebagai sebuah struktur pohon. Serta berikut adalah representasi permasalahan Wolf, Sheep, and Cabbage yang telah disesuaikan dengan struktur pohon yang dibangun: 3 4 Gambar 3. Ilustrasi pencarian pada pohon dengan BFS Kelebihan dari algoritma ini adalah jawaban yang dihasilkan selalu merupakan solusi optimal. Karena pencarian dilakukan dengan melihat ketinggian simpul. Sayangnya pencarian optimal ini harus dibayar dengan jumlah memori yang diperlukan untuk komputasi yang akan banyak mengikuti jumlah simpul yang disimpan di memori. B. Depth-First Search DFS adalah sebuah algoritma pencarian yang digunakan dalam sebuah struktur pohon seperti BFS. Hanya saja pada algoritma ini setelah pencarian dilakukan di simpul akar,, pencarian kemudian dilakukan secara menurun sesuai urutan yang telah ditentukan (prioritas kiri ke kanan atau kanan ke kiri). Jika menemukan daun, pencarian dikembalikan ke simpul yang belum dikunjungi di atasnya mengikuti urutan tadi. [2] 5 1. Setiap role dalam permasalahan ini akan diwakilkan dengan sebuah karakter. Petani direpresentasikan dengan huruf F, serigala dengan huruf W, domba dengan huruf S, dan kubis dengan huruf C, kecuali perahu yang tidak perlu direpresentasikan karena sudah dapat diwakilkan oleh petani. 2. Kondisi awal permainan adalah state dengan semua role berada di sebelah kanan sungai. 3. Kondisi akhir permainan adalah state dengan semua role berada di sebelah kiri sungai tanpa ada satu pun role yang hilang karena dimakan. 4. Setiap state untuk role di sisi sungai disimpan ke dalam sebuah simpul dengan notasi berikut <{role di kiri}, {role di kanan}>* Contoh: Kondisi awal permainan <{}, { F,W,S,C }> Konsisi akhir permainan <{ F,W,S,C }, {}> *notasi {} menunjukkan sebuah himpunan, maka {F,W} = {W,F} 1 2 3 0 4 5 5. Petani yang membawa hewan dan barang akan dimasukkan ke dalam himpunan di mana sisi perahu menepi. 6. State yang terdapat salah satu dari {W,S} atau {S,C} akan dianggap tidak valid. Berikut adalah batasan yang digunakan dalam pembangunan pohon,: 1. Simpul yang berulang akan digambarkan tetapi tidak akan diteruskan 2. Simpul yang tidak valid tidak akan digambarkan Gambar 4. Ilustrasi pencarian pada pohon dengan DFS Perlu diperhatikan bahwa pohon yang didapat pada bagian BFS dan DFS adalah pohon dengan simpul yang dilewati oleh pencarian BFS atau DFS

A. Pohon Ruang Status Pohon minus state tidak valid yang dihasilkan jika dilakukan pencarian state secara manual. {}{F,W,S,C} {F,S}{W,C} {S}{F,W,C} {S,F,W}{C} {S,F,C}{W} {S}{F,W,C} {W}{F,S,C} {S}{F,C,W} {C}{S,F,W} {W,S,F}{C} {W,C,F}{S} {C,W,F}{S} {W,C}{F,S} Gambar 6. Pohon ruang status dari pencarian BFS {W,C,F,S}{} Gambar 5. Pohon ruang status Dari pohon ruang status dapat dicari solusi pemecahan dengan menggunakan algoritma pencarian BFS atau DFS. Di atas terlihat ada sebuah status akhir. Kita akan melihat hasil pencarian dengan BFS dan DFS. B. Pemecahan dengan BFS Algoritma BFS yang digunakan : 1. Masukkan state awal ke dalam antrian 2. Cek apakah sudah memenuhi state akhir jika ya kembalikan solusi, jika tidak masukkan state yang mungkin dari state sebelumnya ke dalam antrian. 3. Cek antrian, jika kosong pencarian berakhir dengan dengan solusi kosong. 4. Kembali lagi ke 2. Pada Gambar 5 ditunjukkan pohon hasil pencarian manual. Maka berikut adalah pohon yang dihasilkan dari pencarian dengan algoritma BFS Ternyata pohon yang didapatkan oleh BFS sama dengan pohon yang didapatkan dari pencarian manual. Keterangan angka pada gambar merupakan urutan pencarian yang dilakukan oleh BFS. Jumlah penelusuran yang dilakukan oleh algoritma BFS adalah 14 (empat belas) kali. Pohon yang didapatkan sama dengan pohon dari pencarian manual. Jumlah state yang diperlukan untuk mencapai state akhir adalah delapan. Hasil yang didapatkan dari pencarian ini adalah optimal. C. Pemecahan dengan DFS Algoritma DFS yang digunakan : Masukkan state awal ke dalam tumpukan Cek apakah sudah memenuhi state akhir jika ya kembalikan solusi, jika tidak masukkan state yang mungkin dari state sebelumnya ke dalam antrian. Cek tumpukan, jika kosong pencarian berakhir dengan dengan solusi kosong. Kembali lagi ke 2. Berikut adalah pohon yang dihasilkan dari pencarian dengan algoritma DFS dengan prioritas yang digunakan adalah kiri ke kanan

IV. ANALISIS Pada penggunaan algoritma pencarian DFS dan BFS di atas ditemukan hasil yang sama dan optimal. Tentu saja hal ini tidak selalu terjadi pada pencarian BFS dan DFS pada implementasinya. Mengapa sampai terjadi kemunculan hasil yang sama untuk algoritma pencarian BFS dan DFS? Hal ini hanya akan terjadi pada saat state akhir yang dituju terletak di pinggiran dalam dari pohon yang dibentuk. Sehingga pada saat pencarian DFS tidak akan mencari terlalu jauh ke bawah. Hal ini juga dipengaruhi oleh batasan yang diberlakukan yaitu pengulangan state tidak perlu dilanjutkan. Jika misalnya state tujuh pada pohon pencarian DFS dilanjutkann maka tentu DFS akan melanjutkan pencarian ke bawah dan hasil yang didapatkan berada di kedalaman yang lebih besar. Hal lain yang mempengaruhi adalah prioritas yang digunakan dalam pemilihan simpul. Jika kita menggunakan prioritas kanan ke kiri untuk DFS maka rute yang dibangun akan berbeda dengan pohon pada Gambar 7. Gambar 7. Pohon ruang status dari pencarian DFS Pohon yang didapatkan oleh DFS berbeda dengan pohon yang didapatkan dari pencarian manual dan pencarian BFS. Keterangan angka pada gambar merupakan urutan pencarian yang dilakukan oleh DFS. Jumlah penelusuran yang dilakukan oleh algoritma DFS adalah tujuh kali. Jumlah state yang diperlukan untuk mencapai state akhir adalah delapan. Hasil yang didapatkan dari pencarian ini sama dengan hasil yang didapatkan pencarian BFS, sehingga hasilnya adalah juga. B. Penerapan solusi Berikut adalah tampilan halaman yang permaianan yang selesai dengan solusi dari pencarian V. KESIMPULAN Algoritma pencarian Breadth First Search dan Depth First Search digunakan dalam penelusuran pohon, dan dengan memodelkan sebuah persoalan ke dalam sebuah pohon kita dapat mencari solusi yang mungkin dari persoalan tersebut menggunakan BFS dan DFS. Dan kita telah melihat bahwa permainan logika Wolf, Sheep, and Cabbage dapat diselesaikan dengan algoritma BFS dan DFS. Berikut adalah tahapan yang dilakuan untuk mencapai state akhir. Baik BFS dan DFS memberikan solusi yang sama., yaitu: 1. Kondisi awal 2. Bawa domba ke kiri sungai 3. Kembali ke kanan 4. Bawa serigala ke kiri 5. Kembali ke kanan bersama domba 6. Bawa kubis ke kiri 7. Kembali ke kanan 8. Bawa domba ke kiri (selesai) Pencarian dengan DFS dan BFS bisa mengembalikan solusi yang sama dan tentunya optimal. Hal ini dapat terjadi karena solusi terdapat pada sebelah pinggir pohon yang sesuai dengan prioritas yang digunakan. Pengeliminasian state yang redundan terbukti dapat mengurangi jumlah pencarian dalam pohon pencarian dengan algoritma BFS dan DFS. Gambar 8. Tampilan antarmuka akhir permainan

REFERENSI [1] Ascher, Marcia (February 1990). "A River-Crossing Problem in Cross-Cultural Perspective". Mathematics Magazine (Mathematical Association of America) 63 (1): 26 29.doi:10.2307/2691506. Diakses 2010-12-8. [2] Munir, Rinaldi. 2007. Strategi Algoritmik. Bandung : Teknik Informatika ITB. PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 29 April 2010 Sandy Socrates 13508044