Definisi. Diberikan grafik dan dua simpul dan , itu masalah -shortest-paths adalah menemukan jalur sederhana terpendek antara dan di .
Perhatikan bahwa panjang jalur ini tidak harus sama, dan simpul dan tentu saja -terhubungan Saya bertanya-tanya apakah ada waktu linier (dalam hal dan ) algoritma untuk masalah ini.
Saya telah melihat beberapa makalah dalam literatur, seperti " Implementasi Baru Algoritma Loopless Ranking Ranking Yen " tetapi kompleksitas waktu sangat tinggi. Juga, makalah lain oleh Epstein " Menemukan jalur terpendek k " menyajikan algoritma yang menemukan jalur terpendek yang tidak harus jalur sederhana dengan waktu berjalan .
Apakah ada algoritma linear-waktu untuk -simple-shortest-paths problem?
Jawaban:
Pertama-tama, jawaban yang berlaku di sini sudah diberikan oleh Raphael dalam komentar untuk pertanyaan: " Mengingat bahwa kita bahkan tidak tahu bagaimana menemukan satu jalur terpendek sederhana dalam waktu linear, saya ragu. " Berikut ini, dengan demikian, saya akan menganggap Anda tertarik mengetahui tentang algoritma terbaik yang tersedia dalam keadaan saat ini. Berikut ini, saya menggambarkan ikatan kasus terburuk terbaik (sesuai pengetahuan saya) tetapi juga algoritma yang mungkin berjalan dalam waktu linier dalam beberapa kasus tertentu.
Tetapi sebelum menggambarkan perkembangan terbaru dalam keadaan seni, saya ingin menekankan pentingnya jalur sederhana dalam masalah khusus ini. Faktanya, banyak orang mengabaikan pentingnya persyaratan ini dan beberapa bahkan tidak memahaminya pada pandangan pertama.
Ketika menghitung jalur terpendek dari mulai titik ke titik tujuan, jalur optimal tentu sederhana , yaitu, tidak mengulangi simpul apa pun. Namun, saat komputasik jalur optimal, jalur kedua, ketiga, ... jalur terbaik mungkin tidak sederhana. Untuk membuktikannya, saya berikan di sini sebuah contoh yang telah sedikit diadaptasi dari Hershberger, Maxel & Suri, 2007:
Gambar ini menunjukkan digraf yang solusi optimalnya (dari titik sumbers ke titik tujuan t ) adalah path π1: ⟨ S , A , B , C, D , t ⟩ dengan biaya sama dengan 5. Jika jalur tidak harus sederhana, maka jalur optimal kedua dan ketiga adalah π2: ⟨ S , A , B , C, D , C, D , t ⟩ dan π3: ⟨ S , A , B , A , B , C, D , t ⟩ keduanya dengan biaya sama dengan 7. Namun, jika jalur harus sederhana, maka jalur optimal kedua dan ketiga akan menjadi π2: ⟨ S , F, T ⟩ dan π3: ⟨ S , G , t ⟩ dengan biaya 10 dan 11, masing-masing.
Diberikan grafikG ( V, E) dimana V adalah himpunan simpul dan ⟨ U , v ⟩ ∈ E, u , v ∈ V jika ada tepi antara simpul kamu dan v , keadaan terkini untuk masalah ini sejauh yang saya ketahui dijelaskan di bawah ini:
Peningkatan signifikan pertama untuk menyelesaikank masalah jalur optimal adalah algoritma Eppstein (Eppstein, 1998) yang berjalan di O ( | E| + | V| catatan| V| +k) . Namun, algoritma ini membutuhkan grafik untuk diberikan secara eksplisit.K∗ meringankan persyaratan ini dengan tetap mempertahankan kompleksitas yang rendah (Aljazzar & Leue, 2011) dan, di samping itu, memungkinkan penerapan heuristik yang dapat diterima. Dalam kedua kasus, output yang dihitung oleh algoritma ini tidak selalu merupakan jalur yang sederhana.
Dalam hal jalur diperlukan untuk menjadi sederhana, hasil terbaik adalah karena Yen (Yen, 1971, 1972), digeneralisasi kemudian oleh Lawler (Lawler, 1972), yang menggunakan struktur data modern dapat diimplementasikan dalamO ( k | V| ( | E| + | V| catatan| V| )) waktu terburuk. Dalam kasus grafik tidak terarah, Katoh, Ibaraki dan Mine (Katoh, Ibaraki & Mine, 1982) meningkatkan algoritma Yen untukO ( k ( | E| + | V| catatan| V| )) waktu. Sementara kasus terburuk asimptotik Yen terikat untuk pencacahank jalur terpendek sederhana dalam grafik terarah tetap tak terkalahkan (sekali lagi, sepengetahuan saya!), beberapa upaya telah dilakukan untuk mengungguli itu dalam praktik.
Salah satu karya tersebut adalah karena John Hershberger et al., Yang memperkenalkan algoritma jalur penggantian yang dikenal gagal hampir tidak ada. Alhasil, algoritma mereka memberikan kecepatan yang tumbuh secara linear dengan jumlah rata-rata tepi dik jalur terpendek tetapi, untuk beberapa kasus (sebagai grafik acak), peningkatan ini diminimalkan.
Semoga ini membantu,
Bibliografi
Aljazzar, H. & Leue, S. (2011).K∗ : Algoritma pencarian heuristik untuk menemukan k jalur terpendek. Kecerdasan Buatan, 175 (18), 2129-2154.
Eppstein, D. (1998). Menemukank jalur terpendek. Jurnal SIAM tentang Komputer, 28 (2), 652-673.
Hershberger, J., Maxel, M. & Suri, S. (2007). Menemukank jalur sederhana terpendek: Algoritma baru dan implementasinya. Transaksi ACM pada Algoritma, 3 (4), 45-46
Katoh, N., Ibaraki, T. & Mine, H. (1982). Algoritma yang efisien untukk jalur sederhana terpendek. Jaringan, 12, 411-427.
Lawler, EL (1972). Prosedur untuk menghitungk solusi terbaik untuk masalah optimasi diskrit dan penerapannya ke masalah jalur terpendek. Ilmu Manajemen, 18, 401-405.
Yen, JY (1971). Menemukank jalur loopless terpendek dalam jaringan. Ilmu Manajemen, 17, 712-716.
Yen, JY (1972). Algoritma lain untuk menemukank jalur jaringan tanpa loop terpendek. Prosiding Masyarakat Manajemen Operasi Riset ke-41 Amerika, 20.
sumber