让Boost Dijkstra算法在到达目的节点时停止

2024-01-12

我正在使用 boost::graph 及其 Dijkstra 实现。

当有人使用Dijkstra算法时,可能是为了知道图中2个节点之间的最短路径。但是,由于您需要检查图中的所有节点以找到最短路径,通常(如 boost 算法)Dijkstra 会返回一个原点与图中所有其他节点之间的所有距离。

当您只需要 2 个节点之间的路径时,该算法的一个简单改进是在算法到达目标节点时停止它。然后,您确定到该最终目标节点的距离是最短的。

如何告诉 boost Dijkstra 算法在到达特定节点时停止?


您可以从访问者处抛出异常:FAQ http://www.boost.org/doc/libs/1_59_0/libs/graph/doc/faq.html

如何提前退出 BFS 等算法?

创建一个访问者,当您想要中断搜索时抛出异常,然后将对 breadth_first_search 的调用放在适当的 try/catch 块内。这让许多程序员认为这是对异常的滥用,但是,经过深思熟虑,才决定让异常具有提前退出的首选方式。有关更多详细信息,请参阅增强电子邮件讨论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让Boost Dijkstra算法在到达目的节点时停止 的相关文章

随机推荐

  • 在keras中,如何拟合不同类型的多个输入数据

    我有 3000 张 320 320 形状的图像 它们的拍摄时间以及它们的标签 现在我想使用这两种类型的数据 图像和时间 来预测它们的标签 主要代码如下 num classes 10 image out GlobalMaxPooling2D
  • Hibernate: LazyInitializationException: 未能延迟初始化角色集合。无法初始化代理 - 无会话

    我有下一个错误 nested exception is org hibernate LazyInitializationException failed to lazily initialize a collection of role c
  • 如何根据消息头属性仅读取特定队列消息

    我在 activemq 队列中有一个消息列表 每条消息都有一个带有值的自定义标头属性 我应该如何才能仅访问那些自定义标头属性值 123 的消息 我正在使用类似下面的东西从队列中选择消息 如何选择具有 customHeaderProperty
  • 如何处理android中的睡眠模式进入?

    我在任何地方都没有找到它 我该如何处理在android中进入睡眠模式 当Android设备进入睡眠模式时我想做什么 这是可能的还是有办法处理它 只需使用 BroadCastReceivers 进行系统调用 唤醒 睡眠 即可实现此目的 And
  • 如何在MVVM模式中实现INotifyPropertyChanged和observableCollection?

    我在模型中有一个 ObservableCollection of Products 我希望 ViewModel 能够侦听 ObservableCollection of Products 中的任何更改 我不确定如何去实施它 我读过一些教程
  • 查找二叉树中指定节点的路径 (Python)

    我在计算二叉树中从根到指定节点的路径时遇到问题 这是专门针对此问题的 Python 解决方案 这是一个例子 给定下面的二叉树 如果我指定值为 4 的节点 我想返回 1 2 4 如果我指定值为5的节点 我想返回 1 2 5 1 2 3 4 5
  • C++ 对象实例化

    我是一名 C 程序员 正在尝试理解 C 许多教程使用片段演示对象实例化 例如 Dog sparky new Dog 这意味着稍后您将执行以下操作 delete sparky 这是有道理的 现在 在不需要动态内存分配的情况下 是否有任何理由使
  • Visual Studio中有类似Eclipse Perspective的东西吗?

    我想知道 Visual Studio 2008 或 2010 中是否有类似 Eclipse Perspectives 的东西 对于那些不熟悉 Eclipse 的人 这里有一个视角的定义 http www eclipse org articl
  • spplot() 上的国家/地区标签

    我想为 spplot 上的区域添加名称标签 Example load url http gadm org data rda FRA adm0 RData FR lt gadm FR lt spChFIDs FR paste FR rowna
  • spring-context.xml 的位置

    当我在 tomcat 上运行应用程序时 spring context xml 文件位于 WEB inf spring context xml 还行吧 但是运行 junit 测试时 我必须向它提供 spring test context xm
  • Jquery 与原型 magento 冲突 - 我怎样才能分开?

    我似乎无法通过我的 Magento 网站将 jQuery 与 Prototype 分开 我已经使用更改的标签等在 JsFiddle 上工作了 但是当我将它添加到我的 magento 站点时 我不断收到未捕获的语法错误 页面位于http ww
  • C++ 中的接口继承

    我有以下类结构 class InterfaceA virtual void methodA 0 class ClassA public InterfaceA void methodA class InterfaceB public Inte
  • 使用 odp.net 和 C# 中的 OCI 连接到 Oracle

    我一直在阅读有关如何从 C win 应用程序连接到我的 Oracle 数据库的信息 但我一直 碰壁 我决定使用odp net和OCI 这样客户端计算机就不需要安装客户端 但我无法让它工作 我有一个小型测试应用程序 如下所示的代码 在我的解决
  • 试图找出 Windows Workflow 4.5 问题的根源

    我得到的错误是 工作流应用程序已中止 因为加载或 LoadRunnableInstance 操作引发异常 创建一个新的 WorkflowApplication 对象尝试加载另一个工作流实例 我正在使用 workflowapplication
  • Facebook API 获取好友相册对某些好友不起作用

    我正在使用以下 FQL 查询 select src src big from photo where aid in select aid from album where owner contactId and type profile 但
  • 获取 java.lang.NoClassDefFoundError: org/pdfbox/pdfparser/

    下面是我正在使用的代码 我提供了一个 pdf 文件和一个文本文件作为命令行的输入 import org pdfbox cos COSDocument import org pdfbox pdfparser PDFParser import
  • 在 Maven 中本地引用依赖项 jar

    在我的项目中 我使用的外部 jar 不存在于公司的 Maven 存储库中 所以我收到以下错误 Could not resolve dependencies for project Could not find artifact in htt
  • 加快 Spring Boot 启动时间

    我有一个 Spring Boot 应用程序 我添加了很多依赖项 不幸的是 看起来我需要所有这些依赖项 并且启动时间增加了很多 只是做一个SpringApplication run source args 需要 10 秒 虽然与 习惯 相比
  • Pandas:如何在python3中使用混合类型多索引的切片?

    正如我在这个部分相关的问题 https stackoverflow com questions 50097704 不可能再对混合类型序列进行排序 Python3 6 sorted foo bar 10 200 3 gt TypeError
  • 让Boost Dijkstra算法在到达目的节点时停止

    我正在使用 boost graph 及其 Dijkstra 实现 当有人使用Dijkstra算法时 可能是为了知道图中2个节点之间的最短路径 但是 由于您需要检查图中的所有节点以找到最短路径 通常 如 boost 算法 Dijkstra 会