Eindeutiger Pfad in einem gerichteten Diagramm


9

Ich entwerfe einen Algorithmus für eine Klasse, der bestimmt, ob ein gerichteter Graph in Bezug auf einen Scheitelpunkt eindeutig ist, so dass es für jedes u v höchstens einen Pfad von v nach u gibt . Ich habe zunächst BFS (Breitensuche) verwendet, um den kürzesten Pfad von v zu einem anderen Scheitelpunkt u zu finden, und dann BFS erneut ausgeführt, um festzustellen, ob ein alternativer Pfad von v zu u gefunden werden kann. Ich denke jedoch, dass dies zu zeitaufwändig ist. Hat jemand Hinweise, wie die Lösung mit einer kürzeren Ausführungszeit gefunden werden kann?vuvvu

Antworten:


9

Verwenden Sie BFS, um von v aus rückwärts zu arbeiten, und markieren Sie jeden Scheitelpunkt unterwegs als "besucht". Wenn Sie jemals einen zuvor besuchten Scheitelpunkt getroffen haben, verfügt Ihr Diagramm nicht über die Eindeutigkeitseigenschaft. Ansonsten ist es so.



2

Es ist eine einfache Änderung jeder Diagrammdurchquerung: Wenn Sie eine Kante zu einem zuvor markierten Knoten finden, haben Sie mehrere Pfade.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.