graph-theory - 使用 Bellman Ford 进行负循环检测是否取决于起始节点的选择?
问题描述
我一直在做以下问题CSES 问题:循环查找,它要求我在有向图中查找并打印负循环。Bellman Ford 可以解决这个问题,但我观察到 1-2 个测试用例(总共 18 个)总是失败,具体取决于起始节点的选择。
这是否意味着在有向图中,贝尔曼福特受制于起始节点的选择? 因为我在无向图中没有遇到类似的问题。
解决方案
如果负环可以从起始节点到达,Bellman Ford 算法将检测它们。在无向连通图中,我们没有这个问题,因为所有节点都可以从任何节点到达。为了在有向图中解决这个问题,我们可以添加一个节点并使用权重为 0 的有向边将其连接到所有其他节点。它不会创建任何新循环。这种方法也用于约翰逊算法中的所有对最短路径问题。
推荐阅读
- react-native - Monorepo - 获取根目录下的包内的图像(反应原生)
- class - 是否可以在 Fortran 中使类实例可调用?
- bash - Terraform - 本地供应商提示输入 - bash 脚本
- python - requests_html TimeoutError: Navigation Timeout Exceeded: 超过 9000 ms
- python - 我可以在 matplotlib 中使用 scatter 函数而不指定 x 轴吗?
- javascript - 警报返回未定义(js)
- c# - 来自 PostMan 的 WebAPI 多个 HTTPGET,多个匹配端点错误
- sql - 如何根据绑定变量切换条件
- c - C 编码 :: 将结构写入内存块
- apache-flink - 有没有办法在作业级别或任务级别使 flink 超时?