我正在使用一个代表双人正常形式游戏(游戏理论)的特定图形结构。我知道我可以通过Tarjans计算O(V + E)中有向图的所有强连通分量,但是想知道计算强连通分量的所有简单周期的复杂性是什么? AND,如果给定定义强连通分量的顶点数量,这些简单循环的数量是否已知上限?
我正在寻找与这两个问题相关的任何文献/算法。谢谢!
答案 0 :(得分:2)
图表是指向还是未指示?
在任何一种情况下,循环数显然可以是节点/边数的指数。例如,在一个完整的图表中,每个可能大小的每个排列从2到
Johnson's algorithm(在有向图中)似乎是更有效的循环之一。鉴于您对强连接组件的周期感兴趣,实现甚至比本文中描述的更容易。论文中的伪代码有点难以阅读;这个Ocaml implementation可能更容易处理。该算法具有复杂度 O(n + e)(c + 1),其中 c 是图中的循环数。