Tgo kelas d_tugas01_140-145-147-150 - copy

download Tgo kelas d_tugas01_140-145-147-150 - copy

of 138

  • date post

    31-Jul-2015
  • Category

    Education

  • view

    69
  • download

    1

Embed Size (px)

Transcript of Tgo kelas d_tugas01_140-145-147-150 - copy

1. Awalia Harfiani (5110100140)Anita Susanti (5110100145)Ika Astutik (5110100147)Luluk Eko Mawati (5110100150) 2. PENGERTIANAlgoritma Djikstra ditemukan oleh EdgsgerDjikstra pada 1956 dan dipublikasikan padatahun 1959. Algoritma ini merupakanalgoritma pencari yang menyelesaikanpermasalahan jarak terpendek (shortest pathproblem) untuk graf berarah dengan bobot-bobotsisi yang bernilai tidak negatif 3. PENGERTIANAlgoritma Dijkstra merupakan salah satuvarian bentuk algoritma populer dalampemecahan persoalan yang terkait denganmasalah optimasi. Sifatnya sederhana danlempang (straightforward). Sesuai dengan artigreedy yang secara harafiah berarti rakusalgoritma greedy ini hanya memikirkan solusiterbaik yang akan diambil pada setiap langkahtanpa memikirkan konsekuensi ke depan.Prinsipnya, ambillah apa yang bisa Andadapatkan saat ini (take what you can getnow!), dan keputusan yang telah diambil padasetiap langkah tidak akan bisa diubah kembali. 4. KONSEP DASAR Memecahkan permasalahan jarakterpendek (shortest path problem) Algoritma rakus (greedy algorithm Digunakan untuk sebuah graf berarah(directed graph) dengan bobot-bobot sisi(edge weights) yang bernilai tak-negatif Terdapat vertex sebagai start dan advertex sebagai tujuan Menggunakan metode spanning-tree 5. KONSEP DASAR Melibatkan pemasangan label untuksetiap vertex Pada setiap pembahasan, beberapaverteks mempunyai label sementara danyang lain mempunyai label tetap. 6. LANGKAH-LANGKAHMenentukan vertex mana yang merupakanstart dan vertex mana yang merupakan finish.Memberikan label permanen 0 pada vertexstartMemberi label temporer sesuai bobot sisiberarah yang berasal dari start untuk simpulyang bertetangga dan memberi labeltemporer pada vertex lainnya. 7. Memberikan label permanen pada vertex yangmempunyai label permanen terkecil.Memperhatikan vertex terakhir yang diberi labelpermanen, semua simpul yang bertetanggadengan vertex ini diberi label dengan Min{(labelpermanen+jarak antara vertex tersebut denganlabel permanen), label simpul sebelumnya}. Jika vertex akhir sudah memiliki label permanen,maka selesai.LANGKAH-LANGKAH 8. CONTOH PERMASALAHAN9Untuk bepergian dari satu lokasi ke lokasi lain, seringkali kita dihadapkanpada pemilihan alternatif rute perjalanan.Rangkaian alternatif rute perjalanan dapat dipandang sebagai sebuah graphdengan setiap edge-nya memiliki bobot berupa jarak, waktu atau biaya.Graph semacam ini disebut weighted graph. Dan banyak permasalahan dalamdunia nyata yang dapat dimodelkan dengan weighted graph.Isu permasalahan pada weighted graph umumnya berupa pencarianjarak/waktu/biaya minimal atau maksimal. 9. start finishCara 1 Cara 2 Cara 3 10. Cara 10* 11. 0*281Cara 1 12. 0*281*Cara 1 13. 0*281*10Cara 1 14. 0*281*10*Cara 1 15. 0*281*1310* 11Cara 1 16. 0*281*1310* 11*Cara 1 17. 0*281*13 1510* 11*Cara 1 18. 0*281*13 15*10* 11*Cara 1 19. 0*Cara 2 20. 0*281Cara 2 21. 0*2*81Cara 2 22. 0*2*813Cara 2 23. 0*2*813*Cara 2 24. 0*2*813*512Cara 2 25. 0*2*813*5*12Cara 2 26. 0*2*83*5*121 Cara 214 27. 0*2*83*5*121 Cara 214* 28. 0*Cara 3 29. 0*281Cara 3 30. 0*281*Cara 3 31. 0*281*10Cara 3 32. 0*28*1*10Cara 3 33. 0*148*1*13910Cara 3 34. 0*148*1*139*10Cara 3 35. 0*148*1*129*1315Cara 3 36. 0*148*1*12*9*1315Cara 3 37. 0*148*1*12*9*131421Cara 3 38. 0*148*12*9*14*1* 1322Cara 323 39. 0*148*12*9*14*1* 1322*Cara 323 40. 0*148*1*12*9*1314*22*2323Cara 3 41. 0*148*1*12*9*1314*22*2323*Cara 3 42. 0*148*1*12*9*1314*22*2323*Cara 3 43. 0*148*1*12*9*1314*22*27*23*Cara 3 44. KESIMPULAN Di antara tiga cara yang dilakukan padaalgoritma djikstra ini yang jarak terpendekditemukan pada cara ke dua dimana hanyamelewati 4 edge dan memiliki bobot palingsedikit yaitu 14,sehingga cara inilah yangdisebut shortest path pada masalah ini. 45. KELEBIHAN Pada algoritma djikstra total biaya akan terusmelakukan ekspansi sampai simpul tujuantercapai. Algoritma Djikstra dijamin menemukan jalurterpendek asalkan tidak ada bobot negatifpada setiap sisi dalam graph pencariannya. 46. KEKURANGAN Dijkstra tidak dapat mengatasi nilai negatifsebagai solusi terpendek untuk mencapainode dan membuat path yang diambilsemakin banyak. Algoritma Djikstra kemudian secara berulangmemilih simpul-simpul terdekat danmenghitung total bobot semua sisi yangdilewati untuk mencapai simpul tujuan 47. KEKURANGAN Karena djikstra melakukan perulangan hinggamenemukan jarak terpendek, maka waktueksekusi algoritma djikstra mempunyaikompleksitas. 48. HierarkiAlgoritma Bellman-Ford menghitung satu sumberjalur terpendek dalam graf berarah berbobot .Bellman-Ford digunakan terutama untuk grafikdengan bobot tepi negatif. Algoritma ini dinamai olehpengembangnya, Richard Bellman dan Lester Ford, Jr. 49. Konsep Dasar Kita harus menghitung jalur-jalur terpendek kesemua node dan mengambil yang kita mau. Ada literatur yang menyatakan bahwaalgoritma Bellman-Ford hanya digunakan jikaada sisi berbobot negatif, namun ada jugayang menyatakan bahwa algoritma ini jugabisa digunakan untuk edge berbobot positifmeski tidak seefisien algoritma djikstra. 50. Langkah-Langkah Memberi nilai jarak=0 pada node awal yang ingindicari jalur terpendeknya ke node yang lain danmemberi nilai tak hingga untuk node-node lain. Tarik jalur node awal ke node-node yangberhubungan langsung dengan node tersebut. Melakukan proses relaxing(menghubungkansuatu node dengan node lainnya, mencari nilaijaraknya, jika nilai jarak baru lebih kecil dari nilailama, maka yang digunakan adalah yang baru) 51. Langkah-Langkah Setelah proses relaxing selesai, nilai-nilai yangtertera di node-node adalah nilai jarakterpendek dari node awal. Memilih node mana yang ingin dihubungkandengan node sebelumnya. 52. Contoh Implementasi 53. Aplikasi Permasalahan 54. Aplikasi Permasalahan0* 55. Aplikasi Permasalahan20* 8 1 56. Aplikasi Permasalahan230* 8110 57. Aplikasi Permasalahan2100* 81910 58. Aplikasi Permasalahan0*2813610512Lewat atas 59. Aplikasi Permasalahan0*2813610512 1412Lewat atas 60. Aplikasi Permasalahan0*28136101912 1413Lewat atas 61. Aplikasi Permasalahan0*2813610512 1412Lewat atas 62. Aplikasi Permasalahan0*281314101311Lewat bawah 63. Aplikasi Permasalahan0*281314101311Lewat bawah 64. Aplikasi Permasalahan0*2813141012 1511Lewat bawah 65. Aplikasi Permasalahan0*2813141012 1511Lewat bawah 66. Aplikasi Permasalahan0*2813141012 1411Lewat bawah 67. Kelebihan & Kekurangan Algoritma bellman ford juga bisa digunakanuntuk mencari shortest path dalam graf yanghanya memiliki posotife edges, akan tetapitidak akan seefisien algortima djikstra. Algoritma Bellman-Ford dapat dipergunakandalam Graph yang memiliki edge negatif, tidakseperti Algoritma Djikstra 68. Kelebihan & Kekurangan Algoritma Bellman-Ford kurang efisien jikadigunakan dalam graph yang tidak mempunyaisisi negatif. 69. A* search algorithm adalah jaringan pencarianalgoritma yang mengambil jarak terpendek dari nodeawal ke node saat ini ditambah jarak node saat ini ketujuan.Cara penghitungan algoritma adalahf(x)=g(x)+f(x)Dimana :f(x)=jumlah g(x) dan h(x)g(x)=jarak terpendek yang sebenarnya dari node awalke node saat inih(x)=jarak node saat ini ke tujuan. 70. 1. Dimulai dari node awal,mempertahankanprioritas antrian node yang akan dilalui.Semakinrendah f(x) untuk node x tertentu,makasemakin tinggi prioritasnya.2. Pada setiap langkah algoritma,node dengan nilaiterendah dihapus dari antrian maka f dan h darinode tetangga diperbarui dan node iniditambahkan ke antrian.Algoritma berlanjutsampai node goal (tujuan ). 71. Menentukan posisi awal dan tujuan serta masing masingnode ke tujuan (h(x))h(x)=10,5 h(x)=9,5 h(x)=9h(x)=9 h(x)=8 h(x)=2)h(x)=12 h(x)=4,5 h(x)=41 72. 2Cek nilai f(x) untuk posisi awal dengan tetangganya kemudian ambil nilaif(x) yang terkecilh(x)=10,5 h(x)=9,5 h(x)=9h(x)=9 h(x)=8 h(x)=2)h(x)=12 h(x)=4,5 h(x)=4awaltujuan 73. Tidak perlu memeriksa node yang beradajauh dari node saat ini, jadi dalampengecekan pemilihan node hanyamembutuhkan node tetangga saja. 74. Memerlukan operasi matematika yangcukup rumit untuk memperoleh node yangdituju (node dengan f(x) yang palingrendah) 75. Suatu algoritma yang efisien untuk menemukan semua-pasanganjalur terpendek pada grafik. Artinya, dijaminuntuk menemukan jalan terpendek antara setiap pasangsimpul di dalam grafik. Algoritma ini juga dapat digunakan untuk mendeteksikeberadaan negatif siklus grafik-memiliki satu jika padaakhir algoritma, jarak dari simpul v ke dirinya sendiriadalah negatif. 76. Algoritma Floyd-Warshall menghitung jalurterpendek dari setiap node terhadap setiapnode yang lain dari sebuah grafik dalam O(V3)waktu. Algoritma ini akan menelusuri semua jaluryang mungkin dan memilih jalur yang dengannilai jarak terkecil. 77. Untuk setiap node, tentukan shortest path kesemua node yang lain. Untuk setiap shortest path ke sebuah nodetertentu, tentukan solusi optimal. Node yang paling banyak memiliki solusioptimal adalah node dengan tingkat closenesstertinggi. Algoritma ini bekerja dengan iteratif memilihvertek di grafik sebagai titik arah. 78. Jika dibuat dalam pseudocode, maka algoritmaFloyd-Washall akan bekerja dalam tahapansebagai berikut:Floyd-Warshall (W)1 n rows[W]2 D(0) W3 for k 1 to n4 do for i 1 to n5 do for j1 to n6 do dij(k) min ( dij(k-1), dik(k-1)+dkj(k-1) )7 return D(n) 79. Tidak ada nilai loop yang bernilai negatif,akan tetapai edge dengan nilai negatifdiperbolehkan. Penyelesaian biasanya dalam bentukmatriks nxn 80. shortestPath(i,j,k) =min(shortestPath(i,j,k1),shortestPath(i,k,k-1) +shortestPath(k,j,k-1)) 81. D(0)0 2 8 1 999 999 999 999 999 999 9992 0 6 999 1 999 999 999 999 999 9998 6 0 7 7 1 2 999 999 999 9991 999 7 0 999 999 9 999 999 999 999999 1 7 999 0 3 999 2 9 999 999999 999 1 999 3 0 4 999 6 999 999999 999 2 9 999 4 0 999 3 1 999999 999 999 999 2 999 999 0 7 999 9999 999 999 999 9 6 3 7 0 1 2999 999 999 999