Perl Diver 2.31
Main Environment Variables Perl Default Values Perl Config - Summary Perl Config - Full Installed Modules List Directory uptime Docs

Module Documentation
Details and documentation about a specific module, including version and documentation (if available). Note that while links to perldoc.com and search.cpan.org are provided, the module may be part of a larger distribution. If you reach a File Not Found page on either site, please try the parent module.

Graph::TransitiveClosure

Name Graph::TransitiveClosure
Version
Located at /usr/share/perl5/vendor_perl
File /usr/share/perl5/vendor_perl/Graph/TransitiveClosure.pm
Is Core No
Search CPAN for this module Graph::TransitiveClosure
Documentation Graph::TransitiveClosure
Module Details Graph::TransitiveClosure

NAME

Graph::TransitiveClosure - create and query transitive closure of graph


SYNOPSIS

    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
    # (transitions from a vertex to the same vertex) 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)
    # 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)


DESCRIPTION

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.

Class Methods

new($g, %opt)
Construct a new transitive closure object. Note that strictly speaking the returned object is not a graph; it is a graph plus other stuff. But you should be able to use it as a graph plus a couple of methods inherited from the Graph::TransitiveClosure::Matrix class.

Object Methods

These are only the methods 'native' to the class: see the Graph::TransitiveClosure::Matrix manpage for more.

is_transitive($g)
Return true if the Graph $g is transitive.

transitive_closure_matrix
Return the transitive closure matrix of the transitive closure object.

INTERNALS

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.

Perl Diver brought to you by ScriptSolutions.com © 1997- 2024