<< max_cap_path Chemins - Cycles Graphes - Réseaux >>

metanet >> metanet > Chemins - Cycles > shortest_path

shortest_path

chemin le plus court

Séquence d'appel

[p,lp] = shortest_path(i,j,g,[typ])

Paramètres

i

entier, numéro du sommet de départ

j

entier, numéro du sommet d'arrivée

g

graphe (liste)

typ

chaîne de caractères, type du chemin le plus court

p

vecteur ligne des numéros des arcs du chemin s'il existe

lp

longueur du chemin

Description

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.

Exemples

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);

Voir Aussi


Report an issue
<< max_cap_path Chemins - Cycles Graphes - Réseaux >>