Ich weiß, wie Dijkstra-Algorithmus funktioniert und dass es in der Zeit O (m + n log n) Zeit ausgeführt werden kann. Woher wissen wir, dass es keinen besseren Algorithmus für single-source kürzeste Pfade als diesen gibt?Woher wissen wir, dass der Dijkstra-Algorithmus der beste Single-Source-Algorithmus für kürzeste Pfade ist?
-1
A
Antwort
1
Der Dijkstra-Algorithmus ist nicht unbedingt der schnellste Algorithmus zum Berechnen der kürzesten Pfade aus einer Quelle in einem Diagramm. Wenn Sie zum Beispiel wissen, dass alle Kanten ganzzahlige Gewichte haben und annehmen, dass ein Maschinenwort groß genug ist, um eine dieser ganzen Zahlen zu enthalten, dann können Sie einen von Thorup entwickelten Algorithmus verwenden, der in der Zeit O (m + n) läuft ist asymptotisch schneller als Dijkstras Algorithmus. Wenn die Kanten ungewichtet sind oder wenn sie alle das gleiche Gewicht haben, dann tut dies ein einfaches BFS in der Zeit O (m + n).
Verwandte Themen
- 1. Woher wissen wir, welchen Beitrag der Kunde angefordert hat?
- 2. Der beste kürzeste Weg Algorithmus
- 3. Woher wissen wir, dass eine Pull-Anforderung mithilfe der API in GitHub genehmigt oder abgelehnt wird?
- 4. Preprocess kürzeste Pfade unter Konkurrenz
- 5. Woher wissen Sie, was Gem ist der richtige?
- 6. was ist der kürzeste Hash/
- 7. Woher wissen Sie, ob k für O (n^k) in der Subsetsumme konstant ist?
- 8. Wie kann man wissen, dass der Radiobutton nicht aktiviert ist?
- 9. Woher weiß ich, dass der Benutzer meine App deinstalliert?
- 10. Woher weiß man, für welchen Call der aktuelle Callback ist?
- 11. wissen, der Vorschlag ist geöffnet
- 12. gerichteter azyklischer Graph kürzeste Pfade innerhalb N Schritte
- 13. Woher weiß ich, dass FirebaseObjectObservable leer ist?
- 14. Woher weiß man, dass der Lib-GDX SoundManager abstürzt?
- 15. Woher wissen Sie, welches Fragment an welche Aktivität angehängt ist?
- 16. Wie berechnet man kürzeste Pfade aus einer Quelle mit OSRM?
- 17. Kürzeste Reisezeit von der Quelle zum Ziel
- 18. Was ist der beste Bildeingabetyp für Tesseract?
- 19. Was ist der beste Testautomatisierungsansatz für WatiN?
- 20. Wie können wir wissen, dass der Übergang von Activity Shared Elements ausgeführt wird?
- 21. Wie können wir wissen, dass eine Methode angewendet wird?
- 22. ist es möglich zu wissen, woher der Benutzer kommt, wenn er die Zurück-Taste benutzt?
- 23. Woher wissen Sie, dass primefaces selectBooleanCheckbox ausgewählt ist oder nicht Javascript verwendet?
- 24. Woher wissen Sie, wann Designmuster verwendet werden?
- 25. Was ist der kürzeste Weg zum Erstellen einer Datensatzliste?
- 26. Woher kommt der -DNDEBUG normalerweise?
- 27. Was ist der Pfadursprung für relative Pfade in Szene # getStylesheets()?
- 28. Was ist der beste/kürzeste Weg, um einen Iterable zu einem Stream in Dart zu konvertieren?
- 29. Was ist die kürzeste wahrnehmbare Verzögerung der Anwendungsantwort?
- 30. Was ist der beste Weg
Ist die Frage "woher wissen wir, dass Dijkstra-Algorithmus nicht schneller als das implementiert werden kann?" oder "woher wissen wir, dass dies der schnellstmögliche Single-Source Shortest Paths-Algorithmus für Graphen mit nichtnegativen Kantengewichten ist?" – templatetypedef
Woher wissen wir, dass dies der schnellstmögliche Single-Source-Algorithmus für kürzeste Pfade für Graphen mit nichtnegativen Kantengewichten ist? – AdamSMith