gpt4 book ai didi

c++11 - 使 Boost Dijkstra 算法在到达目标节点时停止

转载 作者:行者123 更新时间:2023-12-04 17:17:37 27 4
gpt4 key购买 nike

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

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

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

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

最佳答案

您可以从访问者那里抛出异常:FAQ

How do I perform an early exit from an algorithm such as BFS?

Create a visitor that throws an exception when you want to cut off the search, then put your call to breadth_first_search inside of an appropriate try/catch block. This strikes many programmers as a misuse of exceptions, however, much thought was put into the decision to have exceptions has the preferred way to exit early. See boost email discussions for more details.

关于c++11 - 使 Boost Dijkstra 算法在到达目标节点时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32047840/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com