Algoritma Dijkstra Dan Floyd

  • Upload
    lanzi

  • View
    228

  • Download
    0

Embed Size (px)

Citation preview

  • 7/29/2019 Algoritma Dijkstra Dan Floyd

    1/3

    Algoritma Dijkstra dan Floyd-Warshall

    Lumayan, nie ilmu buat nambah Logika yang bakalan berguna di pemprograman, tipe analis.dimana berfungsi dalam penentuan keputusan, simak dulu deh tentan algoritma berikut.

    Algoritma Dijkstra, dinamai menurut penemunya,Edsger Dijkstra, adalah sebuah algoritma

    rakus (greedy algorithm) dalam memecahkan permasalahan jarak terpendek (shortest path

    problem) untuk sebuah graf berarah (directed graph) dengan bobot-bobot sisi (edge weights)

    yang bernilai tak-negatif.

    Misalnya, bila vertices dari sebuah graf melambangkan kota-kota dan bobot sisi (edge weights)

    melambangkan jarak antara kota-kota tersebut, maka algoritma Dijkstra dapat digunakan untuk

    menemukan jarak terpendek antara dua kota.

    Input algoritma ini adalah sebuah graf berarah yang berbobot (weighted directed graph) G dan

    sebuah sumbervertexs dalam G dan Vadalah himpunan semua vertices dalam graph G.

    Setiap sisi dari graf ini adalah pasangan vertices (u,v) yang melambangkan hubungan dari vertex

    u ke vertexv.

    Algoritma Floyd-Warshal

    Algoritma Floyd-Warshall memiliki input graf berarah dan berbobot (V,E), yang berupa daftar

    titik (node/vertex V) dan daftar sisi (edgeE). Jumlah bobot sisi-sisi pada sebuah jalur adalah

    bobot jalur tersebut. Sisi padaE diperbolehkan memiliki bobot negatif, akan tetapi tidak

    diperbolehkan bagi graf ini untuk memiliki siklus dengan bobot negatif. Algoritma ini

    http://id.wikipedia.org/wiki/Edsger_Dijkstrahttp://id.wikipedia.org/wiki/Edsger_Dijkstrahttp://id.wikipedia.org/w/index.php?title=Vertices&action=edit&redlink=1http://id.wikipedia.org/w/index.php?title=Vertex&action=edit&redlink=1http://id.wikipedia.org/w/index.php?title=Vertices&action=edit&redlink=1http://diazscript.files.wordpress.com/2010/05/dijksta_anim.gifhttp://id.wikipedia.org/w/index.php?title=Vertices&action=edit&redlink=1http://id.wikipedia.org/w/index.php?title=Vertex&action=edit&redlink=1http://id.wikipedia.org/w/index.php?title=Vertices&action=edit&redlink=1http://id.wikipedia.org/wiki/Edsger_Dijkstra
  • 7/29/2019 Algoritma Dijkstra Dan Floyd

    2/3

    menghitung bobot terkecil dari semua jalur yang menghubungkan sebuah pasangan titik, dan

    melakukannya sekaligus untuk semua pasangan titik.

    Contoh :

    Dari Titik F Menuju Titik C ada berapa cara :

    (|F|A|B|C) >91Km

    (|F|A|D|C) >107Km

    (|F|A|F|E|D|C) >114Km

    (|F|A|F|E|D|C) >114Km

    (|F|E|D|C) >80Km

    (|F|E|D|C) >80Km

    Nah, dengan algoritma Flody ini , kita dapat mendapatkan informasi yang sedemikian rupa untukkita timbang dan menentukan jalur yang paling efisien.

    PERBEDAAN

    1. Algoritma Dijkstra yang menerapkan prinsip greedytidak selalu berhasil memberikan solusi

    optimumuntuk kasus penentuan lintasan terpendek (single pairshortest path).

    2. Algoritma Floyd-Warshall yang menerapkanpemrograman dinamis lebih menjaminkeberhasilanpenemuan solusi optimum untuk kasus penentuanlintasan terpendek (single pair

    shortest path).

    Nah.. Kemudian apa sie kegunaan kedua algoritma tersebut ? ya.. mereka digunaka untuk

    memabntu dalam menetukan keputusan, manakah yang paling cepat dan mana yang palingefisien, dengan demikian algoritma tersebtu dapat kita gunakan dalam salah satu contoh

    PPC. dimana kita dapat menentukan waktu, titik kritis dan macam sebagainya.

    contoh contoh pengaplikasiannya

    1. Himpunan kandidat, C

    Himpunan ini berisi elemen-elemen yang memiliki peluang untuk membentuk solusi. Padapersoalan lintasan terpendek dalam graf, himpunan kandidat ini adalah himpunan simpul pada

    graf tersebut.2.Himpunan solusi, SHimpunan ini berisi solusi dari permasalahan yangdiselesaikan dan

    elemennya terdiri dari elemendalam himpunan kandidat namun tidak semuanyaatau dengan kata

    lain himpunan solusi ini adalahupabagian dari himpunan kandidat.3. Fungsi seleksiFungsi seleksi adalah fungsi yang akan memilihsetiap kandidat yang yang

    memungkinkan untukmenghasilkan solusi optimal pada setiap langkahnya.

  • 7/29/2019 Algoritma Dijkstra Dan Floyd

    3/3

    4. Fungsi kelayakanFungsi kelayakan akan memeriksa apakah suatukandidat yang telah terpilih

    (terseleksi) melanggarconstraint atau tidak. Apabila kandidat melanggarconstraint maka kandidat

    tidak akan dimasukkan kedalam himpunan solusi.5. Fungsi objektifFungsi objektif akan memaksimalkan ataumeminimalkan nilai solusi.

    Tujuannya adalahmemilih satu saja solusi terbaik dari masing-masinganggota himpunan solusi.