Hi,
I am somewhat uncertain on which concepts are required for the Dijkstra searches in the BGL and parallel BGL.
For the sequential BGL, documentation at
http://www.boost.org/doc/libs/1_56_0/libs/graph/doc/dijkstra_shortest_paths.html would seem to indicate that a VertexListGraph is required, even when the no_init version is used. Looking at the code, I think that is accurate – use of the index map at
https://github.com/boostorg/graph/blob/master/include/boost/graph/dijkstra_shortest_paths.hpp#L368 seems to require vertex list traversal – but I would also think that defeats the purpose of the no_init option.
Conversely, for the parallel BGL documentation at
http://www.boost.org/doc/libs/1_56_0/libs/graph_parallel/doc/html/dijkstra_shortest_paths.html says only that DistributedGraph is required, which is a refinement of Graph but not VertexListGraph or IncidenceGraph. However, just a little bit of searching
seems to show that the parallel Dijkstra search requires both, along with perhaps PropertyGraph (see for instance
https://github.com/boostorg/graph_parallel/blob/master/include/boost/graph/distributed/eager_dijkstra_shortest_paths.hpp#L117 and
https://github.com/boostorg/graph_parallel/blob/master/include/boost/graph/distributed/eager_dijkstra_shortest_paths.hpp#L358). I won’t pretend to understand the code; but I would expect these functions to require something stronger than the documentation
indicates.
Could someone please clarify what the requirements are for these functions? Any help is greatly appreciated.
Thanks,
Clayton