Anggota Kelompok :
ABSTRAK.............................................................................................................. 3
BAB I PENDAHULUAN......................................................................................... 4
3.1 Kesimpulan....................................................................................................... 41
ABSTRAK
Teori graph merupakan salah satu cabang dari ilmu matematika yang sering
digunakan dalam penyelesaian beberapa masalah dalam kehidupan sehari- hari.
Salah satunya adalah penyelesaian masalah lintasan terpendek. Lintasan
terpendek sangat aplikatif dalam berbagai hal, antara lain mencari rute
pendistribusian barang,rute taksi, rute sales, masalah tukang pos, dan lain-lain.
Makalah ini mengambil salah satu permasalahan yang telah disebutkan yaitu
mencari rute terpendek yang ditempuh oleh taksi Citra dalam mengantarkan para
konsumen dari suatu lokasi ke lokasi yang lain. Dalam menyelesaikan masalah
pencarian rute terpendek pada jalur yang ditempuh oleh taksi Citra dapat
digunakan beberapa algoritma pada shortest path yaitu Algoritma Djikstra,
Algoritma Floyd-Warshall, Algoritma Greedy, Algoritma Exhautis Search dan
Algoritma Perkalian Matrik. Untuk memahami algoritma-algoritma tersebut
diperlukan pemahaman tentang graph terhubung, graph berbobot, digraph
terhubung , matriks digraph, lintasan, dan lintasan terpendek.
Dalam laporan ini kami menentukan lintasan terpendek pada rute yang dilalui
taksi yaitu dari Terminal Arjosari ke Museum Brawijaya. Dengan mengasumsikan
bahwa terminal arjosari, museum brawijaya, dan setiap persimpangan sebagai
titik, jalur-jalur yang dapat dilalui sebagai sisi serta jarak antar setiap
lokasi/persimpangan sebagai bobot dan di buat suatu graph yang diselesaikan
menggunakan algoritma-algoritma pada shortest path serta alat bantu Giden,
Grin40 dan WINQSB diperoleh lintasan terpendek dari Terminal Arjosari menuju
Museum brawijaya yaitu dengan bobot 466 atau pada jarak sebenarnya adalah
9,32 km.
BAB I
PENDAHULUAN
1. LATAR BELAKANG
| E(G) | 8 .
graph G (V , E) yang setiap sisinya diberi bobot atau nilai. Jika (vi
8 10
9 7
c 7 d
Gambar 4: Graph berbobot
semakin banyak bobot yang diberikan, maka semakin akurat pula data
yang dihasilkan. Sehingga menghasilkan waktu yang efisien.
- Kekurangan algoritma Greedy:
o Algoritma greedy tidak beroperasi secara menyeluruh terhadap semua
alternatif solusi yang ada (sebagaimana pada metode exhaustive search).
o Pemilihan fungsi SELEKSI: Mungkin saja terdapat beberapa fungsi
SELEKSI yang berbeda, sehingga kita harus memilih fungsi yang tepat jika
kita ingin algoritma bekerja dengan benar dan menghasilkan solusi yang
benar-benar optimum. Karena itu, pada sebagian masalah algoritma
greedy tidak selalu berhasil memberikan solusi yang benar-benar optimum.
Contoh :
Permasalahan :
“Carilah jalur terpendek dari titik kuning ke titik biru”
Pilihan awal yang dipilih algoritma adalah a karena a lebih pendek daripada
d. Pilihan selanjutnya hanya satu sehingga tidak ada pilihan lain selain b.
Lalu ke c dan ke tujuan akhir. Maka jaraknhya adalah 10,5 Padahal jika
menggunakan jalur satu lagi sebesar 7. Begitu seterusnya Jika jarak a ke b
adalah 1000. Algoritma ini tidak bisa mundur, sehingga memilih b. Padahal
nilainya sangat besar. Disanalah kelemahan algoritma ini. Tetapi dengan
tidak pernah mundur ke tempat awal untuk mencari jalan alternatif. Algoritma
ini cepat dalam menyelesain pencarian lintasan tercepat.
2. Algoritma Djikstra
Strategi ini merupakan strategi yang paling terkenal untuk mencari lintasan
terpendek. Algoritma Dijkstra diterapkan pada graf berarah, tetapi selalu benar
untuk graf tak-berarah. Strategi ini menggunakan strategi Greedy sebagai
berikut: “Pada setiap langkah, ambil sisi yang berbobot minimum yang
menghubungkan sebuah simpul yang sudah terpilih dengan sebuah simpul
lain yang belum terpilih. Lintasan dari simpul asal ke simpul yang baru
haruslah merupakan lintasan yang terpendek diantara semua lintasannya ke
simpul simpul yang belum terpilih.”
Langkah-langkah dalam menentukan lintasan terpendek pada algoritma
Dijkstra yaitu:
1. Pada awalnya pilih titik dengan bobot yang terendah dari titik yang
belum terpilih, diinisialisasikan dengan „0‟ dan yang sudah terpilih
diinisialisasikan dengan „1‟.
2. Bentuk tabel yang terdiri dari titik, status, bobot dan [redecessor.
Lengkapi kolom bobot yang diperoleh dari jarak titik sumber ke
semua titik yang langsung terhubung dengan titik sumber tersebut.
3. Jika titik sumber ditemukan maka tetapkan sebagai titik terpilih.
4. Tetapkan titik terpilih dengan label permanen dan perbarui titik
yang langsung terhubung.
5. Tentukan titik sementara yang terubung pada titik yang sudah
terpilih sebelumnya dan merupakan bobot terkecil dilihat dari tabel
dan tentukan sebagai titik terpilih berikutnya.
6. Apakah titik yang tepilih merupakan titik tujuan? Jika ya, maka
kumpulan titik terpilih atau predecessor merupakan rangkaian yang
menunjukkan lintasan terpendek.
7. Begitu seterusnya sampai semua titik terpilih.
Contoh :
Dari graph diatas tenetukan lintasan terpendek dari titik A ke titik F ! Dengan
menggunakan program, diperoleh lintasan terpendek dari titk A ke titik F
sebagai berikut .
Diperoleh lintasan terpendek yaitu A-E-D-F dengan bobot total sebesar 22.
3. Algoritma Bellman-Ford
Algoritma Bellman-Ford merupakan algorima untuk mencari shortest path,
dengan menghitung jarak terpendek pada sebuah digraf berbobot, atau
menghitung semua jarak terpendek yang berawal dari satu titik node.
Langkah-langkah:
1. Tentukan vertex source dan daftar seluruh vertices maupun edges.
2. Assign nilai untuk distance dari vertex source = 0, dan yang lain
infinite
3. Mulailah iterasi terhadap semua vertices yang dimulai dari vertex
source,
4. Untuk menentukan distance dari semua vertices yang berhubungan
dengan vertex source dengan formula seperti berikut ini :
- U = vertex asal
- V = vertex tujuan
- UV = Edges yang menghubungkan U dan V
- Jika distance V, lebih kecil dari distance U + weight UV maka
distance V, diisi dengan distance U + weight UV
- Lakukan hingga semua vertices terjelajahi
5. Untuk mengecek apakah ada negative cycle dalam graf tersebut
lakukan iterasi untuk semua edges yang ada, kemudia lakukan penge-
cek-an seperti dibawah ini :
6. Untuk semua edges UV, jika ada distance vertex U + weight edges UV
kurang dari distance vertex V maka sudah jelas bahwa graf tersebut
memiliki negative cycle.
Contoh:
2 3 4 5
5.
750 700 702 700
Dari gambar di atas, dapat kita lihat bahwa daun yang masih hidup dengan
bobot minimum adalah simpul 12, sehingga kita akan mengekspansi simpul
tersebut. Karena tinggal tersisa satu simpul, maka dapat kita langsung ambil
simpul 14 dengan bobot : ĉ(10)= 718 + 0 + 0 = 718
Maka, gambar akhir pohon status yang kita peroleh adalah sebagai berikut:
Dari gambar di atas, maka kita dapat menyimpulkan bahwa rute dengan cost
minimum, dalam hal ini berarti rute terpendek, adalah melalui simpul 1-3-6-12-
14-1 yang berarti melalui Bandung-Sukabumi-Jakarta- Indramayu-
Tasikmalaya-Bandung. Untuk kota yang lain, kita dapat mencari rute
terpendek dengan cara yang sama, sehingga dengan demikian perjalanan
yang dilakukan dapat lebih efektif dan efisien mengingat jarak yang ditempuh
adalah minimum.
Oleh karena itu, ketika seekor semut menemukan jalur yang bagus
(jalur yang pendek) dari koloni ke sumber makanan, semut lainnya akan
mengikuti jalur tersebut, dan akhirnya semua semut akan mengikuti
sebuah jalur tunggal. Ide algoritma koloni semut adalah untuk meniru
perilaku ini melalui 'semut tiruan' berjalan seputar grafik yang
menunjukkan masalah yang harus diselesaikan.
Algoritma optimisasi koloni semut telah digunakan untuk menghasilkan
penyelesaian yang mendekati optimal pada masalah salesman yang
melakukan perjalanan. Algoritma semut lebih menguntungkan daripada
pendekatan penguatan tiruan (simulaten annealing) dan algoritma genetik
saat grafik mungkin berubah secara dinamis; algoritma koloni semut dapat
berjalan secara kontinyu dan menyesuaikan dengan perubahan secara waktu
nyata (real time). Hal ini menarik dalam routing jaringan dan sistem
transportasi urban.
6. Algoritma Floyd-Warshall
Algoritma ini digunakan untuk mencari lintasan terpendek. Masukannya
adalah matrik terhubung langsung graph berarah yang berlabel dan
keluarannya adalah lintasan terpendek dari semua titik ke semua titik.
Caranya dengan cara iterasi dari titik awalnya kemudian memperpanjang
lintasan dengan melihat titik demi titik. Hingga mencapai titik tujuan dengan
jumlah bobot seminimum mungkin misal W0 adalah matrik hubung graph
berarah b erlabel mula – mula w* adalah matrik hubung misal dengan Wi1
= lintasan terpendek dari Vi ke Vj.
7. Algoritma Genetika
Algoritma Genetika adalah salah satu algoritma metaheuristic yang biasa
digunakan untuk melakukan pencarian solusi yang paling optimal
(maximize atau minimize). Cara kerja algoritma ini mensimulasikan
fenomena dari evolusi alam. Intinya adalah, spesies yang paling unggul
akan memiliki kesempatan untuk bertahan hidup yang lebih besar. Konsep
dasar algoritma ini sebenarnya sederhana. Kromoson merepresentasikan
sebuah solusi potensial terhadap sebuah masalah. Proses pencarian solusi
potensial berikutnya dapat dibayangkan sebagai sebuah proses evolusi
terhadap populasi dari kromosom.
Pada saat proses pencarian solusi potensial berikutnya, algoritma ini akan
menselaraskan dua tujuan:
Eksploitasi solusi-solusi terbaik
Eksplorasi ruang pencarian
Keromantisan algoritma genetika terletak pada dua tujuan tersebut.
Eksplorasi ruang pencarian ibaratnya seseorang yang sedang mencari
pasangan. Dia akan memperluas “ruang pencarian” ketika dalam proses
pencarian, tapi ketika sudah menemukan yang cocok, dia akan fokus
terhadap yang satu itu dan “mengeksploitasi” (dalam arti mencoba lebih
mengenal) pasangannya tersebut.
Tapi tentunya analogi tersebut tidak sepenuhnya cocok di dunia nyata.
Karena, algoritma genetika akan terus mencari pada ruang pencarian,
walau sudah menemukan solusi potensial, sampai menemukan kondisi
berhenti.
8. Algoritma SPF
Algoritma SPF itu sebenarnya sama dengan algoritma djikstra. Langkah-
langkah dari algoritma SPF akan dijelaskan sebagai berikut:
Tentukan simpul di mana kita mulai, biasa disebut node awal. Algoritma
SPF akan memberikan beberapa nilai jarak awal dan akan mencoba untuk
meningkatkan mereka langkah demi langkah.
1. Tetapkan untuk setiap node nilai jaraknya. Set nol untuk node awal dan
tak hingga untuk semua node lainnya.
2. Tandai semua node yang belum dikunjungi. Set node awal sekarang.
Untuk node saat ini, pertimbangkan semua tetangga belum dikunjungi
dan hitung jaraknya (dari node awal). Misalnya, jika saat ini node (A)
memiliki jarak 6, dan tepinya menghubungkan dengan node lain (B) yaitu
2, jarak ke B melalui A akan berupa 6+2 = 8. Jika jarak ini lebih kecil dari
jarak yang disimpan sebelumnya (tak terbatas di awal, nol untuk node
awal), timpa jarak.
3.Ketika kita mengingat semua tetangga dari node sekarang, tandai sebagai
yang dikunjungi. Node yang dikunjungi tidak akan diperiksa lagi; jarak yang
dicatat sekarang adalah final dan minimal.
4.Jika semua node telah dikunjungi, maka selesai. Jika tidak, set node yang
belum dikunjungi dengan jarak terkecil (dari node awal) sebagai “node
sekarang” berikutnya dan lanjutkan dari langkah 3.
9. Algoritma A*
Algoritma ini menghitung semua kemungkinan dan menyimpannya
sehingga jika setiap memilih jalan. Ia juga membandingkan dengan
jalan lain yang disimpan. Sehingga hasil pencarian lintasan
tercapat dengan mengunakan algoritma ini akan menghasilkan
hasil yang optimum. Namun karena ia terus membandingkan
algoritma ini memakan waktu yang cukup lama. Sehingga jika
simpulnya sangat banyak akan memakan waktu yang sangat lama.
Contoh:
http://www.google.co.id/url?sa=t&rct=j&q=algoritma%20djikstra&sourc
e=web&cd=3&ved=0CDUQFjAC&url=http%3A%2F%2Frep
ository.usu.ac.id%2Fbitstream%2F123456789%2F14038%2F1
%2F09E00633.pdf&ei=EFYvT6zAOMfnrAeyu5DsDA&usg=
AFQjCNEuzlBjmfDoCPJModd2GOX0M21bzw&cad=rja
BAB III
KESIMPULAN DAN SARAN
3.1 KESIMPULAN
Dari hasil Pengamatan dari kami dari shortest path tentang penyelesaian masalah
lintasan terpendek
Dengan Algoritma
1. Algoritma Greedy
Dengan menggunakan algoritma greedy didapatkan bobot total sebesar
13,38 km, tetapi hasil ini tidak optimal karena dengan menggunakan
algoritma yang lain didapatkan hasil dengan jarak yang lebih pendek.
Algoritma ini memiliki kelebihan yaitu cepat dalam proses pencarian lintasan
terpendeknya. Sedangkan kekurangannya yaitu tidak optimal dan ada
kemungkinan gagal dalam pencarian dan mungkin lintasan yang diperoleh
bukanlah yang terpendek.
2. Algoritma Floyd-Warshall
Dengan menggunakan algoritma ini didapatkan bobot antar titik dan lintasan
terpendek dari Terminal Arjosari ke museum brawijaya bobotnya adalah 466
atau pada jarak sebenarnya 9,32 km. Perhitungan pada algoritma ini harus
membuat matrik sebanyak titik pada graph. Namun, hasilnya optimum, dan
perhitungannya lebih mudah dari pada perkalian matriks.
3.2 Penutup