Cara Kerja Algoritma A Mencari Rute Terpendek Fungsi Heuristik untuk A

Beberapa terminologi dasar yang terdapat pada algoritma ini yaitu [2]: 1. Starting point adalah sebuah terminologi untuk posisi awal sebuah benda. 2. A adalah simpul yang sedang dijalankan dalam algoritma pencarian jalan terpendek. 3. Simpul adalah petak-petak kecil sebagai representasi dari area pathfinding. Bentuknya dapat berupa persegi, lingkaran, maupun segitiga. 4. Open list adalah tempat menyimpan data simpul yang mungkin diakses dari starting point maupun simpul yang sedang dijalankan. 5. Closed list adalah tempat menyimpan data simpul sebelum A yang juga merupakan bagian dari jalur terpendek yang telah berhasil didapatkan. 6. Harga F adalah nilai yang diperoleh dari penjumlahan, nilai G merupakan jumlah nilai tiap simpul dalam jalur terpendek dari starting point ke A, dan H adalah jumlah nilai perkiraan dari sebuah simpul ke simpul tujuan. 7. Simpul tujuan yaitu simpul yang dituju. 8. Halangan adalah sebuah atribut yang menyatakan bahwa sebuah simpul tidak dapat dilalui oleh A.

2.5.1 Cara Kerja Algoritma A Mencari Rute Terpendek

Prinsip algoritma ini adalah mencari jalur terpendek dari sebuah simpul awal starting point menuju simpul tujuan dengan memperhatikan harga F terkecil. Algoritma ini mempertimbangkan jarak yang telah ditempuh selama ini dari initial state ke current state . Jadi bila jalan yang telah ditempuh sudah terlalu panjang dan ada jalan lain yang lebih kecil jaraknya namun memberikan posisi yang sama dilihat dari goal, jalan baru yang lebih pendek itulah yang akan dipilih [2]. Dengan fungsi heuristik Algoritma ini membangkitkan verteks yang paling mendekati solusi. Verteks ini kemudian disimpan suksesornya ke dalam list sesuai dengan urutan yang paling mendekati solusi terbaik. Kemudian, verteks pertama pada list diambil, dibangkitkan suksesornya dan kemudian suksesor ini disimpan ke dalam list sesuai dengan urutan yang terbaik untuk solusi. List verteks ini disebut dengan verteks terbuka open node. Universitas Sumatera Utara Verteks pada list bisa berasal dari kedalaman berapapun dari graf. Algoritma ini akan mengunjungi secara mendalam mirip Depth First Search DFS selama verteks tersebut merupakan verteks yang terbaik. Jika verteks yang sedang dikunjungi ternyata tidak mengarah kepada solusi yang diinginkan, maka akan melakukan runut balik ke arah verteks awal untuk mencari verteks lainnya yang lebih menjanjikan dari pada verteks yang terakhir dikunjungi. Bila tidak ditemukan juga, maka akan terus mengulang mencari ke arah verteks awal sampai ditemukan verteks yang lebih baik untuk dibangkitkan suksesornya. Strategi ini berkebalikan dengan algoritma DFS yang mencari sampai kedalaman yang terdalam sampai tidak ada lagi suksesor yang bisa dibangkitkan sebelum melakukan runut balik, dan BFS yang tidak akan melakukan pencarian secara mendalam sebelum pencarian secara melebar selesai. Algoritma A baru berhenti ketika mendapatkan solusi yang dianggap solusi terbaik.

2.5.2 Fungsi Heuristik untuk A

Dalam metode pencarian heuristik, digunakan suatu fungsi heuristik yang digunakan untuk mengevaluasi keadaan-keadaan masalah individual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan. Suatu fungsi dapat diterima sebagai fungsi heuristik jika biaya perkiraan yang dihasilkan tidak melebihi dari biaya sebenarnya. Suatu fungsi heuristik dapat dikatakan sebagai fungsi heuristik yang baik, apabila dapat memberikan biaya perkiraan yang mendekati biaya sebenarnya. Semakin mendekati biaya sebenarnya, fungsi heuristik tersebut semakin baik. Dalam masalah pencarian rute terpendek dengan graf planar, fungsi heuristik yang dapat digunakan adalah Jarak Euclidian. Fungsi heuristik ini akan menghitung jarak berdasarkan panjang garis yang dapat ditarik dari dua buah titik, yang bisa dihitung menggunakan rumus: …………………………….. 2 Universitas Sumatera Utara keterangan: hn : perkiraan jarak dari verteks sekarang yang sedang dikunjungi ke verteks tujuan. x 1 : koordinat x dari node n. x 2 : koordinat x dari node tujuan. y 1 : koordinat y dari node n. y 2 : koordinat y dari node tujuan. Fungsi heuristik sangat berpengaruh terhadap kelakuan Algoritma A [2]: 1. Apabila hn selalu bernilai 0, maka hanya gn yang akan berperan, dan A berubah menjadi Algoritma Dijkstra, yang menjamin selalu akan menemukan jalur terpendek. 2. Apabila hn selalu lebih rendah atau sama dengan nilai perpindahan dari titik n ke tujuan, maka A dijamin akan selalu menemukan jalur terpendek. Semakin rendah nilai hn, semakin banyak titik-titik yang diperiksa A, membuatnya semakin lambat. 3. Apabila hn tepat sama dengan nilai perpindahan dari n ke tujuan, maka A hanya akan mengikuti jalur terbaik dan tidak pernah memeriksa satupun titik lainnya, membuatnya sangat cepat. Walaupun hal ini belum tentu bisa diaplikasikan ke semua kasus, ada beberapa kasus khusus yang dapat menggunakannya. 4. Apabila hn kadangkala lebih besar nilai perpindahan dari n ke tujuan, maka A tidak menjamin ditemukannya jalur terpendek, tapi prosesnya cepat. 5. Apabila hn secara relatif jauh lebih besar dari gn, maka hanya hn yang memainkan peran, dan A berubah menjadi BFS.

2.6 Mapserver