Lemma: यदि कोई किनारा है V -> Y और Y भी V का अप्रत्यक्ष उत्तराधिकारी है, (जैसे, V -> W -> + Y) तो धार V -> Y सकर्मक है और संक्रामक मूल का हिस्सा नहीं है।
विधि: टर्मिनल से प्रारंभिक कोने तक रिवर्स टॉपोलॉजिकल ऑर्डर में काम करते हुए, प्रत्येक शीर्ष के सकर्मक समापन का ट्रैक रखें। V के अप्रत्यक्ष उत्तराधिकारियों का समूह V के तात्कालिक उत्तराधिकारियों के सकर्मक बंदों का मिलन है। V का सकर्मक समापन इसके अप्रत्यक्ष उत्तराधिकारियों और इसके तत्काल उत्तराधिकारियों का मिलन है।
कलन विधि:
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.
यह मानता है कि आपके पास कोने के सेट (जैसे, बिट मैप्स) का ट्रैक रखने का कुछ कुशल तरीका है, लेकिन मुझे लगता है कि यह धारणा अन्य ओ (वी + ई) एल्गोरिदम में भी बनाई गई है।
संभावित रूप से उपयोगी साइड-इफेक्ट यह है कि यह जी के प्रत्येक शीर्ष के सकर्मक बंद को पाता है।