问题 具有最小违反边数的循环图的拓扑排序


我正在寻找一种方法来对给定的定向未加权图执行拓扑排序,其中包含循环。结果不仅应包含顶点的排序,还应包含给定排序违反的边集。这组边缘应该是最小的。

由于我的输入图可能很大,我不能使用指数时间算法。如果在多项式时间内无法计算最优解,那么对于给定的问题,启发式算法是否合理?


10358
2018-06-17 13:01


起源

这不是吗? 反馈弧集?您可以通过拓扑排序剩余DAG来获取订单。 - David Eisenstat
您是否也想要一个最小的解决方案(每个移除的弧将在DAG中完成一个循环)或最小解决方案(尽可能少地移除弧线)? - David Eisenstat
@DavidEisenstat实际上我并不太在意如果它或多或少是一个弧,我只需要单独处理它们。如果某些算法需要两倍的运行时间并且只找到一个弧度较少的解决方案,那么这将是不经济的。问题似乎是反馈弧设置,但在这种情况下这是NP难,所以我们需要一个近似值。 - orsg


答案:


Eades,Lin和Smyth提议 一种快速有效的反馈电弧设定启发式问题。原始文章是付费墙的背后,但可以免费获得 这里

有一种拓扑排序算法,通过选择一个没有传入弧的顶点,在图形上减去顶点的递归,并将该顶点预先添加到顺序来构建顶点顺序。 (我正在递归地描述算法,但你不必那样实现它。)Eades-Lin-Smyth算法也可以查找没有传出弧的顶点 追加 他们。当然,可能会发生所有顶点都有传入和传出弧。在这种情况下,选择传入和传出之间具有最高差异的顶点。毫无疑问,这里有实验的空间。

具有可证明的最坏情况行为的算法基于线性编程和图形切割。这些都很整洁,但是保证不太理想(log ^ 2 n或log n log log n倍于所需数量的弧),我怀疑有效的实现将是一个相当大的项目。


11
2018-06-17 14:50



这个问题时不时会收到很多观点,我只是偶然发现了论文,所以如果有人对大卫在最后一段中提到的近似算法感兴趣,他可能会提到“划分 - 和 - 通过传播度量来征服近似算法“由Even,Naor,Rao,Schieber,ACM杂志,Vol。 47,No.4,2000年7月,第585-616页,即使对于加权有向图,它也可以进行log n log log n近似。 - G. Bach
在“多模态最大流量最小割集定理及其在设计中的使用”中可以找到基于线性规划的未加权最小反馈弧集问题(其中我们最小化要去除的边数)的早期log ^ 2 n近似。近似算法“,Leighton,Rao,Journal of the ACM,Vol。 46,第6期,1999年11月,第787-832页。 - G. Bach