TUJUAN Membentuk suatu aplikasi pada perangkat mobile yang dapat menyajikan rute terpendek dari sebuah titik awal ke sebuah titik tujuan Dapat digunakan untuk membandingkan waktu eksekusi algoritme untuk masing-masing fungsi heuristik dalam pencarian rute terpendek dengan menggunakan algoritme A* RUANG LINGKUP 1. Peta yang digunakan adalah peta IPB. 2. Menggunakan algoritme A* sebagai algoritme untuk mencari rute terpendek. 3. Menggunakan tiga fungsi heuristik yaitu Manhattan, Euclidian dan Euclidian kuadrat. 4. Informasi yang disampaikan meliputi waktu eksekusi program, rute yang diperiksa untuk mencapai tujuan, dan rute yang dijadikan sebagai rute terpendek untuk mencapai tujuan. 5. Aplikasi pencarian rute terpendek ini dikembangkan menggunakan perangkat lunak Adobe Flash CS 3 Professional dan Adobe Device Central. MANFAAT • Memberikan kemudahan dalam pencarian rute terpendek untuk mencapai lokasi tujuan • Memberikan perbandingan hasil rute terpendek yang diperoleh dengan menggunakan tiga fungsi heuristik dalam algoritme A* Algoritme A* adalah algoritme pencarian graf / pohon untuk mencari jalur / rute dari satu titik awal ke titik tujuan menggunakan pendekatan heuristik h(x) Notasi yang digunakan oleh algoritme A* : f(n) = g(n) + h(n) f(n) = hasil penjumlahan dari g(n) dan h(n) g(n) = biaya / bobot dari node awal ke node n h(n) = perkiraan biaya dari node n ke node tujuan yang dihitung dengan fungsi heuristik fungsi A*(awal,tujuan) var himp_tertutup <- himp_kosong var q <- buat_antrian(awal) selama (q tidak kosong) { x = node ada di dalam q dengan nilai f terkecil if (x = tujuan) { ditemukan rute terpendek } hapus x dari q tambahkan x ke himp_tetutup untuk setiap y adalah node tetangga(x) { jika y ada dalam himp_tetutup atau y adalah unwalkable { continue } jika y belum ada pada q { tambahkan y pada q dan set nilai F,G,H } jika y terdapat pada q { periksa nilai G jika (Ada y yang memiliki nilai G terkecil) { ganti x dengan y, update nilai F,G,H } } } } FUNGSI HEURISTIK Jarak Manhattan (Manhattan Distance) h(n) = abs(tujuan.x – n.x) + abs(tujuan.y – n.y) Jarak Euclidian (Euclidian Distance) h(n) = ((tujuan.x – n.x) 2 + (tujuan.y – n.y) 2) Jarak Euclidian Kuadrat (Square Euclidian Distance) h(n) = (tujuan.x – n.x)2 + (tujuan.y – n.y)2 Analisis dan Definisi Kebutuhan Perancangan Implementasi Pengujian Analisis dan Definisi Kebutuhan • Pendefinisian kebutuhan berdasarkan studi pustaka dan literatur, meliputi teori graf, flash lite, konsep algoritme A* dan fungsi heuristik • Pencarian dan pengumpulan data yang dibutuhkan yaitu berupa Peta Perancangan • Pemodelan terhadap peta yang akan digunakan, sehingga dapat divisualisasikan pada perangkat mobile • Perancangan algoritme A* dan fungsi-fungsi heuristik yang digunakan Implementasi • Pemodelan peta dilakukan menggunakan perangkat lunak Adobe Flash CS 3 Professional • Pembuatan algoritme A* dan fungsi-fungsi heuristik menggunakan bahasa pemrograman actionscript 2.0 • Aplikasi yang dihasilkan akan diimplementasikan pada perangkat mobile menggunakan flash lite 2.0 Pengujian • Membandingkan waktu eksekusi dari masing-masing fungsi heuristik dalam mencari rute terpendek • Membandingkan jumlah node yang diperiksa oleh masing-masing fungsi heuristik • Membandingkan rute terpendek yang dihasilkan oleh masing-masing fungsi heuristik Analisis dan Definisi Kebutuhan Kebutuhan Data Kebutuhan Fungsional Analisis dan Definisi Kebutuhan Kebutuhan Data Peta kampus IPB Dramaga diperoleh dari Direktorat Fasilitas dan Properti IPB Peta diubah ke dalam bentuk grid Kebutuhan Fungsional Analisis dan Definisi Kebutuhan Kebutuhan Data Kebutuhan Fungsional Informasi mengenai rute terpendek yang dilalui Informasi mengenai waktu eksekusi dari fungsi heuristik Perancangan Perancangan Pemodelan Peta • Pembentukan matrik yang digunakan sebagai peta • Pembuatan tampilan peta pada layar mobile devices • Pengubahan data matrik menjadi grid peta Perancangan Algoritme A* dan Fungsi-fungsi Heuristik • Penentuan bobot jarak antar node • Penentuan node awal dan akhir untuk pencarian rute • Pemeriksaan terhadap node awal dan akhir • Penerapan fungsi heuristik yang berbeda dalam pencarian rute terpendek • Pembuatan animasi rute terpendek • Perhitungan waktu eksekusi, jumlah node yang diperiksa, dan node yang dijadikan rute terpendek Implementasi Pembentukan matrik yang digunakan sebagai peta myMap =[[1,1,1,0,1,1,0,1,1,1,1,1], [1,1,1,0,7,1,0,1,1,1,1,1], [0,0,0,0,0,0,0,0,0,0,1,1], [0,1,1,1,1,0,1,0,1,0,1,1], [0,1,1,1,1,0,1,0,1,0,1,1], [0,1,1,1,1,0,0,0,1,0,0,0], [0,6,1,1,1,0,1,1,1,0,1,1], [0,1,10,10,1,0,1,1,6,0,1,1], [0,1,10,10,9,0,1,1,1,0,0,0], [0,1,10,10,1,0,1,1,1,0,1,0], [0,1,1,1,10,0,0,0,0,0,1,0], [0,1,1,5,1,1,1,1,1,0,8,0], [0,0,0,0,0,0,0,0,0,0,0,0], [1,1,1,1,1,0,1,1,1,1,1,1], [1,1,1,1,1,0,1,1,1,1,1,1]]; Pengubahan data matrik menjadi grid peta wholemap.attachMovie("tile","t_"+i+ "_"+j,i*mapWidth+j); wholemap["t_"+i+"_"+j]._x=j* tileW; wholemap["t_"+i+"_"+j]._y=i* tileH; wholemap["t_"+i+"_"+j].gotoAndStop(myMap[i][j] + 1); Penentuan node awal dan akhir untuk pencarian rute fapetAwal_btn.onPress = function() { xAwal = 0; yAwal = 6; _parent.awal = "Fapet"; } rektoratAkhir_btn.onPress = function() { xAkhir = 3; yAkhir = 12; _parent.tujuan = "Rektorat"; } Pencarian rute terpendek menggunakan fungsi heuristik berbeda • Fungsi heuristik Manhattan var hval = Math.abs(ClickA[0]- adjX) + Math.abs(ClickA[1]- adjY); • Fungsi heuristik Euclidian var hval = Math.sqrt(((ClickA[0]- adjX)*(ClickA[0] - adjX)) + ((ClickA[1] adjY)*(ClickA[1]- adjY))); • Fungsi heuristik Euclidian Kuadrat var hval = ((ClickA[0] - adjX)*(ClickA[0] - adjX)) + ((ClickA[1] - adjY)*(ClickA[1] adjY)); Pengujian • Tahap pengujian untuk mencari rute terpendek dibagi menjadi 12 rute : 1. Rute rektorat – fakultas pertanian 2. Rute rektorat – fakultas peternakan 3. Rute rektorat – perpustakaan pusat IPB 4. Rute fakultas pertanian – rektorat 5. Rute fakultas pertanian – perpustakaan pusat IPB 6. Rute fakultas pertanian – fakultas peternakan 7. Rute fakultas peternakan – rektorat 8. Rute fakultas peternakan – perpustakaan pusat IPB 9. Rute fakultas peternakan – fakultas pertanian 10. Rute perpustakaan pusat IPB – rektorat 11. Rute perpustakaan pusat IPB – fakultas pertanian 12. Rute perpustakaan pusat IPB – fakultas peternakan Pengujian Waktu eksekusi dari masing-masing fungsi heuristik dalam menemukan rute terpendek (Time) Banyaknya node yang diperiksa untuk menemukan rute terpendek (Nodes) Rute terpendek dari node awal ke node akhir (Shortest_P) Pengujian rute Rektorat • Rute terpendek yang dihasilkan oleh ketiga fungsi heuristik adalah Rektorat-fakultas pertanian Rektorat-perpustakaan pusat IPB Rektorat-fakultas peternakan Manhattan 11 14 9 Euclidian 11 14 9 Euclidian kuadrat 11 14 9 • Jumlah node yang diperiksa untuk menemukan rute terpendek Pemeriksaan node dengan menggunakan fungsi heuristik Euclidian kuadrat lebih sedikit dibandingkan dengan fungsi heuristik lainnya Rektorat-fakultas pertanian Rektorat-perpustakaan pusat IPB Rektorat-fakultas peternakan Euclidian kuadrat 16 21 10 • Waktu pencarian tercepat dihasilkan oleh fungsi Euclidian kuadrat, yaitu : Rektorat-fakultas pertanian Rektorat-perpustakaan pusat IPB Rektorat-fakultas peternakan Percobaan 1 110 ms 159 ms 82 ms Percobaan 2 110 ms 163 ms 82 ms Percobaan 3 111 ms 160 ms 80 ms Pengujian rute Fakultas Pertanian • Rute terpendek yang dihasilkan oleh ketiga fungsi heuristik adalah Faperta-rektorat Faperta-perpustakaan pusat IPB Faperta-fapet Manhattan 11 9 18 Euclidian 11 9 18 Euclidian kuadrat 11 9 24 • Jumlah node yang diperiksa untuk menemukan rute terpendek Fungsi heuristik Manhattan menghasilkan nilai pemeriksaan terkecil pada rute fapertarektorat dan Fungsi heuristik Euclidian kuadrat menghasilkan nilai pemeriksaan terkecil pada rute faperta-perpustakaan pusat IPB dan faperta-fapet Faperta-rektorat Faperta-perpustakaan pusat IPB Faperta-fapet Euclidian kuadrat 23 13 36 Manhattan 20 17 48 • Waktu pencarian tercepat yang dihasilkan adalah sebagai berikut : Faperta-rektorat Faperta-perpustakaan pusat IPB Faperta-fapet Percobaan 1 142 ms 96 ms 290 ms Percobaan 2 142 ms 95 ms 290 ms Percobaan 3 143 ms 95 ms 290 ms Heuristik Manhattan Euclidian kuadrat Euclidian kuadrat Pengujian rute Perpustakaan Pusat IPB • Rute terpendek yang dihasilkan oleh ketiga fungsi heuristik adalah Perpustakaan pusat IPB -rektorat Perpustakaan pusat IPB-faperta Perpustakaan pusat IPB-fapet Manhattan 14 9 15 Euclidian 14 9 15 Euclidian kuadrat 14 9 15 • Jumlah node yang diperiksa untuk menemukan rute terpendek Fungsi heuristik Manhattan menghasilkan nilai pemeriksaan terkecil pada rute perpustakaan pusat IPB-faperta, dan fungsi heuristik Euclidian kuadrat menghasilkan nilai pemeriksaan terkecil pada rute perpustakaan pusat IPB-rektorat dan fapet Perpustakaan pusat IPB -rektorat Perpustakaan pusat IPB-faperta Perpustakaan pusat IPB-fapet Euclidian kuadrat 20 19 22 Manhattan 24 18 26 • Waktu pencarian tercepat yang dihasilkan adalah sebagai berikut : Percobaan 1 Perpustakaan pusat IPB -rektorat 148 ms Perpustakaan pusat IPB-faperta 122 ms Perpustakaan pusat IPB-fapet 168 ms Percobaan 2 150 ms 122 ms 168 ms Percobaan 3 149 ms 124 ms 169 ms Heuristik Euclidian kuadrat Manhattan Euclidian kuadrat Pengujian rute Fakultas Peternakan • Rute terpendek yang dihasilkan oleh ketiga fungsi heuristik adalah Fapet-rektorat Fapet-faperta Fapet-perpustakaan pusat IPB Manhattan 9 18 15 Euclidian 9 18 15 Euclidian kuadrat 9 24 23 • Jumlah node yang diperiksa untuk menemukan rute terpendek Fungsi heuristik Manhattan menghasilkan nilai pemeriksaan terkecil pada rute fapet-faperta dan fapet-rektorat, Fungsi heuristik Euclidian kuadrat menghasilkan nilai pemeriksaan terkecil pada rute fapet-perpustakaan pusat IPB dan rektorat Fapet-rektorat Fapet-faperta Fapet-perpustakaan pusat IPB Euclidian kuadrat 10 39 30 Manhattan 10 37 31 Euclidian 11 47 31 • Waktu pencarian tercepat yang dihasilkan adalah sebagai berikut Fapet-rektorat Fapet-faperta Fapet-perpustakaan pusat IPB Percobaan 1 82 ms 282 ms 218 ms Percobaan 2 82 ms 282 ms 221 ms Percobaan 3 82 ms 284 ms 219 ms Heuristik Euclidian kuadrat Manhattan Manhattan Berhasil membentuk aplikasi pencarian rute terpendek pada mobile devices menggunakan flash lite 2.0 Penggunaan fungsi heuristik pada algoritme A* sangat mempengaruhi dalam pencarian rute terpendek dan waktu eksekusi dari algoritme A* dalam menemukan rute terpendek Fungsi heuristik Euclidian kuadrat cenderung memiliki waktu pencarian yang lebih cepat dan jumlah node yang diperiksa juga lebih sedikit dibandingkan fungsi heuristik lain, tetapi tidak selalu menemukan rute terpendek Fungsi heuristik Manhattan cenderung memiliki waktu pencarian yang lebih cepat dan jumlah node yang diperiksa juga lebih sedikit dibandingkan dengan Euclidian Fungsi heuristik Manhattan dan Euclidian selalu menemukan rute terpendek untuk mencapai node tujuan Menggunakan algoritme pencarian rute terpendek yang lain dan membandingkan hasil yang diperoleh Menggunakan fungsi heuristik yang lainnya (diagonal distance dan breaking ties distance) Menggunakan peta asli tanpa dikonversi ke dalam bentuk grid Menggunakan bobot jarak yang sebenarnya dalam pencarian rute terpendek HATUR NUHUN MERCI BIEN MATUR NUWUN THANK YOU Kompleksitas waktu algoritme A* • Sangat bergantung dari fungsi heuristik yang digunakannya • Pada kasus terburuk, jumlah titik yang diperiksa berjumlah eksponensial terhadap rute terpendek • A* memiliki kompleksitas waktu polinomial apabila fungsi memenuhi kondisi berikut |h(x) – h*(x)| ≤ O(log h*(x)) Dimana h*(x) adalah biaya / jarak sebenarnya dari node awal ke node tujuan.