【问题标题】:Which algorithm to find out shortest path of a node to another node of X type哪种算法可以找出一个节点到另一个 X 类型节点的最短路径
【发布时间】:2017-05-28 02:38:57
【问题描述】:

我有一个可以由 2 种算法组成的图:ClusterNormal

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

  • 例如在上图中,我想知道节点 (A) 的类型是基于其最近的集群类型节点。
  • 如您所见,普通node A与节点Cluster 1距离为1边/链接。
  • 此外,节点 A**strong text** 与节点 Cluster 2 之间有 2 条边/链接的距离。
  • 因为到集群 1 的距离小于到集群 2 的距离。节点 (a) 是类型 1
  • 如果到集群 2 的距离比到集群 1 的距离短,那么它将是类型 2。

我正在使用 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
}

【问题讨论】:

    标签: javascript algorithm d3.js shortest-path


    【解决方案1】:

    解决这个问题的最佳算法是广度优先搜索。一旦识别出集群类型的节点,您就可以停止搜索。

    【讨论】:

    • 感谢我花了很长时间才完成,但这确实是算法要做的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多