Esempio n. 1
0
  inline void
  dijkstra_shortest_paths
    (const VertexListGraph& g,
     SourceInputIter s_begin, SourceInputIter s_end,
     PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
     IndexMap index_map,
     Compare compare, Combine combine, DistInf inf, DistZero zero,
     DijkstraVisitor vis, ColorMap color)
  {
    typedef typename property_traits<ColorMap>::value_type ColorValue;
    typedef color_traits<ColorValue> Color;
    typename graph_traits<VertexListGraph>::vertex_iterator ui, ui_end;
    for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
      vis.initialize_vertex(*ui, g);
      put(distance, *ui, inf);
      put(predecessor, *ui, *ui);
      put(color, *ui, Color::white());
    }
    for (SourceInputIter it = s_begin; it != s_end; ++it) {
      put(distance, *it, zero);
    }

    dijkstra_shortest_paths_no_init(g, s_begin, s_end, predecessor, distance,
                            weight, index_map, compare, combine, zero, vis,
                            color);
  }
Esempio n. 2
0
 inline void
 dijkstra_shortest_paths_no_init
   (const Graph& g,
    typename graph_traits<Graph>::vertex_descriptor s,
    PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
    IndexMap index_map,
    Compare compare, Combine combine, DistZero zero,
    DijkstraVisitor vis, ColorMap color)
 {
   dijkstra_shortest_paths_no_init(g, &s, &s + 1, predecessor, distance,
                                   weight, index_map, compare, combine,
                                   zero, vis, color);
 }
Esempio n. 3
0
  inline void
  dijkstra_shortest_paths
    (const VertexListGraph& g,
     typename graph_traits<VertexListGraph>::vertex_descriptor s, 
     PredecessorMap predecessor, DistanceMap distance, WeightMap weight, 
     IndexMap index_map,
     Compare compare, Combine combine, DistInf inf, DistZero zero,
     DijkstraVisitor vis)
  {
    typename graph_traits<VertexListGraph>::vertex_iterator ui, ui_end;
    for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
      put(distance, *ui, inf);
      put(predecessor, *ui, *ui);
    }
    put(distance, s, zero);

    dijkstra_shortest_paths_no_init(g, s, predecessor, distance, weight,
                            index_map, compare, combine, inf, zero, vis);
  }
Esempio n. 4
0
 inline void
 dijkstra_shortest_paths_no_init
   (const Graph& g,
    SourceInputIter s_begin, SourceInputIter s_end,
    PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
    IndexMap index_map,
    Compare compare, Combine combine, DistZero zero,
    DijkstraVisitor vis)
 {
   typedef
     detail::default_color_map_generator<Graph, IndexMap>
     ColorMapHelper;
   typedef typename ColorMapHelper::type ColorMap;
   ColorMap color =
     ColorMapHelper::build(g, index_map);
   dijkstra_shortest_paths_no_init( g, s_begin, s_end, predecessor, distance, weight,
     index_map, compare, combine, zero, vis,
       color);
 }
 inline void
 dijkstra_shortest_paths_no_init
   (const Graph& g,
    typename graph_traits<Graph>::vertex_descriptor s,
    PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
    IndexMap index_map,
    Compare compare, Combine combine, DistZero zero,
    DijkstraVisitor vis)
 {
   typedef
     detail::default_color_map_generator<Graph, IndexMap>
     ColorMapHelper;
   typedef typename ColorMapHelper::type ColorMap;
   ColorMap color =
     ColorMapHelper::build(g, index_map);
   dijkstra_shortest_paths_no_init( g, s, predecessor, distance, weight,
     index_map, compare, combine, zero, vis,
       color);
 }