Aplikasi Algoritma Brute Force Pada Knight s Tour Problem

dokumen-dokumen yang mirip
Penerapan Algoritma Backtracking pada Knight s Tour Problem

Penerapan Teori Graf untuk Menyelesaikan Teka-Teki Permainan The Knight's Tour

Penggunaan Algoritma Backtrack dan Aturan Warnsdorff Untuk Menyelesaikan Knight s Tour Problem

Penerapan Algoritma Brute Force di Permainan Nonogram

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

ANALISIS PENERAPAN ALGORITMA RUNUT-BALIK DALAM PENCARIAN SOLUSI PERSOALAN LOMPATAN KUDA

Asah Otak dengan Knight s Tour Menggunakan Graf Hamilton dan Backtracking

Aplikasi Graf Dalam Permainan Catur

Penerapan Algoritma Backtracking pada Game The Lonely Knight

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

Aplikasi Algoritma MiniMax pada Beberapa Permainan Papan

Penerapan Algoritma Greedy untuk Permainan Halma

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Penerapan Algoritma Backtrack pada Knight s Tour

Pemanfaatan Algoritma BFS pada Graf Tak Berbobot untuk Mencari Jalur Terpendek

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

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

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Penyelesaian Game Lights Out dengan Algoritma Runut Balik

Penggunaan Algoritma Pathfinding pada Game

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

Graf Hamilton pada Permainan Knight s Tour dan Pemecahan dengan Algoritma Divide-and-Conquer dan Bactrack

Algoritma Backtracking Pada Permainan Peg Solitaire

Implementasi Algoritma Greedy pada Permainan Ludo

Penerapan Algoritma Runut-balik pada Permainan Math Maze

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

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

Penentuan Keputusan dalam Permainan Gomoku dengan Program Dinamis dan Algoritma Greedy

Penerapan Algoritma Backtracking untuk Menyelesaikan Permainan Hashiwokakero

Aplikasi Algoritma Brute Force dan Backtracking pada Permainan Slitherlink

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

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

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Pembuatan Peta Permainan dengan BSP

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

Strategi Algoritma Penyelesaian Puzzle Hanjie

Penggunaan Algoritma Divide and Conquer Dalam Pewarnaan Graf

Penerapan Algoritma Greedy Best First Search untuk Menyelesaikan Permainan Chroma Test : Brain Challenge

Implementasi Logika Penurunan Persamaan Aritmatika pada Program Komputer

Penggunaan QuadTree dalam optimasi berbagai persoalan pada game

Pembuktian Benford s Law dengan Algoritma Brute Force terhadap Suatu Barisan Geometri Sembarang

Algoritma Brute Force pada Fluid Particle Engine

Penerapan Algoritma Brute Force dalam mencari Faktor Prima pada suatu Bilangan

Kompleksitas Algoritma untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy

Penggunaan Algoritma DFS dalam Pencarian Strategi Permainan Catur

Penerapan Algoritma Greedy pada Permainan Tower Defense

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Aplikasi Algoritma Runut Balik dalam Pembangkitan Elemen Awal Permainan Sudoku

Penerapan Algoritma Flood Fill untuk Mengurangi Ruang Pencarian pada Pencarian Solusi Puzzle Pentomino

I. PENDAHULUAN II. DASAR TEORI. Contoh lainnya: Solusi: 0= V,1= I,2= O,3= R, 4= N,5= L,7= A,8= F,9= E.

Penerapan Algoritma Brute Force pada permainan Countdown Number

Percabangan & Perulangan

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

Penerapan Algoritma Greedy Pada Game Tower Defense: Tower of Greece

Penerapan Algoritma Greedy dalam Permainan Tetris

Penerapan Algoritma Brute force dan Greedy pada Penjadwalan Disk

Aplikasi Teori Graf Pada Knight s Tour

Pembahasan Pencarian Lintasan Terpendek Menggunakan Algoritma Dijkstra dan A*

Implementasi Algoritma Greedy Dua Sisi pada Permainan 2048

Penerapan Algoritma Greedy dalam Pembuatan Klasemen Kompetisi

Aplikasi Algoritma Pencarian String Dalam Sistem Pembayaran Parkir

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

Penggunaan Algoritma Brute Force dan Greedy dalam Permainan Atomas

Penerapan Algoritma Greedy untuk Permainan Flood It

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

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

Penggunaan Algoritma Greedy untuk Mencari Solusi Optimal dalam Permainan Brick Breaker

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

Penerapan strategi runut-balik dalam penyelesaian permainan puzzle geser

Menentukan Susunan Terbaik Tim Proyek dengan Algoritma Branch and Bound

ANALISA RUNNING TIME

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

Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic

Penerapan Algoritma Greedy dalam Permainan Othello

Penggunaan Strategi Algoritma Backtracking pada Pencarian Solusi Puzzle Pentomino

PENGGUNAAN ALGORITMA GREEDY PADA MESIN PENCARI

Penerapan Strategi Algoritma Menyelesaikan Kompleksitas Pixel Maze secara Otomatis pada Virupizxel

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

Penerapan Algoritma Greedy pada Intelegensia Buatan untuk Transfer Pemain dalam Permainan Simulasi Sepakbola

PENERAPAN ALGORITMA RUNUT BALIK DALAM PERMAINAN TEKA-TEKI SILANG

Penggunaan Brute Force dalam Mencari Pergerakan pada Permainan Pokémon Shuffle

PENGUNAAN DUA VERSI ALGORITMA BACKTRACK DALAM MENCARI SOLUSI PERMAINAN SUDOKU

ALGORITMA GREEDY DALAM PERMAINAN DOTS AND BOXES

Penyelesaian Masalah Closest Pair dengan Algoritma Divide and Conquer

Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Permainan Pac-Man

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

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

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

Penerapan Algoritma Branch & Bound dan Backtracking pada Game Flow

Penyelesaian Permainan Minesweeper dengan Algoritma BFS dengan Optimasi Algoritma Greedy

Penerapan Algoritma Runut Balik pada Pathuku Games

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

Aplikasi Algoritma Greedy untuk Menyelesaikan Permainan Magic Wingdom

Pencarian Solusi Permainan Pipe Puzzle Menggunakan Algoritma Backtrack

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

Transkripsi:

Aplikasi Algoritma Brute Force Pada Knight s Tour Problem Sahat Nicholas Simangunsong - 13509095 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 13509095@std.stei.itb.ac.id Abstract Knight s tour merupakan persoalan matematis bagaimana bidak kuda melewati seluruh petak yang ada di papan catur tepat hanya sekali. Ada dua jenis knight s tour, yaitu open knight s tour dan closed knight s tour. Pada open knight s tour, bidak kuda harus melewati seluruh petak pada papan catur, tetapi tidak kembali ke posisi awalnya, sedangkan pada closed knight s tour, bidak kuda melewati seluruh petak pada papan catur dan kembali ke posisi awalnya. Terdapat berbagai solusi untuk memecahkan persoalan knight s tour. Salah satunya adalah dengan menggunakan algoritma brute force. Hal inilah yang akan dibahas pada makalah ini. Pada knight s tour, bidak kuda diletakkan pada papan catur kosong dan harus melewati seluruh petak pada papan catur sebanyak satu kali. Terdapat dua jenis knight s tour, yaitu open knight s tour dan closed knight s tour. Pada open knight s tour, bidak kuda tidak kembali ke posisi awalnya setelah melewati seluruh petak pada papan catur. Sebaliknya, pada closed knight s tour, bidak kuda kembali ke posisi awalnya setelah melewati seluruh petak pada papan catur. Kata kunci knight s tour, brute force 1. PENDAHULUAN 1.1 Knight s Tour Knight s tour merupakan persoalan matematis yang melibatkan sebuah bidak kuda pada sebuah papan catur yang kosong. Bidak kuda memiliki gerakan seperti huruf L dan tidak seperti bidak yang lain, bidak kuda dapat melompati bidak-bidak yang lain. Gambar 2 Open Knight s Tour Pada gambar di atas, dapat dilihat sebuah open knight s tour. Bidak kuda bergerak dari petak 1 dan berakhir di petak 64. Disini jelas terlihat bahwa bidak kuda telah melewati seluruh petak pada papan catur, tetapi tidak kembali ke posisi awalnya. Karena itulah dinamakan open knight s tour. Gambar 1 Arah Pergerakan Bidak Kuda

Gambar 3 Closed Knight s Tour Pada gambar di atas, dapat dilihat sebuah closed knight s tour. Bidak kuda bergerak dari petak 1 dan berakhir di petak 1 juga. Disini jelas terlihat bahwa bidak kuda telah melewati seluruh petak pada papan catur dan kembali ke posisi awalnya. Karena itulah dinamakan closed knight s tour. 1.2 Algoritma Brute Force Algoritma brute force merupakan sebuah pendekatan yang straightforward untuk menyelesaikan suatu persoalan. Algoritma ini bekerja dengan mencari seluruh kemungkinan solusi yang ada. Brute force termasuk jenis algoritma yang sederhana jika dibandingkan dengan algoritma-algoritma lainnya seperti algoritma greedy, algoritma breadth first search, algoritma divite and conquer, dan sebagainya. Jika dilihat dari sisi kemangkusan algoritma, algoritma brute force merupakan algoritma yang kurang mangkus dan kurang cocok digunakan untuk memecahkan persoalan dengan waktu yang cepat. Salah satu kelebihan dari algoritma brute force yaitu dalam pembuatannya, tidak diperlukan pemikiran yang terlalu mendalam. Untuk persoalan dengan skala yang kecil, algoritma ini cocok untuk digunakan. Alasannya adalah karena skala programnnya kecil, execution timenya tentu tidak akan lama. Jika algoritma ini digunakan untuk membuat suatu game yang memiliki tingkat kompleksitas yang tinggi, tentu saja game akan berjalan dengan sangat lambat. 2. METODE Persoalan knight s tour dapat diselesaikan dengan menggunakan algoritma brute force. Berikut merupakan langkah-langkah penyelesaian persoalan knight s tour pada papan catur berukuran 8x8 dengan menggunakan algoritma brute force. 1. Letakkan kuda di sembarang petak. 2. Lakukan pergerakan ke suatu arah secara terusmenerus. Jika bidak kuda tidak dapat lagi bergerak ke arah tersebut, gerakkan bidak kuda ke arah yang lain secara terus-menerus juga. Begitu seterusnya. 3. Untuk setiap pergerakan bidak kuda, lakukan pemeriksaan terhadap hal berikut : a. Periksa apakah pergerakan selanjutnya tidak keluar dari papan catur. b. Periksa apakah petak tempat pergerakan selanjutnya sudah pernah dilewati atau tidak. 4. Jika bidak kuda tidak dapat bergerak lagi sebelum seluruh petak dilewati, kembalikan bidak kuda ke posisi sebelumnya, kemudian gerakkan bidak kuda ke arah yang lain. 5. Ulangi langkah 2 sampai seluruh petak telah dilewati. Berikut merupakan potongan source code dalam bahasa java yang digunakan untuk menyelesaikan persoalan knight s tour dengan menggunakan algoritma brute force. KnightTour.java package knighttour; import java.util.*; public class KnightTour { VARIABLE FUNCTION public void initknightposition() { meletakkan bidak kuda pada papan catur secara acak public void moveright1up2() { satu langkah dan ke atas sebanyak dua langkah public void moveright2up1() { dua langkah dan ke atas sebanyak satu langkah public void moveright2down1() {

dua langkah dan ke bawah sebanyak satu langkah public void moveright1down2() { satu langkah dan ke bawah sebanyak dua langkah public void moveleft1down2() { menggerakkan bidak kuda ke kiri sebanyak satu langkah dan ke bawah sebanyak dua langkah public void moveleft2down1() { menggerakkan bidak kuda ke kiri sebanyak dua langkah dan ke bawah sebanyak satu langkah public void moveleft2up1() { menggerakkan bidak kuda ke kiri sebanyak dua langkah dan ke atas sebanyak satu langkah public void moveleft1up2() { menggerakkan bidak kuda ke kiri sebanyak satu langkah dan ke atas sebanyak dua langkah public void setdirection(int moveto) { menentukan arah pergerakan bidak kuda public void checkcell() { mengecek petak pada papan catur apakah sudah pernah dilewati atau belum public void reversemovement(int moveto) { mengembalikan bidak kuda ke posisi sebelumnya public void solveknighttour() { fungsi utama untuk menyelesaikan persoalan knight's tour 1. Letakkan kuda di sembarang petak. 2. Lakukan pergerakan ke suatu arah secara terusmenerus. Jika bidak kuda tidak dapat lagi bergerak ke arah tersebut, gerakkan bidak kuda ke arah yang lain secara terus-menerus juga. Begitu seterusnya. 3. Untuk setiap pergerakan bidak kuda, lakukan pemeriksaan terhadap hal berikut : a. Periksa apakah pergerakan selanjutnya tidak keluar dari papan catur. b. Periksa apakah petak tempat pergerakan selanjutnya sudah pernah dilewati atau tidak. 4. Jika bidak kuda tidak dapat bergerak lagi sebelum seluruh petak dilewati, kembalikan bidak kuda ke posisi sebelumnya, kemudian gerakkan bidak kuda ke arah yang lain. 5. Ulangi langkah 2 sampai seluruh petak telah dilewati. Main.java package knighttour; public class Main { public static void main(string[] args) { KnightTour knighttour = new KnightTour(); knighttour.solveknighttour(); for (int i=0; i<knighttour.chessboard.length; i++) { for (int j=0; j<knighttour.chessboard.length; j++) { if (j==7) { System.out.println(" " + knighttour.chessboard[j][i]); System.out.println("-- --+----+----+----+----+----+----+----"); else { System.out.print(" " + knighttour.chessboard[j][i] + " ");

Berikut merupakan screenshot dari hasil eksekusi source code di atas. Gambar 4 Solusi Persoalan Knight s Tour dengan menggunakan algoritma brute force Dari gambar-gambar di atas, dapat dilihat bahwa bidak kuda telah melewati seluruh petak pada papan catur, tetapi tidak kembali ke posisi awal (open knight s tour). Bidak kuda mulai bergerak dari petak 1 dan berakhir di petak 64. Algoritma brute force yang digunakan pada program ini hanya bisa memecahkan persoalan open knight s tour, tetapi tidak dengan closed knight s tour.

3. KESIMPULAN Algoritma brute force memiliki banyak aplikasi dalam kehidupan. Salah satu contohnya adalah menyelesaikan persoalan knight s tour. Meskipun algoritma ini mampu menyelesaikan persoalan knight s tour, tetapi waktu yang diperlukan oleh algoritma ini untuk menyelesaikan persoalan ini tergolong lama atau dengan kata lain, algoritma ini kurang mangkus. Karena itulah, algoritma ini hanya cocok untuk menyelesaikan open knight s tour, tetapi tidak dengan closed knight s tour. Jika algoritma brute force digunakan untuk menyelesaikan persoalan closed knight s tour, tentu saja dibutuhkan waktu yang sangat lama untuk menyelesaikan persoalan ini. Mencari jalur yang tepat agar bisa kembali ke posisi awal tentunya membutuhkan waktu yang lama. Penggunaan algoritma seperti algoritma breadth first search, algoritma depth first search, algoritma divide and conquer, dan lain-lain akan lebih cocok untuk menyelesaikan persoalan knight s tour dikarenakan algoritma-algoritma tersebut mangkus sehingga memiliki waktu eksekusi yang lebih singkat. REFERENSI [1] http://dedyjlsn.wordpress.com/2008/03/24/algoritma-brute-force/ waktu akses : 14:00 [2] http://en.wikipedia.org/wiki/knight%27s_tour waktu akses : 14:05 [3] http://pascal-central.com/images/knight-fig2.jpg waktu akses : 14:10 [4] http://pascal-central.com/images/knight-fig1.jpg waktu akses : 14:15 [5] http://4.bp.blogspot.com/_engb9vopd1u/suz_216kvpi/aaaa AAAAACI/gUvqn4XziPA/s320/shatar_mongolian_chess_knight_ horse-move.jpg waktu akses : 14:20 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, 08 Desember 2011 Sahat Nicholas Simangunsong - 13509095