IJCCS, Vol.x, No.x, July xxxx, pp. 1~5 ISSN: 1978-1520
◼
1
Penggunaan Algoritma A* (A Star) pada Penyelesain Permainan 8 Puzzle Muhammad Noerhidayatullah1, Pangestu Catur Prastiyo2, Devisma Nur Fitriana 3, Wahyu indah haryati 4 Program Studi Informatika, Fakultas Ilmu Komputer, Universitas Amikom Yogyakarta, Yogyakarta e-mail:
[email protected], 2
[email protected],
[email protected] , 4
[email protected]
Abstrak Perkembangan kecerdasan buatan saat ini sangat pesat dimana memanfaatkan komputer untuk memecahkan persoalan yang rumit. Penggunaan kecerdasan buatan salah satunya menggunakan algoritma A* yang merupakan algoritma yang membantu menemukan solusi pencarian ruang keadaan dengan mempertimbangkan total biaya lintasan yang akan dilacak sesuai dengan node yang akan dilewati. Algoritma ini dapat diterapkan pada permainan 8 Puzzle untuk mencari langkah-langkah yang optimum agar permainan dapat diselesaikan. 8 Puzzle adalah representasi permainan teka-teki yang dapat diselesaikan dengan mengurutkan atau menyusun komponen-komponen pembentuknya sesuai dengan kondisi yang diinginkan. Komponen pada 8-Puzzle adalah berupa kotak-kotak bernomor atau bergambar (sesuai kebutuhan) yang dapat diacak sedemikian hingga menjadi suatu pola random yang dapat dicari jalan penyelesaiannya Kata kunci: Algoritma A*, 8 puzzle, kecerdasan buatan
1. PENDAHULUAN Kecerdasan Buatan (AI) adalah salah satu cabang Ilmu pengetahuan berhubungan dengan pemanfaatan mesin untuk memecahkan persoalan yang rumit dengan cara yang lebih manusiawi. Hal Ini biasanya dilakukan dengan mencontoh karakteristik dan analogi berpikir dari kecerdasan manusia, dan menerapkannya sebagai algoritma yang dikenal oleh komputer. Salah satu penerapan kecerdasan buatan adalah pada bidang game, yaitu dengan memasukkan algoritma kecerdasan buatan pada game. Salah satunya penggunaan pada permainan 8 Puzzle. Pada permainan ini, pemain harus mengurutkan angka-angka dari angka yang diacak dan batasan ruang yang ada. Permainan akan berakhir ketika pemain telah mengurutkan angka tersebut.
8-puzzle merupakan sebuah permainan yang menggunakan teknik pencarian (searching). Teknik pencarian bisa dilakukan dengan menggunakan suatu algoritma untuk mendapatkan suatu solusi atau permasalahan. Algoritma yang akan kami gunakan adalah algoritma A* (A Star). 2. TINJAUAN PUSTAKA 2.1 Fungsi Heuristik Manhattan Distance Heuristik adalah sebuah teknik yang mengembangkan efisiensi dalam proses pencarian, namun dengan kemungkinan mengorbankan kelengkapan (completeness). Fungsi heuristik digunakan untuk mengevaluasi keadaan-keadaan problema individiual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan. A* sebagai algoritma pencarian yang menggunakan fungsi heuristik untuk
Received June 1st,2012; Revised June 25th, 2012; Accepted July 10th, 2012
2
◼
pencarian rute node-node pada peta. Heuristik yang paling umum digunakan adalah jarak Manhattan. Fungsi heuristik ini hanya akan menjumlahkan selisih nilai x dan nilai y dari dua buah titik. Perhitungannya dapat ditulis sebagai berikut: h(n) = |awal.x-tujuan.x| + |awal.y-tujuan.y| Dimana h(n) adalah sebuah fungsi heuristik. D (distance) adalah jarak dari node awal (strating point) menuju node tujuan (goal).
ISSN: 1978-1520
Posisi Awal
Posisi Tujuan
Menyelesaikan permainan 8 Puzzle dengan menggunakan algoritma A* yang pertama harus dilakukan adalah menentukan kemungkinan pergeseran kotak ke kotak yang kosong. Pada contoh diatas terdapat 3 kemungkinannya yaitu a. Geser ke kanan
2.2 Algoritma A* (A Star) Algoritma A* merupakan algoritma yang membantu menemukan solusi pencarian ruang keadaan dengan mempertimbangkan total biaya lintasan yang akan dilacak sesuai dengan node yang akan dilewati. Masalah ruang keadaan disebut juga dengan state space problem. Ruang keadaan (state space) merupakan suatu ruang yang berisi semua keadaan yang mungkin dalam suatu kasus kecerdasan buatan. Algoritma A* menggunakan fungsi distanceplus-cost heuristic yang merupakan penggabungan dari dua fungsi yaitu path-cost (g(x)) dan fungsi heuristic estimation (h(x)). Fungsi g(x) menghitung jarak antara node awal dengan simpul saat ini. Fungsi h(x) merupakan fungsi Manhattan Distance. Fungsi gabungannya adalah f(x) = g(x) + h(x) dimana f(x) merupakan representasi biaya jalan yang paling efesien sampai ke posisi tujuan.
3. HASIL DAN PEMBAHASAN 3.1 Penentuan Kemungkinan Pergeseran Kotak Pada permainan 8 Puzzle, pertama kali permainan dalam keadaan acak dan akan dibuat menjadi angka-angka yang berurutan.
b. Geser ke kiri
c. Geser ke atas
3.1 Penentuan Fungsi Manhattan Distance Langkah selanjutnya adalah dengan menghitung nilai fungsi Manhattan Distance atau h(x). Menghitung nilai h(x) masingmasing dari tiga kemungkinan diatas pada kasus ini menghitung total jarak dari semua kotak ke posisi tujuannya. a. Geser ke kanan
Kotak 1 : |1-0| + |0-0| = 1 Kotak 3 : |0-0| + |0-0| = 0 Sampai Kotak 8 kemudian dijumlahkan. IJCCS Vol. x, No. x, July 201x : first_page – end_page
IJCCS
◼ 3
ISSN: 1978-1520
H(x) = 1 + 0 + 0 + 1 + 1 + 0 + 0 + 1 = 4 b. Geser ke kiri
Jumlah iterasi - A* : 3 - BFS : 16 b. Kasus 2
H(x) = 4 c. Geser ke kiri
H(x) = 2 3.2 Penentuan Fungsi Path-Cost g(x) Nilai fungsi g(x) pada kasus 8 Puzzle adalah bernilai sesuai dengan urutan langkah ke berapa. Artinya langkah pertama diatas nilai g(x) = 1, untuk langkah berikutnya g(x) = 2 begitu seterusnya.
Jumlah iterasi - A* : 5 - BFS : 60 c. Kasus 3
3.3 Penerapan Algorima A* pada 8 Puzzle a. Jadikan posisi awal sebagai akar persoalan b. Tentukan semua kemungkinan pergeseran kotak ke kotak yang kosong. c. Hitung nilai heuristic untuk setiap kemungkinan kemudian ditambah nilai g(x) sehingga didapatkan f(x) d. Jika terdapat nilai f(x) yang sama maka yang digeser adalah kotak sesuai prioritas yaitu geser kanan, geser atas, geser bawah, geser kiri. e. Jika tidak ada nilai f(x) yang sama makan yang digeser adalah kotak dengan niali f(x) terkecil. f. Bangkitkan kotak yang terpilih menjadi akar persoalan g. Ulangi prosedur b sampai f hingga ditemukan posisi kotak-kotak 8 puzzle menjadi posisi tujuan 8 puzzle 3.4 Percobaan Perbandingan A* dengan BFS a. Kasus 1
Jumlah Iterasi - A* : 5 - BFS : 51 4. KESIMPULAN Setelah melakukan percobaan, penulis dapat menyimpulkan kesimpulan sebagai berikut : a. Proses iterasi dengan menggunakan A* didapatkan hasil yang lebih sedikit dibandingkan dengan BFS yang artinya penggunaan A* lebih optimum. b. Semakin akurat nilai heuristiknnya maka semakin cepat pula solusi didapatkan. c. Harus ditentukannya urutan prioritas pergerakan kotak yang akan digunakan jika terdapat 2 atau lebih nilai heuristic yang sama dari beberapa kemungkinan yang ada. DAFTAR PUSTAKA Suyanto, “Artificial Intelligence: Searching, Reasoning, Planning, Learning, Revisi 2, Bandung, 2014.
Title of manuscript is short and clear, implies research results (First Author)
4
◼
Beny Hakim Halimsyah, Eggy Margiso, “Problem Solving Permainan Puzzle 8 Menggunakan Algoritma A*”, STIMIK Pontianak, Pontianak 2014. Gunardi, Tommy, “Penggunaan Algoritma A* Pada 8 Puzzle Problem”, Bandung : Institut Teknologi Bandung, 2008. Kusumadewi, Sri, “Teknik Pencarian Heuristik”, Yoygakarta : Universitas Islam Indonesia, 2007. Perry, William E, “Effective Methods for Sofware Testing, edisi ketiga, Wiley Publishing, Inc, IN”, 2006.
IJCCS Vol. x, No. x, July 201x : first_page – end_page
ISSN: 1978-1520