34
ALGORITMA MENCARI LINTASAN TERPENDEK DIJKSTRA, FLOYD-WARSHALL, dan BELLMAN- FORD oleh : Cut Agusniar (371994) Husna Gemasih (371982) Laili Wahyunita (371985)

Algoritma pencarian lintasan jalur terpendek

Embed Size (px)

Citation preview

Page 1: Algoritma pencarian lintasan jalur terpendek

ALGORITMA MENCARI LINTASAN TERPENDEKDIJKSTRA, FLOYD-WARSHALL, dan BELLMAN-

FORDoleh :

Cut Agusniar (371994)Husna Gemasih (371982)Laili Wahyunita (371985)

Page 2: Algoritma pencarian lintasan jalur terpendek

Point of overviewIntroduction of each algorithmsDetail and complexitySample case studi for each

algorithms

Page 3: Algoritma pencarian lintasan jalur terpendek

Permasalahan Pencarian Rute Terpendek Masalah rute terpendek berkaitan dengan penentuan

busur-busur yang hubungkan dalam sebuah jaringan yang secara bersama-sama membentuk jarak terdekat diantara sumber dan tujuan. Sehingga ada beberapa macam persoalan rute terpendek yang dapat dicari:1.Lintasan terpendek antara dua buah simpul

tertentu (a pair shortest path).2.Lintasan terpendek antara semua pasangan simpul

(all pairs shortest path).3.Lintasan terpendek dari simpul tertentu ke semua

simpul yang lain (single-source shortest path).4.Lintasan terpendek antara dua buah simpul yang

melalui beberapa simpul tertentu (intermediate shortest path).

Page 4: Algoritma pencarian lintasan jalur terpendek

DIJKSTRA ALGORITHM

Part 1

Page 5: Algoritma pencarian lintasan jalur terpendek

Introduction Dijkstra’s Algorithm

Ditemukan oleh Edger Dikstra.Algoritma pencarian dimulai dari titik

awak ke titik lainnya pada sebuah directed graph dengan bobot-bobot sisi yang bernilai positif.

Menurut Chamero, 2006:“algoritma Dijkstra merupakan alogoritma

yang paling sering digunakan dalam pencarian rute terpendek, dengan menggunakan simpul-simpul sederhana pada jaringan jalan yang tidak rumit.

Page 6: Algoritma pencarian lintasan jalur terpendek

Cont..Algoritma Dijkstra menggunakan prinsip

greedy dalam mencari solusi yaitu mencari solusi optimum pada setiap langkah yang dilalui.

Cara kerja algoritma ini hampir sama dengan algoritma BFS dengan antrian priority queue, jadi hanya simpul prioritas tinggi yang ditelusuri.

Algoritma ini membandingkan setiap nilai dari simpul pada satu level, dan akan dibandingkan lagi untuk rute yang baru.

Page 7: Algoritma pencarian lintasan jalur terpendek

Detail and complexity of Dijkstra Algorithm Secara umum urutan logika algoritma ini adalah sebagai berikut:1. Beri nilai bobot (jarak) untuk setiap titik ke titik lainnya, lalu

set nilai 0 pada node awal dan nilai tak hingga terhadap node lain (yang belum terisi).

2. Set semua node “Belum terjamah” dan set node awal sebagai “Node keberangkatan”.

3. Dari node keberangkatan, pertimbangkan node tetangga yang belum terjamah dan hitung jaraknya dari titik keberangkatan.

4. Setelah selesai mempertimbangkan setiap jarak terhadap node tetangga, tandai node yang telah terjamah sebagai “Node terjamah”. Node terjamah tidak akan pernah di cek kembali, jarak yang disimpan adalah jarak terakhir dan yang paling minimal bobotnya.

5. Set “Node belum terjamah” dengan jarak terkecil (dari node keberangkatan) sebagai “Node Keberangkatan” selanjutnya dan lanjutkan dengan kembali ke step 3

Page 8: Algoritma pencarian lintasan jalur terpendek

Cont..Kompleksitas algoritma Dijkstra adalah

O(n2), dengan n adalah jumlah simpul pada graf. Kompleksitas ini bisa diperbaiki dengan penggunaan struktur data senarai ketetanggaan (adjacency list) atau antrian prioritas (priority queue) untuk memperoleh kompleksitas O((m+n) log n

Page 9: Algoritma pencarian lintasan jalur terpendek

Sample case studi with Dijkstra Algorithm Menentukan rute terpendek untuk

perjalanan antar kota. Pada graph di bawah dengan menggunakan Dijkstra dapat dicari rute terpendek antara kota A ke kota C:

Page 10: Algoritma pencarian lintasan jalur terpendek

Cont..

Tahapan penulusuran jalur dengan DijkstraTahap 1:

Dari kota A, orang tersebut akan memilih kota F dengan bobot minimum dari kota A (30 km).

Tahap 2:Dari kota F, orang tersebut kemudian memilih kota Eyang memiliki bobot minimum dari kota F (26 km).

Tahap 3:Dari kota E, orang tersebut akan melanjutkanperjalanan ke kota D (satu-satunya simpul yangterhubung)

Tahap 4:Dari kota D, orang tersebut lalu melanjutkanperjalanan dan sampai ke kota C.

Page 11: Algoritma pencarian lintasan jalur terpendek

Cont.. Total jarak yang ditempuh oleh orang tersebut adalah = 97 km

dengan jalur (A – F – E – D – C). Dalamrepresentasi graf, warna merah pada sisi graf menunjuk ke jalur terpendekmenurut algoritma Dijkstra.

Kelemahan algoritma ini adalah semakin banyak titik akan semakin memakan waktu proses.

Jumlah titik menentukan tingkat efektifitas dari algoritma djikstra.

Page 12: Algoritma pencarian lintasan jalur terpendek

FLOYD-WARSHALL ALGORITHM

Part 1I

Page 13: Algoritma pencarian lintasan jalur terpendek

INTRODUCTION FLOYD-WARSHALL ALGORITHM

• Algoritma Floyd Warshall adalah salah satu cabang dari ilmu matematika yang salah satu fungsinya adalah untuk menyelesaikan masalah lintasan terpendek. • Dalam Algoritma Floyd terdapat fungsi (G=V,E) dengan G = graf yang merupakan kumpulan simpul (nodes) yang dihubungkan satu sama lain melalui sisi/busur (edges).

Page 14: Algoritma pencarian lintasan jalur terpendek

• Suatu Graf G terdiri dari dua himpunan yaitu himpunan V dan himpunan E. Verteks (simpul) : V = himpunan simpul yang terbatas dan tidak kosong. Edge (sisi/busur): E = himpunan busur yang menghubungkan sepasang simpul.

• Notasi graf: G(V,E) artinya graf G memiliki V simpul dan E busur.

CONT..

Page 15: Algoritma pencarian lintasan jalur terpendek

CONT..• Algoritma Floyd membandingkan semua kemungkinan lintasan pada graf untuk setiap sisi dari semua simpul.• Hal tersebut bisa terjadi karena adanya perkiraan pengambilan keputusan (pemilihan jalur terpendek) pada setiap tahap antara dua simpul, hingga perkiraan tersebut diketahui sebagai nilai optimal.• Algoritma Floyd yang menerapkan pemrograman dinamis lebih menjamin keberhasilan penemuan solusi optimum untuk kasus penentuan lintasan terpendek (single pair shortest path)• Algoritma ini berjalan dengan waktu Θ(V3).

Page 16: Algoritma pencarian lintasan jalur terpendek

SAMPLE CASE STUDI WITH FLOYD-WARSHALL ALGORITHM Misalkan terdapat suatu graf berbobot yang merepresentasikan kondisi keterhubungan antarkota di suatu daerah, dengan ilustrasi sebagai berikut. Misalkan seseorang akan melakukan perjalanan dari kota A ke kota C.

Page 17: Algoritma pencarian lintasan jalur terpendek

CONT..

Page 18: Algoritma pencarian lintasan jalur terpendek

CONT..

Page 19: Algoritma pencarian lintasan jalur terpendek

CONT..

Dari hasil pencarian jalur terpendek dari A ke C menggunakan algoritma Floyd-Warshall (pemrograman dinamis), ditemukan bahwa jarak terpendek dari A ke C adalah 74km dengan jalur (A – B – C).

Page 20: Algoritma pencarian lintasan jalur terpendek

BELLMAN-FORD ALGORITHM

Part III

Page 21: Algoritma pencarian lintasan jalur terpendek

Introduction Of Bellman-Ford AlgorithmDikembangkan Oleh Richard

Bellman dan Lester FordAlgoritma ini mirip dengan

algoritma Djikstra tetapi Algoritma ini mampu menghitung path yang memiliki bobot negatif, namun waktu yang dibutuhkan oleh algoritma ini lebih lama dari pada algoritma Djikstra.

Page 22: Algoritma pencarian lintasan jalur terpendek

Bellman-Ford AlgorithmAlgoritma Belman-Ford Yaitu Algoritma yang digunakan untuk menghitung jarak terpendek (shortest path) dari suatu graf berarah. Algoritma Bellman-ford sangat efisien digunakan jika ada sisi yang berbobot negatif.

Page 23: Algoritma pencarian lintasan jalur terpendek

Bellman-Ford Algorithm Cara kerja algoritma ini dalam mencari jarak

terpendek adalah dengan menghitung setiap kemungkinan node yang mengarah ke node tujuan tersebut.

algoritma Bellman-Ford mengembalikan sebuah nilai Boolean yang mengindikasikan apakah terdapat siklus berbobot negatif yang dapat dilalui oleh simpul awal atau tidak. Jika terdapat siklus negatif algoritma akam mengindikasikan bahwa tidak terdapat solusi shortest path dan jika tidak, maka algoritma akan menghasilkan shortest path beserta bobotnya.

Algoritma ini melakukan iterasi dalam setiap langkahnya sebanyak n-1, dimana adalah n jumlah node yang terdapat dalam graf. Dengan demikian kompleksitas algoritma ini cukup tinggi.

Page 24: Algoritma pencarian lintasan jalur terpendek

Bellman-Ford AlgorithmKompleksitas waktu dari

Algoritma Bellman-Ford ini dapat dinyatakan dengan notasi Big O(V.E), V adalah banyaknya sisi dan E adalah banyaknya titik.

Page 25: Algoritma pencarian lintasan jalur terpendek

Pseudocode Bellman-Ford Algorithm

Page 26: Algoritma pencarian lintasan jalur terpendek

Menghitung Algoritma Bellman-FordDisini kita akan menghitung jarak

(shortest path) terpendek dari atas hingga bawah.

Page 27: Algoritma pencarian lintasan jalur terpendek

Menghitung Algoritma Bellman-Ford

Langkah Pertama : terdapat tiga pilihan yaitu jalur 6, 4 dan 8. disini meskipun yang terkecil adalah 4, tetapi dalam Bellman-Ford memperhatikan juga solusi totalnya dan memperhatikan jalur negatif yang akan dilalui, jalur 6 dipilih karena kemudian hasilnya akan lebih sedikit dibandingkan jalur 4.

Page 28: Algoritma pencarian lintasan jalur terpendek

Menghitung Algoritma Bellman-Ford

Langkah kedua : kita pilih jalur -3 karena hasilnya akan lebih sedikit dibandingkan kita memilih jalur 3.

Page 29: Algoritma pencarian lintasan jalur terpendek

Menghitung Algoritma Bellman-Ford

Langkah ketiga : kita pilih jalur -4, sehingga sampai saat ini hasilnya -1, paling sedikit dibanding kita memilih jalur-jalur yang lain.

Page 30: Algoritma pencarian lintasan jalur terpendek

Menghitung Algoritma Bellman-Ford

Langkah selanjutnya : kita memilih jalur -5, sehingga hasil akan lebih sedikit lagi yaitu -6.

Page 31: Algoritma pencarian lintasan jalur terpendek

Menghitung Algoritma Bellman-Ford

Disini terdapat dua pilihan jalur yaitu -2 dan -4, meskipun -4 lebih sedikit dan akan menghasilkan hasil yang lebih kecil dibanding kita memilih -2, namun harus kita perhatikan langkah selanjutnya, pada jalur -4 yang akan kita lewati akan terjadapat penjumlahan dengan 4, sehingga menghasilkan hasil akhir yaitu -6. sedangakan pada jalur -2, setelah kita melewati akan terdapat penjumlahan dengan 1, sehingga hasilnya -7, Ini jelas lebih kecil dari pada jalur lain.

Page 32: Algoritma pencarian lintasan jalur terpendek

Menghitung Algoritma Bellman-Ford

Inilah hasil akhir dari Algoritma Bellman-Ford.

Page 33: Algoritma pencarian lintasan jalur terpendek

References: Aprian, Raden.2007. 1 Perbandingan Algoritma Dijkstra dan

Algoritma Floyd-Warshall dalam Penentuan Lintasan Terpendek (Single Pair Shortest Path), Bandung.

Ramadhan, Fahmi, “Algoritma Bellman-Ford dan Floyd-Warshall”, Institute Teknologi Telkom.

Fauzi, Imam, 2011. “Penggunaan Algoritma Djikstra Dalam Pencarian Rute Tercepat dan Ruter Terpendek”. Teknik Informatika, UIN Syarif Hidayatullah, Jakarta.

Khairurrazi Budiarsyah, Dibi, 2010. “Algoritma Djikstra, Bellman-Ford, dan Floyd-Warshall Untuk Mencari Rute Terpendek dari suatu Graf”. Teknik Elektro dan Informatika, ITB. Bandung.

Page 34: Algoritma pencarian lintasan jalur terpendek

TERIMA KASIHEnd of Presentation