具有嵌套图结构的AStar

时间:2013-11-05 20:08:32

标签: boost graph-theory a-star

我有一个使用boost a *实现的图表(当前有向无环图)。图形本身在某种程度上是空间上不一致的,因为图形由多个区域组成,在每个区域内,坐标在空间上有意义,但在区域坐标之间不能准确地反映空间距离。因此,在区域内,欧几里德距离作为距离度量,但在考虑两个独立区域中的节点时,欧几里德距离不会。这也是不可能纠正的,因为图表是针对MUD的,它没有严格的坐标结构。

对此的一个解决方案是将a-> b的路径建模为一系列通过区域的移动,找到每个相应区域内的最快路径,然后将这些路径组合成最终路径。

所以我的问题是:有没有办法让这种“嵌套图”结构,或者我不得不手动将问题分块?

1 个答案:

答案 0 :(得分:0)

您可以在Boost.Graph库中查看subgraph的概念。其中的实际示例使用boost :: adjacency_list

我猜你的出发点是创建一个超图;然后为每个区域创建一个子图,用顶点填充它们。最难的部分可能是添加这种图形的所有边缘。

对于图表的距离图,您不必将其存储在图表上;它可以是外部的property_map,也可以是动态计算距离的仿函数。