annotate docs/modules/txt/GraphMatrix.txt @ 3:90ea638ce878 draft default tip

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 09:11:59 -0500
parents 2abf0d43254d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
1 NAME
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
2 GraphMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
3
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
4 SYNOPSIS
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
5 use Graph::GraphMatrix;
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
6
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
7 use Graph::GraphMatrix qw(:all);
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
8
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
9 DESCRIPTION
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
10 GraphMatrix class provides the following methods:
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
11
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
12 new, GenerateAdjacencyMatrix, GenerateAdmittanceMatrix,
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
13 GenerateDegreeMatrix, GenerateDistanceMatrix, GenerateIncidenceMatrix,
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
14 GenerateKirchhoffMatrix, GenerateLaplacianMatrix,
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
15 GenerateNormalizedLaplacianMatrix, GenerateSiedelAdjacencyMatrix,
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
16 GetColumnIDs, GetMatrix, GetMatrixType, GetRowIDs, StringifyGraphMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
17
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
18 METHODS
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
19 new
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
20 $NewGraphMatrix = new Graph::GraphMatrix($Graph);
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
21
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
22 Using specified *Graph*, new method creates a new GraphMatrix and
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
23 returns newly created GraphMatrix.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
24
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
25 GenerateAdjacencyMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
26 $AdjacencyGraphMatrix = $GraphMatrix->GenerateAdjacencyMatrix();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
27
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
28 Generates a new *AdjacencyGraphMatrix* for specified Graph and
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
29 returns *AdjacencyGraphMatrix*.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
30
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
31 For a simple graph G with n vertices, the adjacency matrix for G is
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
32 a n x n square matrix and its elements Mij are:
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
33
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
34 . 0 if i == j
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
35 . 1 if i != j and vertex Vi is adjacent to vertex Vj
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
36 . 0 if i != j and vertex Vi is not adjacent to vertex Vj
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
37
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
38 GenerateAdmittanceMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
39 $AdmittanceGraphMatrix = $GraphMatrix->GenerateAdmittanceMatrix();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
40
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
41 Generates a new *AdmittanceGraphMatrix* for specified Graph and
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
42 returns *AdmittanceGraphMatrix*.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
43
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
44 AdmittanceMatrix is another name for LaplacianMatrix.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
45
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
46 GenerateDegreeMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
47 $DegreeGraphMatrix = $GraphMatrix->GenerateDegreeMatrix();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
48
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
49 Generates a new *DegreeGraphMatrix* for specified Graph and returns
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
50 *DegreeGraphMatrix*.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
51
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
52 For a simple graph G with n vertices, the degree matrix for G is a n
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
53 x n square matrix and its elements Mij are:
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
54
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
55 . deg(Vi) if i == j and deg(Vi) is the degree of vertex Vi
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
56 . 0 otherwise
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
57
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
58 GenerateDistanceMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
59 $DistanceGraphMatrix = $GraphMatrix->GenerateDistanceMatrix();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
60
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
61 Generates a new *DistanceGraphMatrix* for specified Graph using
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
62 Floyd-Marshall algorithm [Ref 67] and returns *DistanceGraphMatrix*.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
63
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
64 For a simple graph G with n vertices, the distance matrix for G is a
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
65 n x n square matrix and its elements Mij are:
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
66
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
67 . 0 if i == j
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
68 . d if i != j and d is the shortest distance between vertex Vi and vertex Vj
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
69
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
70 In the final matrix, value of constant BigNumber defined in
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
71 Constants.pm module corresponds to vertices with no edges.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
72
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
73 GenerateIncidenceMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
74 $IncidenceGraphMatrix = $GraphMatrix->GenerateIncidenceMatrix();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
75
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
76 Generates a new *IncidenceGraphMatrix* for specified Graph and
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
77 returns *IncidenceGraphMatrix*.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
78
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
79 For a simple graph G with n vertices and e edges, the incidence
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
80 matrix for G is a n x e matrix its elements Mij are:
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
81
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
82 . 1 if vertex Vi and the edge Ej are incident; in other words, Vi and Ej are related
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
83 . 0 otherwise
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
84
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
85 GenerateKirchhoffMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
86 $KirchhoffGraphMatrix = $GraphMatrix->GenerateKirchhoffMatrix();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
87
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
88 Generates a new *KirchhoffGraphMatrix* for specified Graph and
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
89 returns *KirchhoffGraphMatrix*.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
90
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
91 KirchhoffMatrix is another name for LaplacianMatrix.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
92
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
93 GenerateLaplacianMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
94 $LaplacianGraphMatrix = $GraphMatrix->GenerateLaplacianMatrix();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
95
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
96 Generates a new *LaplacianGraphMatrix* for specified Graph and
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
97 returns *LaplacianGraphMatrix*.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
98
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
99 For a simple graph G with n vertices, the Laplacian matrix for G is
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
100 a n x n square matrix and its elements Mij are:
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
101
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
102 . deg(Vi) if i == j and deg(Vi) is the degree of vertex Vi
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
103 . -1 if i != j and vertex Vi is adjacent to vertex Vj
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
104 . 0 otherwise
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
105
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
106 The Laplacian matrix is the difference between the degree matrix and
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
107 adjacency matrix.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
108
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
109 GenerateNormalizedLaplacianMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
110 $NormalizedLaplacianGraphMatrix = $GraphMatrix->GenerateNormalizedLaplacianMatrix();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
111
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
112 Generates a new *NormalizedLaplacianGraphMatrix* for specified Graph
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
113 and returns *NormalizedLaplacianGraphMatrix*.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
114
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
115 For a simple graph G with n vertices, the normalized Laplacian
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
116 matrix L for G is a n x n square matrix and its elements Lij are:
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
117
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
118 . 1 if i == j and deg(Vi) != 0
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
119 . -1/SQRT(deg(Vi) * deg(Vj)) if i != j and vertex Vi is adjacent to vertex Vj
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
120 . 0 otherwise
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
121
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
122 GenerateSiedelAdjacencyMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
123 $SiedelAdjacencyGraphMatrix = $GraphMatrix->GenerateSiedelAdjacencyMatrix();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
124
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
125 Generates a new *SiedelAdjacencyGraphMatrix* for specified Graph and
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
126 returns *SiedelAdjacencyGraphMatrix*.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
127
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
128 For a simple graph G with n vertices, the Siedal adjacency matrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
129 for G is a n x n square matrix and its elements Mij are:
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
130
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
131 . 0 if i == j
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
132 . -1 if i != j and vertex Vi is adjacent to vertex Vj
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
133 . 1 if i != j and vertex Vi is not adjacent to vertex Vj
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
134
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
135 GetColumnIDs
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
136 @ColumnIDs = $GraphMatrix->GetColumnIDs();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
137
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
138 Returns an array containing any specified column IDs for
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
139 *GraphMatrix*.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
140
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
141 GetMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
142 $Matrix = $GraphMatrix->GetMatrix();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
143
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
144 Returns *Matrix* object corresponding to *GraphMatrix* object.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
145
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
146 GetMatrixType
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
147 $MatrixType = $GraphMatrix->GetMatrixType();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
148
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
149 Returns MatrixType of *GraphMatrix*.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
150
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
151 GetRowIDs
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
152 @RowIDs = $GraphMatrix->GetRowIDs();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
153
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
154 Returns an array containing any specified rowIDs IDs for
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
155 *GraphMatrix*.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
156
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
157 StringifyGraphMatrix
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
158 $String = $GraphMatrix->StringifyGraphMatrix();
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
159
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
160 Returns a string containing information about *GraphMatrix* object.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
161
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
162 AUTHOR
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
163 Manish Sud <msud@san.rr.com>
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
164
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
165 SEE ALSO
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
166 Constants.pm, Graph.pm, Matrix.pm
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
167
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
168 COPYRIGHT
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
169 Copyright (C) 2015 Manish Sud. All rights reserved.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
170
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
171 This file is part of MayaChemTools.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
172
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
173 MayaChemTools is free software; you can redistribute it and/or modify it
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
174 under the terms of the GNU Lesser General Public License as published by
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
175 the Free Software Foundation; either version 3 of the License, or (at
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
176 your option) any later version.
2abf0d43254d Uploaded
deepakjadmin
parents:
diff changeset
177