Not Sexy Graph State Calculator 0.1 (Default branch)
NSGSC (Not Sexy Graph State Calculator) can calculate graph states that represent multi-qubit in quantum computing. In quantum computing, a graph state is a special type of multi-qubit state that can be represented by a graph. Each qubit is represented by a vertex of the graph, and there is an edge between every interacting pair of qubits. In particular, they are a convenient way of representing certain types of entangled states. Graph states are useful in quantum error correcting codes, entanglement measurement and purification, and for characterization of computational resources in measurement-based quantum computing models.
Graph::TransitiveClosure(3pm) User Contributed Perl Documentation Graph::TransitiveClosure(3pm)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)
# 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)
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 Graph::TransitiveClosure::Matrix.
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 Graph::TransitiveClosure::Matrix 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 v5.10.0 2009-01-17 Graph::TransitiveClosure(3pm)