小图中最长的路径

时间:2016-05-25 20:20:10

标签: algorithm graph-algorithm

这是我从班上得到的一个问题(我向你保证这不是作业)。直到现在我还在思考它。您将收到一个最多包含25个节点和25个边的图表。此外,每个节点的度数最多为3.任务是找到此图中最长的路径。但是,您不仅会收到1个图表,还会收到15,000个图表,并且您需要在1秒钟内找到所有这些图表中最长的路径。有谁能请给我一个解决方案(或者更好,只是一个提示)来解决这个问题?非常感谢你!

信息:
- 可以重新访问节点,唯一的限制是边缘。
- 图形由边缘给出。所以第一行说明了有多少个节点和边,后面的线表示边,每条边用一对整数。
- 边是未加权的。
- 唯一需要的答案是路径的长度,而不是路径本身。
- 这可能很重要:图表不一定是连接的。

1 个答案:

答案 0 :(得分:1)

在我看到“节点可以重新访问”之后,我意识到这在某些方面是一个棘手的问题。为了满足那些看似令人难以置信的时间限制,你实际需要的不是构造这样一条路径的算法(通常称为 trail ,BTW,如果顶点可以重复使用),而是每个连接的图表的一个组成部分,一种快速检测该组件中的所有或几乎所有边缘是否都可以包含在单个轨迹中的方法。

所以这是我的暗示:你知道Königsberg有七座桥吗? ; - )

这可能看起来很神秘,但我认为一些快速搜索将指向正确的方向,您很快就会找到一种方法来快速检测组件中的所有边缘是否构成同样的踪迹。 (当上述问题的答案为“否”时,你需要做更多的思考来弄清楚可以包括多少边。)