Graph 在无向无权图中寻找访问每个节点的最短路径

Graph 在无向无权图中寻找访问每个节点的最短路径,graph,routing,complexity-theory,Graph,Routing,Complexity Theory,在无向无权图中寻找访问每个节点的最短路径是一个NP难问题吗 关于这个问题,我找不到确切的答案。我知道为加权图寻找访问每个节点的最短路径是一个NP难问题(旅行商)。但是一个未加权的图呢?假设有一个算法A在多项式时间内找到连接无向未加权图G=(V,E)中所有节点的最短路径。我们将展示,然后我们可以使用A在多项式时间内,使用以下步骤求解: 使用A获得连接所有节点V的最短路径p 计算p包含的节点数;设k为节点计数 设n=| V |;G包含一个当且仅当k=n时(参见下面的证明) 然而,由于哈密顿路径问题是

在无向无权图中寻找访问每个节点的最短路径是一个NP难问题吗


关于这个问题,我找不到确切的答案。我知道为加权图寻找访问每个节点的最短路径是一个NP难问题(旅行商)。但是一个未加权的图呢?

假设有一个算法A在多项式时间内找到连接无向未加权图G=(V,E)中所有节点的最短路径。我们将展示,然后我们可以使用A在多项式时间内,使用以下步骤求解:

  • 使用A获得连接所有节点V的最短路径p
  • 计算p包含的节点数;设k为节点计数
  • 设n=| V |;G包含一个当且仅当k=n时(参见下面的证明)
  • 然而,由于哈密顿路径问题是NP完全问题,除非p=NP,否则这种算法A不可能存在。因此,你所描述的问题一定是NP难问题


    证明k=n⇔ G包含哈密顿路径

    注意,n≤ k、 因为p包含V中的每个节点

    :假设k=n。由于p连接所有节点,因此任何节点都不能访问一次以上。因此G包含一条哈密顿路径,即p

    :假设G包含一条哈密顿路径。假设k≠ n、 即k>n.
    A将不会返回满足我们要求的最短路径,因为存在具有n个节点的哈密顿路径。因此,它必须保持k=n


    我不明白。为什么我们可以用A来解决哈密顿路径问题?@IonIonascu I扩展了证明。你现在能跟我来吗?我想我明白了。所以你说的是:如果一个图G包含一条哈密顿路径,那么算法a应该返回该路径。我们知道这不能在多项式时间内完成。我没弄错吧?@IonIonascu是的,这是证据的核心思想。剩下的是细节。2年后被接受并投票通过。对不起,2年前我没有投票权。再次感谢你的证明!