|
|
Line 1: |
Line 1: |
| In [[mathematics]] and [[computer science]], an '''adjacency matrix''' is a means of representing which [[Vertex (graph theory)|vertices]] (or nodes) of a [[graph (mathematics)|graph]] are [[adjacent (graph theory)|adjacent]] to which other vertices. Another matrix representation for a graph is the [[incidence matrix]].
| | Have we ever heard which somebody said "My computer is getting slower, Assist me?" Are you seeking techniques on how do I accelerate my computer? Are you tired of wasting too much time considering the loading procedure is certainly slow? If you wish To understand how to improve and speed up computer performance, then this particular article might assist show you certain concepts and strategies "What is the cause?" and How to prevent a computer getting slower?<br><br>Windows Defender - this does come standard with many Windows OS Machines, however, otherwise is download from Microsoft for free. It might aid safeguard against spyware.<br><br>So what if you look for whenever we compare registry cleaners. Many of the registry cleaners accessible today, have surprisingly synonymous qualities. The leading ones which you need to be seeking are these.<br><br>The computer was rather quick when you initially purchased it. Because your registry was very clean and free of mistakes. After time, your computer starts to run slow plus freezes up now plus then. Because there are mistakes accumulating inside it and certain info is rewritten or completely deleted by the wrong uninstall of programs, improper operations, malware or alternative factors. That is the reason why a computer performance decreases slowly and become extremely unstable.<br><br>Besides, in the event you will receive a [http://bestregistrycleanerfix.com/registry-reviver registry reviver] which will work for we effectively plus immediately, then why not? There is one such program, RegCure which is fairly good plus complete. It has features which different cleaners do not have. It is the most recommended registry cleaner now.<br><br>Let's begin with all the negative sides first. The initial cost of the product is truly inexpensive. But, it only comes with one year of updates. After that you must register to monthly updates. The advantage of that is that ideal optimizer has enough cash and resources to analysis errors. This technique, you may be ensured of secure fixes.<br><br>The reason why this really is significant, is considering most 'dumb' registry products really delete these files without even knowing. They simply browse by your registry plus try and discover the most difficulties possible. They then delete any files they see fit, plus considering they are 'dumb', they don't really care. This signifies that if they delete a few of these vital program files, they are actually going to result a LOT more damage than good.<br><br>By changing the technique you employ the internet we can have access more of the valuable bandwidth. This usually eventually give we a faster surfing experience. Here is a link to 3 techniques to customize your PC speed online. |
| | |
| Specifically, the adjacency matrix of a [[finite set|finite]] graph '''G''' on ''n'' vertices is the ''n × n'' matrix where the non-diagonal entry ''a''<sub>''ij''</sub> is the number of edges from vertex ''i'' to vertex ''j'', and the diagonal entry ''a''<sub>''ii''</sub>, depending on the convention, is either once or twice the number of edges (loops) from vertex ''i'' to itself. Undirected graphs often use the latter convention of counting loops twice, whereas directed graphs typically use the former convention. There exists a unique adjacency matrix for each isomorphism class of graphs (up to permuting rows and columns), and it is not the adjacency matrix of any other isomorphism class of graphs. In the special case of a finite [[simple graph]], the adjacency matrix is a [[(0,1)-matrix]] with zeros on its diagonal. If the graph is undirected, the adjacency matrix is [[symmetric matrix|symmetric]].
| |
| | |
| The relationship between a graph and the [[eigenvalue]]s and [[eigenvector]]s of its adjacency matrix is studied in [[spectral graph theory]].
| |
| | |
| ==Examples==
| |
| The convention followed here is that an adjacent edge counts 1 in the matrix for an undirected graph.
| |
| | |
| {|class="wikitable" style="text-align: center; width: 700px; height: 1100px;"
| |
| ![[Labeled graph]]
| |
| !Adjacency matrix
| |
| |-
| |
| |[[Image:6n-graph2.svg|200px]]
| |
| |<math>\begin{pmatrix}
| |
| 1 & 1 & 0 & 0 & 1 & 0\\
| |
| 1 & 0 & 1 & 0 & 1 & 0\\
| |
| 0 & 1 & 0 & 1 & 0 & 0\\
| |
| 0 & 0 & 1 & 0 & 1 & 1\\
| |
| 1 & 1 & 0 & 1 & 0 & 0\\
| |
| 0 & 0 & 0 & 1 & 0 & 0\\
| |
| \end{pmatrix}</math>
| |
| | |
| Coordinates are 1-6.
| |
| |-
| |
| |[[File:Symmetric group 4; Cayley graph 1,5,21 (Nauru Petersen); numbers.svg|250px]]
| |
| <br>The [[Nauru graph]]
| |
| |[[File:Symmetric group 4; Cayley graph 1,5,21 (adjacency matrix).svg|250px]]
| |
| <br>Coordinates are 0-23.<br>White fields are zeros, colored fields are ones. | |
| |-
| |
| |[[File:Symmetric group 4; Cayley graph 4,9; numbers.svg|250px]]
| |
| <br>[[Directed graph|Directed]] [[Cayley graph]] of [[Symmetric group|S]]<sub>4</sub>
| |
| |[[File:Symmetric group 4; Cayley graph 4,9 (adjacency matrix).svg|250px]]
| |
| <br>As the graph is directed,
| |
| <br>the matrix is not [[Symmetric matrix|symmetric]].
| |
| |}
| |
| | |
| * The adjacency matrix of a [[complete graph]] contains all ones except along the diagonal where there are only zeros.
| |
| * The adjacency matrix of an [[empty graph]] is a [[zero matrix]].
| |
| | |
| ==Adjacency matrix of a bipartite graph==<!-- [[Adjacency matrix of a bipartite graph]] & [[Biadjacency matrix]] redirect here -->
| |
| | |
| The adjacency matrix <math>A</math> of a [[bipartite graph]] whose parts have <math>r</math> and <math>s</math> vertices has the form
| |
| :<math>A = \begin{pmatrix} 0_{r,r} & B \\ B^T & 0_{s,s} \end{pmatrix},</math>
| |
| where <math>B</math> is an <math>r \times s</math> matrix, and <math>0</math> represents the zero matrix. Clearly, the matrix <math>B</math> uniquely represents the bipartite graphs. It is sometimes called the biadjacency matrix.
| |
| Formally, let <math>G = (U, V, E)</math> be a [[bipartite graph]] with parts <math>U={u_1,..., u_r}</math> and <math>V={v_1,..., v_s}</math>. The '''biadjacency matrix''' is the <math>r \times s</math> 0-1 matrix <math>B</math> in which <math>b_{i,j} = 1</math> iff <math>(u_i, v_j) \in E</math>.
| |
| | |
| If <math>G</math> is a bipartite [[multigraph]] or [[weighted graph]] then the elements <math>b_{i,j}</math> are taken to be the number of edges between the vertices or the weight of the edge <math>(u_i, v_j),</math> respectively.
| |
| | |
| ==Properties==
| |
| The adjacency matrix of an undirected simple graph is [[symmetric matrix|symmetric]], and therefore has a complete set of [[real number|real]] [[eigenvalue]]s and an orthogonal [[eigenvector]] basis. The set of eigenvalues of a graph is the '''spectrum''' of the graph.
| |
| | |
| Suppose two directed or undirected graphs <math>G_1</math> and <math>G_2</math> with adjacency matrices <math>A_1</math> and <math>A_2</math> are given. <math>G_1</math> and <math>G_2</math> are [[graph isomorphism|isomorphic]] if and only if there exists a [[permutation matrix]] <math>P</math> such that
| |
| | |
| :<math>P A_1 P^{-1} = A_2.</math>
| |
| | |
| In particular, <math>A_1</math> and <math>A_2</math> are [[similar (linear algebra)|similar]] and therefore have the same [[Minimal polynomial (linear algebra)|minimal polynomial]], [[characteristic polynomial]], eigenvalues, [[determinant]] and [[trace (matrix)|trace]]. These can therefore serve as isomorphism invariants of graphs. However, two graphs may possess the same set of eigenvalues but not be isomorphic. <ref>[[Chris Godsil|Godsil, Chris]]; [[Gorden Royle|Royle, Gordon]] ''Algebraic Graph Theory'', Springer (2001), ISBN 0-387-95241-1, p.164</ref>
| |
| | |
| If ''A'' is the adjacency matrix of the directed or undirected graph ''G'', then the matrix ''A<sup>n</sup>'' (i.e., the [[matrix multiplication|matrix product]] of ''n'' copies of ''A'') has an interesting interpretation: the entry in row ''i'' and column ''j'' gives the number of (directed or undirected) walks of length ''n'' from vertex ''i'' to vertex ''j''. This implies, for example, that the number of triangles in an undirected graph ''G'' is exactly the [[Trace (linear algebra)|trace]] of ''A<sup>3</sup>'' divided by 6.
| |
| | |
| The main diagonal of every adjacency matrix corresponding to a graph without loops has all zero entries. Note that here 'loops' means, for example A→A, not 'cycles' such as A→B→A. | |
| | |
| For <math>\left( d \right)</math> -regular graphs, d is also an eigenvalue of A for the vector <math>v=\left( 1,\dots,1 \right)</math>, and <math>G</math> is connected if and only if the multiplicity of <math>d</math> is 1. It can be shown that <math>-d</math> is also an eigenvalue of A if G is a connected [[bipartite graph]]. The above are results of [[Perron–Frobenius theorem]].
| |
| | |
| ==Variations==
| |
| An '''(''a'', ''b'', ''c'')-adjacency matrix''' ''A'' of a simple graph has ''A''<sub>''ij''</sub> = ''a'' if ''ij'' is an edge, ''b'' if it is not, and ''c'' on the diagonal. The [[Seidel adjacency matrix]] is a '''(−1,1,0)-adjacency matrix'''. This matrix is used in studying [[strongly regular graph]]s and [[two-graph]]s.<ref>{{cite journal |last=Seidel |first=J. J. |title=Strongly Regular Graphs with (−1,1,0) Adjacency Matrix Having Eigenvalue 3 |journal=[[Linear Algebra and its Applications|Lin. Alg. Appl.]] |volume=1 |issue=2 |pages=281–298 |year=1968 |doi=10.1016/0024-3795(68)90008-6 }}</ref>
| |
| | |
| The '''[[distance matrix]]''' has in position (''i'',''j'') the distance between vertices ''v<sub>i</sub>'' and ''v<sub>j</sub>'' . The distance is the length of a shortest path connecting the vertices. Unless lengths of edges are explicitly provided, the length of a path is the number of edges in it. The distance matrix resembles a high power of the adjacency matrix, but instead of telling only whether or not two vertices are connected (i.e., the connection matrix, which contains boolean values), it gives the exact distance between them.
| |
| | |
| ==Data structures==
| |
| {{move section portions|Adjacency list|date=August 2013}}
| |
| {{ref improve section|date=May 2012}}
| |
| For use as a [[data structure]], the main alternative to the adjacency matrix is the [[adjacency list]]. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only <math>{n^2} / 8</math> bytes of contiguous space, where <math>n</math> is the number of vertices. Besides avoiding wasted space, this compactness encourages [[locality of reference]].
| |
| | |
| However, for a [[sparse graph]], adjacency lists require less storage space, because they do not waste any space to represent edges that are ''not'' present. Using a naïve [[array data structure|array]] implementation on a 32-bit computer, an adjacency list for an undirected graph requires about <math>8 e</math> bytes of storage, where <math>e</math> is the number of edges.
| |
| | |
| Noting that a simple graph can have at most <math>n^2</math> edges, allowing loops, we can let <math>d = e / n^2</math> denote the ''density'' of the graph. Then, <math>8 e > n^2 / 8</math>, or the adjacency list representation occupies more space precisely when <math>d > 1/64</math>. Thus a graph must be sparse indeed to justify an adjacency list representation.
| |
| | |
| Besides the space tradeoff, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes ''[[Big O notation|O]](n)'' time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.
| |
| | |
| ==References==
| |
| {{Reflist}}
| |
| | |
| ==Further reading==
| |
| *{{cite book |authorlink=Thomas H. Cormen |first=Thomas H. |last=Cormen |authorlink2=Charles E. Leiserson |first2=Charles E. |last2=Leiserson |authorlink3=Ronald L. Rivest |first3=Ronald L. |last3=Rivest |authorlink4=Clifford Stein |first4=Clifford |last4=Stein |year=2001 |title=[[Introduction to Algorithms]] |edition=Second |publisher=MIT Press and McGraw-Hill |isbn=0-262-03293-7 |chapter=Section 22.1: Representations of graphs |pages=527–531 }}
| |
| *{{cite book |authorlink=Chris Godsil |first=Chris |last=Godsil |authorlink2=Gordon Royle |first2=Gordon |last2=Royle |year=2001 |title=Algebraic Graph Theory |location=New York |publisher=Springer |isbn=0-387-95241-1 }}
| |
| | |
| ==External links==
| |
| {{Commons category|Adjacency matrices of graphs}}
| |
| * [http://www.x2d.org/java/projects/fluffschack.jnlp Fluffschack] — an educational Java web start game demonstrating the relationship between adjacency matrices and graphs.
| |
| * [http://opendatastructures.org/versions/edition-0.1e/ods-java/12_1_AdjacencyMatrix_Repres.html Open Data Structures - Section 12.1 - AdjacencyMatrix: Representing a Graph by a Matrix]
| |
| * {{cite web|first1=Brendan | last1=McKay |title=Description of graph6 and sparse6 encodings|url=http://cs.anu.edu.au/~bdm/data/formats.txt}}
| |
| * [http://www.cafemath.fr/mathblog/article.php?page=GoodWillHunting.php Café math : Adjacency Matrices of Graphs] : Application of the adjacency matrices to the computation generating series of walks.
| |
| | |
| {{DEFAULTSORT:Adjacency Matrix}}
| |
| [[Category:Algebraic graph theory]]
| |
| [[Category:Matrices]]
| |
| [[Category:Graph data structures]]
| |
Have we ever heard which somebody said "My computer is getting slower, Assist me?" Are you seeking techniques on how do I accelerate my computer? Are you tired of wasting too much time considering the loading procedure is certainly slow? If you wish To understand how to improve and speed up computer performance, then this particular article might assist show you certain concepts and strategies "What is the cause?" and How to prevent a computer getting slower?
Windows Defender - this does come standard with many Windows OS Machines, however, otherwise is download from Microsoft for free. It might aid safeguard against spyware.
So what if you look for whenever we compare registry cleaners. Many of the registry cleaners accessible today, have surprisingly synonymous qualities. The leading ones which you need to be seeking are these.
The computer was rather quick when you initially purchased it. Because your registry was very clean and free of mistakes. After time, your computer starts to run slow plus freezes up now plus then. Because there are mistakes accumulating inside it and certain info is rewritten or completely deleted by the wrong uninstall of programs, improper operations, malware or alternative factors. That is the reason why a computer performance decreases slowly and become extremely unstable.
Besides, in the event you will receive a registry reviver which will work for we effectively plus immediately, then why not? There is one such program, RegCure which is fairly good plus complete. It has features which different cleaners do not have. It is the most recommended registry cleaner now.
Let's begin with all the negative sides first. The initial cost of the product is truly inexpensive. But, it only comes with one year of updates. After that you must register to monthly updates. The advantage of that is that ideal optimizer has enough cash and resources to analysis errors. This technique, you may be ensured of secure fixes.
The reason why this really is significant, is considering most 'dumb' registry products really delete these files without even knowing. They simply browse by your registry plus try and discover the most difficulties possible. They then delete any files they see fit, plus considering they are 'dumb', they don't really care. This signifies that if they delete a few of these vital program files, they are actually going to result a LOT more damage than good.
By changing the technique you employ the internet we can have access more of the valuable bandwidth. This usually eventually give we a faster surfing experience. Here is a link to 3 techniques to customize your PC speed online.