Graph 图的最小代价路径

Graph 图的最小代价路径,graph,graph-traversal,floyd-warshall,Graph,Graph Traversal,Floyd Warshall,我正在研究一个问题,这个问题可以归结为: 有一个连通的无向图。我需要访问所有节点 无需多次访问节点。我可以随时开始和结束 任意节点 我该怎么办?我应该将类似于Floyd Warshall的算法应用于所有可能的起始节点,还是有更好的方法 谢谢。访问每个节点一次且仅一次的路径称为哈密顿路径。寻找哈密顿路径的问题称为 首先,这个问题是NP完全问题。运行时间最多与输入大小的多项式成正比的算法称为多项式算法。例如,大多数排序算法需要O(N logN)时间,这小于N^2,这使得它是多项式的 对于NP完全问题

我正在研究一个问题,这个问题可以归结为:

有一个连通的无向图。我需要访问所有节点 无需多次访问节点。我可以随时开始和结束 任意节点

我该怎么办?我应该将类似于Floyd Warshall的算法应用于所有可能的起始节点,还是有更好的方法


谢谢。

访问每个节点一次且仅一次的路径称为哈密顿路径。寻找哈密顿路径的问题称为

首先,这个问题是NP完全问题。运行时间最多与输入大小的多项式成正比的算法称为多项式算法。例如,大多数排序算法需要O(N logN)时间,这小于N^2,这使得它是多项式的

对于NP完全问题,没有已知的多项式时间算法。虽然还没有人能证明这一点,但对于NP完全问题,很可能还没有多项式时间算法。这意味着:

  • 您将提出的任何算法的运行时间都与输入大小的指数函数成正比。(即,如果它在一小时内解决了40个节点的问题,则41个节点需要2小时,42个节点需要4小时,…)这是一个非常坏的消息

  • 从根本上讲,您将提出的算法不会比尝试出错的算法快多少


  • 如果您的输入大小很小,请从一个简单的回溯算法开始。如果你需要做得更好,谷歌搜索“哈密顿路径”、“最长路径”可能会提供答案。如果您的输入很大,最终您将不得不降低您的期望值(例如,用近似值而不是最优解来解决)。

    访问每个节点一次且仅访问一次的路径称为哈密顿路径。寻找哈密顿路径的问题称为

    首先,这个问题是NP完全问题。运行时间最多与输入大小的多项式成正比的算法称为多项式算法。例如,大多数排序算法需要O(N logN)时间,这小于N^2,这使得它是多项式的

    对于NP完全问题,没有已知的多项式时间算法。虽然还没有人能证明这一点,但对于NP完全问题,很可能还没有多项式时间算法。这意味着:

  • 您将提出的任何算法的运行时间都与输入大小的指数函数成正比。(即,如果它在一小时内解决了40个节点的问题,则41个节点需要2小时,42个节点需要4小时,…)这是一个非常坏的消息

  • 从根本上讲,您将提出的算法不会比尝试出错的算法快多少


  • 如果您的输入大小很小,请从一个简单的回溯算法开始。如果你需要做得更好,谷歌搜索“哈密顿路径”、“最长路径”可能会提供答案。如果您的输入量很大,最终您将不得不降低您的期望值(例如,用近似值而不是最优解来解决问题)。

    这与TSP类似吗?旅行销售人员?我不熟悉称为强连通的无向图。你的意思是完全连接,还是只是连接?我假设你的意思不是完全连接,否则你的问题将是微不足道的。对不起。这是一个连通图。它与TSP类似吗?旅行销售人员?我不熟悉称为强连通的无向图。你的意思是完全连接,还是只是连接?我假设你的意思不是完全连接,否则你的问题将是微不足道的。对不起。这是一个连通图。