无向图中的总周期数

时间:2014-02-13 16:57:17

标签: algorithm graph

给定具有N个顶点和M个边的无向图,我需要找到图中的循环数。但是有一个限制。

这是一个例子: 考虑这个图有6个顶点和7个边对: - A-B,B-C,C-F,A-D,D-E,E-F,B-E。

以下是更好理解的图片: enter image description here

那么这里应该计算2个周期,即A-B-E-D-A和B-C-F-E-B,而不是A-B-C-F-E-D-A

所以我需要在图表中找到总周期数。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找图表的cycle basis。您可以通过查找图形的任何生成树(例如DFS或BFS树)来实现。图的非树边表示循环基础:如果通过树的唯一路径连接端点,则会得到基础的元素。

因此,如果图形已连接,则基本元素的数量为m - n + 1(m =边数,n =节点数)。如果它没有连接,只需将其分解为连接的组件,并总结组件的基本元素的数量。你会得到像m - n + c这样的东西,其中c是连接组件的数量。因此,如果您对实际周期不感兴趣并且只对其计数感兴趣,则只需要找到连接组件的数量。您也可以使用DFS或BFS。