2.3.2 Fungsi Heuristik
Algoritma A merupakan teknik heuristik dan membantu penyelesaian persoalan.Heuristik adalah penilai yang memberi harga pada tiap simpul yang
memandu A mendapatkan solusi yang diinginkan. Dengan heuristik yang benar, maka A pasti akan mendapatkan solusi jika memang ada solusinya yang dicari.
Dengan kata lain, heuristik adalah fungsi optimasi yang menjadikan algoritma A lebih baik dari algoritma lainnya. Namun heuristik masih merupakan
estimasiperkiraan biasa saja, sama sekali tidak ada rumus khususnya. Artinya setiap kasus memiliki fungsi heuristik yang berbeda
– beda.Nilai ongkos pada setiap simpul n menyatakan taksiran ongkos termurah lintasan dari simpul n ke
simpul target target node, yaitu : Fn = nilai taksiran lintasan termurah dari simpul status n ke status tujuan
Dengan kata lain, Fn menyatakan batas bawah lower bound dari ongkos pencarian solusi dari status n. Fungsi heuristik yang terdapat pada
algoritma A untuk menghitung taksiran nilai dari suatu simpul dengan simpul yang telah dilalui adalah :
Dimana: Fn
= ongkos untuk simpul n Gn
= ongkos mencapai simpul n dari akar Hn
= ongkos mencapai simpul tujuan dari simpul n heuristik.
Fungsi H ini dapat dihitung menggunakan rumus pendekatan jarak salah satunya yang dapat dipakai adalah
Manhattan Distance.
Rumus
Manhattan Distance
untuk mencari fungsi Heuristik H dapat formulasikan sebagai berikut : | | | |
Dimana : Hn = Perkiraan heuristik Dari simpul n ke target
Xt = Koordinat X untuk simpul target
Xn = Koordinat X untuk simpul n sedang dijelajahi
Yt = Koordinat Y untuk simpul target
Yn = Koordinat Y untuk simpul n sedang dijelajahi
2.3.3 Langkah Algoritma A
Menurut Eranki Rajiv2002 dari MIT mengenai algoritma A secara
ringkas langkah demi langkahnya adalah sebagai berikut :
1. Inisiasi Open list dan Inisiasi Closed List.
2. Tambahkan starting point ke dalam open list dan set nilai f = g+h
dimana g = 0 dan h dengan menggunakan rumus ii. 3.
Lakukan looping jika open list tidak kosong. Jika kosong pencarian selesai.
4. Ambil open list dengan f terkecil sebagai
current
. 5.
Jika current adalah node tujuan, hentikan pencarian dan
return
pathnya. 6.
Generate
semua simpul yang bertetangga dengan
current
yang
walkable
atau dapat dijelajahi. Node – node ini disebut suksesor.
7. Loop semua suksesor pada node current.
8. Set nilai g untuk suksesor sama dengan current.g ditambah dengan
jarak antara suksesor dengan
current
. 9.
Set nilai h heuristik untuk suksesor dari node tujuan ke suksesor dengan rumus ii.
10. Set nilai f sama dengan g ditambah nilai h pada suksesor seperti rumus
i. 11.
Jika sebuah node dengan posisi yang sama dengan suksesor ada di dalam close list dan mempunyai nilai f yang lebih kecil dari suksesor
maka abaikan suksesor tersebut. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12. Jika suksesor mempunyai kondisi selain pada langkah 11 maka
tambahkan suksesor ke dalam open list. 13.
Ulangi langkah 7 pada semua suksesor. 14.
Tambahkan node
current
ke dalam closed list. 15.
Temukan node yang ada di dalam open list dengan nilai F paling kecil , kembali ke langkah 3.
2.4 Algoritma Dijkstra
Sudah banyak algoritma yang bisa digunakan untuk pencarian rute terpendek. Tidak bisa dipungkiri Dijkstra masih menjadi salah satu yang populer
dari sekian banyak algoritma pencarian jalur terpendek.Algoritma Dijkstra dinamakan sesuai dengan nama penemunya, seorang ilmuwan komputer
berkebangsan Belanda yang bernama Edsger Dijkstra pada tahun 1956, adalah algoritma yang digunakan untuk mencari lintasan terpendek pada sebuah graf
berarah dan tidak berarah. Ian Millington 2006 pada bukunya berjudul Artificial Inteligence for Games menyebut algoritma dijkstra sebagai versi ringkas
algoritma A. Keringkasan yang dimaksud adalah bahwa keduanya memiliki kesamaan dalam proses pencarian rute terdekat, hanya saja pada algoritma
Dijkstra fungsi heuristik tidak di perhitungkan sebagaimana yang dilakukan oleh A.Setiawan, 2015.
Cara kerja algoritma Dijkstra memakai strategi greedy, dimana pada setiap langkah dipilih sisi dengan bobot yang paling kecil yang menghubungkan sebuah
simpul yang sudah terpilih dengan simpul lain yang belum terpilih. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.4.1 Algoritma Greedy
Algoritma greedy merupakann metode yang paling populer untuk memecahkan persoalan optimasi.Persoalan Optimasi adalah persoalan mencari
solusi yang paling optimum.Hanya ada dua macam persoalan optimasi, yaitu maksimasi dan minimasi.
Algoritma greedy adalah algoritma yang memecahkan masalah langkah per langkah . Pada setiap langkah :
1. Mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu
tanpa memperhatikan konsekuensi ke depan. 2.
Berharap bahwa dengan memilih optimum local pada setiap langkah akan berakhir dengan optimum global.
Element-elemen algoritma greedy : 1.
Himpunan kandidat C, berisi elemen-elemen pembentuk solusi. 2.
Himpunan solusi S, berisi kandidat-kandidat yang terpilih sebagai solusi persoalan.
3. Fungsi seleksi, memilih kandidat yang paling memungkinkan
mencapai solusi optimal. Kandidat yang sudah dipilih pada suatu langkah tidak pernah dipertimbangkan lagi pada langkah selanjutnya.
4. Fungsi kelayakan, memeriksa apakah fungsi suatu kandidat yang telah
dipilih dapat memberikan solusi yang layak, yakni kandidat tersebut bersama-sama dengan himpunan solusi yang sudah terbentuk tidak
melanggar kendala constraints yang ada. Kandidat yanglayak dimasukkan ke dalam himpunan solusi,sedangkan kandidat yang tidak
layak dibuang dantidak pernah dipertimbangkan lagi. 5.
Fungsi Obyektif, fungsi yang memaksimumkan atau meminimumkan nilai solusimisalnya panjang lintasan, keuntungan, dan lain-lain.
Algoritma greedy melibatkan pencarian sebuah himpunan bagian, S, dari himpunan kandidat, C, yang dalam hal ini, S harus memenuhi beberapa kriteria
yang ditentukan, yaitu menyatakan suatu solusi dan S dioptimasi oleh fungsi obyektif.
2.4.2 Langkah Algoritma Dijkstra