Bonjour à tous,
j'ai besoin d'appliquer l'algo de Dijkstra sur un graphe défini avec Boost. Le graphe est défini via des "bundled properties" et j'appelle Dijkstra comme suggeré dans la doc officielle sur les bundled properties, ie un truc du genre :
Code :
- struct monTypeVertex
- {
- ...
- };
- struct monTypeEdge
- {
- double longueur;
- };
- typedef boost::adjacency_list<
- boost::listS, boost::vecS, boost::bidirectionalS,
- monTypeVertex, monTypeEdge> monTypeGraphe;
- ...
- vector<double> distances(num_vertices(monGraphe));
- dijkstra_shortest_paths(monGraphe, monVertexDepart,
- weight_map(get(&monTypeEdge::longueur, monGraphe))
- .distance_map(make_iterator_property_map(distances.begin(),
- get(vertex_index, monGraphe))));
|
Seulement je n'ai pas trop saisi comment récupérer les plus courts chemins par la suite (il faut dire que la doc n'est pas d'une clarté/simplicité incroyable). J'imagine qu'il y a une map de prédecesseurs associées aux sommets du graphe, mais je ne sais pas comment la récupérer et l'utiliser.
Merci d'avance pour votre aide