Algoritmo aleatório sobre todos os tipos topológicos de um DAG?

Alguém sabe de um algoritmo aleatório para gerar um tipo topológico de um DAG, onde cada invocação do algoritmo tem uma probabilidade não-zero de gerarcada tipo topológico válido do DAG.

É crucial que o algoritmo não impeça qualquer tipo topológico válido, porque ele é parte de um algoritmo maior que, considerando iterações suficientes, deve ser capaz de explorar todos os tipos topológicos de um determinado DAG.

Alguém sabe se tal algoritmo foi desenvolvido?

(Alternativamente, se alguém souber de um algoritmo razoavelmente eficiente que garanta gerartodos tipos topológicos de um dado DAG, eu provavelmente posso ajustar isso para conseguir o que preciso.)