Algorithm 对于必须访问图的某些顶点子集的图,是否有一种有效的算法来寻找或近似图的最短行走?

Algorithm 对于必须访问图的某些顶点子集的图,是否有一种有效的算法来寻找或近似图的最短行走?,algorithm,graph-theory,graph-traversal,Algorithm,Graph Theory,Graph Traversal,标题是满嘴的,但简单地说,我有一个大的、无向的、不完整的图,我需要在(大约)尽可能短的时间内访问一些顶点子集。请注意,这不是TSP,因为我不需要访问所有顶点 天真的方法是简单地通过尝试包括所需顶点的每个可能的行走来强制解决方案,例如,使用*来计算所需顶点之间的行走。但是,这是O(n!),其中n是所需的顶点数。这对我来说是不可行的,因为在我的平均情况下n>40,而且n≈ 80在我最糟糕的情况下 有没有一种更有效的算法,也许是一种近似解的算法 此问题与问题类似,但不同之处在于,我的图比链接问题中的图

标题是满嘴的,但简单地说,我有一个大的、无向的、不完整的图,我需要在(大约)尽可能短的时间内访问一些顶点子集。请注意,这不是TSP,因为我不需要访问所有顶点

天真的方法是简单地通过尝试包括所需顶点的每个可能的行走来强制解决方案,例如,使用*来计算所需顶点之间的行走。但是,这是
O(n!)
,其中
n
是所需的顶点数。这对我来说是不可行的,因为在我的平均情况下
n>40
,而且
n≈ 80在我最糟糕的情况下

有没有一种更有效的算法,也许是一种近似解的算法


此问题与问题类似,但不同之处在于,我的图比链接问题中的图大。还有其他几个类似的问题,但没有一个能完全解决我的具体问题。

如果允许多次访问相同的节点,请找到每对强制顶点之间的最短路径。然后,使用上述最短路径代价解决强制顶点之间的TSP。如果您不允许多次访问,问题会更严重


恐怕您无法逃脱TSP。

如果允许多次访问相同的节点,请在每对强制顶点之间找到最短路径。然后,使用上述最短路径代价解决强制顶点之间的TSP。如果您不允许多次访问,问题会更严重


恐怕你无法逃避TSP。

如果你在子集中建立顶点之间的距离图(例如使用Floyd算法),这就是TSP,因此没有多项式精确解,我认为对于子集中的80个节点,没有足够快的精确解。但是,如果你在子集中建立顶点之间的距离图(例如使用Floyd算法),你可以非常有效地近似TSP,所以没有多项式精确解,我认为对于子集中的80个节点,没有足够快的精确解。但是你可以估计出足够的有效值