检测周期在图
回答
从视图多个数学点:
输入:图形G =(V,E)
假设你的图形是不相交(有每两个顶点之间存在路径)
计算spanning tree T中的曲线图的(有容易的算法来做到这一点)
令E”是的一个子集E,它们不属于生成树T.对于E'中的每个边e,它对树的添加只产生一个单独的循环。让我们把所有这些循环置于集合B中。
我们在图中定义了一个binary cycle space循环。在该空间中,可以添加两个循环。加法仅仅是边缘上的独占总和。
循环组B是一个“循环基础”。在图形中,每隔一个周期可以形成为周期的线性组合B.
这样,你在你的图获得所有可能的周期。
警告:如果输入图有v顶点和Ë边缘则有2 ^(Ë - v +1)-1不同的周期!这相当多 - 你可能不想明确地写出所有这些。
我认为DFS会做你的工作怎么把我们纪念访问节点,如果我们发现该节点再有一个周期
这种方法是不正确的。就拿这个例子 '1 - > 2 2 - > 3 1 - > 3' 现在,在这种情况下,我们做的DFS(1)。这将会调用dfs(2)并将2标记为已访问。这将调用dfs(3)并将3标记为已访问。 现在DFS(3)将再次从节点1调用,因为它已经访问了,你会错误地推断,它的一个周期 – 2012-04-03 12:16:58
A BFS alg。也没关系。我相信它比DFS更容易实现,因为它将访问/访问节点保持在队列中。检查某个节点是否已经访问过很容易。
- 1. 图:在一个周期中检测周期
- 2. cp:检测到周期:
- 3. 使用sql检测周期
- 4. 在单向链表中检测周期
- 5. 插入期间检测周期
- 6. 在图中检测周期(使用三种颜色机制)
- 7. 在图中应用访问者模式来检测周期
- 8. JAXB:在对象图中检测到周期
- 9. 图:如何使用DFS检测非直接图中的周期
- 10. Hakyll说:“检测到依赖周期:...”
- 11. Angular 2自动更改检测周期
- 12. C#UWP工具包ImageEx周期检测
- 13. 使用DFS检测有向图中的周期?
- 14. Node.js:打印具有周期检测的对象图吗?
- 15. 如何检测定向图中周期的循环
- 16. 在无向图的DFS-XOR周期检测中去除假周期算法结果
- 17. 如何检测无向图中的周期,并在该周期中删除具有最大权重的边沿?
- 18. 这是在无向图中检测周期的最佳算法吗?
- 19. 检测连续添加边缘的在线图形中的周期?
- 20. 如何在Python中表示图形/树以及如何检测周期?
- 21. 在数据流中检测周期性重复
- 22. 在视频文件中检测周期,其中人物说话
- 23. 测量锯齿的周期
- 24. 测量时钟周期C#
- 25. 图片周期jQuery
- 26. 检查周日落在两个日期
- 27. BFS检测周期,其中它不应该是
- 28. 预防和/或检测周期中postgres的
- 29. SVN:检测到重定向周期的URL
- 30. 如何检测恒定周期的开始和结束?
我想那里的问题,虽然mared作为“回答”它没有正确回答。 – CygnusX1 2011-03-01 21:23:48
@Cygn这不是允许dups的理由。只要去那里,通过发表意见来“加热”这个问题,说明 – 2011-03-01 22:22:09
有一个实现来检测名为'networkx'的python库中的图中的所有周期。 **这真的很简单!** 我在下面的帖子中给出了详细的答案:http://stackoverflow.com/questions/546655/finding-all-cycles-in-graph/33956957#33956957 – fernandosjp 2016-10-28 14:18:10