<< hamilton Paths - Cycles shortest_path >>

metanet >> metanet > Paths - Cycles > max_cap_path

max_cap_path

maximum capacity path

Calling Sequence

[p,cap] = max_cap_path(i,j,g)

Parameters

i,j

integers, node numbers

g

a graph_data_structure.

p

row vector of integer numbers of the arcs of the path if it exists

cap

value of the capacity of the path

Description

max_cap_path returns the path with maximum capacity from node i to node j for the graph g if it exists and returns the empty vector [] otherwise.

The capacities of the edges are given by the field g.edges.data.max_cap of the graph.

The value of the capacity must be non negative.

If the value of max_cap is not given it is assumed to be equal to 0 on each edge.

If the max_cap data fields is not present in the graph structure it can be added and set using the add_edge_data function.

Examples

ta=[1 1 2 2 2 3 4 5 5 7 8 8 9 10 10 10 11 12 13 13 13 14 15 16 16 17 17];
he=[2 10 3 5 7 4 2 4 6 8 6 9 7 7 11 15 12 13 9 10 14 11 16 1 17 14 15];
g=make_graph('foo',1,17,ta,he);
g.nodes.graphics.x=[142,82,32,29,82,82,137,136,170,192,252,257,220,312,316,379,321]*1.2;
g.nodes.graphics.y=[30,67,112,159,114,160,111,162,216,71,105,160,214,222,94,76,151]*1.2;
g = add_edge_data(g,'max_cap',int(rand(1,edge_number(g))*16)+5)
g.edges.graphics.display='max_cap';
g.nodes.graphics.display='number';
show_graph(g);

hilite_nodes([1 14])
[p,cap]=max_cap_path(1,14,g);
hilite_edges(p);

<< hamilton Paths - Cycles shortest_path >>