algorithm - 检查顶点是否可达的算法

标签 algorithm search graph

是否有一种算法可以在有向图中检查一个顶点(比方说 V2)是否可以从顶点 V1 到达,而无需遍历所有顶点?

最佳答案

可能无需遍历所有边就可以找到到该节点的路径,如果是这样,您可以尽快给出肯定的答案。仅遍历所有边就可以确认该节点不可到达(除非有一些您未声明的其他约束可用于更早地消除这种可能性)。

编辑:我应该补充一点,这取决于您需要多久进行一次查询以及您的图表有多大(和密集)。如果你需要在一个相对较小的图上做大量的查询,那么预处理图中的数据以产生一个矩阵,在任何 V1 和 V2 的交点处有一个位来指示是否存在连接可能是有意义的从 V1 到 V2。这并不能避免遍历图,但可以避免在查询时遍历图。即,它基本上是一种贪婪算法,假设您最终将使用足够多的组合,最简单的方法是遍历所有组合并存储结果。根据图的大小,预处理步骤可能会很慢,但一旦完成,执行查询就会变得非常快(常数时间,通常是一个非常小的常数)。

关于algorithm - 检查顶点是否可达的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3302134/

相关文章:

javascript - 如何使对象数组的搜索框在区分大小写且无空格的情况下使用react

Wordpress,替换标准词/搜索

perl - 使用至少 K 个节点和给定起始节点的贪婪方法在有向图中查找路径

algorithm - 数聚类/划分算法

php - 是否有任何算法可以使循环调度具有每轮独特的组合?

algorithm - 连接两类对象,使总连接距离最小

使用输入点查找数字的算法

javascript - 如何在不进行昂贵的预计算的情况下以恒定速度沿着贝塞尔曲线移动?

c - 如何查找大于/小于数组中元素的元素数?

pdf - 使用 R 中的脚本生成 pdf 时出错