旅行销售员变化,绘制旅行行程

时间:2012-10-09 09:32:21

标签: algorithm graph shortest-path dijkstra traveling-salesman

我正在寻找一个问题的名称和一个algortihm的解决方案。

我有一个连接节点图(A..Z),其中每个节点都连接到每个其他节点。我想绘制通过这些节点访问给定节点子集(A,D,K,W)的最短路径。该路径可以包括不在子集中的节点,即A-> C-> W-> D-> K是可接受的。节点之间的旅行成本是非负的,但不一定是线性的。因此,来自A-> B-> C的路径段可以比A-> C更短“

我认为这是旅行营业员的变种。

1 个答案:

答案 0 :(得分:2)

我不知道此问题是否有特殊名称,但很容易将其缩小为所选节点的原始旅行商问题。

让所有节点的集合为V和所选节点W。我将首先折叠不在W中的节点来获取多图(如图,但在同一对节点之间可以有多个边)。这里的每条边可以是V\W中的简单边或一系列边和节点。为了将它减少到常规图形,我们只需要为每对节点选择最短的边缘,因为任何其他节点显然都不是答案的一部分。现在我们必须解决缩小图形的结果旅行商问题,然后在原始图形中重建相应的路径 - 我们在原始图形中写下了实际路径,每个边缘在简化图形中对应。