PENGGUNAAN ALGORITMA BACKTRACKING PADA KNIGHT S TOUR PROBLEM

dokumen-dokumen yang mirip
Penerapan Algoritma Backtracking pada Game The Lonely Knight

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

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

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

Penerapan Algoritma Backtrack pada Knight s Tour

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

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

Penerapan Algoritma Backtracking pada Knight s Tour Problem

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

Penerapan Algoritma Runut-balik pada Permainan Math Maze

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

ALGORITMA RUNUT BALIK DALAM PENYELESAIAN PERMAINAN WORD DIAGRAM

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

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

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

Analisis Penerapan Algoritma Backtracking Pada Pencarian Jalan Keluar di Dalam Labirin

Pencarian Solusi Permainan Pipe Puzzle Menggunakan Algoritma Backtrack

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

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

Aplikasi Algoritma Runut Balik dalam Pembangkitan Elemen Awal Permainan Sudoku

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

Oleh Lukman Hariadi

PENERAPAN ALGORITMA RUNUT BALIK DALAM PERMAINAN TEKA-TEKI SILANG

Algoritma Runut-balik (Backtracking) Bagian 1

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

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

Algoritma Runut-balik (Backtracking)

Aplikasi Algoritma Runut-balik pada Penyelesaian Teka Teki Mengisi Angka

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

Penerapan Algoritma Greedy dan Backtrackng Dalam Penyelesaian Masalah Rubik s Cube

PENGUNAAN DUA VERSI ALGORITMA BACKTRACK DALAM MENCARI SOLUSI PERMAINAN SUDOKU

Penyelesaian Permainan Pacman yang disederhanakan dengan Algoritma Backtracking

Penerapan Algoritma Runut-Balik pada Magic Square

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

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

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

Penerapan Algoritma Backtracking pada Pewarnaan Graf

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

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

Penerapan Algoritma Backtracking dalam Permainan Futoshiki Puzzle

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Pendeteksian Deadlock dengan Algoritma Runut-balik

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

Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

BAB II LANDASAN TEORI

Algoritma Branch & Bound

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENCARIAN KOEFISIEN ROOK POLYNOMIAL

PEMBANGKIT TEKA-TEKI SILANG DENGAN ALGORITMA BACKTRACKING SERTA APLIKASI PERMAINANNYA YANG BERBASIS WEB

PENYELESAIAN TEKA-TEKI PENYUSUNAN ANGKA MENGGUNAKAN ALGORITMA RUNUT BALIK

Penerapan Algoritma Branch & Bound dan Backtracking pada Game Flow

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

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

Algoritma Backtracking Pada Permainan Peg Solitaire

Penggunaan Algoritma Backtracking pada Permainan Mummy Maze

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

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

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

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Zebra Puzzle

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

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

Perbandingan Algoritma Greedy & Bactracking Dalam Penyelesaian Permainan 2048

Penentuan Keputusan dalam Permainan Gomoku dengan Program Dinamis dan Algoritma Greedy

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

Penerapan Algoritma Depth-first search dan Backtracking dalam Program Pembentuk Maze

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

Penerapan Algoritma Backtracking pada Pencarian Solusi Fill-in Crossnumber

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

Penerapan Algoritma Backtracking untuk Menyelesaikan Permainan Hashiwokakero

UNTUK PEMECAHAN MASALAH PADA PERMAINAN HASHIWOKAKERO

Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir

Pembangkit Teka-Teki Silang dengan Algoritma Backtracking serta Aplikasi Permainannya yang Berbasis Web

Pengantar Strategi Algoritma

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

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

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENYELESAIAN PERMAINAN SUDOKU

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

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

Penyelesaian Game Lights Out dengan Algoritma Runut Balik

Penggunaan Algoritma Runut-Balik dalam Proses Resolusi Query dari Eksekusi Program dalam Bahasa Prolog

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

Implementasi Algoritma DFS pada Pewarnaan Gambar Sederhana Menggunakan Bucket tool

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Implementasi Algoritma BFS dan DFS dalam Penyelesaian Token Flip Puzzle

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

Asah Otak dengan Knight s Tour Menggunakan Graf Hamilton dan Backtracking

Aplikasi Algoritma Brute Force dan Backtracking pada Permainan Slitherlink

Aplikasi Algoritma Brute Force Pada Knight s Tour Problem

Penerapan BFS dan DFS pada Pencarian Solusi

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

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

Implementasi Algoritma Greedy pada Permainan Ludo

Kecerdasan Buatan Penyelesaian Masalah dengan Pencarian

Transkripsi:

PENGGUNAAN ALGORITMA BACKTRACKING PADA KNIGHT S TOUR PROBLEM Adiputra Sejati 13507105 Teknik Informatika Institut Teknologi Bandung e-mail: if17105@students.if.itb.ac.id; adiputra.sejati@yahoo.com ABSTRAK Algoritma backtracking pada dasarnya adalah algoritma untuk mencari kemungkinan solusi yang berbasis DFS. Knight s tour adalah sebuah permainan catur yang menggunakan satu buah bidak kuda dimana bidak kuda tersebut dapat berjalan dengan polanya pada semua kotak papan catur tepat hanya sekali. Pada makalah ini akan dibahas bagaimana masalah knight s tour diselesaikan dengan menggunakan strategi algoritma backtracking. Kata kunci: Algoritma, backtracking algorithm, knight s tour, strategi algoritma 1. PENDAHULUAN Seiring dengan perkembangan globalisasi, manusia tidak lepas dari perkembangan teknologi yang terus berkembang. Untuk menghadapi perkembangan teknologi tersebut, manusia selalu menemukan masalah-masalah yang dapat menghambat perkembangan teknologi tersebut. Untuk menghadapi sebuah masalah, seseorang membutuhkan strategi untuk menyelesaikan masalah tersebut. Strategi adalah langkah-langkah dari sebuah rencana yang sudah dipersiapkan untuk memecahkan masalah tertentu. Beberapa strategi pencarian solusi yang telah dipelajari dalam perkuliahan strategi algoritma ini adalah : 1. Algoritma Brute Force 2. Algoritma Greedy 3. Algoritma Divide and Conguer 4. DFS dan BFS 5. Algoritma Runut-balik (backtracking) 6. Algoritma Branch and Bound 7. Program Dinamis 8. Pencocokan String Permasalahan yang ada dalam makalah ini adalah knight s tour. Bagaimana cara menyelesaikan permasalahan aplikasi teori graf pada permainan knight s tour. Sedangkan strategi yang akan digunakan penulis dalam memecahkan masalah ini adalah algoritma runutbalik (backtracking algorithm). Strategi algoritma runutbalik ini merupakan strategi algoritma pencarian yang berbasis pada ruang status (state space base strategies). 2. Knight s Tour Knight s Tour adalah permainan catur yang hanya melibatkan sebuah bidak kuda dalam satu papan tersebut. Kuda tersebut akan ditempatkan pada sebuah kotak pada papan dan akan bergerak sesuai dengan aturan pola kuda dalam catur, dan kuda tersebut hanya bisa mengunjungi tiap kotak papan hanya sekali. Knight s tour dapat dibedakan menjadi dua, yaitu closed tour dan open tour. Yang dimaksud dengan closed tour adalah bidak kuda tersebut selesai melewati semua kotak dalam papan catur dan dapat kembali ke posisi awal bidak tersebut diletakkan. Sedangkan open tour adalah bidak kuda tersebut selesai melewati semua kotak di papan catur tersebut, tetapi tidak bisa kembali ke posisi awal bidak tersebut diletakkan. Gambar1. Contoh pola Closed Tour MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2009

3. Algoitma Runut-Balik (Backtracking Algoithm) Gambar 2. Contoh pola Open Tour Pola kuda yang diperbolehkan adalah : 1 langkah ke atas dan 2 langkah ke kiri 1 langkah ke atas dan 2 langkah ke kanan 2 langkah ke atas dan 1 langkah ke kiri 2 langkah ke atas dan 1 langkah ke kanan 1 langkah ke bawah dan 2 langkah ke kiri 1 langkah ke bawah dan 2 langkah ke kanan 2 langkah ke bawah dan 1 langkah ke kiri 2 langkah ke bawah dan 1 langkah ke kanan Permainan Knight s Tour ini telah dikenal sejak abad ke 9 setelah masehi. Pola dari knight s tour ini telah disajikan dalam bentuk model ayat dalam puisi sansekerta yang ditulis oleh Kashmir Rudrata pada abad ke 9. Pola seorang ksatria tur pada papan setengah telah disajikan dalam bentuk ayat (sebagai kendala sastra) dalam puisi Sanskerta yang sangat bergaya Kavyalankara [3] yang ditulis oleh penyair abad ke-9 Kashmir Rudrata, yang membahas seni puisi, terutama dengan hubungannya dengan teater (Natyashastra). Algoritma pertama untuk menyelesaikan permasalahan Knight's Tour adalah algoritma Warnsdorff, pada tahun 1823 oleh HC Warnsdorff. Gambar 3. Contoh graf hasil pemecahan masalah dari knight s tour. Algoritma Runut-Balik adalah algoritma yang berbasis pada DFS untuk mencari solusi persoalan secara lebih mangkus. Algoritma ini merupakan perbaikan dari algoritma brute force, secara sistematis mencari solusi persoalan di antara semua kemungkinan solusi yang ada. Istilah runut balik pertama kali dikenalkan pada tahun 1950 oleh D.H. Lehmer. Kemudian R.J. Walker, Golomb, dan Baumert menyajikan uraian umum tentang algoritma ini dan penerapannya terhadap berbagai persoalan. Pada saat ini algoritma runut-balik banyak digunakan untuk program games seperti tic-tac-toe, menemukan jalan keluar pada labirin, catur, dan lain-lain. Selain itu algoritma ini juga digunakan pada bidang kecerdasan buatan (artificial intelegence) Backtracking dapat diterapkan hanya untuk masalahmasalah yang mempunyai konsep "calon parsial solusi" dan tes yang relatif cepat apakah mungkin bisa diselesaikan dengan solusi yang valid. Backtracking seringkali lebih cepat daripada brute force dari semua calon solusi yang banyak, hal ini dikarenakan algoritma ini dapat menghilangkan sejumlah besar kandidat dengan sebuah tes. Backtracking tergantung pada pengguna diberikan "black box procedure" yang mendefinisikan masalah yang harus dipecahkan, dari beberapa calon solusi, dan bagaimana mereka diperluas menjadi kandidat solusi yang lengkap. Oleh karena itu yang metaheuristic daripada algoritma tertentu. Meskipun, tidak seperti banyak metaheuristik lainnya, maka dijamin untuk menemukan semua solusi untuk masalah yang terbatas dalam jumlah yang dibatasi waktu. 3.1 Pseudocode Algoritma Runut-Balik Dalam rangka untuk menerapkan runut-balik pada masalah khusus, pertama harus menyediakan data P untuk contoh khusus dari masalah yang harus dipecahkan, dan enam parameter prosedural, root, reject,accept, first, next, and output. Prosedur ini harus mengambil data contoh P sebagai parameter dan harus melakukan berikut ini: 1. root(p) : mengembalikan kandidat parsial pada akar dalam pohon pencarian 2. reject(p,c) : mengembalikan true jika kandidat partial c tidak dapat diselesaikan. 3. accept(p,c): mengembalikan true jika kandidat parsial c merupakan solusi dari data P, dan mengembalikan false jika sebaliknya. 4. first(p,c) : mengenerate elemen pertama dari kandidat c. 5. next(p,s) : megenerate elemen selanjutanya dari sebuah kandidat setelah elemen s.

6. output(p,c): menggunakan solusi c dari data P. Algoritma backtracking mengurangi yang memanggil bt(root (P)), di mana bt adalah prosedur rekursif berikut: Procedure bt(c) If reject(p,c) then return If accept(p,c) then output(p,c) s first(p,c) While s ᴧ do bt(s) s next(p,s) 3.2 Properti Umum Metode Algoritma Runut-Balik Untuk menerapkan metode runut-balik (backtracking algorithm), properti didefinisikan sebagai berikut: 1. Solusi Persoalan Solusi dinyatakan sebagai vektor dengan n-tuple: X = (x 1, x 2,..., x n ), x i himpunan berhingga S i. Mungkin saja S 1 = S 2 =... = S n. Contoh: S i = {0, 1}, x i = 0 atau 1 2. Fungsi Pembangkit nilai x k Dinyatakan sebagai: T(k) T(k) membandingkan nilai untuk x k, yang merupakan komponen vektor solusi. 3. Fungsi pembatas (pada beberapa persoalan fungsi ini dinamakan fungsi kriteria) Dinyatakan sebagai: B(x 1, x 2,..., x k ) Fungsi pembatas menentukan apakah (x 1, x 2,..., x k ) mengarah ke solusi. Jika ya, maka pembangkitan nilai untuk x k+1 dilanjutkan, tetapi jika tidak, maka (x 1, x 2,..., x k ) dibuang dan tidak lagi dipertimbangkan dalam pencarian solusi. Fungsi pembatas tidak selalu dinyatakan sebagai fungsi matematis. Ia dapat dinyatakan sebagai predikat yang bernilai true atau false, atau dalam bentuk lain yang ekivalen. 3.3 Pengorganisasian Solusi Semua kumungkinan solusi dari persoalan disebut ruang solusi. Jika x i S i, maka S 1 S 2 S n disebut ruang solusi. Dan jumlah anggota di ruang solusi tersbut adalah S 1 S 2 S n. Contohnya adalah persoalan Knapsack 0/1 untuk n = 3. Solusi persoalan dinyatakan sebagai vektor (x 1, x 2, x 3 ) dengan x i {0,1}. Maka ruang solusinya adalah {0,1} {0,1} {0,1} = {(0, 0, 0), (0, 1, 0), (0, 0, 1), (1, 0, 0), (1, 1, 0), (1, 0, 1), (0, 1, 1), (1, 1, 1)}. Dan dengan dengan n = 3 terdapat 2 n = 2 3 = 8 kemungkinan solusi, yaitu: (0, 0, 0), (0, 1, 0), (0, 0, 1), (1, 0, 0), (1, 1, 0), (1, 0, 1), (0, 1, 1), dan (1, 1, 1). Penyelesaian secara exhaustive search adalah dengan menguji setiap kemungkinan solusi. Kemudian ruang solusi diorganisasikan ke dalam struktur pohon. Tiap simpul pohon menyatakan status persoalan, dan sisi/cabang dilabeli dengan nilai-nilai x i. Lintasan dari akar ke daun membentuk ruang solusi. Pengorganisasian disebut sebagai pohon ruang status (state space tree). Maka pada persoalan knapsack diatas, pohon ruang statusnya : 2 9 3 6 4 5 7 8 1 x 1 =1 x 1 x 2 =1 x 2 x 2 =1 x 2 x 3 10 11 12 Gambar 4. Ruang solusi untuk persoalan Knapsack 0/1 dengan n=3 13 14 15 3.4 Prinsip Pencarian Solusi dengan Metode Runut-Balik Dari pohon ruang status yang telah dibangun maka kita dapat meninjau pencarian solusi secara dinamis. Langkahlangkah pencarian solusi adalah sebagai berikut: 1. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan pembentukan yang dipakai adalah mengikuti aturan pencarian mendalam (DFS). Simpul-simpul yang sudah dilahirkan dinamakan simpul hidup (live node). Simpul hidup yang sedang diperluas dinamakan simpul- E (Expand-node). 2. Tiap kali simpul-e diperluas, lintasan yang dibangun olehnya bertambah panjang. Jika lintasan yang sedang dibentuk tidak mengarah ke solusi, maka simpul-e tersebut dibunuh sehingga menjadi simpul mati (dead node). Fungsi yang digunakan untuk membunuh simpul- E adalah dengan menerapkan fungsi pembatas (bounding function). Simpul yang sudah mati tidak akan pernah diperluas lagi.

3. Jika pembentukan lintasan berakhir dengan simpul mati, maka proses pencarian diteruskan dengan membangkitkan simpul anak yang lainnya. Bila tidak ada lagi simpul anak yang dapat dibangkitkan, maka pencarian solusi dilanjutkan dengan melakukan runut-balik ke simpul hidup terdekat (simpul orangtua). Selanjutnya simpul ini menjadi simpul-e yang baru. 4. Pencarian dihentikan bila kita telah menemukan solusi atau tidak ada lagi simpul hidup untuk runut-balik. 4. Pengaplikasian Algoritma Runut-Balik Pada Knight s Tour Pada persoalan Knight s Tour ini, algoritma runut-balik dapat kita pergunakan untuk menemukan solusi dengan tepat. Algoritma runut-balik akan membangun solusi parsial dari semua kemungkinan yang ada lalu akan mengembangkan solusi tersebut. Dalam persoalan knight s tour ini berarti algoritma ini akan membangun beberapa solusi dari step pertama bidak kuda yang diletakkan dan diperluas tiap-tiap solusi tersebut. Jika solusi yang diperluas tidak mencapai hasil maka algoritma ini akan melakukan backtracking dan mencari solusi dari solusi parsial lainnya. Tahap-tahap yang akan dilakukan algoritma runut-balik pada persoalan ini adalah: 1. Dari kotak pertama tempat bidak kuda diletakkan, dibangun solusi-solusi parsial yang berisi langkah ke kotak berikutnya yang dapat memungkinkan dilalui bidak kuda tersebut. 2. Salah satu dari solusi tersebut dipilih dan kemudian dibangkitkan langkah berikutnya. 3. Bidak kuda jalan sesuai degan langkah yang dibangkitkan. 4. Tahap 1 dan tahap 2 dilakukan sampai semua solusi ditemukan(semua kotak terlewati) atau solusi tidak ditemukan (sampai langkah berikutnya tidak dapat diperluas lagi). 5. Apabila solusi tidak ditemukan, dilakukan runut balik ke langkah sebelumnya, kemudian dari kotak tersebut dilakukan tahap 1 dan tahap 2 lagi. 6. Pencarian solusi akan berhenti ketika solusi ditemukan atau tidak ditemukan satupun solusi. Contoh algoritma ini pada papan 3x3 yang tidak akan menemukan solusi adalah sebagai berikut : Anggap kotak yang belum pernah dilewati kuda direpresentasikan dengan angka 0, dan yang sudah pernah dilewati bidak kuda akan direpresentasikan dengan angka sesuai dengan urutan langkahnya. Pada contoh ini bidak kuda awal akan diletakkan pada kolom 1 dan baris 1 Kuda mulai pada (1,1) Di setiap kotak yang ditempati oleh bidak, kita menyimpan daftar kotak yang dapat dilewati untuk giliran berikutnya. Pada kasus ini ada 2 kotak yang dapat dilewati oleh kuda, yaitu kotak (2,3) dan (3,2). Pertama kita mencoba memilih kotak (2,3) Pada papan sekarang terlihat ada 2 kotak yang mungkin untuk langkah selanjutnya, yaitu (1,1) dan (3,1). Karena (1,1) sudah pernah dilewati maka kotak yang diambil adalah (3,1). Dari kotak ini terdapat 2 langkah yang dapat diambil, yaitu (2,3) dan (1,2). Karena (2,3) sudah perna dilewati maka bidak akan bergerak ke (1,2) Langkah yang mungkin dari kotak ini: (3,1) dan (3,3). (3,1) sudah pernah dilewati. Ambil kotak (3,3). Langkah yang mungkin dari kotak ini: (2,1) dan (1,2). (1,2) sudah pernah dilewati. Ambil (2,1). Langkah yang mungkin dari kotak ini: (1,3) dan (3,3). (3,3) sudah pernah dilewati. Ambil (1,3). Langkah yang mungkin dari kotak ini: (2,1) dan (3,2). (2,1) sudah pernah dilewati. Ambil (3,2). 3 8 5 Langkah yang mungkin dari kotak ini: (1,1) dan (1,3). (1,1) dan (1,3) sudah pernah dilewati. Maka tidak ada kotak yang memungkinkan untuk langkah selanjutnya. Maka runut-balik dilakukan ke tahap sebelumnya Masih belum ada langkah yang mungkin dari tahap ke 7

Masih belum ada langkah yang mungkin dari tahap ke 6 Masih belum ada langkah yang mungkin dari tahap ke 5 Begitu juga pada tahap ke 4, runut-balik kembali dilakukan. Tahap ke 3 juga tidak memberikan langkah alternatif lainnya, runut-balik dilakukan. Pada tahap ke 2 pun tidak ada langkah alternatif lainnya, runut-balik dilakukan kembali. Kotak (3,2) adalah alternatif lainnya dari langkah pertama tadi, maka kita mencoba melangkah pada kotak (3.2) 0 2 0 Proses itu akan berjalan terus sampai solusi ditemukan. Ketika sebuah persegi dapat ditandai kita terus. Jika tidak dapat ditempatkan, runut-balik dilakukan. Dengan cara ini, semua kemungkinan gerakan yang mencoba. Jika pada suatu saat kita sudah ditandai semua 9 kotak, maka pencarian berhasil dilakukan. Jika kita kehabisan bergerak dari tahap 1, maka pencarian gagal dilakukan. REFERENSI [1] Munir, Rinaldi. Diktat Kuliah IF2251 Strategi Algoritmik, Program Studi Teknik Informatika STEI ITB, 2009. [2] http://en.wikipedia.org/wiki/knight's_tour Tanggal akses: 26 Desember 2009 pukul 13:50 [3] http://www.expertsexchange.com/programming/algorithms/ Q_22635691.html Tanggal akses: 26 Desemver 2009 pukul 14:00 [4] http://en.wikipedia.org/wiki/backtracking Tanggal akses: 27 Desember 2009 pukul 13:10 [5] http://cerebro.cs.xu.edu/csci220/01f/project1.html Tanggal akses: 28 Desember 2009 pukul 11:40 5. KESIMPULAN Knight s Tour merupakan salah satu dari pengaplikasian teorigraf dari permainan papan catur. Ada beberapa algoritma untuk memecahkan masalah ini, yaitu Neural network solutions dan warnsdorff s algorithm. Algoritma runut-balik merupakan salah satu dari banyak solusi yang dapat menyelesaikan permasalahan Knight s Tour.