Algorithm 通过每个顶点只访问一次的连接组件查找路径

Algorithm 通过每个顶点只访问一次的连接组件查找路径,algorithm,graph,path-finding,Algorithm,Graph,Path Finding,我有一个连接顶点的大型图(一个连接的组件),我正在寻找一条穿过所有顶点的路径,但从来不会穿过一个顶点两次。这并不总是可能的。例如,在以下示例中,很明显,没有路径访问每个顶点,其中没有顶点被多次访问: 但如果稍微调整它,使其具有更多的边(连接),则有一些路径可以恰好通过每个顶点一次。我对其进行了调整,并对顶点进行了编号,以给出一条这样的路径: 我的图是这样的,我知道有一条可能的路径。但是,它相当大(20000个顶点,每个顶点有2到11条边)。我实现了深度优先搜索和广度优先搜索,但图形太大,无法

我有一个连接顶点的大型图(一个连接的组件),我正在寻找一条穿过所有顶点的路径,但从来不会穿过一个顶点两次。这并不总是可能的。例如,在以下示例中,很明显,没有路径访问每个顶点,其中没有顶点被多次访问:

但如果稍微调整它,使其具有更多的边(连接),则有一些路径可以恰好通过每个顶点一次。我对其进行了调整,并对顶点进行了编号,以给出一条这样的路径:

我的图是这样的,我知道有一条可能的路径。但是,它相当大(20000个顶点,每个顶点有2到11条边)。我实现了深度优先搜索和广度优先搜索,但图形太大,无法找到路径(计算时间太长)


所以我的问题是:有没有其他算法可以解决这个问题,特别是比深度优先或广度优先搜索更有效


这有点像旅行商问题,只是城市只能从特定的其他城市到达,而且这些城市之间的距离是相等的。

您描述的问题称为(哈密顿路径是通过每个节点一次且恰好一次的路径)。不幸的是,这个问题被认为是NP难的,因此没有已知的多项式时间算法来解决这个问题。因此,使用简单的广度优先搜索或深度优先搜索不太可能找到有效的解决方案

有一种比较著名的动态规划算法可以解决这个问题。如果你在网上搜索“哈密顿路径DP”,你应该会找到一些关于这个主题的好链接。

你的图表是否有一个完整的链接?​ 这是你的图表吗?​ 在任何情况下,请尝试,因为低树宽允许高效算法解决您的问题。​ ​ ​ ​