Doğrulanmamış bir grafik verildiğinde G = (V, E), iki rastgele köşe arasındaki toplam en kısa yol sayısını hesaplayan bir algoritma var mı? & v? Bence Dijkstra'nın algoritmasını kullanabiliriz.Doğrusal süre Grafik algoritması
0
A
cevap
0
Evet dijkstra kullanabilirsiniz. Herhangi bir düğüme toplam en kısa yol sayısını depolayan bir dizi oluşturun. Toplamı söyle. Tüm dizi üyesinin başlangıç değeri, s kaynağı olduğu toplam [s] = 1 dışında 0'dır.
Dijkstra döngüde, bir düğümün en küçük yolunu karşılaştırırken, karşılaştırmanın sonucu küçükse, bu düğümün toplam dizisini toplam geçerli düğüm sayısıyla güncelleştirin. eşitse, o düğümün toplam dizisini toplam geçerli düğüm sayısıyla ekleyin. Bazı değişikliklerle wikipedia alınan
yalancı kod: kendisi tarafından
function Dijkstra(Graph, source):
create vertex set Q
for each vertex v in Graph: // Initialization
dist[v] ← INFINITY // Unknown distance from source to v
total[v] ← 0 // total number of shortest path
add v to Q // All nodes initially in Q (unvisited nodes)
dist[source] ← 0 // Distance from source to source
total[source] ← 1 // total number of shortest path of source is set to 1
while Q is not empty:
u ← vertex in Q with min dist[u] // Source node will be selected first
remove u from Q
for each neighbor v of u: // where v is still in Q.
alt ← dist[u] + length(u, v)
if alt < dist[v]: // A shorter path to v has been found
dist[v] ← alt
total[v] ← total[u] // update the total array of that node with the number of total array of current node
elseif alt = dist[v]
total[v] ← total[v] + total[u] // add the total array of that node with the number of total array of current node
return dist[], total[]
İlgili konular
- 1. Yay Grafik algoritması Düğüm boyutu
- 2. Grafik algoritması Birleştirmeler, kesişir, çıkarır
- 3. tek geçişli kuvvet yönelimli grafik çizim algoritması
- 4. Johnson Algoritması grafiği açıklaması
- 5. Grafik serileştirme
- 6. Dijkstra'nın öncelik sırasına göre algoritması
- 7. Doğuştan doğrusal olmayan dağınık saçılma
- 8. C# dizi Doğrusal Arama
- 9. Java'da Ağırlıklı Doğrusal Regresyon
- 10. Doğrusal zamanda sıralama
- 11. R doğrusal modelden log
- 12. Haskell doğrusal cebir?
- 13. Android doğrusal hızlanma doğruluğu
- 14. CSS'de doğru doğrusal dönüşüm
- 15. doğrusal degrade köşegen gölge
- 16. Dijkstra'nın algoritması Neo4j'de Cypher
- 17. Randomize algoritması
- 18. Bant Genişliği Kullanılabilirliği Algoritması tasarımı
- 19. Artımlı grafik algoritmaları
- 20. Java grafik düzeni algoritmaları
- 21. Doğrusal ölçek yerine d3 kütlesi ölçeği kullanın
- 22. Bu teknik, doğrusal olmayan filtreleme değilse nedir?
- 23. "Doğrusal enterpolasyon" ne anlama geliyor?
- 24. Box2d: Maksimum olası doğrusal hız?
- 25. Doğrudan dijital sentezde doğrusal enterpolasyon
- 26. WinForms'de çok renkli doğrusal gradyan
- 27. Doğrusal yerleşime görünümler nasıl eklenir?
- 28. R Doğrusal Regresyonda Kategorik Değişken
- 29. ggplot2 içinde doğrusal çizgi çizilemiyor
- 30. Denklemlerin doğrusal olmayan sistemi Julia
Dijkstra'nın en kısa yolları vermeyecektir sadece bunu ran bir tepe ve diğer arasındaki herhangi * İki keyfi köşe * arasında sayılır. – Wildcard
teşekkürler. – 781850685
Olsa da beni anlamak biraz zaman aldı Evet, bu Dijkstra tek çorba en kısa yol algoritmasıdır. Ama sanırım soru, hiç keyfi olmayan iki rasgele köşe arasında en kısa yol bulma toplam sayısı ile ilgili. "Herhangi iki tepe noktası" için tasarlanmışsa, floyd-warshall algoritması bazı değişikliklerle kullanılabilir. Ve bu doğrusal değil. –