Lemma: V -> Y kenarı varsa ve Y de V'nin dolaylı ardılıysa (örneğin, V -> W -> + Y), o zaman V -> Y kenarı geçişlidir ve geçiş kökünün bir parçası değildir.
Yöntem: Terminalden başlangıç köşelerine ters topolojik sırayla çalışarak, her bir tepe noktasının geçişli kapanışını takip edin. V'nin dolaylı ardılları seti, V'nin yakın ardıllarının geçişli kapanışlarının birliğidir. V'nin geçişli kapanışı, dolaylı haleflerinin ve yakın ardıllarının birliğidir.
Algoritma:
Initialise Visited as the empty set.
For each vertex V of G,
Invoke Visit(V).
Visit(V):
If V is not in Visited,
Add V to Visited,
Initialise Indirect as the empty set,
For each edge V -> W in G,
Invoke Visit(W),
Add Closure(W) to Indirect.
Set Closure(V) to Indirect.
For each edge V -> W in G,
Add W to Closure(V),
If W is in the set Indirect,
Delete the edge V -> W from G.
Bu, köşe kümelerini (örneğin, bit haritaları) takip etmenin etkili bir yoluna sahip olduğunuzu varsayar, ancak bu varsayımın diğer O (V + E) algoritmalarında da yapıldığını düşünüyorum .
Potansiyel olarak faydalı bir yan etki, G'nin her bir tepe noktasının geçişli kapanışını bulmasıdır.