Prosiding – Seminar Nasional Ilmu Komputer 2014
Penerapan Ant Colony Optimization Sebagai Problem Solver Dalam Sliding Puzzle Games Erick Alfons Lisangan, Phie Chyan Abstract1— Sliding puzzle is one of the classical problems in the field of artificial intelligence in which to complete this game takes a long time if doing it manually. Ant Colony Optimization (ACO) is categorized as a multi-agent search techniques to solve optimization problems. Agent or ant is represented as one of the strategies adopted by the movement of a set of combinations (macro) of operator movement that adopted by Finkelstein and Markovitch. Re-initialization process is used to avoid stagnant conditions or movement strategies that appear repeatedly in a row. Re-initialization process will reset the value in matrix of pheromone for the best solution become 1. The results of ACO algorithm performed on 5 (five) different initial state with the value of ρ = 0.1, which can obtain solution to reach the goal state. The best value of ρ that obtained based on the results of the test are 0:15 and 0.2. Keywords—Ant Colony Optimization, Sliding Puzzle Games, Problem Solver, Re-initialization
1. PENDAHULUAN
S
liding puzzle disebut juga n-puzzle, yang memiliki n kotak bernomor dari 1 sampai n dan sebuah ubin kosong dalam kotak persegi. Npuzzle ini dikenal dalam berbagai bentuk, yang paling terkenal adalah 8-puzzle (8 angka) dan 15puzzle (15 angka). Suatu puzzle dimulai dari susunan kotak yang tidak teratur atau bernomor acak. Sliding puzzle merupakan salah satu masalah klasik dalam bidang kecerdasan buatan [1]. Game ini dimainkan dengan cara menggeser kotak kosong (blank tile) sehingga susunan kotak yang sebelumnya diacak menjadi sususan kotak yang terurut sesuai mengikuti aturan yang telah ditetapkan. Seorang pemain dapat menggeser kotak yang berdekatan ke posisi yang ditempati oleh kotak kosong. Tujuan dari permainan ini adalah untuk memindahkan kotak sehingga dapat mencapai keadaan tujuan (goal state) dimana semua nomor ditempatkan dalam urutan
Erick Alfons Lisangan, Universitas Atma Jaya Makassar, Jl. Tanjung Alang No. 23, Makassar, (
[email protected] .id) Phie Chyan, Universitas Atma Jaya Makassar, Jl. Tanjung Alang No. 23, Makassar, (
[email protected])
meningkat dari kiri ke kanan dan dari atas ke bawah [2]. Seperti halnya game yang bertemakan puzzle lainnya, sliding puzzle cukup popular diantara penyuka game puzzle dimana untuk menyelesaikan game ini membutuhkan waktu yang cukup lama jika dikerjakan secara manual[1]. Berdasarkan permasalahan tersebut maka diperlukan suatu algoritma sebagai problem solver dari sliding puzzle games yang akan menghasilkan suatu solusi dengan lebih cepat dan tepat dalam menyelesaikan sliding puzzle. Banyak penelitian dan makalah yang telah membahas bagaimana menyelesaikan sliding puzzle dengan menggunakan algoritma antara lain algoritma BFS, heuristic, dan A*[1]. Algoritma lain yang diterapkan untuk mengatasi permasalahan sliding puzzle antara lain algoritma genetika dan Ant Colony Optimization (ACO). Penelitian yang dilakukan oleh Lev Finkelstein dan Shaul Markovitch (1998) dengan judul A Selective Macro-Learning Algorithm and its Application to the N x N Sliding-Tile Puzzle menghasilkan sekumpulan set strategi pergerakan yang dapat digunakan dalam menyelesaikan permasalahan sliding puzzle. Penelitian lain dilakukan oleh Ting Qian dengan judul Using Genetic Algorithm to Solve Sliding Tile Puzzles, penyelesaian solusi sliding puzzle menggunakan algoritma genetika. Dalam penelitian tersebut diberikan suatu kondisi dynamic environment yang merupakan suatu kondisi ketika nilai rata-rata populasi sebelumnya tidak terdapat peningkatan yang signifikan. Dalam kondisi tersebut maka strategi pergerakan yang dimiliki oleh individu terbaik pada generasi saat ini akan digunakan untuk menggerakan kotak kosong pada papan sliding puzzle. Penelitian mengenai penerapan ACO pada sliding puzzle sebelumnya telah dilakukan oleh Ruqaya Z. Sha’ban (2013) dengan judul Applying the Intelligence of Ant and Tabu Search to Solve The 8-puzzle Problem. Pada penelitian tersebut papan sliding puzzle direpresentasikan berbentuk array 1 (satu) dimensi. Inisialisasi dari pheromone bergantung pada tabel pergerakan
Prosiding – Seminar Nasional Ilmu Komputer 2014
dari indeks array. Tabel pergerakan dari indeks kotak memiliki nilai jumlah gerakan maksimum yang dapat dilakukan oleh indeks kotak tersebut dan kemungkinan strategi pergerakan yang dapat dilakukan. Jumlah semut untuk setiap iterasi bersifat dinamis bergantung pada jumlah gerakan maksimum yang dapat dilakukan oleh indeks kotak. Dalam penelitian ini, algoritma ACO yang digunakan akan menggunakan suatu proses yang disebut re-inisialisasi[3]. Proses re-inisialisasi diperkenalkan oleh Matej Ciba dan Ivan Sekaj (2013) dengan judul penelitian Ant Colony Optimization with Re-Initialization menggunakan studi kasus Travelling Salesman Problem (TSP). Pada tahap stagnasi penguapan feromon seimbang dengan akumulasi feromon. Aturan proporsional pseudo-random maka tidak semua semut akan menggunakan jalur yang sama. Sebagian besar semut akan tertarik oleh daerah pencarian yang sama dengan nilai-nilai feromon yang terbesar dan eksplorasi lebih lanjut hampir tidak mungkin terjadi. Untuk alasan tersebut mala proses re-inisialisasi diusulkan dengan menggunakan rumus diferensial terhadap nilai feromon terbaik yang diperoleh dan menggunakan transformasi non-linear. Pada penelitian ini akan diterapkan ACO sebagai problem solver pada permasalahan sliding puzzle. Penerapan ACO dalam penelitian ini mencoba untuk memperbaiki aturan pergerakan kotak kosong yang diteliti oleh Ruqaya Z. Sha’ban (2013) dimana pergerakan kotak kosong dan jumlah semut bergantung pada posisi dari kotak kosong tersebut. Perbaikan aturan pergerakan kosong dengan menggunakan set kombinasi gerakan (macro) yang diadopsi dari operator pergerakan oleh Finkelstein dan Markovitch (1998). Untuk mengatasi terjadinya stagnasi perubahan feromon maka diadopsi proses re-inisialisasi dengan meng-update nilai feromon pada pergerakan kotak kosong menjadi 0 (nol).
Dalam permainan sliding puzzle, papan simulasi puzzle adalah inti dari permasalahan puzzle itu sendiri karena pada dasarnya papan simulasi menyediakan lingkungan bagi agen atau semut untuk dapat menjalankan strategi dalam menyelesaikan masalah. Dari semua komponen pada sliding puzzle, papan merepresentasi keadaan dari game dan menunjukkan perubahan state setelah menjalankan solusinya. Untuk menyelesaikan persoalan puzzle ini, pemindahan kotak dilakukan dengan cara menggerakkan hanya kotak yang kosong, yaitu yang bernilai 0. Contoh keadaan awal puzzle (initial state) dan goal state yang diinginkan dapat dilihat pada Gambar 1.
Gambar 1 Initial dan Goal State Sliding Puzzle
Initial state dan goal state kemudian direpresentasikan dalam bentuk array. Initial state pada Gambar 1 akan direpresentasikan menjadi [3,4,1,7,2,8,5,6,0]. 2.2. Representasi Strategi Pergerakan Strategi pergerakan dengan menggunakan kotak kosong yang direpresentasikan dengan menggunakan suatu set kombinasi gerakan (macro) yang diadopsi dari operator pergerakan oleh Finkelstein dan Markovitch (1998). Terminal set = { U, D, L, R, LUR, RUL, ULD, RUULD, DLLUR, DRRUL, URRDLULD, UULDRDLUURD, LURRDLULD, URDRULLDRUR, URDRULLDRURD, LLURDRULLDRURD, ULDLURDRULDRURD, URDRRULLLDRRUR, URDRRULLLDRRURD, LLURDRRULLLDRRURD, ULDLLURDRULLDRRURD }
2. METODE PENELITIAN Metode yang digunakan dalam menyelesaikan permasalahan sliding puzzle adalah Ant Colony Optimization (ACO) dengan menggunakan set kombinasi gerakan (macro)[4] yang diadopsi dari operator pergerakan oleh Finkelstein dan Markovitch. 2.1. Representasi Papan Sliding Puzzle
Kombinasi gerakan pada terminal set merupakan kombinasi dari operator L, R, U, D dimana L=Left (pergerakan ke kiri), R=Right (pergerakan ke kanan), U=Up (pergerakan ke atas), D=Down (pergerakan ke bawah). Suatu strategi ditulis untuk mensimulasikan sebuah proses. Ada ketentuan lain dalam strategi yaitu papan yang valid merupakan pembangkit
Prosiding – Seminar Nasional Ilmu Komputer 2014
acak yang dibuat pada saat awal simulasi, setelah itu semua pergerakan diuji kelayakannya untuk diterapkan pada papan. Misalnya, perintah pindah ke kanan (R) merupakan perintah yang tidak layak untuk diproses jika kotak kosong berada pada posisi paling ujung kanan. Perintah pergerakan yang tidak layak kemudian diabaikan dari strategi selama proses berlangsung[1]. 2.3. Ant Colony Optimization Ant Colony Optimization (ACO) termasuk teknik pencarian multi agent untuk menyelesaikan permasalahan optimasi, khususnya kombinatorial, yang terinspirasi oleh tingkah laku semut dalam suatu koloni. ACO pertama kali diperkenalkan oleh Marco Dorigo pada tahun 1991 yang kemudian dipublikasikan dengan nama Ant System (AS). Seekor semut yang sendirian tidak memiliki kecerdasan yang luar biasa tetapi sekawanan semut dengan komunikasi dan kerjasama yang baik melalui zat yang disebut pheromone, dapat secara cepat menemukan jalur terpendek antara sumber makanan dan sarang mereka ketika bekerjasama dengan semut-semut lainnya dalam suatu koloni[5]. Pada algoritma ACO yang dirancang untuk menyelesaikan permasalahan sliding puzzle, setiap semut direpresentasikan sebagai sebuah strategi pergerakan dari suatu set kombinasi gerakan (macro) yang diadopsi dari operator pergerakan oleh Finkelstein dan Markovitch. Algoritma ACO dalam menyelesaikan permasalahan sliding puzzle adalah sebagai berikut: 1. Inisialisasi initial state yang akan dicarikan solusi untuk mencapai goal state. 2. Inisialisasi parameter yang akan digunakan, yaitu ρ = [0,1], matriks pheromone, dan Q (jumlah kotak pada papan sliding puzzle). 3. Hitung nilai n, yaitu jumlah perbedaan antara kotak dari goal state dengan initial state. 4. Setiap semut kemudian menjalankan strategi pergerakan yang dimiliki. Setelah memperoleh hasil pergerakan dari papan berdasarkan solusinya masing-masing, setiap semut kemudian menghitung nilai n dari hasil pergerakan papan dengan goal state. 5. Update pheromone. a. Hitung nilai Δfer pada setiap solusi yang dikerjakan oleh setiap semut dengan menggunakan Persamaan 1, dimana Q adalah jumlah kotak dalam papan sliding puzzle.
(1)
b. Update pheromone pada setiap solusi dengan menggunakan Persamaan 2. Pada saat proses peng-update-an pheromone, faktor evaporation feromon (ρ) ikut mempengaruhi nilai pheromone yang baru. (2)
c. Nilai pheromone terbesar yang terdapat dalam matriks pheromone terbaru merupakan solusi terbaik. 6. Untuk menghindari kemungkinan adanya strategi pergerakan papan yang stagnan, maka dilakukan pengecekan terhadap strategi pergerakan terbaik dari matriks pheromone. a. Jika strategi pergerakan terbaik dan 2 (dua) strategi pergerakan sebelumnya telah muncul secara 3 (tiga) kali berturutturut (kondisi stagnan), maka dilakukan proses re-inisialisasi dimana dalam kasus ini, nilai pheromone dari strategi pergerakan terbaik diset menjadi 0 (nol) dan kemudian ulangi langkah nomor 3. b. Jika tidak, maka jalankan strategi pergerakan dari solusi terbaik untuk mendapatkan representasi papan yang baru. 7. Hitung nilai n antara papan yang baru dengan goal state. 8. Jika nilai n = 0 maka proses dihentikan karena solusi untuk goal state telah ditemukan. Jika tidak, ulangi langkah nomor 3. 3. HASIL DAN PEMBAHASAN Pengujian algoritma ACO meliputi jumlah iterasi dan waktu proses dari algoritma ACO dalam menemukan solusi akhir untuk menyelesaikan permasalahan sliding puzzle pada initial state menjadi goal state yang diharapkan. Pengujian lain yang dilakukan adalah untuk mencari nilai evaporation feromon (ρ) terbaik yang dapat digunakan untuk algoritma ACO yang dirancang untuk mengatasi permasalahan sliding puzzle. Pengujian algoritma ACO sebagai problem solver dalam permasalahan sliding puzzle menggunakan 5 (lima) initial state dan goal state yang akan dicapai seperti pada Gambar 1, yaitu [1,2,3,4,5,6,7,8,0]. Hasil pengujian dengan
Prosiding – Seminar Nasional Ilmu Komputer 2014
menggunakan nilai ρ=0.1, dapat dilihat pada Tabel 1. Tabel 1 Hasil Pengujian Algoritma ACO
No. 1 2 3 4 5
Initial State [1,2,3,4,5,6,7,0,8] [6,7,1,0,4,8,5,3,2] [5,1,4,7,2,0,6,3,8] [3,4,8,7,1,5,2,0,6] [2,3,1,5,6,8,4,0,7]
Iterasi 1 294 670 793 819
Waktu Proses 0.0003s 0.2729s 0.6358s 0.6782s 0.8060s
Pada Tabel 1 dapat dilihat bahwa algoritma ACO telah berhasil memecahkan permasalahan untuk 5 (initial state) yang berbeda-beda. Waktu proses dan iterasi yang dibutuhkan bergantung pada tingkat kerumitan dari initial state yang diberikan.
Gambar 2 Hasil Pencarian Solusi Sliding Puzzle
Pengujian nilai evaporation feromon (ρ) dilakukan untuk memperoleh nilai ρ terbaik yang dapat digunakan untuk penyelesaian studi kasus sliding puzzle. Pengujian nilai ρ terhadap kelima initial state pada Tabel 1 menggunakan 5 (lima) nilai, yaitu 0.1, 0.15, 0.2, 0.25, dan 0.3. Kelima nilai tersebut dipilih karena untuk nilai ρ yang lebih kecil dari 0.1 dan lebih besar dari 0.3, solusi yang diberikan hingga iterasi ke 1000 (seribu) tidak mencapai goal state. Sehingga diasumsi bahwa nilai ρ yang dapat digunakan berada pada range 0.1 hingga 0.3. Tabel 2 Hasil Pengujian Nilai Evaporation Feromon
ρ 0.10 0.15 0.20 0.25 0.30
1 1 1 1 1 1
2 294 294 286 1000* 447
3 670 1000* 160 1000* 1000*
4 793 322 342 1000* 1000*
5 819 446 111 652 1000*
Gambar 3 Grafik Hasil Pengujian Nilai ρ
Berdasarkan hasil pengujian nilai ρ pada Tabel 2 dan Gambar 3, dapat dilihat bahwa untuk kelima kasus sliding puzzle, terjadi penurunan iterasi yang signifikan ketika ρ bernilai 0.15 dan 0.2. Setelah nilai ρ melebihi 0.2, terjadi kecenderungan jumlah iterasi semakin bertambah yang menyebabkan pencarian solusi untuk mencapai goal state membutuhkan waktu yang lebih lama pula. Nilai evaporation feromon (ρ) yang terbaik cenderung kecil. Hal tersebut dapat disebabkan karena adanya keterkaitan antar solusi terbaik yang diperoleh dalam suatu iterasi (local optimum) dengan solusi terbaik pada iterasi sebelumnya. Faktor keterkaitan yang menyebabkan tingkat penguapan feromon cenderung kecil. 4. KESIMPULAN Kesimpulan yang dapat diperoleh dari penerapan Ant Colony Optimization Sebagai Problem Solver Dalam Sliding Puzzle Games adalah sebagai berikut: 1. ACO dapat diterapkan sebagai pemberi solusi dalam permainan sliding puzzle games dengan memanfaatkan set kombinasi gerakan (macro) yang diadopsi dari operator pergerakan oleh Finkelstein dan Markovitch. 2. Proses re-inisialisasi dapat digunakan untuk menghindari terjadinya strategi pergerakan yang muncul berulang-ulang kali secara berturut-turut (stagnan). 3. Nilai ρ terbaik yang dapat digunakan adalah 0.15 dan 0.2, dimana menghasilkan solusi dengan jumlah iterasi paling sedikit.
Prosiding – Seminar Nasional Ilmu Komputer 2014
5. SARAN Saran yang dapat diberikan untuk penelitian selanjutnya adalah diharapkan dapat mengembangkan algoritma ACO yang telah dirancang agar dapat mengatasi terjadinya solusi yang stagnan. DAFTAR PUSTAKA [1]
[2]
[3]
[4]
[5] [6]
Ihsan, I. P., 2012, Penerapan Algoritma Genetika pada Permainan Sliding Puzzle 8 Angka, Prosiding Konferensi Nasional Ilmu Komputer 2012, Makassar, 14 Januari. Qian, T., ____, Using Genetic Algorithm to Solve Sliding Tile Puzzles. (http://www.researchgate.net/publication/22857 0342_Using_Genetic_Algorithm_to_Solve_Sliding_Tile _Puzzles, diakses 18 Maret 2014). Ciba, M., Sekaj, I., 2013, Ant Colony Optimization with ReInitialization, Automation, Control and Intelligent Systems, Vol. 1 No. 3, 59-63. Finkelstein, L. dan Markovitch, S., 1998, A Selective MacroLearning Algorithm and its Application to the N x N Sliding-Tile Puzzle, Journal of Artificial Intelligence Research, vol 8, 223-263. Suyanto, 2010, Algoritma Optimasi: Deterministik atau Probabilistik, Yogyakarta, Graha Ilmu. Sha’ban, R. Z, 2013, Applying the Intelligence of Ant and Tabu Search to Solve The 8-puzzle Problem, Raf. J. of Comp. & Math’s, Vol. 10 No. 2, 101-112.