我有一个问题,我需要找到最长的路径。给定一个无力的无向图。从给定的顶点开始,我需要访问尽可能多的顶点,并在同一顶点中完成,而不必再访问每个顶点一次。
我发现的大多数算法都是针对特殊情况(非循环,有向等)的。一个想法可能是找到每个顶点子集的哈密顿环(该子集可以通过回溯生成)。但是我想肯定有更好的算法。
答案 0 :(得分:0)
您已经发现,找到最大的循环涉及找到其子图的Hamiltonian cycles,因此是NP完全的-除非您正在研究某些特殊类的图, any 解决方案的复杂度将成倍增长。
一种聪明的暴力手段(例如bitmask)是解决此类问题的最佳效率。