Ich habe den Algorithmus zum Finden der stark verbundenen Komponenten in einem gerichteten Graphen nachgelesen . Es werden zwei DFS-Suchvorgänge berücksichtigt, und im zweiten Schritt wird der ursprüngliche Graph G T transponiert .
Der Algorithmus ist der folgende:
- Führen Sie DFS auf (beginnend an einem beliebigen Startscheitelpunkt) und verfolgen Sie die Endzeiten aller Scheitelpunkte.
- Berechnen Sie die Transponierte,
- Führen Sie DFS auf , beginnend am Scheitelpunkt mit der letzten Endzeit, und bilden Sie einen Baum, der an diesem Scheitelpunkt verwurzelt ist. Sobald ein Baum fertiggestellt ist, fahren Sie mit der nächstnächsten Endzeit mit dem nicht besuchten Scheitelpunkt fort und bilden mit DFS einen weiteren Baum. Wiederholen Sie diesen Vorgang, bis alle Scheitelpunkte in G T besucht sind.
- Geben Sie die Eckpunkte in jedem vom zweiten DFS gebildeten Baum als separate, stark verbundene Komponente aus.
Meine Frage ist :
- Was ist die Intuition hinter diesem mittleren Schritt der Berechnung einer Transponierten?