chemin le plus court
[p,lp] = shortest_path(i,j,g,[typ])
entier, numéro du sommet de départ
entier, numéro du sommet d'arrivée
graphe (liste)
chaîne de caractères, type du chemin le plus court
vecteur ligne des numéros des arcs du chemin s'il existe
longueur du chemin
shortest_path
renvoie le chemin le plus court
p
du sommet i
au sommet j
s'il
existe, et le vecteur vide []
sinon. L'argument optionnel
typ
est une chaîne définissant le type du chemin, 'arc' pour
le chemin le plus court par rapport au nombre d'arcs et 'length' pour le
chemin le plus court par rapport à la longueur des arêtes
edge_length
.
Pour le chemin le plus court par rapport à la longueur des arêtes, les
longueurs sont données par les éléments edge_length
du
graphe. Si cette valeur n'est pas donnée (vecteur vide []
),
elle est supposée nulle sur chaque arête. Les longueurs peuvent être
positives ou négatives (ou nulles).
Quand le chemin le plus court existe, lp
est la longueur
du chemin.
rand('uniform'); ta=[1 1 2 2 2 3 4 4 5 6 6 6 7 7 7 8 9 10 12 12 13 13 13 14 15 14 9 11 10]; he=[2 6 3 4 5 1 3 5 1 7 10 11 5 8 9 5 8 11 10 11 9 11 15 13 14 4 6 9 1]; g=make_graph('foo',1,15,ta,he); g.nodes.graphics.x=[194 191 106 194 296 305 305 418 422 432 552 550 549 416 548]*0.7; g.nodes.graphics.y=[56 181 276 278 276 103 174 281 177 86 175 90 290 397 399]*0.7; g=add_edge_data(g,'length',int(20*rand(ta))); g.edges.graphics.display='length'; show_graph(g); [p,lp]=shortest_path(13,1,g,'length');p hilite_edges(p); | ![]() | ![]() |