设G是包含周期的未加权有向图。我正在寻找一种算法,它可以找到/创建所有非循环图G',它由G中的所有顶点和G的边缘子集组成,只要小到足以使G'非循环。
更正式:所需算法使用G并创建一组非循环图S,其中S中的每个图G'满足以下属性:
背景:原始图G模拟元素之间的成对排序。由于图中的循环,这不能被用作对所有元素的排序。因此,最大非循环图G'应该模拟这种排序的最佳可能近似,试图尽可能多地考虑成对排序关系。
在一种天真的方法中,人们可以去除所有可能的边缘组合,并在每次移除后检查是否有空隙。在这种情况下,存在一个强烈分支的变异树,意味着时间和空间的复杂性。
注意:问题可能与生成树有关,您可以将G'图定义为一种定向生成树。但请记住,在我的场景中,G'中的一对边可能具有相同的起始或相同的结束顶点。这与literature中使用的定向生成树的某些定义冲突。
编辑:添加了与生成树相关的直观描述,背景信息和注释。
答案 0 :(得分:10)
此问题称为Feedback Arc Set。由于它是NP难的,因此您不太可能找到可扩展的快速算法。但是,如果您的实例很小,那么B. Schwikowski和E. Speckenmeyer撰写的文章“在枚举所有反馈问题的最小解决方案”中的算法可能会有效。
答案 1 :(得分:1)
答案 2 :(得分:0)
如果您的目标是在尽可能保留图层次结构(结构)的同时删除周期边(中断周期),这项工作可能会有所帮助:https://github.com/zhenv5/breaking_cycles_in_noisy_hierarchies