Rute terpendek yang dihasilkan oleh ketiga fungsi

advertisement
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.
Download