如何找到多个群集之间的最短路径

时间:2018-10-11 12:12:12

标签: java algorithm dijkstra

Dijkstra定理讨论了寻找两个顶点之间的最短路径。但是,如果我们有一个具有簇的矩阵/图,又该如何寻找这些簇之间的最短路径呢?这些簇之间的距离的方式与权重不同的节点之间的距离相同。

如Matt所建议的,我们可以假设群集节点之间的距离为零..这很有意义..但是,如果我们想找到一条最短路径以使所有群集相互连接,该怎么办。

1 个答案:

答案 0 :(得分:2)

Dijkstra的算法在两个簇之间的工作原理与在两个顶点之间的工作原理基本相同。从源群集中距离0的所有顶点开始,然后逐步构建更长的路径,直到找到目标群集中的一个顶点。

如果有帮助,您可以这样考虑:将两个聚类中的所有顶点与成本为0的边连接在一起,然后找到从任何特定源顶点到任何特定目标顶点的最短路径。选择哪个都无所谓,因为零成本的优势可确保集群中的所有事物与其他事物的距离相同。