0

我有一个使用 boost a* 实现的图(当前是有向无环图)。该图本身在空间上有些不一致,因为该图由多个区域组成,每个区域内的坐标在空间上有意义,但区域之间的坐标不能准确反映空间距离。所以在区域内,欧几里得距离作为距离度量,但是当考虑两个单独区域中的节点时,欧几里得距离不是。这也是不可能纠正的,因为该图是针对没有刚性坐标结构的 MUD 的。

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

所以我的问题是:有没有办法拥有这种“嵌套图”结构,还是我必须手动将问题分块?

4

1 回答 1

0

你大概可以看看Boost.Graph库中子图的概念。那里的实际示例使用 boost:: adjacency_list

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

至于图表的距离图,您不必将其存储在图表上;它可以是一个外部 property_map 甚至是一个动态计算距离的函子。

于 2013-11-06T00:59:21.673 回答