将控制流图转换为有向非循环图

时间:2017-11-01 21:28:22

标签: graph-theory graph-algorithm control-flow control-flow-graph

假设我有一个循环控制流程图

A -> B -> C -> D -> G
     ^         |
     |         v
     F <------ E

每个节点都与成本相关联。 我还有一个状态变量,每次进入节点D时都会被修改。D -> ED -> G的概率由此状态变量确定。

我想要的是枚举所有可能的路径(在某个状态P( D -> G) = 1),并找出每条路径的概率和成本。第一步,我认为通过展开将具有状态变量的控制流图转换为有向非循环图。有一个简单的算法吗?任何可以提供帮助的库(如networkx)?

1 个答案:

答案 0 :(得分:2)

我认为这不可能。

https://cs.stackexchange.com/questions/90481/how-to-remove-cycles-from-a-directed-graph

  

你可以通过删除所有边缘来制作非循环图。