Penerapan Algoritma A* (A Star) Sebagai Solusi Pencarian Rute Terpendek Pada Maze 1
Rakhmat Kurniawan. R., ST, M.Kom, 2Yusuf Ramadhan Nasution, M.Kom
Program Studi Ilmu Komputer, Fakultas Sains dan Teknologi Universitas Islam Negeri Sumatera Utara Jl. Williem Iskandar Pasar V Medan Estate, Sumatera Utara 20371, Indonesia 1
[email protected],
[email protected] Abstrak Pencarian rute terpendek dalam sebuah maze merupakan sesuatu yang sulit dilakukan dengan cara mencoba-coba rute yang ada. Waktu yang dibutuhkan untuk menyelesaikannya tergantung dari kompleksitas maze yang tersedia. Tentu saja maze yang memiliki kompleksitas yang tinggi akan sangat sulit dan membutuhkan waktu yang lama pula untuk diselesaikan secara manual. Untuk dapat menyelesaikan permasalahan rute terpendek pada maze, dapat digunakan suatu algoritma path finding. A* merupakan salah satu algoritma path finding yang umum digunakan dalam menemukan rute terpendek. Dengan menggunakan algoritma A*, penyelesaian masalah maze dapat dilakukan dengan mudah dan cepat. Algoritma A* tidak hanya dapat menemukan solusi atau jalan keluar saja, akan tetapi dapat memberikan solusi terbaik berupa rute terpendek. Kata kunci: Rute terpendek, A Star, Path Finding, Maze I. PENDAHULUAN Maze secara bahasa dapat diartikan sebagai tempat yang membingungkan. Istilah maze digunakan untuk memberikan sebutan pada suatu lokasi yang terdapat banyak jalan dan sedikit pintu masuk ataupun keluar. Jalan atau rute-rute yang terdapat didalam maze dibatasi oleh dinding, sehingga dari satu rute tidak dapat mengetahui rute yang ada di sebelahnya. Untuk dapat menemukan jalan menuju pintu keluar, dapat dilakukan dengan cara mencoba-coba setiap rute hingga menemukan jalan keluar. Tentu saja cara penyelesaian dengan mencoba-coba dapat diselesaikan oleh manusia dengan mudah untuk maze yang sederhana. Akan tetapi, untuk mendapatkan solusi dari suatu maze yang sangat kompleks, akan terasa sangat sulit dan membutuhkan waktu yang lama. Agar dapat menemukan solusi terbaik dari setiap maze baik yang memiliki kompleksitas yang rendah maupun yang tinggi, digunakan suatu algoritma pencarian. Dalam penyelesaian maze ini, akan digunakan Algoritma A* dimana algoritma ini merupakan salah satu algoritma path finding yang sering digunakan. II. Landasan Teori A. Path Finding Path Finding merupakan salah satu materi yang sangat penting didalam Artificial Intelligence. Path Finding biasanya digunakan untuk menyelesaikan masalah pada sebuah graph. Dalam matematika graph merupakan himpunan titik-titik atau biasa disebut dengan node yang tehubung oleh edge. Edge
yang menghubungkan setiap node merupakan suatu vektor yang memiliki arah dan besaran tertentu. Untuk dapat menemukan jalan dari Node Awal menuju Node Tujuan, dilakukan penelusuran terhadap graph tersebut. Penelusuran biasanya dilakukan dengan mengikuti arah edge yang menghubungkan antar node.
SN
A
30
D
30
G
40
20
40
20
40
20
40
30
B
30
E
30
H
30
GN
40
20
40
20
40
40
20
C
30
F
50
I
Gambar 1. Contoh Graph Pada gambar 1, suatu graph dengan Node Awal ππ dan Node Tujuan πΊπ terhubung dengan nodenode lain oleh edge-edge yang memiliki besaran yang berbeda. Jika ditelusuri, terdapat banyak kombinasi rute yang dapat dilalui untuk menuju node tujuan. Bisa dikatakan dari graph tersebut, setiap node akan memberikan solusi arah menuju node tujuan. B. Shortest Path Shortest Path atau rute terpendek merupakan suatu upaya optimalisasi dari path finding. Setiap rute yang ditemukan pada path finding akan dicari rute terpendeknya. Pencarian rute terpendeknya di tentukan dengan akumulasi besaran vektor yang dilalui untuk mencapai node tujuan. Akumulasi cost yang memiliki nilai minimum merupakan rute terpendek dari graph tersebut. Ada beberapa macam persoalan lintasan terpendek, antara lain:
1.
Lintasan terpendek antara dua buah simpul tertentu (a pair shortest path). Lintasan terpendek antara semua pasangan simpul (all pair shortest path). Lintasan terpendek dari simpul tertentu ke semua simpul yang lain (single-source shortest path). Lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu (intermediate shortest path). (Ulva, 2014)
pengubahan parent atau tidak tergantung pada nilai π-nya melalui parent lama atau parent baru. Jika melalui parent baru memberikan nilai π yang lebih kecil, maka dilakukan pengubahan parent. Jika pengubahan parent dilakukan, maka dilakukan pula update nilai π dan π pada suksesor tersebut. Dengan perbaharuan ini, suksesor tersebut memiliki kesempatan yang lebih besar untuk terpilih sebagai simpul terbaik (best node) (Suyanto, 2014).
C. Algoritma A* Algoritma A Star atau A* adalah salah satu algoritma pencarian yang menganalisa input, mengevaluasi sejumlah jalur yang mungkin dilewati dan menghasilkan solusi. Algoritma A* adalah algoritma komputer yang digunakan secara luas dalam graph traversal dan penemuan jalur serta proses perencanaan jalur yang bisa dilewati secara efisien di sekitar titik-titik yang disebut node (Reddy, 2013).
Jika suksesor sudah pernah berada di Closed, maka dilakukan pengecekan apakah perlu pengubahan parent atau tidak, jika ya, maka dilakukan perbaharuan nilai π dan π pada suksesor tersebut serta pada semua βanak cucunyaβ yang sudah pernah berada di Open. Dengan perbaharuan ini, maka semua anak cucunya tersebut memiliki kesempatan lebih besar untuk terpilih sebagai simpul terbaik (best node) (Suyanto, 2014).
2. 3. 4.
Karakteristik yang menjelaskan algoritma A* adalah pengembangan dari βdaftar tertutupβ untuk merekam area yang dievaluasi. Daftar tertutup ini adalah sebuah daftar untuk merekam area berdekatan yang sudah dievaluasi, kemudian melakukan perhitungan jarak yang dikunjungi dari βtitik awalβ dengan jarak diperkirakan ke βtitik tujuanβ (Reddy, 2013). Algoritma A* menggunakan path dengan cost paling rendah ke node yang membuatnya sebagai algoritma pencarian nilai pertama yang terbaik atau best first search. Menggunakan rumus π(π₯) = π(π₯) + β(π₯) β¦β¦β¦β¦β¦β¦β¦β¦..(1) dimana: ο π(π₯) adalah jarak total dari posisi asal ke lokasi sekarang. ο β(π₯) adalah fungsi heuristik yang digunakan untuk memperkirakan jarak dari lokasi sekarang ke lokasi tujuan. Fungsi ini jelas berbeda karena ini adalah perkiraan semata dibandingkan dengan nilai aslinya. Semakin tinggi keakuratan heuristik, semakin cepat dan bagus lokasi tujuan ditemukan dan dengan tingkat keakuratan yang lebih baik. Fungi π(π₯) = π(π₯) + β(π₯) ini adalah perkiraan saat ini dari jarak terdekat ke tujuan (Lubis, 2016). Algoritm A* juga menggunakan 2 (dua) senarai Open List dan Closed List sama seperti algoritma dasar Best First Search. Terdapat 3 (tiga) kondisi bagi setiap suksesor yang dibangkitkan, yaitu sudah berada pada di Open, sudah berada di Closed, dan tidak berada di Open maupun Closed. Pada ketiga kondisi tersebut diberikan penanganan yang berbedabeda (Suyanto, 2014). Jika suksesor sudah pernah berada di Open, maka dilakukan pengecekan apakah perlu
Jika suksesor tidak berada di Open maupun Closed, maka suksesor tersebut dimasukkan kedalam Open. Tambahkan suksesor tersebut sebagai suksesornya best node. Hitung cost suksesor tersebut dengan menggunakan persamaan 1 (Suyanto, 2014). III. Metodologi Penelitian Dalam melakukan penelitian ini, dibutuhkan kerangka kerja yang dijadikan sebagai acuan dalam proses penyelesaian masalah. Tahapan-tahapan dalam kerangka keija penelitian ini disusun secara sitematis agar penyelesaian masalahnya menjadi jelas. Adapun kerangka keija yang disusun dalam penelitian ini adalah sebagai berikut: Representasi Maze Dalam Bentuk Array
Perhitungan Langkah
Pemilihan Jalur
Hasil
Gambar 2. Tahap Penyelesaian Masalah A. Representasi Maze Dalam Bentuk Array Sebuah maze yang merupakan suatu input didalam sistem yang akan dibangun akan disajikan dalam bentuk array. Penyajian array dilakukan dengan menggantikan elemen-elemen maze menjadi suatu kode angka. Dalam penelitian ini kode-kode yang digunakan untuk menggantikan elemen-elemen maze adalah: 1. Start Node = 1 2. Goal Node = 2 3. Obstacle (Rintangan) = 0 4. Path = 3
Gambar 3. Contoh Maze
Gambar 5. Representasi Nilai β(π₯)
Pada langkah pertama hanya memunculkan 1 (satu) kemungkinan langkah yaitu node GB. Pada langkah berikutnya akan dipilih node tetangga dari GB yang memiliki cost terkecil. Langkah kedua memiliki 2 kemungkinan yaitu FB dan HB. Untuk memilih node yang terdekat, akan dilakukan perhitungan nilai π(π₯) terhadap node FB dan node HB. Jika diberikan nilai jarak antar node tetangga sebesar 10, maka: π(πΉπ΅) = π(πΉπ΅) + β(πΉπ΅) π(πΉπ΅) = 10 + 18 π(πΉπ΅) = 28 π(π»π΅) = π(π»π΅) + β(π»π΅) π(π»π΅) = 10 + 16 π(π»π΅) = 26 Gambar 4. Representasi Maze dalam Array
Pemilihan langkah dimulai dari Start Node hingga mencapai Goal Node. Dalam memilih langkah hanya akan menghitung kemungkinan path yang dapat dilalui, sedangkan obstacles akan diabaikan. Pada gambar 3 dan 4, kemungkinan path yang dapat dilalui untuk langkah pertama hanyalah 1 (satu) langkah kearah selatan. B. Perhitungan Langkah Perhitungan langkah dilakukan dengan menghitung nilai β(π₯) dan π(π₯) pada node tetangga. Nilai β(π₯) merupakan cost yang dibutuhkan dari current node ke goal node, sementara π(π₯) merupakan cost yang dibutuhkan current node untuk mencapai node berikutnya.
Dari dua kemungkinan node yang memungkinkan untuk dilalui, akan dipilih node dengan cost minimal, dalam kasus ini yang dipilih adalah node HB. Node FB akan dimasukkan kedalam Open List dan node GB akan masuk kedalam Closed List. Perhitungan node tetangga terhadap node yang telah dipilih sebelumnya akan diteruskan hingga mencapai node tujuan atau terjadi deadlock. Jika terjadi deadlock, maka penelusuran akan kembali ke node yang terakhir didaftarkan kedalam Open List dan memasukkannya kedalam Closed List. Proses ini akan terus diulang hingga mencapai node tujuan. Gambar 7 merupakan rute terpendek yang diperoleh dari perhitungan algoritma A*
Gambar 10. Pengujian 3 Gambar 7. Hasil Penelusuran Rute Terpendek IV. Pengujian Pengujian dilakukan dengan menyelesaikan beberapa sampel maze yang berbeda dengan ukuran 16 π₯ 16. Berikut adalah hasil pengujian yang dilakukan terhadap 5 (lima) sampel maze.
Gambar 11. Pengujian 4
Gambar 8. Pengujian 1
Gambar 12. Pengujian 5 V. Kesimpulan dan Saran Berdasarkan hasil analisa dan pengujian yang dilakukan terhadap algoritma A* dalam menemukan rute terpendek dalam sebuah maze, diperoleh kesimpulan sebagai berikut: Gambar 9. Pengujian 2
1.
2.
Algoritma A* dapat menemukan rute terpendek yang dapat dilalui dari start node menuju goal node. Algoritma A* hanya menghitung cost path yang dilaluinya saja, sehingga memungkinkan untuk tidak menemukan rute terbaik
Saran yang dapat diberikan untuk pengembangan dari penerapan algoritma A* pada sebuah maze, yaitu: 1. Penerapan Algoritma A* dilakukan pada perangkat dengan sistem tertanam. 2. Menggunakan ukuran maze yang lebih besar dan memiliki kompleksitas yang lebih tinggi.
1.
Daftar Pustaka Lubis, E. S., 2016. Sistem Pengantaran Makanan dengan Pendayagunaan Vehicle Menggunakan Geographical Information System (GIS) dan Algoritma A Star (A*), Medan: Universitas Sumatera Utara.
2.
Reddy, H., 2013. Path Finding-Dijkstraβs and A* Algorithmβs. [Online] Available at: http://cs.indstate.edu/hgopireddy/newalg.html [Accessed 25 September 2016].
3.
Suyanto, 2014. Artificial Intelligence: Searching, Reasoning, Planning, Learning. 2nd ed. Bandung: Informatika.
4.
Ulva, A. F., 2014. Pencarian Rute Terpendek dengan Adanya Forbidden Path Menggunakan Algoritma Genetika, Medan: Universitas Sumatera Utara.