c++ - 为什么 BGL A* 需要隐式图来建模 VertexListGraph?

标签 c++ boost graph a-star boost-graph

对我之前的问题的更具体的后续问题 BGL Interior properties for implicit graph

Boost BGL 有一个 A* 算法版本,应该可以处理隐式图,即 astar_search_no_init() 函数。隐式图可以建模为 IncidenceGraph。 documentation of A*说“请注意,astar_search_no_init() 必须用于隐式图;基本的 astar_search() 函数需要一个对顶点列表图概念进行建模的图。两个版本还需要图类型来对关联图概念进行建模”。

这是否意味着该图不必必须对顶点列表图概念进行建模?如果是这种情况,我是否遗漏了一些东西,因为我无法找到使用 IncidenceGraphs 的函数 astar_search_no_init() 的任何版本?有两个版本的 astar_search_no_init() 可用,并且它们似乎都适用于 VertexListGraphs。我使用的是 Boost 1.48,A* 位于文件 astar_search.hpp 中。

我不明白首先要求隐式图对顶点列表图进行建模有什么意义。该文档对我来说非常困惑和误导。有什么想法吗?

最佳答案

r50803 中添加了对隐式图的支持2009 年 1 月 27 日修复 Bug #829 。解决方法是不依赖 num_vertices 或利用图形类型建模 VertexListGraph 的任何其他要求。概念。

因此,即使模板类型参数名为 VertexListGraph,它也应该只适用于仅对 IncidenceGraph 建模的图形类型。概念。

关于c++ - 为什么 BGL A* 需要隐式图来建模 VertexListGraph?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8662770/

相关文章:

c++ - 将异常转换为可选的 : cant resolve overloaded function type

python - Chu-Liu Edmond 算法(用于有向图)

c++ - 将实验性命名空间注入(inject) std

C++ opengl着色器编译失败

c++ - 变体与继承

python - 如何绘制网络图的补集?

algorithm - 查找权重为 K 或更低的从节点 A 到 B 的加权图中的所有路径

c++ - 氧气错误 : Found ';' while parsing initializer list

c++ - 如何使 float 显示 -0 也显示为 0?

c++ - 将 const std::shared_ptr<const T> 转换为 boost::shared_ptr<T>