Algorithm 算法:通过m个不同节点的最短路径
假设我有一个有n个顶点的加权图,并且给出了起点。最短路径定义为权重之和最小的路径 如何找出通过m个不同顶点的最短路径?(每个顶点可以访问一次或多次。也就是说,在已访问的顶点集中有m个顶点,但每个顶点可能已访问多次。) 请注意,数字m已给出,但具体的m个顶点未给出。(这些m个顶点是通过算法选择的) 这是一个NP难问题吗?我们可以减少(HPP)解决您的问题:哈密顿路径是有向未加权图中的一条路径,它恰好访问每个顶点一次。若要解决HPP实例,请将该图转换为每边权重为1的加权图,将Algorithm 算法:通过m个不同节点的最短路径,algorithm,complexity-theory,Algorithm,Complexity Theory,假设我有一个有n个顶点的加权图,并且给出了起点。最短路径定义为权重之和最小的路径 如何找出通过m个不同顶点的最短路径?(每个顶点可以访问一次或多次。也就是说,在已访问的顶点集中有m个顶点,但每个顶点可能已访问多次。) 请注意,数字m已给出,但具体的m个顶点未给出。(这些m个顶点是通过算法选择的) 这是一个NP难问题吗?我们可以减少(HPP)解决您的问题:哈密顿路径是有向未加权图中的一条路径,它恰好访问每个顶点一次。若要解决HPP实例,请将该图转换为每边权重为1的加权图,将m设置为|V |,然后解
m
设置为|V |
,然后解决您的问题。这是一条路径,因此您的问题是NP难的,因为HPP是NP完全的
它也是NP完全的,因为它显然是在NP中。因此,从您的问题到任何其他NP完全问题都有多项式时间的缩减。解决旅行推销员问题的算法可能最适合您:请参见此处。这感觉应该是关于如何“最短”的定义?我投票结束这个问题,因为感觉它应该在@MoB上。每条边都有一个权重,最短路径被定义为权重之和最小的路径。在已访问的节点集中,正好有m个节点,但每个节点可能已访问多次。这是tr的推广avelling-Saleser问题(其中m=n),这意味着它是np难的。