Reducción de bordes redundantes de un gráfico de dependencia

Tengo un DAG de dependencias que contiene muchos bordes redundantes (ver ejemplo a continuación). Quiero un algoritmo "rápido" (es decir, puede manejar un gráfico con varios miles de nodos / bordes) que encuentre un gráfico secundario mínimo. Por ejemplo: A -> B -> C A -> C en...