哪种算法可以找出一个节点到另一个X类型节点的最短路径

Which algorithm to find out shortest path of a node to another node of X type

我有一个图可以由两种算法组成:ClusterNormal.

我需要一种方法来根据最近的集群类型节点找出希望的节点类型是我的正常节点:

我正在为这张图使用 javascript + d3。

我在网上搜索了一下,发现Djikastra的算法可能是我需要的,但是Djikastras需要一个初始节点和一个目标节点。

我的问题是:

我的所有集群类型节点都是我的目标,我需要为每个普通类型节点找到它基于其最近的集群的类型。

Djikstra 是最好的算法吗?我不确定在具有数百个节点的相当复杂的图形中该算法是否会有效执行。

这大致是我的节点和链接的样子:

Node A = {
   name: A,
   type: normal,
   id: node_1
}

Node Cluster 1 = {
   name: Cluster 1,
   type: cluster,
   id: node_2
}

Edge or link = {
   from= node_1,
   to= node_2
}

此问题的最佳算法是 breadth-first 搜索。您可以在识别类型为群集的节点后立即停止搜索。