Lintasan Terpendek Shortest Path Algoritma A

Derajat setiap simpul i dapat dihitung dengan menghitung jumlah seluruh elemen pada baris i kecuali pada graf yang mengandung gelang. Jumlah elemen matriks bersisian adalah nm. Jika tiap elemen membutuhkan ruang memori sebesar p, maka ruang memori yang diperlukan seluruhnya adalah pnm. Pada gambar 2.10 memperlihatkan matriks bersisian untuk graf yang direpresentasikan. Dengan jumlah elemen matriks adalah 4 x 6 =24. Gambar 2.10. Graf kiri dan matriks bersisian kanan Sumber: Munir, 2012

2.9 Lintasan Terpendek Shortest Path

Lintasan terpendek merupakan persoalan optimasi. Graf yang digunakan dalam pencarian lintasan terpendek adalah graf berbobot weighted graph, yaitu graf yang setiap sisinya diberikan suatu nilai atau bobot. Bobot pada sisi graf dapat menyatakan jarak antar kota, waktu pengiriman pesan, ongkos pembangunan, dan sebagainya. Asumsi yang digunakan adalah bahwa semua bobot bernilai positif Munir. 2012. Ada beberapa macam persoalan lintasan terpendek, antara lain: 1. Lintasan terpendek antara dua buah simpul tertentu. 2. Lintasan terpendek antara semua pasangan simpul. 3. Lintasan terpendek dari simpul tertentu ke semua simpul yang lain. 4. Lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu. Permasalahan yang akan diselesaikan pada penelitian ini adalah bagaimana menentukan lintasan terpendek antara dua buah simpul verteks dimana bobot pada Universitas Sumatera Utara setiap edge graf digunakan untuk menyatakan jarak objek wisata di kota Binjai dengan persimpangan jalan dalam satuan meter m. Sehinngga penggunaan teknik algoritma A dalam pencarian rute terpendek dapat ditentukan Joshi, 2014.

2.10 Algoritma A

Algoritma A merupakan salah satu jenis algoritma yang digunakan untuk menyelesaikan kasus yang berhubungan dengan path finding pencarian jalan. Dalam hasil pencariannya A dikatakan complete dan optimal. Algoritma A menggunakan cara pencarian secara Breatdth First Search, dimana pencarian dilakukan dengan cara melebar ke setiap node pada level yang sama, dan nantinya akan menemukan rute terbaik dari titik awal sampai tujuan. Algoritma A juga dilengkapi dengan suatu fungsi heuristik. Fungsi heuristik yang terdapat pada algoritma A digunakan sebagai optimasi dalam menentukan node tujuan yang akan dipilih. Russell, 2003. Algortima A merupakan algoritma breatdth-first search yang menggunakan fungsi heuristik yang kompleks untuk memilih path. Algoritma breatdth-first search selalu memperluas jalan untuk menuju node yang akan dilewati, tetapi tidak memperhitungkan cost ke simpul tersebut Coppin, 2004. Algoritma ini memeriksa node dengan menggabungkan gn, yaitu cost yang dibutuhkan untuk mencapai sebuah node dan hn yaitu cost yang didapat dari node ke tujuan Russell, 2003. Sehingga dapat dirumuskan sebagai: fn = gn + hn Keterangan: fn adalah estimasi total biaya cost sebuah jalur path dari node awal ke node tujuan goal melalui node n. gn adalah biaya cost yang dibutuhkan oleh sebuah jalur path untuk mencapai node n dari node awal. hn adalah estimasi biaya cost sebuah jalur path. Universitas Sumatera Utara Menurut Rudy 2007 Beberapa terminologi yang terdapat pada algoritma A adalah Starting point merupakan terminologi untuk posis awal sebuah benda. 1. Starting point merupakan terminologi untuk posis awal sebuah benda. 2. Simpul node merupakan petak-petak kecil sebagai representasi dari pathfinding. Bentuknya dapat berupa persegi, lingkaran maupun segitiga. 3. A merupakan simpul yang sedang dijalankan dalam algoritma pencarian jalur terpendek. 4. Open list merupakan tempat menyimpan data simpul yang mungkin diakses dari starting point maupun simbol yang sedang dijalankan. 5. Closed list merupakan tempat menyimpan data simpul sebelum A yang juga merupakan bagian dari jalur terpendek yang telah dihasilkan didapatkan. 6. Harga cost merupakan nilai dari fn. 7. Halangan unwalked merupakan sebuah atribut yang menyatakan bahwa sebuah simpul tidak dapat dilalui oleh A. 2.10.1 Fungsi Heuristic Algoritma A adalah algoritma pencarian yang menggunakan fungsi heuristik untuk menuntun pencarian rute, khususnya dalam hal pengembangan dan pemeriksaan node- node pada peta Kalsum. 2012. Ada beberapa penghitungan jarak yang sering digunakan dalam algoritma A, yaitu: 1. Jarak Manhattan Fungsi ini merupakan fungsi heuristik yang paling umum digunakan. Fungsi ini hanya akan menjumlahkan selisih nilai x dan y dari dua buah titik. Fungsi ini dinamakan Manhattan karena di kota Manhattan, Amerika, jarak dari dua lokasi umumnya dihitung dari blok-blok yang harus dilalui saja dan tentunya tidak bisa dilalui secara diagonal. Perhitungannya dapat ditulis sebagai berikut: hn = abs - + abs - Universitas Sumatera Utara Dimana hn merupakan perkiraan cost dari node n ke node tujuan yang dihitung dengan fungsi heuristik. Variable merupakan koordinat x dari node asal, sedangkan variabel merupakan koordinat y dari node asal. Variabel merupakan koordinat x dari node tujuan dan merupakan koordinat y dari node tujuan. Nilai dari hn akan selalu bernilai positif. 2. Jarak Euclid Heuristik ini akan menghitung jarak berdasarkan panjang garis yang dapat ditarik dari dua buah titik. Perhitungannya dapat dituliskan sebagai berikut : Dalam kasus ini, skala relatif nilai g mungkin akan tidak sesuai lagi dengan nilai fungsi heuristik h. Karena jarak euclidian selalu lebih pendek dari jarak manhattan, maka dapat dipastikan selalu akan didapatkan jalur terpendek, walaupun secara komputansi lebih berat. 3. Jarak Euclidian Kuadrat Dalam beberapa literatur juga disebutkan jika nilai g adalah 0, maka lebih baik jika ongkos komputansi operasi pengakaran pada heuristik jarak Euclidian dihilangkan saja, menghasilkan rumus sebagai berikut : Fungsi heuristik sangat berpengaruh terhadap kelakuan algoritma A , yaitu: 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 ongkos 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. Universitas Sumatera Utara 3. Apabila hn tepat sama dengan ongkos 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 dari ongkos 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 Best First Search BFS. Dalam mengaplikasikan Algoritma A pada aplikasi ini, fungsi heuristik yang digunakan adalah jarak Euclid. 2.10.2 Cara Kerja Algoritma A 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 Kalsum. 2012. Dengan fungsi heuristik algoritma ini membangkitkan node yang paling mendekati solusi. Node ini kemudian disimpan suksesornya ke dalam list sesuai dengan urutan yang paling mendekati solusi terbaik. Kemudian, node pertama pada list diambil, dibangkitkan suksesornya dan kemudian suksesor ini disimpan ke dalam list sesuai dengan urutan yang terbaik untuk solusi. List node ini disebut dengan node terbuka open node. Node pada list bisa berasal dari kedalaman berapapun dari graph. Algoritma ini akan mengunjungi secara mendalam mirip Depth First Search DFS selama node tersebut merupakan node yang terbaik. Jika node yang sedang dikunjungi Universitas Sumatera Utara ternyata tidak mengarah kepada solusi yang diinginkan, maka akan melakukan runut balik ke arah node awal untuk mencari node lainnya yang lebih menjanjikan dari pada node yang terakhir dikunjungi. Bila tidak ditemukan juga, maka akan terus mengulang mencari ke arah node awal sampai ditemukan node 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. Pada gambar 2.11 merupakan flowchat dari algoritma A. Universitas Sumatera Utara Gambar. 2.11. Flowchart Algoritma A Universitas Sumatera Utara

2.11 Penelitian Terdahulu