view mayachemtools/docs/modules/man3/PathsTraversal.3 @ 9:ab29fa5c8c1f draft default tip

Uploaded
author deepakjadmin
date Thu, 15 Dec 2016 14:18:03 -0500
parents 73ae111cf86f
children
line wrap: on
line source

.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "PATHSTRAVERSAL 1"
.TH PATHSTRAVERSAL 1 "2015-03-29" "perl v5.14.2" "MayaChemTools"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
PathsTraversal
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
use Graph::PathsTraversal;
.PP
use Graph::PathsTraversal qw(:all);
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBPathsTraversal\fR class provides the following methods:
.PP
new, Copy, GetConnectedComponentsVertices, GetPaths, GetVertices,
GetVerticesDepth, GetVerticesNeighborhoods,
GetVerticesNeighborhoodsWithSuccessors, GetVerticesPredecessors, GetVerticesRoots,
PerformAllPathsSearch, PerformAllPathsSearchWithLength,
PerformAllPathsSearchWithLengthUpto, PerformBreadthFirstSearch,
PerformBreadthFirstSearchWithLimit, PerformDepthFirstSearch,
PerformDepthFirstSearchWithLimit, PerformNeighborhoodVerticesSearch,
PerformNeighborhoodVerticesSearchWithRadiusUpto,
PerformNeighborhoodVerticesSearchWithSuccessors,
PerformNeighborhoodVerticesSearchWithSuccessorsAndRadiusUpto, PerformPathsSearch,
PerformPathsSearchBetween, PerformPathsSearchWithLength,
PerformPathsSearchWithLengthUpto, StringifyPaths, StringifyPathsTraversal,
StringifyVerticesDepth, StringifyVerticesNeighborhoods,
StringifyVerticesNeighborhoodsWithSuccessors, StringifyVerticesPredecessors,
StringifyVerticesRoots, StringifyVerticesSuccessors
.SS "\s-1METHODS\s0"
.IX Subsection "METHODS"
.IP "\fBnew\fR" 4
.IX Item "new"
.Vb 1
\&    $PathsTraversal = new Graph::PathsTraversal($Graph);
.Ve
.Sp
Using specified \fIGraph\fR, \fBnew\fR method creates a new \fBPathsTraversal\fR object and returns
newly created \fBPathsTraversal\fR object.
.IP "\fBCopy\fR" 4
.IX Item "Copy"
.Vb 1
\&    $PathsTraversal = $PathsTraversal\->Copy();
.Ve
.Sp
Copies \fIPathsTraversal\fR and its associated data using \fBStorable::dclone\fR and returns a new
\&\fBPathsTraversal\fR object.
.IP "\fBGetConnectedComponentsVertices\fR" 4
.IX Item "GetConnectedComponentsVertices"
.Vb 2
\&    @Components = $PathsTraversal\->GetConnectedComponentsVertices();
\&    $NumOfComponents = $PathsTraversal\->GetConnectedComponentsVertices();
.Ve
.Sp
Returns an array of \fBComponents\fR containing references to arrays of vertex IDs corresponding
to connected components of graph after a search. In scalar context, the number of connected
components is returned.
.Sp
Connected \fBComponents\fR is sorted in descending order of number of vertices in each
connected component.
.IP "\fBGetPaths\fR" 4
.IX Item "GetPaths"
.Vb 2
\&    @Paths = $PathsTraversal\->GetPaths();
\&    $NumOfPaths = $PathsTraversal\->GetPaths();
.Ve
.Sp
Returns an array of \fBPaths\fR containing references to arrays of vertex IDs corresponding to
to paths traversed in a graph after a search. In scalar context, number of paths is returned.
.Sp
\&\fBPaths\fR array is sorted in ascending order of path lengths.
.IP "\fBGetVertices\fR" 4
.IX Item "GetVertices"
.Vb 2
\&    @Vertices = $PathsTraversal\->GetVertices();
\&    $NumOfVertices = $PathsTraversal\->GetVertices();
.Ve
.Sp
Returns an array containing an ordered list of vertex IDs traversed during a search. In
scalar context, the number of vertices is returned.
.IP "\fBGetVerticesDepth\fR" 4
.IX Item "GetVerticesDepth"
.Vb 1
\&    %VerticesDepth = $PathsTraversal\->GetVerticesDepth();
.Ve
.Sp
Returns a hash \fIVerticesDepth\fR containing vertex \s-1ID\s0 and depth from root vertex as a key and
value pair for all vertices traversed during a search.
.IP "\fBGetVerticesNeighborhoods\fR" 4
.IX Item "GetVerticesNeighborhoods"
.Vb 4
\&    @VerticesNeighborhoods =
\&       $PathsTraversal\->GetVerticesNeighborhoods();
\&    $NumOfVerticesNeighborhoods =
\&      $PathsTraversal\->GetVerticesNeighborhoods();
.Ve
.Sp
Returns an array \fIVerticesNeighborhoods\fR containing references to arrays corresponding
to vertices collected at various neighborhood radii around a specified vertex during a vertex
neighborhood search. In scalar context, the number of neighborhoods is returned.
.IP "\fBGetVerticesNeighborhoodsWithSuccessors\fR" 4
.IX Item "GetVerticesNeighborhoodsWithSuccessors"
.Vb 4
\&    @VerticesNeighborhoodsWithSucceessors =
\&       $PathsTraversal\->GetVerticesNeighborhoodsWithSuccessors();
\&    $NumOfVerticesNeighborhoodsWithSucceessors =
\&      $PathsTraversal\->GetVerticesNeighborhoodsWithSuccessors();
.Ve
.Sp
Returns an array \fIVerticesNeighborhoodsWithSucceessors\fR containing references to arrays
with first value corresponding to vertex IDs corresponding to a vertex at a specific neighborhood
radius level and second value a reference to an arraty containing its successors.
.IP "\fBGetVerticesPredecessors\fR" 4
.IX Item "GetVerticesPredecessors"
.Vb 1
\&    %VerticesPredecessors = $PathsTraversal\->GetVerticesPredecessors();
.Ve
.Sp
Returns a hash \fIVerticesPredecessors\fR containing vertex \s-1ID\s0 and predecessor vertex \s-1ID\s0 as key
and value pair for all vertices traversed during a search.
.IP "\fBGetVerticesRoots\fR" 4
.IX Item "GetVerticesRoots"
.Vb 1
\&    %VerticesRoots = $PathsTraversal\->GetVerticesRoots();
.Ve
.Sp
Returns a hash \fIVerticesPredecessors\fR containing vertex \s-1ID\s0 and root vertex \s-1ID\s0 as a key
and value pair for all vertices traversed during a search.
.IP "\fBPerformAllPathsSearch\fR" 4
.IX Item "PerformAllPathsSearch"
.Vb 1
\&    $PathsTraversal\->PerformAllPathsSearch($StartVertexID, [$AllowCycles]);
.Ve
.Sp
Searches all paths starting from a \fIStartVertexID\fR with sharing of edges in paths traversed and
returns \fIPathsTraversal\fR.
.Sp
By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
completing the cycle.
.IP "\fBPerformAllPathsSearchWithLength\fR" 4
.IX Item "PerformAllPathsSearchWithLength"
.Vb 2
\&    $PathsTraversal\->PerformAllPathsSearchWithLength($StartVertexID,
\&                     $Length, [$AllowCycles]);
.Ve
.Sp
Searches all paths starting from \fIStartVertexID\fR of specific \fILength\fR with sharing of
edges in paths traversed and returns \fIPathsTraversal\fR.
.Sp
By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
completing the cycle.
.IP "\fBPerformAllPathsSearchWithLengthUpto\fR" 4
.IX Item "PerformAllPathsSearchWithLengthUpto"
.Vb 2
\&    $PathsTraversal\->PerformAllPathsSearchWithLengthUpto($StartVertexID,
\&                     $Length, [$AllowCycles]);
.Ve
.Sp
Searches all paths starting from \fIStartVertexID\fR of length upto a \fILength\fR with sharing of
edges in paths traversed and returns \fIPathsTraversal\fR.
.Sp
By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
completing the cycle.
.IP "\fBPerformBreadthFirstSearch\fR" 4
.IX Item "PerformBreadthFirstSearch"
.Vb 1
\&    $PathsTraversal\->PerformBreadthFirstSearch();
.Ve
.Sp
Performs Breadth First Search (\s-1BFS\s0) and returns \fIPathsTraversal\fR.
.IP "\fBPerformBreadthFirstSearchWithLimit\fR" 4
.IX Item "PerformBreadthFirstSearchWithLimit"
.Vb 2
\&    $PathsTraversal\->PerformBreadthFirstSearchWithLimit($DepthLimit,
\&                     [$RootVertexID]);
.Ve
.Sp
Performs \s-1BFS\s0 with depth up to \fIDepthLimit\fR starting at \fIRootVertexID\fR and returns
\&\fIPathsTraversal\fR. By default, root vertex \s-1ID\s0 corresponds to an arbitrary vertex.
.IP "\fBPerformDepthFirstSearch\fR" 4
.IX Item "PerformDepthFirstSearch"
.Vb 1
\&    $Return = $PathsTraversal\->PerformDepthFirstSearch();
.Ve
.Sp
Performs Depth First Search (\s-1DFS\s0) and returns \fIPathsTraversal\fR.
.IP "\fBPerformDepthFirstSearchWithLimit\fR" 4
.IX Item "PerformDepthFirstSearchWithLimit"
.Vb 2
\&    $PathsTraversal\->PerformDepthFirstSearchWithLimit($DepthLimit,
\&                     [$RootVertexID]);
.Ve
.Sp
Performs \s-1DFS\s0 with depth up to \fIDepthLimit\fR starting at \fIRootVertexID\fR and returns
\&\fIPathsTraversal\fR. By default, root vertex \s-1ID\s0 corresponds to an arbitrary vertex.
.IP "\fBPerformNeighborhoodVerticesSearch\fR" 4
.IX Item "PerformNeighborhoodVerticesSearch"
.Vb 1
\&    $PathsTraversal\->PerformNeighborhoodVerticesSearch($StartVertexID);
.Ve
.Sp
Searches vertices around \fIStartVertexID\fR at all neighborhood radii and returns
\&\fIPathsTraversal\fR object.
.IP "\fBPerformNeighborhoodVerticesSearchWithRadiusUpto\fR" 4
.IX Item "PerformNeighborhoodVerticesSearchWithRadiusUpto"
.Vb 2
\&    $PathsTraversal\->PerformNeighborhoodVerticesSearchWithRadiusUpto(
\&                     $StartVertexID, $Radius);
.Ve
.Sp
Searches vertices around \fIStartVertexID\fR with neighborhood radius up to \fIRadius\fR and returns
\&\fIPathsTraversal\fR object.
.IP "\fBPerformNeighborhoodVerticesSearchWithSuccessors\fR" 4
.IX Item "PerformNeighborhoodVerticesSearchWithSuccessors"
.Vb 2
\&    $PathsTraversal\->PerformNeighborhoodVerticesSearchWithSuccessors(
\&                     $StartVertexID);
.Ve
.Sp
Searches vertices around \fIStartVertexID\fR at all neighborhood radii along with identification of
successor vertices for each vertex found during the traversal and returns \fIPathsTraversal\fR.
.IP "\fBPerformNeighborhoodVerticesSearchWithSuccessorsAndRadiusUpto\fR" 4
.IX Item "PerformNeighborhoodVerticesSearchWithSuccessorsAndRadiusUpto"
.Vb 3
\&    $PathsTraversal\->
\&                PerformNeighborhoodVerticesSearchWithSuccessorsAndRadiusUpto(
\&                     $StartVertexID, $Radius);
.Ve
.Sp
Searches vertices around \fIStartVertexID\fR with neighborhood radius upto \fIRadius\fR along with
identification of successor vertices for each vertex found during the traversal and returns
\&\fIPathsTraversal\fR.
.IP "\fBPerformPathsSearch\fR" 4
.IX Item "PerformPathsSearch"
.Vb 1
\&    $PathsTraversal\->PerformPathsSearch($StartVertexID, [$AllowCycles]);
.Ve
.Sp
Searches paths starting from \fIStartVertexID\fR with no sharing of edges in paths traversed and
returns \fIPathsTraversal\fR.
.Sp
By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
completing the cycle.
.IP "\fBPerformPathsSearchBetween\fR" 4
.IX Item "PerformPathsSearchBetween"
.Vb 1
\&    $PathsTraversal\->PerformPathsSearchBetween($StartVertexID, $EndVertexID);
.Ve
.Sp
Searches paths between \fIStartVertexID\fR and \fIEndVertexID\fR and returns \fIPathsTraversal\fR
.IP "\fBPerformPathsSearchWithLength\fR" 4
.IX Item "PerformPathsSearchWithLength"
.Vb 2
\&    $PathsTraversal\->PerformPathsSearchWithLength($StartVertexID, $Length,
\&                     [$AllowCycles]);
.Ve
.Sp
Searches paths starting from \fIStartVertexID\fR  with length \fILength\fR with no sharing of
edges in paths traversed and returns \fIPathsTraversal\fR.
.Sp
By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
completing the cycle.
.IP "\fBPerformPathsSearchWithLengthUpto\fR" 4
.IX Item "PerformPathsSearchWithLengthUpto"
.Vb 2
\&    $PathsTraversal\->PerformPathsSearchWithLengthUpto($StartVertexID, $Length,
\&                     [$AllowCycles]);
.Ve
.Sp
Searches paths starting from \fIStartVertexID\fR  with length upto \fILength\fR with no sharing of
edges in paths traversed and returns \fIPathsTraversal\fR.
.Sp
By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
completing the cycle.
.IP "\fBStringifyPaths\fR" 4
.IX Item "StringifyPaths"
.Vb 1
\&    $String = $PathsTraversal\->StringifyPaths();
.Ve
.Sp
Returns a string containing information about traversed paths in \fIPathsTraversal\fR object
.IP "\fBStringifyPathsTraversal\fR" 4
.IX Item "StringifyPathsTraversal"
.Vb 1
\&    $String = $PathsTraversal\->StringifyPathsTraversal();
.Ve
.Sp
Returns a string containing information about \fIPathsTraversal\fR object.
.IP "\fBStringifyVerticesDepth\fR" 4
.IX Item "StringifyVerticesDepth"
.Vb 1
\&    $String = $PathsTraversal\->StringifyVerticesDepth();
.Ve
.Sp
Returns a string containing information about depth of vertices found during search by
\&\fIPathsTraversal\fR object.
.IP "\fBStringifyVerticesNeighborhoods\fR" 4
.IX Item "StringifyVerticesNeighborhoods"
.Vb 1
\&    $String = $PathsTraversal\->StringifyVerticesNeighborhoods();
.Ve
.Sp
Returns a string containing information about neighborhoods of vertices found during search by
\&\fIPathsTraversal\fR object.
.IP "\fBStringifyVerticesNeighborhoodsWithSuccessors\fR" 4
.IX Item "StringifyVerticesNeighborhoodsWithSuccessors"
.Vb 1
\&    $String = $PathsTraversal\->StringifyVerticesNeighborhoodsWithSuccessors();
.Ve
.Sp
Returns a string containing information about neighborhoods of vertices along with their successors
found during search by \fIPathsTraversal\fR object.
.IP "\fBStringifyVerticesPredecessors\fR" 4
.IX Item "StringifyVerticesPredecessors"
.Vb 1
\&    $String = $PathsTraversal\->StringifyVerticesPredecessors();
.Ve
.Sp
Returns a string containing information about predecessors of vertices found during search by
\&\fIPathsTraversal\fR object.
.IP "\fBStringifyVerticesRoots\fR" 4
.IX Item "StringifyVerticesRoots"
.Vb 1
\&    $String = $PathsTraversal\->StringifyVerticesRoots();
.Ve
.Sp
Returns a string containing information about roots of vertices found during search by
\&\fIPathsTraversal\fR object.
.IP "\fBStringifyVerticesSuccessors\fR" 4
.IX Item "StringifyVerticesSuccessors"
.Vb 1
\&    $String = $PathsTraversal\->StringifyVerticesSuccessors();
.Ve
.Sp
Returns a string containing information about successors of vertices found during search by
\&\fIPathsTraversal\fR object.
.SH "AUTHOR"
.IX Header "AUTHOR"
Manish Sud <msud@san.rr.com>
.SH "SEE ALSO"
.IX Header "SEE ALSO"
Graph.pm, Path.pm
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (C) 2015 Manish Sud. All rights reserved.
.PP
This file is part of MayaChemTools.
.PP
MayaChemTools is free software; you can redistribute it and/or modify it under
the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option)
any later version.