【发布时间】:2019-02-14 21:37:12
【问题描述】:
我有一个问题,我需要找到最长的路径。给定一个未加权的无向图。从给定的顶点开始,我需要访问尽可能多的顶点并在同一个顶点中完成,而不是访问每个顶点一次以上。
我发现的大多数算法都是针对特殊情况(非循环、有向等)的。一个想法可以是为每个顶点子集找到哈密顿循环(可以通过回溯生成子集)。但我想一定有更好的算法。
【问题讨论】:
标签: graph cycle longest-path
我有一个问题,我需要找到最长的路径。给定一个未加权的无向图。从给定的顶点开始,我需要访问尽可能多的顶点并在同一个顶点中完成,而不是访问每个顶点一次以上。
我发现的大多数算法都是针对特殊情况(非循环、有向等)的。一个想法可以是为每个顶点子集找到哈密顿循环(可以通过回溯生成子集)。但我想一定有更好的算法。
【问题讨论】:
标签: graph cycle longest-path
正如您所发现的,找到最大的循环需要找到其子图的 Hamiltonian cycles,因此是 NP 完全的 - 除非您正在处理某些特殊类别的图,任何解决方案的复杂性将呈指数级增长。
智能蛮力方法(例如bitmask)是解决此类问题的最佳效率。
【讨论】: