Floyd Wharshall
Floyd Wharshall
Floyd-Warshall
Letivany Aldina/13514067
Program Studi Teknik Informatika
Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia
13514067@std.stei.itb.ac.id
Abstract—Algoritma Floyd-Warshall merupakan salah satu menggunakan matriks ketetanggaan antar simpul. Algoritma
jenis algoritma dalam program dinamis yang menyelesaikan ini juga menggunakan simpul-simpul intermediate untuk
permasalahan pencarian jalur terpendek. Prinsip penyelesaian memproses matriks ketetanggaan sehingga didapatkan seluruh
masalah dalam algoritma ini sama dengan algoritma pencarian
jarak terpendek untuk setiap pasangan simpul. Apabila terdapat
jalur terpendek lainnya dalam program dinamis, namun
algoritma ini menggunakan graf berbobot berarah dengan bobot n simpul, maka matriks tersebut diproses dari k = 1, k = 2,
sisi positif atau negatif, tanpa memiliki siklus negatif. Dalam sampai k = n. Kemudian untuk setiap matriks, diproses
makalah ini, akan dibahas bagaimana detail langkah strategi kembali berdasarkan simpul yang dijadikan simpul
yang digunakan dalam pencarian jalur terpendek menggunakan intermediate.
algoritma Floyd-Warshall ini. Pemrosesan satu matriks menggunakan rumus sebagai
berikut:
Kata kunci — Algoritma Floyd-Warshall, Matriks
ketetanggaan, Pencarian jalur terpendek, Program dinamis.
Ak[i,j] = min {Ak-1[i,j], Ak-1[i,k] + Ak-1[k,j]}
3 5 0
4 2 0
Kolom
Sehingga untuk k = 1, didapatkan elemen-elemen matriks A1
sebagai berikut:
A2 Kolom A2 Kolom
k=2 k=2
1 2 3 4 1 2 3 4
1 0 3 1 0 3 5 7
2 8 0 2 15 Baris 2 8 0 2 15
Baris
3 8 0 3 5 8 0 1
4 5 0 4 2 5 7 0
Rumus algoritma Floyd-Warshall yang digunakan pada Proses ketiga adalah untuk k = 3. Dibuat matriks baru A3.
proses ini adalah sebagai berikut: Proses yang sama dilakukan seperti pada langkah 1 dan 2,
dengan elemen yang sama adalah elemen pada baris ketiga dan
A2[i,j] = min {A1[i,j], A1[i,2] + A1[2,j]} kolom ketiga.
Rumus yang digunakan pada proses ini adalah sebagai Proses terakhir adalah untuk k = 4. Pada proses ini,dibuat
berikut: matriks A4 dengan elemen yang sama dengan elemen pada
matriks A3 adalah seluruh elemen pada baris keempat dan
A3[i,j] = min {A2[i,j], A2[i,3] + A2[3,j]} kolom keempat.
Baris 1 0 3 5 6
IV.PEMBANGUNAN JALUR TERPENDEK
2 5 0 2 3
Pada contoh persoalan yang telah dibahas pada bagian
sebelumnya, hasil yang didapatkan hanya berupa daftar bobot
3 3 6 0 1 terkecil untuk setiap pasangan simpul, namun tidak disebutkan
bagaimana lintasan yang ditempuh agar didapatkan bobot
4 2 5 7 0 terkecil tersebut. Terdapat dua cara agar didapatkan lintasan
yang ditempuh untuk mendapatkan jarak terpendek, yaitu
sebagai berikut.
A. Path reconstruction
Karena jumlah simpul pada graf contoh berjumlah 4 dan k Pada metode ini, kita dapat menginisialisasi terlebih
sudah mencapai proses keempat, maka elemen-elemen matriks dahulu sebuah matriks yang menyimpan jalur yang
pada A4 merupakan bobot terkecil sebagai jalur terpendek ditempuh antara dua simpul i dan j. Simpan bobot
antar pasangan simpul yang dapat ditempuh. lintasan terpendek baru antara simpul i dan j. Kemudian
simpan fakta bahwa lintasan terpendek antara i dan j
melewati simpul intermediate k. Berikut adalah pseudo-
Pasangan Simpul Jarak Terpendek code sederhana tentang bagaimana path reconstruction
ini diimplementasikan.
1-2 3
1-3 5
1-4 6
Sehingga apabila digabungkan, maka pseudo-code
2-1 5
sederhana untuk pencarian jalur terpendek menggunakan
2-3 2 algoritma Foyd-Warshall ini adalah sebagai berikut.
2-4 3
3-1 3
3-2 6
3-4 1
B. Transitive Closure
4-1 2
Pada transitive closure, pemrosesan graf akan
4-2 5 memberikan informasi yang lengkap mengenai seluruh
lintasan untuk seluruh pasangan simpul dengan bobot
4-3 7 terkecil. Sederhananya, berikut adalah pseudo-code untuk
transitive closure.
Sumber: www.cs.ucf.edu/~sarahb/.../DynProg_FloydWarshall.ppt
Bandung, 14 Mei 2018
V. CONCLUSION
Algoritma Foyd-Warshall merupakan salah satu metode
dalam program dinamis yang menyelesaikan all pairs shortest
path. Dengan algoritma ini, didapatkan seluruh bobot terkecil
untuk setiap pasangan simpul dalam sebuah graf lengkap
berarah. Namun, untuk mendapatkan lintasan terpendek dari
suatu pasangan simpul tertentu atau seluruh pasangan simpul,
dibutuhkan modifikasi pada dasar algoritma Foyd-Warshall
Letivany Aldina/13514067
atau menggunakan transitive closure.
VII. ACKNOWLEDGMENT
Dalam penyusunan makalah Strategi Algoritma ini, penulis
ingin menyampaikan rasa syukur kepada Tuhan Yang Maha
Esa atas berkah dan rahmat yang telah dilimpahkannya.
Penulis juga ingin menyampaikan terima kasih kepada orang
tua penulis yang selalu memberikan dukungan dalam berbagai
keadaan dan situasi. Penulis juga ingin menyampaikan terima
kasih kepada dosen-dosen pengajar mata kuliah Strategi
Algoritma yang telah mengajarkan pokok-pokok dan pondasi
dari desain dan analisis dalam mata kuliah Strategi Algoritma
ini. Penulis juga tidak lupa ingin menyampaikan terima kasih
kepada asisten-asisten mata kuliah Strategi Algoritma serta
rekan-rekan penulis yang telah banyak membantu dan memberi
arahan selama perkuliahan Strategi Algoritma ini berlangsung.
REFERENCES
[1] http://www.cs.ucf.edu/~dmarino/ucf/cop3503/lectures/
[2] http://www.cs.umd.edu/~meesh/351/mount/lectures/lect24-floyd-
warshall.pdf
[3] http://home.cse.ust.hk/faculty/golin/COMP271Sp03/Notes/MyL15.pdf
[4] https://web.stanford.edu/class/cs97si/07-shortest-path-algorithms.pdf
[5] http://math.mit.edu/~rothvoss/18.304.1PM/Presentations/1-Chandler-
18.304lecture1.pdf
[6] Levitin, Anany. Introduction to The Design and Analysis of Algorithms
3rd Edition. United States of America: Pearson, 2012.
[7] Munir, Rinaldi. Diktat Kuliah IF2211 Strategi Algoritma. Bandung:
Program Studi Teknik Informatika, Sekolah Teknik Elektro dan
Informatika, Institut Teknologi Bandung, Januari 2009.