circuit
circuit — finds a circuit or the rank function in a directed graph
Calling sequence
[p,r] = circuit(g)
Parameters
g | : graph list |
p | : row vector of integer numbers of the arcs of the circuit if it exists |
r | : row vector of rank function if there is no circuit |
Description
circuit tries to find a circuit for the directed graph g.
It returns the circuit p as a row vector of the
corresponding arc numbers if it exists and it returns the empty vector []
otherwise.
If the graph has no circuit, the rank function is returned in r,
otherwise its value is the empty vector [].
Examples
// graph with circuit
ta=[1 1 2 3 5 4 6 7 7 3 3 8 8 5];
he=[2 3 5 4 6 6 7 4 3 2 8 1 7 4];
g=make_graph('foo',1,8,ta,he);
g('node_x')=[116 231 192 323 354 454 305 155];
g('node_y')=[ 118 116 212 219 117 185 334 316];
show_graph(g);
p=circuit(g)
show_arcs(p)
// graph without circuit
g=make_graph('foo',1,4,[1 2 2 3],[2 3 4 4]);
[p,r]=circuit(g)