Masalah-Algoritma-Floyd-Warshall

Algoritma Floyd-Warshall adalah algoritma untuk mencari lintasan terpendek pada sebuah graf berbobot dengan bobot positif atau negatif (namun tidak memiliki siklus negatif).

Sejarah

sunting

Algoritma Floyd-Warshall merupakan sebuah contoh penerapan dari pemrograman dinamis yang diperkenalkan oleh Robert Floyd pada tahun 1962. Namun, pada dasarnya memiliki kesamaan dengan algoritma yang pernah diperkenalkan sebelumnya oleh Bernard Roy pada tahun 1959 dan juga Stephen Warshall pada 1962.

Algoritma Floyd Warshall juga dikenal dengan Algoritma Floyd, Algoritma Roy-Warshall, Algoritma Roy-Floyd, dan algoritma WFI.

Algoritma

sunting

Algoritma Floyd-Warshall memiliki input graf berarah dan berbobot (V,E), yang berupa daftar titik (node/vertex V) dan daftar sisi (edge E). Jumlah bobot sisi-sisi pada sebuah jalur adalah bobot jalur tersebut. Sisi pada E diperbolehkan memiliki bobot negatif, akan tetapi tidak diperbolehkan memiliki siklus dengan bobot negatif. Algoritma ini menghitung bobot terkecil dari semua jalur yang menghubungkan sebuah pasangan titik, dan melakukannya sekaligus untuk semua pasangan titik. Algoritma ini berjalan dengan waktu Θ(|V|3).

Dasar algoritma ini adalah observasi berikut:

--belum diterjemahkan—Implementasi algoritma ini dalam pseudocode:

(Graf direpresentasikan sebagai matrix keterhubungan, yang isinya ialah bobot/jarak sisi yang menghubungkan tiap pasangan titik, dilambangkan dengan indeks baris dan kolom) (Ketiadaan sisi yang menghubungkan sebuah pasangan dilambangkan dengan Tak-hingga)


 function fw(int[1..n,1..n] graph) {
    // Inisialisasi
    var int[1..n,1..n] jarak:= graph
    var int[1..n,1..n] sebelum
    for i from 1 to n
        for j from 1 to n
            if jarak[i,j] < Tak-hingga
                sebelum[i,j]:= i
    // Perulangan utama pada algoritma
    for k from 1 to n
        for i from 1 to n
            for j from 1 to n
                if jarak[i,j] > jarak[i,k] + jarak[k,j]
                    jarak[i,j] = jarak[i,k] + jarak[k,j]
                    sebelum[i,j] = sebelum[k,j]
    return jarak
}

Aplikasi dan Generalisasi

sunting
  • Jalur terpendek dalam graf berarah (Algoritma Floyd).
  • Perhitungan cepat untuk menemukan rute terpendek dalam jaringan.

Implementasi

sunting

Referensi

sunting
  • Cormen, Thomas H. (1990). Introduction to Algorithms (Edisi first edition). MIT Press and McGraw-Hill. ISBN 0-262-03141-8. ;
    • Section 26.2, "The Floyd-Warshall algorithm", pp. 558–565;
    • Section 26.4, "A general framework for solving path problems in directed graphs", pp. 570–576.
  • Floyd, Robert W. (June 1962). "Algorithm 97: Shortest Path". Communications of the ACM. 5 (6): 345. DOI:10.1145/367766.368168.
  • Kleene, S. C. (1956). "Representation of events in nerve nets and finite automata". Dalam C. E. Shannon and J. McCarthy (ed.). Automata Studies. Princeton University Press. hlm. pp. 3–42.
  • Warshall, Stephen (January 1962). "A theorem on Boolean matrices". Journal of the ACM. 9 (1): 11–12. DOI:10.1145/321105.321107.

Pranala luar

sunting

📚 Artikel Terkait di Wikipedia

Algoritma

kata Latin-nya diubah menjadi algorithmus. Dalam bahasa Inggris, kata algorithm pertama kali digunakan pada sekitar tahun 1230 dan kemudian oleh Chaucer

Algoritme Floyd–Steinberg

putih menjadi hitam sehingga harus dihindari. Floyd, R. W.; Steinberg, L. (1976). "An adaptive algorithm for spatial grey scale". Proceedings of the Society

Daftar algoritme

number generators: Blum Blum Shub Mersenne twister Robinson-Schensted algorithm: korespondensi dan pasangan yang bijetif dari Young tableaux yang standar

Instagram

Hilary (29 Maret 2016). "Instagram Asks Everyone to Calm Down After Algorithm Uproar". Fortune. Diakses tanggal 29 April 2023. Patkar, Mihir (11 April

Daftar ilmuwan komputer

prover Jack E. Bresenham - Kontributor grafika komputer: Bresenham's algorithm Per Brinch Hansen ( "Brinch Hansen") - concurrency Fred Brooks - System

Pemrograman dinamis

Biofizika, 1978 Sep-Oct;23(5):932-46 Sniedovich, M. (2006), "Dijkstra's algorithm revisited: the dynamic programming connexion" (PDF), Journal of Control