假设我有一个循环控制流程图
A -> B -> C -> D -> G
^ |
| v
F <------ E
每个节点都与成本相关联。
我还有一个状态变量,每次进入节点D时都会被修改。D -> E
和D -> G
的概率由此状态变量确定。
我想要的是枚举所有可能的路径(在某个状态P( D -> G) = 1
),并找出每条路径的概率和成本。第一步,我认为通过展开将具有状态变量的控制流图转换为有向非循环图。有一个简单的算法吗?任何可以提供帮助的库(如networkx)?
答案 0 :(得分:2)
我认为这不可能。
https://cs.stackexchange.com/questions/90481/how-to-remove-cycles-from-a-directed-graph
你可以通过删除所有边缘来制作非循环图。