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