在非加权有向图中覆盖所有边的最短路径

时间:2014-04-24 01:09:41

标签: c++ graph edges

好吧,我现在面临的问题是我手上的小作品......

主要目标是,有一个给定的图形(没有权重和指示),我必须发现一组路径(如果可能,只有一条路径,但它们可以更多),总长度最小,覆盖所有边缘。 其他“约束”是图形是DFA,因此路径应该以初始状态开始,并以接受状态结束(它们被标记)。

最初我发现这与中国邮递员问题类似,实际上是这样。但在我的情况下,图表是有针对性的(我相信这会改变一点),并且在处理边缘时不会出现任何问题,因为结果路径仍然是最短的。

我已经阅读了一些有关Euler路径和T-Joins的内容,这可能是我的问题的解决方案。如果我理解正确的话,我应该做的是在我的图中找到一个Euler路径,如果没有,则让它存在,复制T-Joins,或类似的东西......我遇到了很多麻烦理解这一点,我甚至不知道这是否是我的问题的答案...(我在这里找到的最短和最易理解的文字:http://en.wikipedia.org/wiki/Route_inspection_problem

给出一个简短的例子,给出这个图(1是初始,5是接受):

1 -> 2; 2 -> 3; 2 -> 4; 4 -> 5;

我的问题的答案应该是:1 - > 2 - > 4 - > 5和1 - > 2 - > 3。 (在这种情况下,我还必须处理3不是接受状态的事实,但是必须覆盖该边缘。但是我可以通过将没有边缘的所有状态标记为其他节点作为接受状态来轻松实现这一点。 )。

希望我能很好地解释一切。

提前致谢!

0 个答案:

没有答案