|
/usr/local/perl/lib/site_perl/5.6.1/Graph/TransitiveClosure.pm |
use Graph::TransitiveClosure;
use Graph::Directed; # or Undirected
my $g = Graph::Directed->new;
$g->add_...(); # build $g
# Compute the transitive closure graph.
my $tcg = Graph::TransitiveClosure->new($g);
$tcg->is_reachable($u, $v) # Identical to $tcg->has_edge($u, $v)
# Being reflexive is the default,
# meaning that null transitions are included.
my $tcg = Graph::TransitiveClosure->new($g, reflexive => 1);
my $tcg = Graph::TransitiveClosure->new($g, reflexive => 0);
# is_reachable(u, v) is always reflexive.
$tcg->is_reachable($u, $v)
# The reflexivity of is_transitive(u, v) depends of the reflexivity
# of the transitive closure.
$tcg->is_transitive($u, $v)
# You can check any graph for transitivity.
$g->is_transitive()
my $tcg = Graph::TransitiveClosure->new($g, path_length => 1);
$tcg->path_length($u, $v)
# path_vertices is automatically always on so this is a no-op.
my $tcg = Graph::TransitiveClosure->new($g, path_vertices => 1);
$tcg->path_vertices($u, $v)
# Both path_length and path_vertices.
my $tcg = Graph::TransitiveClosure->new($g, path => 1);
$tcg->path_vertices($u, $v)
$tcg->length($u, $v)
my $tcg = Graph::TransitiveClosure->new($g, attribute_name => 'length');
$tcg->path_length($u, $v)
You can use Graph::TransitiveClosure to compute the transitive
closure graph of a graph and optionally also the minimum paths
(lengths and vertices) between vertices, and after that query the
transitiveness between vertices by using the is_reachable() and
is_transitive() methods, and the paths by using the
path_length() and path_vertices() methods.
For further documentation, see the the Graph::TransitiveClosure::Matrix manpage.
These are only the methods 'native' to the class: see the Graph::TransitiveClosure::Matrix manpage for more.
is_transitive($g)
The transitive closure matrix is stored as an attribute of the graph
called _tcm, and any methods not found in the graph class are searched
in the transitive closure matrix class.
|
/usr/local/perl/lib/site_perl/5.6.1/Graph/TransitiveClosure.pm |