在加权有向图中查找覆盖每个节点一次的路径(任何语言)

Finding paths that cover every node once in weighted directed graph (any language)

我有一个有向加权图。它可能连接也可能不连接,组件也可能连接也可能不连接。我有两个目标:

  1. 至少,想出一个路径列表(如果整个图没有连接,可能必须是路径的组合)访问每个节点一次且仅一次。

  2. 如果可能,找到访问每个节点一次且仅一次的最短路径(或路径组合,在图不连通的情况下)

目前,我认为最简单的方法就是找到所有连接的组件(使用 dfs,对吗?),然后在每个组件内递归遍历每个可能的节点选择,并对我选择的路径进行排序剩下找到最短的那个了。

还有其他想法吗?

正如您所说,我将开始使用 BFS 发现连通分量,并且在每个图中您可以应用 TSP(旅行商问题)算法。

您可以在 here

上找到有关该算法的足够详细信息