comparison docs/modules/txt/Graph.txt @ 0:4816e4a8ae95 draft default tip

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 09:23:18 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4816e4a8ae95
1 NAME
2 Graph
3
4 SYNOPSIS
5 use Graph;
6
7 use Graph qw(:all);
8
9 DESCRIPTION
10 Graph class provides the following methods:
11
12 new, AddCycle, AddEdge, AddEdges, AddPath, AddVertex, AddVertices,
13 ClearCycles, Copy, CopyEdgesProperties, CopyVerticesAndEdges,
14 CopyVerticesProperties, DeleteCycle, DeleteEdge, DeleteEdgeProperties,
15 DeleteEdgeProperty, DeleteEdges, DeleteEdgesProperties,
16 DeleteEdgesProperty, DeleteGraphProperties, DeleteGraphProperty,
17 DeletePath, DeleteVertex, DeleteVertexProperties, DeleteVertexProperty,
18 DeleteVertices, DeleteVerticesProperty, DetectCycles,
19 GetAdjacencyMatrix, GetAdmittanceMatrix, GetAllPaths,
20 GetAllPathsStartingAt, GetAllPathsStartingAtWithLength,
21 GetAllPathsStartingAtWithLengthUpto, GetAllPathsWithLength,
22 GetAllPathsWithLengthUpto, GetCircumference,
23 GetConnectedComponentsVertices, GetCycles, GetCyclesWithEvenSize,
24 GetCyclesWithOddSize, GetCyclesWithSize, GetCyclesWithSizeGreaterThan,
25 GetCyclesWithSizeLessThan, GetDegree, GetDegreeMatrix,
26 GetDistanceMatrix, GetEdgeCycles, GetEdgeCyclesWithEvenSize,
27 GetEdgeCyclesWithOddSize, GetEdgeCyclesWithSize,
28 GetEdgeCyclesWithSizeGreaterThan, GetEdgeCyclesWithSizeLessThan,
29 GetEdgeProperties, GetEdgeProperty, GetEdges, GetEdgesProperty,
30 GetFusedAndNonFusedCycles, GetGirth, GetGraphProperties,
31 GetGraphProperty, GetIncidenceMatrix, GetIsolatedVertices,
32 GetKirchhoffMatrix, GetLaplacianMatrix, GetLargestCycle,
33 GetLargestEdgeCycle, GetLargestVertexCycle, GetLeafVertices,
34 GetMaximumDegree, GetMininumDegree, GetNeighborhoodVertices,
35 GetNeighborhoodVerticesWithRadiusUpto,
36 GetNeighborhoodVerticesWithSuccessors,
37 GetNeighborhoodVerticesWithSuccessorsAndRadiusUpto, GetNeighbors,
38 GetNormalizedLaplacianMatrix, GetNumOfCycles,
39 GetNumOfCyclesWithEvenSize, GetNumOfCyclesWithOddSize,
40 GetNumOfCyclesWithSize, GetNumOfCyclesWithSizeGreaterThan,
41 GetNumOfCyclesWithSizeLessThan, GetNumOfEdgeCycles,
42 GetNumOfEdgeCyclesWithEvenSize, GetNumOfEdgeCyclesWithOddSize,
43 GetNumOfEdgeCyclesWithSize, GetNumOfEdgeCyclesWithSizeGreaterThan,
44 GetNumOfEdgeCyclesWithSizeLessThan, GetNumOfVertexCycles,
45 GetNumOfVertexCyclesWithEvenSize, GetNumOfVertexCyclesWithOddSize,
46 GetNumOfVertexCyclesWithSize, GetNumOfVertexCyclesWithSizeGreaterThan,
47 GetNumOfVertexCyclesWithSizeLessThan, GetPaths, GetPathsBetween,
48 GetPathsStartingAt, GetPathsStartingAtWithLength,
49 GetPathsStartingAtWithLengthUpto, GetPathsWithLength,
50 GetPathsWithLengthUpto, GetSiedelAdjacencyMatrix, GetSizeOfLargestCycle,
51 GetSizeOfLargestEdgeCycle, GetSizeOfLargestVertexCycle,
52 GetSizeOfSmallestCycle, GetSizeOfSmallestEdgeCycle,
53 GetSizeOfSmallestVertexCycle, GetSmallestCycle, GetSmallestEdgeCycle,
54 GetSmallestVertexCycle, GetTopologicallySortedVertices, GetVertex,
55 GetVertexCycles, GetVertexCyclesWithEvenSize,
56 GetVertexCyclesWithOddSize, GetVertexCyclesWithSize,
57 GetVertexCyclesWithSizeGreaterThan, GetVertexCyclesWithSizeLessThan,
58 GetVertexProperties, GetVertexProperty, GetVertexWithLargestDegree,
59 GetVertexWithSmallestDegree, GetVertices, GetVerticesProperty,
60 GetVerticesWithDegreeLessThan, HasCycle, HasEdge, HasEdgeProperty,
61 HasEdges, HasFusedCycles, HasGraphProperty, HasPath, HasVertex,
62 HasVertexProperty, HasVertices, IsAcyclic, IsAcyclicEdge,
63 IsAcyclicVertex, IsCyclic, IsCyclicEdge, IsCyclicVertex, IsGraph,
64 IsIsolatedVertex, IsLeafVertex, IsUnicyclic, IsUnicyclicEdge,
65 IsUnicyclicVertex, SetActiveCyclicPaths, SetEdgeProperties,
66 SetEdgeProperty, SetEdgesProperty, SetGraphProperties, SetGraphProperty,
67 SetVertexProperties, SetVertexProperty, SetVerticesProperty,
68 StringifyEdgesProperties, StringifyGraph, StringifyGraphProperties,
69 StringifyProperties, StringifyVerticesAndEdges,
70 StringifyVerticesProperties, UpdateEdgeProperty, UpdateVertexProperty
71
72 METHODS
73 new
74 $NewGraph = new Graph([@VertexIDs]);
75
76 Using specified *Graph* *VertexIDs*, new method creates a new Graph
77 object and returns newly created Graph object.
78
79 Examples:
80
81 $Graph = new Graph();
82 $Graph = new Graph(@VertexIDs);
83
84 AddCycle
85 $Graph->AddCycle(@VertexIDs);
86
87 Adds edges between successive pair of *VertexIDs* including an
88 additional edge from the last to first vertex ID to complete the
89 cycle to *Graph* and returns *Graph*.
90
91 AddEdge
92 $Graph->AddEdge($VertexID1, $VertexID2);
93
94 Adds an edge between *VertexID1* and *VertexID2* in a *Graph* and
95 returns *Graph*.
96
97 AddEdges
98 $Graph->AddEdges(@VertexIDs);
99
100 Adds edges between successive pair of *VertexIDs* in a *Graph* and
101 returns *Graph*.
102
103 AddPath
104 $Graph->AddPath(@VertexIDs);
105
106 Adds edges between successive pair of *VertexIDs* in a *Graph* and
107 returns *Graph*.
108
109 AddVertex
110 $Graph->AddVertex($VertexID);
111
112 Adds *VertexID* to *Graph* and returns *Graph*.
113
114 AddVertices
115 $Graph->AddVertices(@VertexIDs);
116
117 Adds vertices using *VertexIDs* to *Graph* and returns *Graph*.
118
119 ClearCycles
120 $Graph->ClearCycles();
121
122 Delete all cycle properties assigned to graph, vertices, and edges
123 by *DetectCycles* method.
124
125 Copy
126 $NewGraph = $Graph->Copy();
127
128 Copies *Graph* and its associated data using Storable::dclone and
129 returns a new Graph object.
130
131 CopyEdgesProperties
132 $OtherGraph = $Graph->CopyEdgesProperties($OtherGraph);
133
134 Copies all properties associated with edges from *Graph* to
135 *$OtherGraph* and returns *OtherGraph*.
136
137 CopyVerticesAndEdges
138 $OtherGraph = $Graph->CopyVerticesAndEdges($OtherGraph);
139
140 Copies all vertices and edges from *Graph* to *$OtherGraph* and
141 returns *OtherGraph*.
142
143 CopyVerticesProperties
144 $OtherGraph = $Graph->CopyVerticesProperties($OtherGraph);
145
146 Copies all properties associated with vertices from *Graph* to
147 *$OtherGraph* and returns *OtherGraph*.
148
149 DeleteCycle
150 $Graph->DeleteCycle(@VertexIDs);
151
152 Deletes edges between successive pair of *VertexIDs* including an
153 additional edge from the last to first vertex ID to complete the
154 cycle to *Graph* and returns *Graph*.
155
156 DeleteEdge
157 $Graph->DeleteEdge($VertexID1, $VertexID2);
158
159 Deletes an edge between *VertexID1* and *VertexID2* in a *Graph* and
160 returns *Graph*.
161
162 DeleteEdgeProperties
163 $Graph->DeleteEdgeProperties($VertexID1, $VertexID2);
164
165 Deletes all properties associated with edge between *VertexID1* and
166 *VertexID2* in a *Graph* and returns *Graph*.
167
168 DeleteEdgeProperty
169 $Graph->DeleteEdgeProperty($PropertyName, $VertexID1, $VertexID2);
170
171 Deletes *PropertyName* associated with edge between *VertexID1* and
172 *VertexID2* in a *Graph* and returns *Graph*.
173
174 DeleteEdges
175 $Graph->DeleteEdges(@VertexIDs);
176
177 Deletes edges between successive pair of *VertexIDs* and returns
178 *Graph*.
179
180 DeleteEdgesProperties
181 $Graph->DeleteEdgesProperties(@VertexIDs);
182
183 Deletes all properties associated with edges between successive pair
184 of *VertexIDs* and returns *Graph*.
185
186 DeleteEdgesProperty
187 $Graph->DeleteEdgesProperty($PropertyName, @VertexIDs);
188
189 Deletes *PropertyName* associated with edges between successive pair
190 of *VertexIDs* and returns *Graph*.
191
192 DeleteGraphProperties
193 $Graph->DeleteGraphProperties();
194
195 Deletes all properties associated as graph not including properties
196 associated to vertices or edges and returns *Graph*.
197
198 DeleteGraphProperty
199 $Graph->DeleteGraphProperty($PropertyName);
200
201 Deletes a *PropertyName* associated as graph property and returns
202 *Graph*.
203
204 DeletePath
205 $Graph->DeletePath(@VertexIDs);
206
207 Deletes edges between successive pair of *VertexIDs* in a *Graph*
208 and returns *Graph*.
209
210 DeleteVertex
211 $Graph->DeleteVertex($VertexID);
212
213 Deletes *VertexID* to *Graph* and returns *Graph*.
214
215 DeleteVertexProperties
216 $Graph->DeleteVertexProperties($VertexID);
217
218 Deletes all properties associated with *VertexID* and returns
219 *Graph*.
220
221 DeleteVertexProperty
222 $Graph->DeleteVertexProperty($PropertyName, $VertexID);
223
224 Deletes a *PropertyName* associated with *VertexID* and returns
225 *Graph*.
226
227 DeleteVertices
228 $Graph->DeleteVertices(@VertexIDs);
229
230 Deletes vertices specified in *VertexIDs* and returns *Graph*.
231
232 DeleteVerticesProperty
233 $Graph->DeleteVerticesProperty($PropertyName, @VertexIDs);
234
235 Deletes a *PropertyName* associated with *VertexIDs* and returns
236 *Graph*.
237
238 DetectCycles
239 $Graph->DetectCycles();
240
241 Detect cycles using CyclesDetection class and associate found cycles
242 to *Graph* object as graph properties: *ActiveCyclicPaths,
243 AllCyclicPaths, IndependentCyclicPaths*.
244
245 Notes:
246
247 . CyclesDetection class detects all cycles in the graph and filters
248 them to find independent cycles.
249 . All cycles related methods in the graph operate on
250 ActiveCyclicPaths. By default, active cyclic paths correspond
251 to IndependentCyclicPaths. This behavior can be changed
252 using SetActiveCyclicPaths method.
253
254 GetAdjacencyMatrix
255 $GraphMatrix = $Graph->GetAdjacencyMatrix();
256
257 Returns adjacency matrix for *Graph* as a *GraphMatrix* object with
258 row and column indices corresponding to graph vertices returned by
259 GetVertices method.
260
261 For a simple graph G with n vertices, the adjacency matrix for G is
262 a n x n square matrix and its elements Mij are:
263
264 . 0 if i == j
265 . 1 if i != j and vertex Vi is adjacent to vertex Vj
266 . 0 if i != j and vertex Vi is not adjacent to vertex Vj
267
268 GetAdmittanceMatrix
269 $GraphMatrix = $Graph->GetAdmittanceMatrix();
270
271 Returns admittance matrix for *Graph* as a *GraphMatrix* object with
272 row and column indices corresponding to graph vertices returned by
273 GetVertices method.
274
275 For a simple graph G with n vertices, the adjacency matrix for G is
276 a n x n square matrix and its elements Mij are:
277
278 . 0 if i == j
279 . 1 if i != j and vertex Vi is adjacent to vertex Vj
280 . 0 if i != j and vertex Vi is not adjacent to vertex Vj
281
282 GetAllPaths
283 $PathsRef = $Graph->GetAllPaths([$AllowCycles]);
284
285 Returns a reference to an array containing Path objects
286 corresponding to all possible lengths starting from each vertex in
287 graph with sharing of edges in paths traversed. By default, cycles
288 are included in paths. A path containing a cycle is terminated at a
289 vertex completing the cycle. Duplicate paths are not removed.
290
291 GetAllPathsStartingAt
292 @Paths = $Graph->GetAllPathsStartingAt($StartVertexID,
293 [$AllowCycles]);
294
295 Returns an array of *Path* objects starting from a *StartVertexID*
296 of any length with sharing of edges in paths traversed. By default,
297 cycles are included in paths. A path containing a cycle is
298 terminated at a vertex completing the cycle.
299
300 GetAllPathsStartingAtWithLength
301 @Paths = $Graph->GetAllPathsStartingAtWithLength($StartVertexID,
302 $Length, [$AllowCycles]);
303
304 Returns an array of *Path* objects starting from a *StartVertexID*
305 of specified *Length* with sharing of edges in paths traversed. By
306 default, cycles are included in paths. A path containing a cycle is
307 terminated at a vertex completing the cycle.
308
309 GetAllPathsStartingAtWithLengthUpto
310 @Paths = $Graph->GetAllPathsStartingAtWithLengthUpto($StartVertexID,
311 $Length, [$AllowCycles]);
312
313 Returns an array of *Path* objects starting from a *StartVertexID*
314 with length upto a *Length* with sharing of edges in paths
315 traversed. By default, cycles are included in paths. A path
316 containing a cycle is terminated at a vertex completing the cycle.
317
318 GetAllPathsWithLength
319 $PathsRef = $Graph->GetAllPathsWithLength($Length,
320 [$AllowCycles]);
321
322 Returns a reference to an array containing Path objects
323 corresponding to paths with *Length* starting from each vertex in
324 graph with sharing of edges in paths traversed. By default, cycles
325 are included in paths. A path containing a cycle is terminated at a
326 vertex completing the cycle. Duplicate paths are not removed.
327
328 GetAllPathsWithLengthUpto
329 $PathsRef = $Graph->GetAllPathsWithLengthUpto($Length,
330 [$AllowCycles]);
331
332 Returns a reference to an array containing Path objects
333 corresponding to paths up to specified *Length* starting from each
334 vertex in graph with sharing of edges in paths traversed. By
335 default, cycles are included in paths. A path containing a cycle is
336 terminated at a vertex completing the cycle. Duplicate paths are not
337 removed.
338
339 GetCircumference
340 $Circumference = $Graph->GetCircumference();
341
342 Returns size of largest cycle in a *Graph*
343
344 GetConnectedComponentsVertices
345 @ConnectedComponents = $Graph->GetConnectedComponentsVertices();
346
347 Returns an array *ConnectedComponents* containing referecens to
348 arrays with vertex IDs for each component sorted in order of their
349 decreasing size.
350
351 GetCycles
352 @CyclicPaths = $Graphs->GetCycles();
353
354 Returns an array *CyclicPaths* containing *Path* objects
355 corresponding to cycles in a *Graph*.
356
357 GetCyclesWithEvenSize
358 @CyclicPaths = $Graph->GetCyclesWithEvenSize();
359
360 Returns an array *CyclicPaths* containing *Path* objects
361 corresponding to cycles with even size in a *Graph*.
362
363 GetCyclesWithOddSize
364 @CyclicPaths = $Graph->GetCyclesWithOddSize();
365
366 Returns an array *CyclicPaths* containing *Path* objects
367 corresponding to cycles with odd size in a *Graph*.
368
369 GetCyclesWithSize
370 @CyclicPaths = $Graph->GetCyclesWithSize($CycleSize);
371
372 Returns an array *CyclicPaths* containing *Path* objects
373 corresponding to cycles with *CycleSize* in a *Graph*.
374
375 GetCyclesWithSizeGreaterThan
376 @CyclicPaths = $Graph->GetCyclesWithSizeGreaterThan($CycleSize);
377
378 Returns an array *CyclicPaths* containing *Path* objects
379 corresponding to cycles with size greater than *CycleSize* in a
380 *Graph*.
381
382 GetCyclesWithSizeLessThan
383 @CyclicPaths = $Graph->GetCyclesWithSizeGreaterThan($CycleSize);
384
385 Returns an array *CyclicPaths* containing *Path* objects
386 corresponding to cycles with size less than *CycleSize* in a
387 *Graph*.
388
389 GetDegree
390 $Degree = $Graph->GetDegree($VertexID);
391
392 Returns Degree for *VertexID* in a *Graph* corresponding to sum of
393 in and out vertex degree values.
394
395 GetDegreeMatrix
396 $GraphMatrix = $Graph->GetDegreeMatrix();
397
398 Returns degree matrix for *Graph* as a *GraphMatrix* object with row
399 and column indices corresponding to graph vertices returned by
400 GetVertices method.
401
402 For a simple graph G with n vertices, the degree matrix for G is a n
403 x n square matrix and its elements Mij are:
404
405 . deg(Vi) if i == j and deg(Vi) is the degree of vertex Vi
406 . 0 otherwise
407
408 GetDistanceMatrix
409 $GraphMatrix = $Graph->GetDistanceMatrix();
410
411 Returns distance matrix for *Graph* as a *GraphMatrix* object with
412 row and column indices corresponding to graph vertices returned by
413 GetVertices method.
414
415 For a simple graph G with n vertices, the distance matrix for G is a
416 n x n square matrix and its elements Mij are:
417
418 . 0 if i == j
419 . d if i != j and d is the shortest distance between vertex Vi and vertex Vj
420
421 In the final matrix, value of constant BigNumber defined in
422 Constants.pm module corresponds to vertices with no edges.
423
424 GetEdgeCycles
425 @CyclicPaths = $Graph->GetEdgeCycles($VertexID1, $VertexID2);
426
427 Returns an array *CyclicPaths* containing *Path* objects
428 corresponding to all cycles containing edge between *VertexID1* and
429 *VertexID2* in a *Graph*.
430
431 GetEdgeCyclesWithEvenSize
432 @CyclicPaths = $Graph->GetEdgeCyclesWithEvenSize($VertexID1,
433 $VertexID2);
434
435 Returns an array *CyclicPaths* containing *Path* objects
436 corresponding to cycles with even size containing edge between
437 *VertexID1* and *VertexID2* in a *Graph*.
438
439 GetEdgeCyclesWithOddSize
440 @CyclicPaths = $Graph->GetEdgeCyclesWithOddSize($VertexID1,
441 $VertexID2);
442
443 Returns an array *CyclicPaths* containing *Path* objects
444 corresponding to cycles with odd size containing edge between
445 *VertexID1* and *VertexID2* in a *Graph*.
446
447 GetEdgeCyclesWithSize
448 @CyclicPaths = $Graph->GetEdgeCyclesWithSize($VertexID1, $VertexID2,
449 $CycleSize);
450
451 Returns an array *CyclicPaths* containing *Path* objects
452 corresponding to cycles with size *CycleSize* containing edge
453 between *VertexID1* and *VertexID2* in a *Graph*.
454
455 GetEdgeCyclesWithSizeGreaterThan
456 @CyclicPaths = $Graph->GetEdgeCyclesWithSizeGreaterThan($VertexID1,
457 $VertexID2, $CycleSize);
458
459 Returns an array *CyclicPaths* containing *Path* objects
460 corresponding to cycles with size greater than *CycleSize*
461 containing edge between *VertexID1* and *VertexID2* in a *Graph*.
462
463 GetEdgeCyclesWithSizeLessThan
464 @CyclicPaths = $Graph->GetEdgeCyclesWithSizeLessThan($VertexID1,
465 $VertexID2, $CycleSize);
466
467 Returns an array *CyclicPaths* containing *Path* objects
468 corresponding to cycles with size less than *CycleSize* containing
469 edge between *VertexID1* and *VertexID2*.
470
471 GetEdgeProperties
472 %EdgeProperties = $Graph->GetEdgeProperties($VertexID1, $VertexID2);
473
474 Returns a hash EdgeProperties containing all PropertyName and
475 PropertyValue pairs associated with an edge between *VertexID1* and
476 *VertexID2* in a *Graph*.
477
478 GetEdgeProperty
479 $Value = $Graph->GetEdgeProperty($PropertyName, $VertexID1, $VertexID2);
480
481 Returns value of *PropertyName* associated with an edge between
482 *VertexID1* and *VertexID2* in a *Graph*.
483
484 GetEdges
485 @EdgeVertexIDs = $Graph->GetEdges($VertexID);
486 $NumOfEdges = $Graph->GetEdges($VertexID);
487
488 Returns an array *EdgeVertexIDs* with successive pair of IDs
489 corresponding to edges involving *VertexID* or number of edges for
490 *VertexID* in a *Graph*.
491
492 GetEdgesProperty
493 @PropertyValues = $Graph->GetEdgesProperty($PropertyName, @VertexIDs);
494
495 Returns an array *PropertyValues* containing property values
496 corresponding to *PropertyName* associated with edges between
497 successive pair of *VertexIDs*.
498
499 GetFusedAndNonFusedCycles
500 ($FusedCycleSetsRef, $NonFusedCyclesRef) =
501 $Graph->GetFusedAndNonFusedCycles();
502
503 Returns references to arrays *FusedCycleSetsRef* and
504 *NonFusedCyclesRef* containing references to arrays of cyclic *Path*
505 objects corresponding to fuses and non-fused cyclic paths.
506
507 GetGirth
508 $Girth = $Graph->GetGirth();
509
510 Returns size of smallest cycle in a *Graph*.
511
512 GetGraphProperties
513 %GraphProperties = $Graph->GetGraphProperties();
514
515 Returns a hash EdgeProperties containing all PropertyName and
516 PropertyValue pairs associated with graph in a *Graph*.
517
518 GetGraphProperty
519 $PropertyValue = $Graph->GetGraphProperty($PropertyName);
520
521 Returns value of *PropertyName* associated with graph in a *Graph*.
522
523 GetIncidenceMatrix
524 $GraphMatrix = $Graph->GetIncidenceMatrix();
525
526 Returns incidence matrix for *Graph* as a *GraphMatrix* object with
527 row and column indices corresponding to graph vertices returned by
528 GetVertices method.
529
530 For a simple graph G with n vertices and e edges, the incidence
531 matrix for G is a n x e matrix its elements Mij are:
532
533 . 1 if vertex Vi and the edge Ej are incident; in other words, Vi and Ej are related
534 . 0 otherwise
535
536 GetIsolatedVertices
537 @VertexIDs = $Graph->GetIsolatedVertices();
538
539 Returns an array *VertexIDs* containing vertices without any edges
540 in *Graph*.
541
542 GetKirchhoffMatrix
543 $GraphMatrix = $Graph->GetGetKirchhoffMatrix();
544
545 Returns Kirchhoff matrix for *Graph* as a *GraphMatrix* object with
546 row and column indices corresponding to graph vertices returned by
547 GetVertices method.
548
549 KirchhoffMatrix is another name for LaplacianMatrix.
550
551 GetLaplacianMatrix
552 $GraphMatrix = $Graph->GetLaplacianMatrix();
553
554 Returns Laplacian matrix for *Graph* as a *GraphMatrix* object with
555 row and column indices corresponding to graph vertices returned by
556 GetVertices method.
557
558 For a simple graph G with n vertices, the Laplacian matrix for G is
559 a n x n square matrix and its elements Mij are:
560
561 . deg(Vi) if i == j and deg(Vi) is the degree of vertex Vi
562 . -1 if i != j and vertex Vi is adjacent to vertex Vj
563 . 0 otherwise
564
565 GetLargestCycle
566 $CyclicPath = $Graph->GetLargestCycle();
567
568 Returns a cyclic *Path* object corresponding to largest cycle in a
569 *Graph*.
570
571 GetLargestEdgeCycle
572 $CyclicPath = $Graph->GetLargestEdgeCycle($VertexID1, $VertexID2);
573
574 Returns a cyclic *Path* object corresponding to largest cycle
575 containing edge between *VertexID1* and *VertexID2* in a *Graph*.
576
577 GetLargestVertexCycle
578 $CyclicPath = $Graph->GetLargestVertexCycle($VertexID);
579
580 Returns a cyclic *Path* object corresponding to largest cycle
581 containing *VertexID* in a *Graph*.
582
583 GetLeafVertices
584 @VertexIDs = $Graph->GetLeafVertices();
585
586 Returns an array *VertexIDs* containing vertices with degree of 1 in
587 a *Graph*.
588
589 GetMaximumDegree
590 $Degree = $Graph->GetMaximumDegree();
591
592 Returns value of maximum vertex degree in a *Graph*.
593
594 GetMininumDegree
595 $Degree = $Graph->GetMininumDegree();
596
597 Returns value of minimum vertex degree in a *Graph*.
598
599 GetNeighborhoodVertices
600 @VertexNeighborhoods = GetNeighborhoodVertices($StartVertexID);
601
602 Returns an array *VertexNeighborhoods* containing references to
603 arrays corresponding to neighborhood vertices around a specified
604 *StartVertexID* at all possible radii levels.
605
606 GetNeighborhoodVerticesWithRadiusUpto
607 @VertexNeighborhoods = GetNeighborhoodVerticesWithRadiusUpto(
608 $StartVertexID, $Radius);
609
610 Returns an array *VertexNeighborhoods* containing references to
611 arrays corresponding to neighborhood vertices around a specified
612 *StartVertexID* upto specified *Radius* levels.
613
614 GetNeighborhoodVerticesWithSuccessors
615 @VertexNeighborhoods = GetNeighborhoodVerticesWithSuccessors(
616 $StartVertexID);
617
618 Returns vertex neighborhoods around a specified *StartVertexID*,
619 along with their successor connected vertices, collected at all
620 neighborhood radii as an array *VertexNeighborhoods* containing
621 references to arrays with first value corresponding to vertex ID and
622 second value as reference to an array containing its successor
623 connected vertices.
624
625 For a neighborhood vertex at each radius level, the successor
626 connected vertices correspond to the neighborhood vertices at the
627 next radius level. Consequently, the neighborhood vertices at the
628 last radius level don't contain any successor vertices which fall
629 outside the range of specified radius.
630
631 GetNeighborhoodVerticesWithSuccessorsAndRadiusUpto
632 @VertexNeighborhoods = GetNeighborhoodVerticesWithSuccessors(
633 $StartVertexID, $Radius);
634
635 Returns vertex neighborhoods around a specified *StartVertexID*,
636 along with their successor connected vertices, collected with in a
637 specified *Radius* as an array *VertexNeighborhoods* containing
638 references to arrays with first value corresponding to vertex ID and
639 second value as reference to a list containing its successor
640 connected vertices.
641
642 For a neighborhood vertex at each radius level, the successor
643 connected vertices correspond to the neighborhood vertices at the
644 next radius level. Consequently, the neighborhood vertices at the
645 last radius level don't contain any successor vertices which fall
646 outside the range of specified radius.
647
648 GetNeighbors
649 @VertexIDs = $Graph->GetNeighbors($VertexID);
650 $NumOfNeighbors = $Graph->GetNeighbors($VertexID);
651
652 Returns an array *VertexIDs* containing vertices connected to
653 *VertexID* of number of neighbors of a *VertextID* in a *Graph*.
654
655 GetNormalizedLaplacianMatrix
656 $GraphMatrix = $Graph->GetNormalizedLaplacianMatrix();
657
658 Returns normalized Laplacian matrix for *Graph* as a *GraphMatrix*
659 object with row and column indices corresponding to graph vertices
660 returned by GetVertices method.
661
662 For a simple graph G with n vertices, the normalized Laplacian
663 matrix L for G is a n x n square matrix and its elements Lij are:
664
665 . 1 if i == j and deg(Vi) != 0
666 . -1/SQRT(deg(Vi) * deg(Vj)) if i != j and vertex Vi is adjacent to vertex Vj
667 . 0 otherwise
668
669 GetNumOfCycles
670 $NumOfCycles = $Graph->GetNumOfCycles();
671
672 Returns number of cycles in a *Graph*.
673
674 GetNumOfCyclesWithEvenSize
675 $NumOfCycles = $Graph->GetNumOfCyclesWithEvenSize();
676
677 Returns number of cycles with even size in a *Graph*.
678
679 GetNumOfCyclesWithOddSize
680 $NumOfCycles = $Graph->GetNumOfCyclesWithOddSize();
681
682 Returns number of cycles with odd size in a *Graph*.
683
684 GetNumOfCyclesWithSize
685 $NumOfCycles = $Graph->GetNumOfCyclesWithSize($CycleSize);
686
687 Returns number of cycles with *CyclesSize* in a *Graph*.
688
689 GetNumOfCyclesWithSizeGreaterThan
690 $NumOfCycles = $Graph->GetNumOfCyclesWithSizeGreaterThan(
691 $CycleSize);
692
693 Returns number of cycles with size greater than *CyclesSize* in a
694 *Graph*.
695
696 GetNumOfCyclesWithSizeLessThan
697 $NumOfCycles = $Graph->GetNumOfCyclesWithSizeLessThan($CycleSize);
698
699 Returns number of cycles with size less than *CyclesSize* in a
700 *Graph*.
701
702 GetNumOfEdgeCycles
703 $NumOfCycles = $Graph->GetNumOfEdgeCycles($VertexID1, $VertexID2);
704
705 Returns number of cycles containing edge between *VertexID1* and
706 *VertexID2* in a *Graph*.
707
708 GetNumOfEdgeCyclesWithEvenSize
709 $NumOfCycles = $Graph->GetNumOfEdgeCyclesWithEvenSize($VertexID1,
710 $VertexID2);
711
712 Returns number of cycles containing edge between *VertexID1* and
713 *VertexID2* with even size in a *Graph*.
714
715 GetNumOfEdgeCyclesWithOddSize
716 $NumOfCycles = $Graph->GetNumOfEdgeCyclesWithOddSize($VertexID1,
717 $VertexID2);
718
719 Returns number of cycles containing edge between *VertexID1* and
720 *VertexID2* with odd size in a *Graph*.
721
722 GetNumOfEdgeCyclesWithSize
723 $NumOfCycles = $Graph->GetNumOfEdgeCyclesWithSize($VertexID1,
724 $VertexID2, $CycleSize);
725
726 Returns number of cycles containing edge between *VertexID1* and
727 *VertexID2* with *CycleSize* size in a *Graph*.
728
729 GetNumOfEdgeCyclesWithSizeGreaterThan
730 $NumOfCycles = $Graph->GetNumOfEdgeCyclesWithSizeGreaterThan(
731 $VertexID1, $VertexID2, $CycleSize);
732
733 Returns number of cycles containing edge between *VertexID1* and
734 *VertexID2* with size greater than *CycleSize* size in a *Graph*.
735
736 GetNumOfEdgeCyclesWithSizeLessThan
737 $NumOfCycles = $Graph->GetNumOfEdgeCyclesWithSizeLessThan(
738 $VertexID1, $VertexID2, $CycleSize);
739
740 Returns number of cycles containing edge between *VertexID1* and
741 *VertexID2* with size less than *CycleSize* size in a *Graph*.
742
743 GetNumOfVertexCycles
744 $NumOfCycles = $Graph->GetNumOfVertexCycles($VertexID);
745
746 Returns number of cycles containing *VertexID* in a *Graph*.
747
748 GetNumOfVertexCyclesWithEvenSize
749 $NumOfCycles = $Graph->GetNumOfVertexCyclesWithEvenSize($VertexID);
750
751 Returns number of cycles containing *VertexID* with even size in a
752 *Graph*.
753
754 GetNumOfVertexCyclesWithOddSize
755 $NumOfCycles = $Graph->GetNumOfVertexCyclesWithOddSize($VertexID);
756
757 Returns number of cycles containing *VertexID* with odd size in a
758 *Graph*.
759
760 GetNumOfVertexCyclesWithSize
761 $NumOfCycles = $Graph->GetNumOfVertexCyclesWithSize($VertexID);
762
763 Returns number of cycles containing *VertexID* with even size in a
764 *Graph*.
765
766 GetNumOfVertexCyclesWithSizeGreaterThan
767 $NumOfCycles = $Graph->GetNumOfVertexCyclesWithSizeGreaterThan(
768 $VertexID, $CycleSize);
769
770 Returns number of cycles containing *VertexID* with size greater
771 than *CycleSize* in a *Graph*.
772
773 GetNumOfVertexCyclesWithSizeLessThan
774 $NumOfCycles = $Graph->GetNumOfVertexCyclesWithSizeLessThan(
775 $VertexID, $CycleSize);
776
777 Returns number of cycles containing *VertexID* with size less than
778 *CycleSize* in a *Graph*.
779
780 GetPaths
781 $PathsRefs = $Graph->GetPaths([$AllowCycles]);
782
783 Returns a reference to an array of *Path* objects corresponding to
784 paths of all possible lengths starting from each vertex with no
785 sharing of edges in paths traversed. By default, cycles are included
786 in paths. A path containing a cycle is terminated at a vertex
787 completing the cycle.
788
789 GetPathsBetween
790 @Paths = $Graph->GetPathsBetween($StartVertexID, $EndVertexID);
791
792 Returns an arrays of *Path* objects list of paths between
793 *StartVertexID* and *EndVertexID*. For cyclic graphs, the list
794 contains may contain more than one *Path* object.
795
796 GetPathsStartingAt
797 @Paths = $Graph->GetPathsStartingAt($StartVertexID, [$AllowCycles]);
798
799 Returns an array of *Path* objects corresponding to all possible
800 lengths starting from a specified *StartVertexID* with no sharing of
801 edges in paths traversed. By default, cycles are included in paths.
802 A path containing a cycle is terminated at a vertex completing the
803 cycle.
804
805 GetPathsStartingAtWithLength
806 @Paths = $Graph->StartingAtWithLength($StartVertexID, $Length,
807 $AllowCycles);
808
809 Returns an array of *Path* objects corresponding to all paths
810 starting from a specified *StartVertexID* with length *Length* and
811 no sharing of edges in paths traversed. By default, cycles are
812 included in paths. A path containing a cycle is terminated at a
813 vertex completing the cycle.
814
815 GetPathsStartingAtWithLengthUpto
816 @Paths = $Graph->StartingAtWithLengthUpto($StartVertexID, $Length,
817 $AllowCycles);
818
819 Returns an array of *Path* objects corresponding to all paths
820 starting from a specified *StartVertexID* with length upto *Length*
821 and no sharing of edges in paths traversed. By default, cycles are
822 included in paths. A path containing a cycle is terminated at a
823 vertex completing the cycle.
824
825 GetPathsWithLength
826 @Paths = $Graph->GetPathsWithLength($Length, $AllowCycles);
827
828 Returns an array of *Path* objects corresponding to to paths
829 starting from each vertex in graph with specified <Length> and no
830 sharing of edges in paths traversed. By default, cycles are included
831 in paths. A path containing a cycle is terminated at a vertex
832 completing the cycle.
833
834 GetPathsWithLengthUpto
835 @Paths = $Graph->GetPathsWithLengthUpto($Length, $AllowCycles);
836
837 Returns an array of *Path* objects corresponding to to paths
838 starting from each vertex in graph with length upto specified
839 *Length* and no sharing of edges in paths traversed. By default,
840 cycles are included in paths. A path containing a cycle is
841 terminated at a vertex completing the cycle.
842
843 GetSiedelAdjacencyMatrix
844 $GraphMatrix = $Graph->GetSiedelAdjacencyMatrix();
845
846 Returns Siedel admittance matrix for *Graph* as a *GraphMatrix*
847 object with row and column indices corresponding to graph vertices
848 returned by GetVertices method.
849
850 For a simple graph G with n vertices, the Siedal adjacency matrix
851 for G is a n x n square matrix and its elements Mij are:
852
853 . 0 if i == j
854 . -1 if i != j and vertex Vi is adjacent to vertex Vj
855 . 1 if i != j and vertex Vi is not adjacent to vertex Vj
856
857 GetSizeOfLargestCycle
858 $Size = $Graph->GetSizeOfLargestCycle();
859
860 Returns size of the largest cycle in a *Graph*.
861
862 GetSizeOfLargestEdgeCycle
863 $Size = $Graph->GetSizeOfLargestEdgeCycle($VertexID1, $VertexID2);
864
865 Returns size of the largest cycle containing egde between
866 *VertextID1* and *VertexID2* in a *Graph*.
867
868 GetSizeOfLargestVertexCycle
869 $Size = $Graph->GetSizeOfLargestVertexCycle($VertexID);
870
871 Returns size of the largest cycle containing *VertextID* in a
872 *Graph*.
873
874 GetSizeOfSmallestCycle
875 $Size = $Graph->GetSizeOfSmallestCycle();
876
877 Returns size of the smallest cycle in a *Graph*.
878
879 GetSizeOfSmallestEdgeCycle
880 $Size = $Graph->GetSizeOfSmallestEdgeCycle($VertexID1, $VertexID2);
881
882 Returns size of the smallest cycle containing egde between
883 *VertextID1* and *VertexID2* in a *Graph*.
884
885 GetSizeOfSmallestVertexCycle
886 $Size = $Graph->GetSizeOfSmallestVertexCycle($VertexID);
887
888 Returns size of the smallest cycle containing *VertextID* in a
889 *Graph*.
890
891 GetSmallestCycle
892 $CyclicPath = $Graph->GetSmallestCycle();
893
894 Returns a cyclic *Path* object corresponding to smallest cycle in a
895 *Graph*.
896
897 GetSmallestEdgeCycle
898 $CyclicPath = $Graph->GetSmallestEdgeCycle($VertexID1, $VertexID2);
899
900 Returns a cyclic *Path* object corresponding to smallest cycle
901 containing edge between *VertexID1* and *VertexID2* in a *Graph*.
902
903 GetSmallestVertexCycle
904 $CyclicPath = $Graph->GetSmallestVertexCycle($VertexID);
905
906 Returns a cyclic *Path* object corresponding to smallest cycle
907 containing *VertexID* in a *Graph*.
908
909 GetTopologicallySortedVertices
910 @VertexIDs = $Graph->GetTopologicallySortedVertices(
911 [$RootVertexID]);
912
913 Returns an array of *VertexIDs* sorted topologically starting from a
914 specified *RootVertexID* or from an arbitrary vertex ID.
915
916 GetVertex
917 $VertexValue = $Graph->GetVertex($VertexID);
918
919 Returns vartex value for *VertexID* in a *Graph*. Vartex IDs and
920 values are equivalent in the current implementation of Graph.
921
922 GetVertexCycles
923 @CyclicPaths = $Graph->GetVertexCycles($VertexID);
924
925 Returns an array *CyclicPaths* containing *Path* objects
926 corresponding to all cycles containing *VertexID* in a *Graph*.
927
928 GetVertexCyclesWithEvenSize
929 @CyclicPaths = $Graph->GetVertexCyclesWithEvenSize($VertexID);
930
931 Returns an array *CyclicPaths* containing *Path* objects
932 corresponding to cycles with even size containing *VertexID* in a
933 *Graph*.
934
935 GetVertexCyclesWithOddSize
936 @CyclicPaths = $Graph->GetVertexCyclesWithOddSize($VertexID);
937
938 Returns an array *CyclicPaths* containing *Path* objects
939 corresponding to cycles with odd size containing *VertexID* in a
940 *Graph*.
941
942 GetVertexCyclesWithSize
943 @CyclicPaths = $Graph->GetVertexCyclesWithSize($VertexID,
944 $CycleSize);
945
946 Returns an array *CyclicPaths* containing *Path* objects
947 corresponding to cycles with size *CycleSize* containing *VertexID*
948 in a *Graph*.
949
950 GetVertexCyclesWithSizeGreaterThan
951 @CyclicPaths = $Graph->GetVertexCyclesWithSizeGreaterThan($VertexID,
952 $CycleSize);
953
954 Returns an array *CyclicPaths* containing *Path* objects
955 corresponding to cycles with size greater than *CycleSize*
956 containing *VertexID* in a *Graph*.
957
958 GetVertexCyclesWithSizeLessThan
959 @CyclicPaths = $Graph->GetVertexCyclesWithSizeLessThan($VertexID,
960 $CycleSize);
961
962 Returns an array *CyclicPaths* containing *Path* objects
963 corresponding to cycles with size less than *CycleSize* containing
964 *VertexID* in a *Graph*.
965
966 GetVertexProperties
967 %VertexProperties = $Graph->GetVertexProperties($VertexID);
968
969 Returns a hash VertexProperties containing all PropertyName and
970 PropertyValue pairs associated with a *VertexID* in a *Graph*.
971
972 GetVertexProperty
973 $Value = $Graph->GetVertexProperty($PropertyName, $VertexID);
974
975 Returns value of *PropertyName* associated with a *VertexID* in a
976 *Graph*.
977
978 GetVertexWithLargestDegree
979 $VertexID = $Graph->GetVertexWithLargestDegree();
980
981 Returns VertexID with largest degree in a *Graph*.
982
983 GetVertexWithSmallestDegree
984 $VertexID = $Graph->GetVertexWithSmallestDegree();
985
986 Returns VertexID with smallest degree in a *Graph*.
987
988 GetVertices
989 @VertexIDs = $Graph->GetVertices();
990 $VertexCount = $Graph->GetVertices();
991
992 Returns an array of *VertexIDs* corresponding to all vertices in a
993 *Graph*; in a scalar context, number of vertices is returned.
994
995 GetVerticesProperty
996 @PropertyValues = $Graph->GetVerticesProperty($PropertyName, @VertexIDs);
997
998 Returns an array *PropertyValues* containing property values
999 corresponding to *PropertyName* associated with with *VertexIDs* in
1000 a *Graph*.
1001
1002 GetVerticesWithDegreeLessThan
1003 @VertexIDs = $Graph->GetVerticesWithDegreeLessThan($Degree);
1004
1005 Returns an array of *VertexIDs* containing vertices with degree less
1006 than *Degree* in a *Graph*.
1007
1008 HasCycle
1009 $Status = $Graph->HasCycle(@VertexIDs);
1010
1011 Returns 1 or 0 based on whether edges between successive pair of
1012 *VertexIDs* including an additional edge from the last to first
1013 vertex ID exists in a *Graph*.
1014
1015 HasEdge
1016 $Status = $Graph->HasEdge($VertexID1, $VertexID2);
1017
1018 Returns 1 or 0 based on whether an edge between *VertexID1* and
1019 *VertexID2* exist in a *Graph*.
1020
1021 HasEdgeProperty
1022 $Status = $Graph->HasEdgeProperty($PropertyName, $VertexID1,
1023 $VertexID2);
1024
1025 Returns 1 or 0 based on whether *PropertyName* has already been
1026 associated with an edge between *VertexID1* and *VertexID2* in a
1027 *Graph*.
1028
1029 HasEdges
1030 @EdgesStatus = $Graph->HasEdges(@VertexIDs);
1031 $FoundEdgesCount = $Graph->HasEdges(@VertexIDs);
1032
1033 Returns an array *EdgesStatus* containing 1s and 0s corresponding to
1034 whether edges between successive pairs of *VertexIDs* exist in a
1035 *Graph*. In a scalar context, number of edges found is returned.
1036
1037 HasFusedCycles
1038 $Status = $Graph->HasFusedCycles();
1039
1040 Returns 1 or 0 based on whether any fused cycles exist in a *Graph*.
1041
1042 HasGraphProperty
1043 $Status = $Graph->HasGraphProperty($PropertyName);
1044
1045 Returns 1 or 0 based on whether *PropertyName* has already been
1046 associated as a graph property as opposed to vertex or edge property
1047 in a *Graph*.
1048
1049 HasPath
1050 $Status = $Graph->HasPath(@VertexIDs));
1051
1052 Returns 1 or 0 based on whether edges between all successive pairs
1053 of *VertexIDs* exist in a *Graph*.
1054
1055 HasVertex
1056 $Status = $Graph->HasVertex($VertexID);
1057
1058 Returns 1 or 0 based on whether *VertexID* exists in a *Graph*.
1059
1060 HasVertexProperty
1061 $Status = $Graph->HasGraphProperty($HasVertexProperty, $VertexID);
1062
1063 Returns 1 or 0 based on whether *PropertyName* has already been
1064 associated with *VertexID* in a *Graph*.
1065
1066 HasVertices
1067 @VerticesStatus = $Graph->HasVertices(@VertexIDs);
1068 $VerticesFoundCount = $Graph->HasVertices(@VertexIDs);
1069
1070 Returns an array ** containing 1s and 0s corresponding to whether
1071 *VertexIDs* exist in a *Graph*. In a scalar context, number of
1072 vertices found is returned.
1073
1074 IsAcyclic
1075 $Status = $Graph->IsAcyclic();
1076
1077 Returns 0 or 1 based on whether a cycle exist in a *Graph*.
1078
1079 IsAcyclicEdge
1080 $Status = $Graph->IsAcyclicEdge($VertexID1, $VertexID2);
1081
1082 Returns 0 or 1 based on whether a cycle containing an edge between
1083 *VertexID1* and *VertexID2* exists in a *Graph*.
1084
1085 IsAcyclicVertex
1086 $Status = $Graph->IsAcyclicVertex($VertexID1);
1087
1088 Returns 0 or 1 based on whether a cycle containing a *VertexID*
1089 exists in a *Graph*.
1090
1091 IsCyclic
1092 $Status = $Graph->IsCyclic();
1093
1094 Returns 1 or 0 based on whether a cycle exist in a *Graph*.
1095
1096 IsCyclicEdge
1097 $Status = $Graph->IsCyclicEdge($VertexID1, $VertexID2);
1098
1099 Returns 1 or 0 based on whether a cycle containing an edge between
1100 *VertexID1* and *VertexID2* exists in a *Graph*.
1101
1102 IsCyclicVertex
1103 $Status = $Graph->IsCyclicVertex($VertexID1);
1104
1105 Returns 1 or 0 based on whether a cycle containing a *VertexID*
1106 exists in a *Graph*.
1107
1108 IsGraph
1109 $Status = Graph::IsGraph($Object);
1110
1111 Returns 1 or 0 based on whether *Object* is a Graph object.
1112
1113 IsIsolatedVertex
1114 $Status = $Graph->IsIsolatedVertex($VertexID);
1115
1116 Returns 1 or 0 based on whether *VertexID* is an isolated vertex in
1117 a *Graph*. A vertex with zero as its degree value is considered an
1118 isolated vertex.
1119
1120 IsLeafVertex
1121 $Status = $Graph->IsLeafVertex($VertexID);
1122
1123 Returns 1 or 0 based on whether *VertexID* is an isolated vertex in
1124 a *Graph*. A vertex with one as its degree value is considered an
1125 isolated vertex.
1126
1127 IsUnicyclic
1128 $Status = $Graph->IsUnicyclic();
1129
1130 Returns 1 or 0 based on whether only one cycle is present in a
1131 *Graph*.
1132
1133 IsUnicyclicEdge
1134 $Status = $Graph->IsUnicyclicEdge($VertexID1, $VertexID2);
1135
1136 Returns 1 or 0 based on whether only one cycle contains the edge
1137 between *VertexID1* and *VertexID2* in a *Graph*.
1138
1139 IsUnicyclicVertex
1140 $Status = $Graph->IsUnicyclicVertex($VertexID);
1141
1142 Returns 1 or 0 based on whether only one cycle contains *VertexID*
1143 in a *Graph*.
1144
1145 SetActiveCyclicPaths
1146 $Graph->SetActiveCyclicPaths($CyclicPathsType);
1147
1148 Sets the type of cyclic paths to use during all methods related to
1149 cycles and returns *Graph*. Possible values for cyclic paths:
1150 *Independent or All*.
1151
1152 SetEdgeProperties
1153 $Graph->SetEdgeProperties($VertexID1, $VertexID2, @NamesAndValues);
1154
1155 Associates property names and values corresponding to successive
1156 pairs of values in *NamesAndValues* to an edge between *VertexID1*
1157 and *VertexID2* in a *Graph* and returns *Graph*.
1158
1159 SetEdgeProperty
1160 $Graph->SetEdgeProperty($Name, $Value, $VertexID1, $VertexID2);
1161
1162 Associates property *Name* and *Value* to an edge between
1163 *VertexID1* and *VertexID2* in a *Graph* and returns *Graph*.
1164
1165 SetEdgesProperty
1166 $Graph->SetEdgesProperty($Name, @ValuesAndVertexIDs);
1167
1168 Associates a same property *Name* but different *Values* for
1169 different edges specified using triplets of *PropertyValue,
1170 $VertexID1, $VertexID2* via *ValuesAndVertexIDs* in a *graph*.
1171
1172 SetGraphProperties
1173 $Graph->SetGraphProperties(%NamesAndValues);
1174
1175 Associates property names and values *NamesAndValues* hash to graph
1176 as opposed to vertex or edge and returns *Graph*.
1177
1178 SetGraphProperty
1179 $Graph->SetGraphProperty($Name, $Value);
1180
1181 Associates property *Name* and *Value* to graph as opposed to vertex
1182 or edge and returns *Graph*.
1183
1184 SetVertexProperties
1185 $Graph->SetVertexProperties($VertexID, @NamesAndValues);
1186
1187 Associates property names and values corresponding to successive
1188 pairs of values in *NamesAndValues* to *VertexID* in a *Graph* and
1189 returns *Graph*.
1190
1191 SetVertexProperty
1192 $Graph->SetVertexProperty($Name, $Value, $VertexID);
1193
1194 Associates property *Name* and *Value* to *VertexID* in a *Graph*
1195 and returns *Graph*.
1196
1197 SetVerticesProperty
1198 $Graph->SetVerticesProperty($Name, @ValuesAndVertexIDs));
1199
1200 Associates a same property *Name* but different *Values* for
1201 different vertices specified using doublets of *PropertyValue,
1202 $VertexID* via *ValuesAndVertexIDs* in a *graph*.
1203
1204 StringifyEdgesProperties
1205 $String = $Graph->StringifyEdgesProperties();
1206
1207 Returns a string containing information about properties associated
1208 with all edges in a *Graph* object.
1209
1210 StringifyGraph
1211 $String = $Graph->StringifyGraph();
1212
1213 Returns a string containing information about *Graph* object.
1214
1215 StringifyGraphProperties
1216 $String = $Graph->StringifyGraphProperties();
1217
1218 Returns a string containing information about properties associated
1219 with graph as opposed to vertex. or an edge in a *Graph* object
1220
1221 StringifyProperties
1222 $String = $Graph->StringifyProperties();
1223
1224 Returns a string containing information about properties associated
1225 with graph, vertices, and edges in a *Graph* object.
1226
1227 StringifyVerticesAndEdges
1228 $String = $Graph->StringifyVerticesAndEdges();
1229
1230 Returns a string containing information about vertices and edges in
1231 a *Graph* object.
1232
1233 StringifyVerticesProperties
1234 $String = $Graph->StringifyVerticesProperties();
1235
1236 Returns a string containing information about properties associated
1237 with vertices a *Graph* object.
1238
1239 UpdateEdgeProperty
1240 $Graph->UpdateEdgeProperty($Name, $Value, $VertexID1, $VertexID2);
1241
1242 Updates property *Value* for *Name* associated with an edge between
1243 *VertexID1* and *VertexID1* and returns *Graph*.
1244
1245 UpdateVertexProperty
1246 $Graph->UpdateVertexProperty($Name, $Value, $VertexID);
1247
1248 Updates property *Value* for *Name* associated with *VertexID* and
1249 returns *Graph*.
1250
1251 AUTHOR
1252 Manish Sud <msud@san.rr.com>
1253
1254 SEE ALSO
1255 CyclesDetection.pm, Path.pm, PathGraph.pm, PathsTraversal.pm
1256
1257 COPYRIGHT
1258 Copyright (C) 2015 Manish Sud. All rights reserved.
1259
1260 This file is part of MayaChemTools.
1261
1262 MayaChemTools is free software; you can redistribute it and/or modify it
1263 under the terms of the GNU Lesser General Public License as published by
1264 the Free Software Foundation; either version 3 of the License, or (at
1265 your option) any later version.
1266