最小路径 - 所有边缘至少一次

时间:2010-03-01 21:07:20

标签: algorithm graph graph-theory cycle

我有很多周期的定向图,可能是强连接的,我需要从它获得一个最小的周期。我的意思是我需要得到周期,这是图表中最短的周期,并且每个边缘至少被覆盖一次。

我一直在寻找一些算法或一些理论背景,但我发现的只有中国邮递员算法。但是这个解决方案不适用于有向图。

任何人都可以帮助我吗?感谢

编辑>>该图的所有边都具有相同的成本 - 例如1

4 个答案:

答案 0 :(得分:5)

看看这篇论文 - Directed Chinese Postman Problem。这是正确的问题分类(假设没有更多的限制)。

如果您只是阅读理论,请在this page上阅读,这是来自算法设计手册。

关键引用(定向版的后半部分):

  

可以通过向图G添加适当的边来构造最佳的邮差旅行,以使其成为欧拉。具体来说,我们在G中找到每对奇数顶点之间的最短路径。在G中的两个奇度顶点之间添加一条路径,使它们都变为偶数度,从而使我们更接近欧拉图。找到要添加到G的最佳最短路径集,可以减少识别奇度顶点图中的最小权重完美匹配,其中边(i,j)的权重是从i到最短路径的长度。学家对于有向图,这可以使用二分匹配来解决,其中顶点被分区,这取决于它们是否具有更多的进入边缘或外出边缘。一旦图形是欧拉,就可以使用上述程序以线性时间提取实际周期。

答案 1 :(得分:1)

你正在寻找的东西被称为“欧拉路径”。你可以谷歌查找足够的信息,基础是here 关于算法,有一种称为Fleury算法的算法,google for it或看一看here

答案 2 :(得分:0)

我怀疑这是最优的,但你可以做一个基于队列的搜索,假设图表保证有一个周期。每个队列条目都包含表示路径的节点列表。从队列中取出元素时,将所有可能的后续步骤添加到队列中,确保您不再重新访问节点。如果最后一个节点与第一个节点相同,那么您就找到了最小周期。

答案 3 :(得分:0)

网络完全由有向边组成的特殊情况可以在多项式时间内求解。我认为原始论文是Matching, Euler tours and the Chinese postman (1973) - 对有向图问题的算法的清晰描述从第115页开始(pdf的第28页):

  

当连接图的所有边都是定向时和图   是对称的,有一个特别简单和有吸引力的算法   指定欧拉之旅......

     

在有向的,对称的,连通的图G中找到欧拉游的算法是首先找到G的跨越树枝。然后,在   任何节点n,除了树枝的根r外,都指定任何顺序   只要在树枝的边缘,边缘指向远离n的边缘   是订购的最后一个。对于根r,指定任何顺序   边缘远离r。

     

van Aardenne-Ehrenfest和de Bruin使用此算法   列举某个有向图[1]中的所有Euler旅游。