Yeniden yazılması gereken özel bir KSPA uygulaması var. Mevcut uygulama, pseudocode kabaca aşağıda açıklandığı gibi değiştirilmiş bir Dijkstra'nın algoritmasını kullanmaktadır. Öyle sanırım kenar silme stratejisini kullanarak KSPA olarak bilinir. (Ben grafik teorisinde bir acemiyim). i algoritması anlamak gibiHatasız grafikte KSPA için öneriler
Step:-1. Calculate the shortest path between any given pair of nodes using the Dijkstra algorithm. k = 0 here.
Step:-2. Set k = 1
Step:-3. Extract all the edges from all the ‘k-1’ shortest path trees. Add the same to a linked list Edge_List.
Step:-4. Create a combination of ‘k’ edges from Edge_List to be deleted at once such that each edge belongs to a different SPT (Shortest Path Tree). This can be done by inspecting the ‘k’ value for each edge of the combination considered. The ‘k’ value has to be different for each of the edge of the chosen combination.
Step:-5. Delete the combination of edges chosen in the above step temporarily from the graph in memory.
Step:-6. Re-run Dijkstra for the same pair of nodes as in Step:-1.
Step:-7. Add the resulting path into a temporary list of paths. Paths_List.
Step:-8. Restore the deleted edges back into the graph.
Step:-9. Go to Step:-4 to get another combination of edges for deletion until all unique combinations are exhausted. This is nothing but choosing ‘r’ edges at a time among ‘n’ edges => nCr.
Step:-10. The ‘k+1’ th shortest path is = Minimum(Paths_List).
Step:-11. k = k + 1 Go to Step:-3, until k < N.
Step:-12. STOP
, 'k-1' SPTs her kaynak-hedef çifti ve 'k-1' arasında bulunan edilecek, k'ıncı kısa yolu elde etmek için bir SPT her silinecekse kenarları her kombinasyon için eşzamanlı olarak. Açıkça bu algoritmanın kombinatoryal karmaşıklığı vardır ve sunucuyu büyük grafiklerde tıkar. İnsanlar bana Eppstein'ın algoritmasını önerdi (http://www.ics.uci.edu/~eppstein/pubs/Epp-SJC-98.pdf). Ama bu beyaz kağıt bir 'digraph' yazıyor ve ben sadece digraphlar için çalıştığını söylemedim. Bu algoritmayı doğrulanmamış bir grafikte kullanan biri varsa, buraya sadece buraya sormak istedim. Olumlu bir grafikte KSPA'yı uygulamak için iyi algoritmalar (zaman-karmaşıklık açısından) var mı? peşin
sayesinde
yönsüz grafikleri temelde doğru, iki katına her kenarı ile digraphs nelerdir? Bağlandığınız algoritma ile ilgili bir sorun olmamalıdır. –
Evet. Ancak, algo üzerinde çalışan bir kişi bana, doğrulanmamış grafikler üzerinde çalışmayabilen özel bir dağıtım tekniği kullandığını söyledi. Bu yüzden, birisinin gerçekten doğrulanmamış bir grafiğe uygulayıp uygulamadığını kontrol etmeyi düşündüm. Ama ben kontrol edeceğim. Uygulama devam ediyor ... – Abhay
Eppstein algoritması sadece asiklik grafikler üzerinde çalışıyor. Yönlendirilmemiş bir grafik, her iki yönde de kenarları olan yönlendirilmiş bir grafik olmasına rağmen, damıtma tekniği döngü nedeniyle başarısız olur. – Abhay