In trying to understand how to convert DCG's (Directed Cyclic Graphs) to DAG's (Directed Acyclic Graphs) without removing all the edges, I came across [this paper](http://www.m-hikari.com/ces/ces2015/ces17-20-2015/p/ariffinCES17-20-2015.pdf) which says:

> 
> Since the problem involves DCG, therefore a new algorithm to reduce the DCG into the form of a DAG should be proposed. **It is simpler when no cycle exists in a graph.** A DCGSimplify algorithm is presented to reduce the graph from DCG to DAG. 
> 
> 
> 

**Update**

I am wondering what advantages you gain by removing cycles from your data structure. For example, maybe it allows you to traverse it easier during graph matching, or it makes it so you can generate a graph covering of some sort that's not possible with cyclic graphs. Basically I have noticed many papers talk about DAG's, even in relation to CFGs (Control-Flow Graphs) and data-flow graphs, which in practice always have cycles. They restrict it to DAGs for some reason, and don't address Directed Cyclic Graphs, which CFGs and such are most of the time. Wondering why this is, what advantage does DAGs have from a mathematical perspective or computer science perspective.