Penerapan Algoritma Greedy dan Simplified Memory-Bounded A* (SMA*) dalam Implementasi Pencarian Lintasan Terpendek dan Efisien berdasarkan Jalur dan Tarif Relatif Angkutan Kota (Angkot) Andra Septian Program Studi Ilmu Komputer, Fakultas Pendidikan Matematika dan Ilmu Pengetahuan Alam Universitas Pendidikan Indonesia, Bandung
[email protected] Abstrak Saat ini, di kota metropolitan khususnya, kebanyakan kota telah menyediakan sarana transportasi bagi umum. Kita sebagai pengguna tentu saja selektif dalam memilih jalur yang pendek dan efisien, tidak berliku-liku, menghemat waktu, dan menghemat ongkos tentunya. Algoritma Greedy dan SMA* ini merupakan algoritma pencarian yang dapat digunakan untuk mencari solusi yang dapat mendekati permasalahan tersebut, apalagi dengan banyaknya rute angkot yang berbeda-beda setiap jurusan angkot. Akan banyak sekali alternatif jalan dari tempat asal (initial state) menuju tempat tujuan ( goal state). Ditambah dengan relatifnya ongkos pergi yang ditawarkan masing-masing-masing angkot perjurusannya. Algoritma Greedy, tepatnya Greedy Best-First Search dan SMA* merupakan bagian dari metode Heuristic dalam algoritma pencarian. Karena dalam pengerjaannya, metode ini menggunakan suatu fungsi yang dapat menghitung biaya perkiraan dari suatu simpul tertentu menuju simpul yang lain. Dalam bahasan ini yang dijadikan variabel-variabel acuan diantaranya adalah jarak antar kota g(n) dan estimasi biaya h(n). Oleh karena itu dalam proses penger jaanya, analisis secara umum akan diterapkan mulai dari skema umum algoritma, ilustrasi gambar dan mapping rute jalan kota yang akan dibahas, tepatnya yaitu masing-masing daerah yang mewakili kota Bandung Timur sampai wilayah Utara tepatnya dari Ujungberung sampai UPI. Kata Kunci 1.
: Greedy, Simplified Memory-Bounded A*, Heuristic, Lintasan terpendek, Transportasi, Angkot
Pendahuluan
Penulis menggunakan motor untuk melakukan perjalanan, perinciannya adalah sebagai berikut.
Informasi yang akurat dan realistis sangat Penulis sering menggunakan jalur no. 4 (gambar 1.) dibutuhkan saat ini. Beberapa tahun ini perkembangan teknologi berkembang sangat pesat, karena faktor kecepatan jalur cepat atau fly over, tapi sehingga kebutuhan manusia akan informasi tersebut di bahasan kali ini kita akan mencari jalur terpendek semakin meningkat. Oleh karena itu dibutuhkan berdasarkan efisiensi naik angkot sesuai dengan waktu yang cepat untuk mencapai kebutuhan realita yang akhir-akhir ini sering diperbincangkan tersebut. algoritma pencarian merupakan suatu oleh masyarakat pengguna jasa angkutan umum. urutan langkah-langkah (program) yang tepat untuk Sayang sekali tidak ada jalur angkot dari fly over ke meningkatkan efisiensi waktu. Setiabudhi, oleh karena itu penulis akan asumsikan Seperti yang dijelaskan tadi, yang dimaksud efisien ada angkot untuk jalur tersebut untuk memudahkan dalam bahasan kali ini adalah mencari jalur angkot pengimplementasian dan pemahaman metode bagi terpendek dari wilayah Ujungberung yaitu wilayah para pembaca umum. penulis sendiri, sperti yang telah dialami langsung dalam bepergiannya hampir setiap hari dari rumah Sebagai contoh, berikut adalah rincian pengeluaran ke kampus yaitu ke daerah Setiabudhi kampus UPI motor berupa harga bensin juga jarak tempuh. Rincian berikut ini adalah pengeluaran yang biasa bandung. penulis lakukan ketika akan pergi ke kampus setiap Untuk mengsinkronkan materi jurnal dengan harinya. pengalaman pribadi penulis yang sangat berkaitan, Ujungberung ke UPI dapat ditempuh dengan jarak maka akan penulis asumsikan untuk keterangan gambar ilustrasi rute jalan dari Ujungberung ke UPI sekitar \u00b1 20 km. (gambar 1.).
20 km membutuhkan sekitar 1,3 liter bensin denganyang tepat sehingga dapat menemukan solusi terbaik harga bensin per liter adalah Rp. 4500 per liternya. dengan usaha yang minimal. Jadi untuk 1 liter didapatkan 1/1,3 x 20 = 15,38 km Ada dua metode yaitu : atau dibulatkan menjadi 15 km. Jadi dengan Rp. 1. Blind atau un-informed search (pencarian 4500 didapatkan jarak tempuh motor 15 km. Dengan buta atau tidak berbekal informasi) demikian, maka 1 km dapat kita tempuh dengan 2. Heuristic atau informed search (pencarian jumlah uang Rp. 300. dengan berbekal informasi). Berdasarkan perincian tadi, jika hanya dengan cara Metode yang akan diambil dalam bahasan kali ini seperti ini (pencarian jarak terpendek saja) akan dengan cepat didapatkan bahwa yang terpendeklah adalah heuristic. Karena dalam bahasan kali ini kita akan mendapatkan panduan lain yang bisa yang mempunyai harga terefisien. diperkiraan yaitu biaya estimasi tarif angkot. Oleh karena itu, pasti akan nada variabel lain yang akan membuat masalah harus dipecahkan kembali 2.2 Metode Pencarian Heuristic yaitu \u201ctarif angkot\u201d yang harganya selalu relatif Fungsi ini dikenal dengan fungsi yang menghitung (harga jauh atau dekat bisa berbeda-beda) biaya perkiraan dari suatu simpul tertentu menuju berdasarkan jalur dan tarif angkotnya masingsimpul tujuan. masing. Sebelum masuk ke pembahsan berikut adalah Kata Heuristic berasal dari sebuah kata kerja Yunani, heuriskein, yang berarti \u2018mencar i\u2019 atau mapping rute jalan dari Ujungberung ke UPI. \u2018menemukan\u2019. Dalam dunia pemrograman, sebagian Jalur-jalur yang memungkinkan dan yang saat ini orang menggunakan kata heuristic sebgai lawan kata dari algoritmik, dimana kata heuristic ini diartikan sering digunakan : sebagai \u2018suatu proses yang mungkin dapat menyelsaikan suatu masalah tetapi tidak ada jaminan 1. A\ue000B\ue000F\ue000G\ue000H\ue000J/I\ue000K\ue000 L 2. A\ue000C\ue000E\ue000G\ue000H\ue000J/I\ue000K\ue000 L solusi yang dicari selalu dapat ditemukan\u2019. Di bahwa dalam 3. A\ue000C\ue000E\ue000D\ue000H\ue000J/I\ue000K\ue000 L mempelajari metode-metode pencarian ini, 4. A\ue000D\ue000H\ue000J/I\ue000K\ue000L kata heuristic diartikan sebagai suatu fungsi yang memberikan suatu nilai berupa biaya perkiraan (estimasi) dari suatu solusi. 2. Pembahasan 2.1 Pencarian (Searching) Metode-metode yang termasuk ke dalam teknik Pencarian merupakan kegiatan mendefinisikan ruang pencarian ini antara lain adalah Greedy Best-First masalah untuk masalah yang dihadapai. Ruang Search dan Algoritma A* sebagai pembanding masalah ini dapat digambarkan sebagai himpunan untuk mencari solusi. keadaan (state) atau bisa juga sebagai himpunan rute 3. Metodologi dan Hasil Pembahasan dari keadaan awal (initial state) menuju keadaan 3.1 Best-First Search tujuan (goal state). Langkah kedua adalah mendefinisikan aturan produksi yang digunakan Sesuai dengan namanya, Best-First Search untuk mengubah suatu state ke state lainnya. Langkah terakhir adalah memilih metode pencarian membangkitkan simpul berikutnya dari sebuah
simpul (yang sejauh ini terbaik diantara semua leaf sebagai simpul terbaik. Artinya, CLOSED berisi nodes yang pernah dibangkitkan. Penentuan simpul simpul-simpul tidak mungkin terpilih sebagi simpul teraik dapat dilakukan dengan menggunakan terbaik (peluang untuk terpilih sudah tertutup). informasi berupa biaya perkiraan dari suatu simpul 3.1.1 Greedy Best-First Search menuju ke goal atau gabungan antara biaya sebenarnya dan biaya perkiraan tersebut. Biaya Greedy menurut bahasa inggris adalah rakus, tamak. perkiraan tersebutdapat diperoleh dengan Prinsip greedy: \ u 2 0 1 ctake what you can get now! \u201d. menggunakan suatu fungsi yang disebut fungsi Algoritma greedy membentuk solusi langkah per heuristic. langkah (step by step). Pada setiap langkah, terdapat banyak pilihan yang perlu dieksplorasi. Dalam bahasan jalur angkot ini, penulis akan Oleh karena itu, pada setiap langkah harus dibuat menggunakan fungsi yaitu f(n) dengan biaya perkiraan adalah h(n) sebagai tarif angkot dari satu keputusan yang terbaik dalam menentukan pilihan. simpul ke simpul lainnyadan biaya sebenarnya Berikut adalah langkah-langkahnya dalam adalah jarak dari stu simpul ke simpul lainnya g(n) menyelesaikan masalah jalur angkot yang terdapat seperti yang telah dituliskan dalam (gambar 1.). pada gambar 1. Terdapat dua jenis algoritma Best-First Search, yaitu : 1) Greedy Best_-First Search yang hanya memperhitungkan biaya perkiraan saja; dan 2) algoritma A* yang memperhitungkan gabuangan dua biaya, biaya sebenarnya dan biaya perkiraan. Secara umum berikut adalah pseudocode algoritma Best-First Search : 1. 2.
OPEN berisi initial state dan CLOSED masih kosong. Ulang sampai goal ditemukan atau sampai tidak ada nodes di dalam OPEN a. Ambil simpul terbaik yang ada di OPEN b. Jika simpul tersebut sama dengan goal, maka sukses c. Jika tidak, masukkan simpul tersebut ke dalam CLOSED d. Bangkitkan semua suksesor dari simpul tersebut e. Untuk setiap suksesor kerjakan : i. Jika suksesor tersebut belum pernah dibangkitkan, evaluasi sukseso tersebut, tambahkan ke OPEN, dan catat parent atau orang tuanya. ii. Jika suksesor tersebut sudah pernah dibangkitkan, ubah parentnya jika jalur melalui parent ini lebih baik daripada jalur melalui parent yang sebelumnya. Selanjutnya, perbarui biaya untuk suksesor tersebut dan nodes lain yang berada di level bawahnya.
Pada algoritma tersebut diatas, OPEN adalah senarai (list) yang digunakan untuk menyimpan simpulsimpul yang pernah dibangkitkan dan nilai heuristiknya telah dihitung tapi belum terpilih sebagai simpul terbaik ( best node). Dengan kata lain, OPEN berisi simpul-simpul yang masih memiliki peluang (peluangnya masih terbuka) untuk terpilih sebgai simpul terbaik. Sedangkan CLOSED adalah senarai untuk menyimpan simpul-simpul yang sudah pernah dibangkitkan dan sudah pernah terpilih
Rute A B F G H J/I K L A C E G H J/I K L A D E G H J/I K L A D H J/I K L
Didapatkan K L.
hasil
f(n) dalam ribuan 2+3+1.5+1.5+1.5/1.5+1.5/2+2 = 13/ 3.5 10.5 / 11 10.5 / 11 9 / 9.5
terbaik
yaitu
A D H J
Tetapi hasil ini hanya berdasarkan biaya saja tidak biaya perkiraan yang sebenarnya yaitu jarak antar state. Oleh karenanya, aka nada percobaan algoritma selanjutnya yaitu Algoritma A*. 3.1.2
dengan
Simplified Memory-Bounded A* (SMA*)
Algoritma ini merupakan variasi dari algoritma A*, yaitu algoritma pengembangan dari Best-First Search. Dengan algoritma ini, biaya yang diperhitungkan didapat dari biaya sebenarnya ditambah dengan biaya perkiraan. Dalam notasi matematika situliskan sebgai : f(n) = g(n) + h(n). Dengan demikian, perhitungan pun akan semakin Pada graph di atas simpul hitam merupakan simpul jelas. yang telah berada di CLOSED. Pada langkah ke-3, D mempunyai 2 simpul, untuk langkahnya yang pertama maka greedy akan memulainya dengan C dulu, karena nilai h(n) nya pun sama, oleh karena itu C terlebih dahulu yang akan masuk ke dalam CLOSED. Pada langkah ke-5, sampai sini algoritma harus mengecek kembali karena F dan H di OPEN sebelumnya, untuk melanjutkannya kembali harus dicek kembali apakah parent dari F dan H harus diganti untuk mencapai simpul yang efisien.
Dalam algoritma ini terdapt sebuah senarai Queue yang digunakan untuk memanipulasi antrian simpul yang terurut berdsarkan f-cost. Disini yang dimaksud f-cost adalah gabungan biaya sebenarnya dan biaya perkiraan, yang secara matematika dinyatakan seperti notasi pada A* tetapi mengalami sedikit modifikasi yaitu f-cost=g(n) + h(n).
Dan yang membuat penulis menggunkan algoritma ini adalah karena dalam perhitungan biaya akhirnya (di state akhir) akan selalu disertakan biaya sebenarnya mulai dari awal state, yaitu ∑ g(n) dari awal state sampai state tersebut menuju goal state Tetapi kemungkinan besar algoritma tidak akan hingga akhirnya menambah dengan biaya berjalan lancar mulai dari state ini, kemungkinan esimasinya (tarif terakhir angkot). goal state tidak akan tercapai karena algoritma akan berjalan ke state yang mempunyai nilai f-cost yang Berikut adalah langkah-langkahnya : terkecil saja sesuai dengan karakteristik greedy. Dalam graph seperti ini, untuk menuju goal state perlu dilakukan langkah dan pengecekan dan langkah yang berulang –ulang yang mengakibatkan greedy menjadi tidak efektif. Untuk melakukannya dengan greedy, diperlukan strategy greedy : Lintasan dibentuk satu per satu. Lintasan berikutnya yang dibentuk ialah lintasan yang meminimumkan jumlah jaraknya. Berikut adalah simpul-simpul yang memungkinkan untuk menuju goal state :
-
-
Ketrerangan : Pada langkah ke-3, sesuai dengan aturannya state di level yang lebih dangkal dan mempunyai f-cost lebih besar harus dihapus. tetapi C tidak langsung dihapus, karena akan dipakai dulu oleh E, karena pada state itu E mempunyai 2 simpul. Jika ada 2 simplu maka diambil simpul yang mempunyai nilai f-cost lebih kecil. Pada langkah ke-4, E dihapus karena mmpunyai lebih dari satu simpul, maka harus dipilih f-cost yang lebih kecil. Setelah suksesor baru dibangkitkan, ternyata F menjadi lebih besar dari suksesor bau tersebut, maka F harus dihapus. Penghapusan maksudnya adalah penghapusan dari queue tetapi tidak secara fisik dari memori (artinya masih ada dalam memori). Penghapusan simpul akan dilalukan sampai senarai penuh (f-cost(n-1)), misalkan memori komputer mampu menyimpan sampai 100 maka senarai akan menyimpannya sampai 99. Aturan-aturan SMA* : -
Jika mempunyai lebih dari satu simpul, maka pilih salah satu yang mempunyai f-cost terkecil. Jangan hapus dulu simpul tersebut sebelum mengeceknya terlebih dahulu, karena bisa jadi
simpul tersebut akan dipakai dulu oleh simpul yang lain. Jika hasil f-cost dari suksesor bau yang telah dibangkitkan hasilnya lebih kecil, maka suksesor-suksesor sebelumnya dihapus. Tetapi jika lebih besar, maka lanjutkan dulu pencarian ke suksesor yang lebih kecil, sebelum menghapus suksesor yang lebih besar tersebut. Jka menemukan state di level yang lebih dangkal, dan mmpunyai f-cost lebih besar, maka state tersebut juga harus dihapus.
menyelesaikan solusi sesuai dengan solusi yang telah ada. Sedangkan Greedy, selain tidak bisa diperhitungkan kebenaran biayanya, secara optimality greedy tidak dapat menemukan solusi yang terbaik. Karena memerlukan pengecekan langkah-langkah algoritma yang berulang-ulang, sehingga tidak menghemat waktu untuk menemukan solusi yang terbaik dari beberapa solusi berbeda yang telah terbentuk. Berbeda dengan A*, hasil akhir dapat didapatkan dengan perhitungan secara matematis yang terurut.
Dengan demikian, maka ditemukanlah alternatif yang hemat dan efisien, yaitu : A D H I K L atau
Jadi, meskipun greedy sudah terkenal dan favorit juga dapat dipercaya kemangkusan dalam beberapa jalur kasus optimasi pencarian, tetapi dalam kasus ini yaitu permasalahan graph dua arah dengan probabilitas goal state yang banyak, greedy dengan Greedy Best-First Search masih kurang efektif dibanding dengan Simplified-Memory A*.
Ujungberung Terminal Cicaheum Gasibu Siliwangi / Sabuga ITB Setiabudhi / Rumah Mode FO Universitas Pendidikan Indonesia (UPI) Dengan estimasi biaya sebagai berikut : Rp. 9000 untuk jarak 20,5 km.
Karena yang dijadikan variabel utama adalah jarak sebgai biaya sebenarnya, maka goal state pun akan memprioritaskan jarak terlebih dahulu yang harus menjadi sebgai lintasan terpendek.
Algoritma hanyalah algoritma, yaitu hanyalah sebuah proses yang ‘mungkin’ dapat menyelesaikan sebuah masalah. Seperti pengertian heuristik yang telah dijelaskan sebelumnya. Mungkin jika itu masalah perhitungan soal dapat diselesaikan. Tetapi jika itu masalah dunia nyata yang tidak akan lepas dari perubahan secara dinamis, solusi pun akan cepat bergantian.
Misalnya saja, mtentang mengapa dalam jurnal ini penulis memilih jalur fly over, padahal solusi efisien adalah lewat Siliwangi. Sebenarnya masih banyak Jika ingin melihat estimasi tarif angkot, dengan bahasan dari kemungkinan-kemungkinan yang metode ini data masih terurut sehingga bisa kita split terjadi di lapangan yang nantinya akan menjadi jalur yang sudah terbentuk,hasil yang mendekati variabl penghitung baru dalam penyelesaian masalah diantaranya adalah : ini, misalnya saja jenis kendaraan, dengan motor atau mobil, kecepatan bepergian juga akan Rp. 8500 untuk jarak 21 km. berpengaruh. Selain itu hal lain yaitu gangguanSesuai dengan fungsi awal, nilai yang akan gangguan teknis yang terjadi di lapangan misalnya saja macet, dengan macet waktu tempuh bepergian diutamakan yaitu jarak. pun akan berubah. 4.
Kesimpulan dan Saran
-
Completeness : Apakah metode tersebut menjamin penemuan solusi jika solusinya memang ada? Time Complexity : Berapa lama waktu yang diperlukan? Space complexity : Berapa banyak memori yang diperlukan? Optimality : Apakah metode tersebut menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi berbeda?
Oleh karena itu, pengembangan dan modifikasi Untuk mengukur performansi metode pencarian,algoritma dalam beberapa kasus sangatlah penting,, patut untuk dicoba. terdapat empat kriteria yang dapat digunakan, yaitu dan :
-
Berdasarkan ukuran performansi tersebut Algoritma A* bisa mengoptimalkan pencarian. Karena A* telah
Daftar Pustaka
[1] Suyanto, ST, Msc. Informatika, Bandung.
Artificial
Intelligence.
[2] Rinaldi Munir, Slide Presentation Algoritma Greedy. Bandung, 2008. [3] S. Novelianty P, Amelia Puspita, Akhmad Deniar, Solusi Travelling Salesmen Problem menggunakan Algoritma Greedy . Jurusan Teknik Informatika, STT Telkom [4] Taufiq Reza Ariyanto, Siwi Anggoro, Rakhmawati, Strategi Greedy pada Kasus Pencarian Lintasan Terpendek. Jurusan Teknik Informatika, STT Telkom [5] Yeni Kurniasari, Christina Rahmadhani, Firdah Tia Yuliana, Penerapan Algoritma Greedy. Jurusan Teknik Informatika, STT Telkom.