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