多个集合中的最短路径

时间:2013-04-22 15:05:05

标签: algorithm dijkstra shortest-path

我必须在各个集合中找到节点之间的最短路径,我可以在每个集合中仅使用一次节点。每个节点通过距离连接到每个其他节点。有一些例外,它们之间没有连接集合中的节点。路径必须包含每个集合中的一个节点。

例如。

    Set A - [a1, a2, a3]
    Set B - [b1, b2]
    Set C - [c1]
    Set D - [d1, d2, d3]
    Set Z - [z1, z2, z3]

节点是a1,a2,a3,b1,b2 ......

例如。 节点 a1

连接
  

B1,B2,C1,D1,D2,D3,Z1,Z2,Z3

或节点 c1

有联系
  

A1,A2,A3,B1,B2,D1,D2,D3,Z1,Z2,Z3

posibble路径可能是:

  

a1 - > b1 - > c1 - > d1 - > z1或c1 - > z2 - > a3 - > b1 - > D2

每个节点之间的距离(集合中的节点除外,没有连接)可以是0到1。

1 个答案:

答案 0 :(得分:1)

这被称为广义旅行商问题。

来自C. Noon & J.Bean, An Efficient Transformation of the Generalized Traveling Salesman Problem

  

广义旅行商问题(GTSP)是一个有用的模型,用于涉及选择和顺序决策的问题。问题的非对称版本在具有节点N的有向图上定义,连接弧A和相应电弧成本c的矢量。节点被预先分成m个互斥和穷举的节点集。连接弧仅在属于不同组的节点之间定义,即,没有帧内弧。每个定义的弧具有相应的非负成本。 GTSP可以说是找到最小成本m-arc循环的问题,其中包括每个节点集中的一个节点。

本文解释了如何将您的问题转化为标准旅行商问题的案例。