Ich weiß, dass es in O (V + E) mit topologischen Sortierung erfolgen kann. Aber ich denke, es kann auch in der gleichen Komplexität mit BFS getan werden.Können wir BFS (auf die optimale Weise) verwenden, um die kürzesten Pfade von einem Quellenknoten zu allen anderen Knoten in einem gewichteten gerichteten azyklischen Graphen zu finden?
Antwort
Die topologische Sortierung ist nichts anderes als dass es ein DFS-Lauf ist. Dann, wenn jeder Scheitelpunkt fertig ist, legen Sie ihn auf die Vorderseite einer verknüpften Liste. Es hat eine Laufzeit von O (V + E). Wie ich bereits sagte, ist es hier natürlicher, zu fragen "Können wir eine topologische Sortierung mit BFS machen?". Dies wurde bereits gestellt und beantwortet.
Wenn was du meinst ist nur BFS, dann würde ich nein sagen. Schauen Sie sich hierzu example an. Eine topologische Sortierung ist eine lineare Anordnung aller ihrer Ecken, so dass, wenn der Graph G eine Kante (u, v) enthält, u vor v in der Ordnung erscheint. Sie sehen in diesem Beispiel eine Kante von c nach d, aber d erscheint vor c. Ich denke, dass Sie BFS aktualisieren können, um die topologische Sortierung zu finden, aber es hat wieder die gleiche Komplexität wie das Ausführen von DFS. Ich würde Ihnen empfehlen, sich diesen Beitrag anzusehen Using BFS for topological sort
Vergessen wir für einige Zeit topologische Sortierung. Wenn ich die Breite der ersten Traversierung für eine DAG verwende, beginnend mit einem Quellknoten s, dann kann ich die kürzeste Entfernung zu allen anderen Knoten in O (V + E) Zeit finden, indem ich ein Entfernungs-Array (initialisiert mit Unendlich) aufrechterhalte und es aktualisiere Wir erhalten einen Wert kleiner als der aktuell gespeicherte Wert für einen Knoten. Wenn ich also auf meine ursprüngliche Frage zurückkomme, ist das nicht dieser Ansatz von gleicher Komplexität wie die Verwendung einer topologischen Reihenfolge zum Durchqueren von Knoten in einer DAG, um kürzeste Wege zu finden? –
- 1. Konvertieren gewichteten direkten zyklischen Graphen zu äquivalenten azyklischen Graphen
- 2. Warum ist die topologische Sortierung für den längsten Pfad in der gerichteten azyklischen Grafik erforderlich?
- 3. Algorithmus die Anzahl unterschiedlicher Pfade in einem gerichteten Graphen
- 4. Die Route zwischen 2 Knoten in einem gerichteten Graphen finden?
- 5. Algorithmus um Articulation Punkte in einem gerichteten Graphen zu finden
- 6. Effiziente Suche in einem gerichteten Graphen
- 7. Wie kürzesten Weg in einem gleich gewichteten Graphen
- 8. Suche nach Top 3 längsten Pfad in gerichteten azyklischen gewichteten Graphen
- 9. Alle möglichen Pfade von einem Knoten zum anderen in einem gerichteten Baum (igraph)
- 10. Sicheres Durchlaufen eines gerichteten azyklischen Graphen
- 11. Anzahl der kürzesten Pfade in einem Diagramm
- 12. Algorithmus für die BFS traveral eines acylic gerichteten Graphen
- 13. Kann man alle eingehenden Kanten zu einem Knoten in einem gerichteten Graphen finden?
- 14. Directed gewichteten Graph kürzesten Weg mit obligatorischen Knoten zu passieren
- 15. effiziente Art und Weise Grad der Trennung zwischen zwei Knoten in einem Graphen zu finden
- 16. Wie finde ich den kürzesten Pfad, der alle Knoten in einem gerichteten zyklischen Graphen abdeckt?
- 17. Wie berechnet man das Gesamtgewicht der Pfade von gerichteten gewichteten Graphen in DFS in einer Iteration?
- 18. effizienter Algorithmus 2-Stufen-Nachbarn für alle Knoten in einem gerichteten Graphen zu finden
- 19. Wurzel eines Baumes in einem gerichteten Graphen finden
- 20. Randomized Algorithmus für die Hamilton-Pfad in einem gerichteten Graphen
- 21. Finden der optimalen Reihenfolge aller Knoten, die in einem Graphen zu sehen sind
- 22. Den kürzesten Pfad mit FGL finden
- 23. Hinzufügen von Scheitelpunktattributen zu einem gewichteten Graphen in Python
- 24. welcher Algorithmus kürzesten Weg von einem Knoten auf einem anderen Knoten vom Typ X
- 25. Filtern von Knoten und Links eines erzwungen gerichteten Graphen basierend auf einem Klick auf die Schaltfläche
- 26. Gephi: Farbknoten nach einem Gewicht in einem spärlich gerichteten Graphen
- 27. Finde den kürzesten Pfad in einem gerichteten Graphen, der durch bestimmte Ecken verläuft
- 28. Können wir die Nachbarn aller Ecken in einem Graphen ohne eine Schleife mit R finden?
- 29. Warum können die Algorithmen von Prim oder Kruskal nicht in einem gerichteten Graphen verwendet werden?
- 30. Günstigster Pfad in einem bipartiden gewichteten Diagramm DFS/Greedy BFS
Können Sie mehr ausarbeiten, was meinst du mit (auf die optimale Weise)? Wenn das was du meinst ist die Komplexität dann ja. Eine topologische Sortierung ist die Anwendung von DFS, weshalb sie eine Komplexität von O (V + E) aufweist. Ich denke, es ist natürlicher zu fragen "Können wir eine topologische Sortierung mit BFS machen?". Diese Frage wurde bereits gestellt. – Abdulhakeem
Was ich meinte war, können wir einfach BFS verwenden, anstatt die Knoten in topologischer Reihenfolge zu besuchen. –