annotate docs/modules/txt/Path.txt @ 0:4816e4a8ae95 draft default tip

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 09:23:18 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1 NAME
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2 Path - Path class
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
3
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
4 SYNOPSIS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
5 use Graph::Path;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
6
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
7 use Graph::Path qw(:all);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
8
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
9 DESCRIPTION
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
10 Path class provides the following methods:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
11
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
12 new, AddVertex, AddVertices, Copy, GetCommonVertices, GetEdges,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
13 GetEndVertex, GetLength, GetStartVertex, GetTerminalVertices, GetVertex,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
14 GetVertices, IsCycle, IsIndependentCyclicPath, IsIndependentPath,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
15 IsPath, Join, JoinAtVertex, PopVertex, PushVertex, PushVertices,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
16 Reverse, ShiftVertex, StringifyPath, UnshiftVertex, UnshiftVertices
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
17
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
18 Path is a sequential list of vertices with an edge between two
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
19 successive vertices. The path becomes a cycle when start vertex and end
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
20 vertex are the same.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
21
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
22 The following operators are overloaded:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
23
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
24 "" == eq
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
25
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
26 METHODS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
27 new
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
28 $NewPath = new Path();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
29 $NewPath = new Path(@VertexIDs);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
30
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
31 Using specified *VertexIDs*, new method creates a new Path object
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
32 and returns newly created Path object.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
33
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
34 AddVertex
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
35 $Path->AddVertex($VertexID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
36
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
37 Adds *VertexID* to *Path* and returns *Path*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
38
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
39 AddVertices
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
40 $Path->AddVertices(@VertexIDs);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
41
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
42 Adds vertices using *VertexIDs* to *Path* and returns *Graph*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
43
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
44 Copy
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
45 $Return = $Path->Copy();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
46
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
47 Copies *Path* and its associated data using Storable::dclone and
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
48 returns a new Path object.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
49
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
50 GetCommonVertices
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
51 @CommonVertices = $Path->GetCommonVertices($OtherPath);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
52 $NumOfCommonVertices = $Path->GetCommonVertices($OtherPath);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
53
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
54 Returns an array containing common vertex IDs between two paths. In
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
55 scalar context, number of common vertices is returned.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
56
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
57 GetEdges
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
58 @EdgesVertexIDs = $Path->GetEdges();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
59 $NumOfEdges = $Path->GetEdges();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
60
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
61 Returns an array containg successive paris of vertex IDs
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
62 corresponding to all edges in *Path*. In scalar context, the number
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
63 of edges is returned.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
64
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
65 GetEndVertex
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
66 $VertexID = $Path->GetEndVertex();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
67
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
68 Returns VertexID of end vertex in *Path*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
69
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
70 GetLength
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
71 $Length = $Path->GetLength();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
72
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
73 Returns Length of *Path* corresponding to number of vertices in
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
74 *Path*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
75
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
76 GetStartVertex
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
77 $VertexID = $Path->GetStartVertex();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
78
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
79 Returns VertexID of start vertex in *Path*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
80
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
81 GetTerminalVertices
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
82 ($StartVertexID, $EndVertexID) = $Path->GetTerminalVertices();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
83
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
84 Returns vertex IDs of start and end vertices in *Path*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
85
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
86 GetVertex
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
87 $VertexID = $Path->GetVertex($Index);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
88
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
89 Returns specific vertex ID from *Path* corresponding to *Index* with
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
90 indicies starting from 0.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
91
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
92 GetVertices
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
93 @Vertices = $Path->GetVertices();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
94 $NumOfVertices = $Path->GetVertices();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
95
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
96 Returns an array containing all vertex IDs in *Path*. In scalar
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
97 context, number of vertices is returned.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
98
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
99 IsCycle
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
100 $Status = $Path->IsCycle();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
101
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
102 Returns 1 or 0 based on whether *Path* is a CyclicPath which has the
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
103 same start and end vertex IDs.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
104
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
105 IsIndependentCyclicPath
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
106 $Status = $Path->IsIndependentCyclicPath();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
107
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
108 Returns 1 or 0 based on whether *Path* is an independent CyclicPath.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
109 For a *Path* to be an independent cyclic path, it must be a cyclic
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
110 path and have unique vertices.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
111
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
112 IsIndependentPath
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
113 $Status = $Path->IsIndependentPath();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
114
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
115 Returns 1 or 0 based on whether *Path* is an independent Path. For a
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
116 *Path* to be an independent path, it must have unique vertices.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
117
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
118 IsPath
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
119 $Status = Graph::Path::IsPath();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
120
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
121 Returns 1 or 0 based on whether *Object* is a Path object
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
122
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
123 Join
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
124 $NewPath = $Path->Join($OtherPath);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
125 $NewPath = $Path->Join(@VertexIDs);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
126
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
127 Joins existing *Path* with a new path specified as a *OtherPath*
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
128 object or an array of *VertexIDs* and returns *NewPath*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
129
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
130 In order to successfully join two paths, terminal vertices must have
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
131 a common vertex. Based on the common terminal vertex found,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
132 additional path vertices are added to the current *Path* in one of
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
133 the following four ways:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
134
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
135 . EndVertex = NewStartVertex: New path at end of current path with
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
136 same vertices order
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
137
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
138 . EndVertex = NewEndVertex: New path at end of current path with
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
139 reversed vertices order
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
140
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
141 . StartVertex = NewEndVertex: New path at front of current path
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
142 with same vertices order
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
143
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
144 . StartVertex = NewStartVertex: New path at front of current path
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
145 with reversed vertices order
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
146
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
147 JoinAtVertex
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
148 $NewPath = $Path->JoinAtVertex($OtherPath, $CenterVertexID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
149
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
150 Joins existing *Path* with *OtherPath* at a specified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
151 *CeterVertexID* and returns a *NewPath*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
152
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
153 PopVertex
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
154 $Path->PopVertex();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
155
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
156 Removes end vertex from *Path* and returns *Path*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
157
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
158 PushVertex
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
159 $Path->PushVertex($VertexID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
160
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
161 Adds *VertexID* to *Path* after end vertex and returns *Path*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
162
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
163 PushVertices
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
164 $Path->PushVertices(@VertexIDs);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
165
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
166 Adds *VertexIDs* to *Path* after end vertex and returns *Path*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
167
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
168 Reverse
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
169 $Path->Reverse();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
170
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
171 Reverses order of vertices in *Path* and returns *Path*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
172
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
173 ShiftVertex
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
174 $Path->ShiftVertex();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
175
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
176 Removes start vertex from *Path* and returns *Path*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
177
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
178 StringifyPath
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
179 $String = $Path->StringifyPath();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
180
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
181 Returns a string containing information about *Path* object.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
182
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
183 UnshiftVertex
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
184 $Path->UnshiftVertex($VertexID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
185
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
186 Adds *VertexID* to *Path* before start vertex and returns *Path*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
187
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
188 UnshiftVertices
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
189 $Path->UnshiftVertices(@VertexIDs);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
190
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
191 Adds *VertexIDs* to *Path* before start vertex and returns *Path*.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
192
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
193 AUTHOR
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
194 Manish Sud <msud@san.rr.com>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
195
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
196 SEE ALSO
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
197 PathGraph.pm, PathsTraversal.pm
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
198
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
199 COPYRIGHT
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
200 Copyright (C) 2015 Manish Sud. All rights reserved.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
201
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
202 This file is part of MayaChemTools.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
203
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
204 MayaChemTools is free software; you can redistribute it and/or modify it
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
205 under the terms of the GNU Lesser General Public License as published by
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
206 the Free Software Foundation; either version 3 of the License, or (at
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
207 your option) any later version.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
208