在图中,如何找到一组节点最近的节点?

Posted

技术标签:

【中文标题】在图中,如何找到一组节点最近的节点?【英文标题】:In a graph, how to find the nearest node to a group of nodes? 【发布时间】:2011-02-21 21:08:27 【问题描述】:

我有一个无向、未加权的图,它不必是平面的。我还有一个图节点的子集(真正的子集),我需要找到一个不属于该子集的节点,并且到子集中所有节点的距离总和最小。

到目前为止,我已经实现了从子集中的每个节点开始的呼吸优先搜索,首先出现的交叉点就是我要查找的节点。不幸的是,由于图表包含大量节点,因此运行速度太慢。

【问题讨论】:

什么太慢了?您使用什么语言?你有什么建议?是速度方面还是您使用的算法? 【参考方案1】:

全对最短路径算法允许您在 O(V^3) 时间内找到所有节点之间的距离,请参阅Floyd-warshall。然后之后求和至少是二次的,我相信最坏的情况也是三次的。这是一种非常简单且不是非常快速的方法,但听起来它可能比您现在正在做的要快一个数量级。

【讨论】:

您好,感谢您的建议。同时,我意识到我的建议是不正确的,不需要产生最佳节点。由于时间复杂性,Floyd-Warshall 是我打算避免的,但它似乎是唯一正确的方法。谢谢你,尼古拉

以上是关于在图中,如何找到一组节点最近的节点?的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift中找到离场景底部最近的精灵节点

我如何找到从任何节点到集合A的最短路径

2022-05-22:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 pq,最近公共祖先表示为一个节点 x,满足 x 是 p

A*算法

二叉树的最近公共祖先并不简单

在二叉树中找到两个节点的最近公共祖先