Component (graph theory): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m that not which
source Laplacian eigenvalue multiplicity
Line 19: Line 19:
A graph can be interpreted as a [[topological space]] in multiple ways, for instance by placing its vertices as points in [[general position]] in three-dimensional [[Euclidean space]] and representing its edges as line segments between those points. The components of a graph can be generalized through these interpretations as the number of [[Connected component (topology)|topological connected components]] of the corresponding space. Just as the number of connected components is an important [[topological invariant]], the zeroth [[Betti number]] of a space, the number of components of a graph is an important [[graph invariant]], and in [[topological graph theory]] it can be interpreted as the zeroth Betti number of the graph.{{r|tutte}}
A graph can be interpreted as a [[topological space]] in multiple ways, for instance by placing its vertices as points in [[general position]] in three-dimensional [[Euclidean space]] and representing its edges as line segments between those points. The components of a graph can be generalized through these interpretations as the number of [[Connected component (topology)|topological connected components]] of the corresponding space. Just as the number of connected components is an important [[topological invariant]], the zeroth [[Betti number]] of a space, the number of components of a graph is an important [[graph invariant]], and in [[topological graph theory]] it can be interpreted as the zeroth Betti number of the graph.{{r|tutte}}


The same number arises in other ways in graph theory as well. In [[algebraic graph theory]] it equals the multiplicity of 0 as an [[eigenvalue]] of the [[Laplacian matrix]] of the graph. It is also the index of the first nonzero coefficient of the [[chromatic polynomial]] of a graph. Numbers of components play a key role in the [[Tutte theorem]] characterizing graphs that have [[perfect matching]]s, and in the definition of [[graph toughness]].
The same number arises in other ways in graph theory as well. In [[algebraic graph theory]] it equals the multiplicity of 0 as an [[eigenvalue]] of the [[Laplacian matrix]] of the graph.{{r|cioaba}} It is also the index of the first nonzero coefficient of the [[chromatic polynomial]] of a graph. Numbers of components play a key role in the [[Tutte theorem]] characterizing graphs that have [[perfect matching]]s, and in the definition of [[graph toughness]].


==Algorithms==
==Algorithms==
Line 68: Line 68:
| title = Aspects of Incremental Computing
| title = Aspects of Incremental Computing
| type = PhD thesis}}</ref>
| type = PhD thesis}}</ref>

<ref name=cioaba>{{citation
| last = Cioabă | first = Sebastian M.
| editor-last = Dehmer | editor-first = Matthias
| contribution = Some applications of eigenvalues of graphs
| doi = 10.1007/978-0-8176-4789-6_14
| location = New York
| mr = 2777924
| pages = 357–379
| publisher = Birkhäuser/Springer
| title = Structural analysis of complex networks
| year = 2011}}; see [https://books.google.com/books?id=0ymYdW1rtBUC&pg=PA361 proof of Lemma 5, p. 361]</ref>


<ref name=foldes>{{citation
<ref name=foldes>{{citation

Revision as of 23:58, 7 January 2022

A graph with three components.

In graph theory, a component of an undirected graph is a connected subgraph that is not part of any larger connected subgraph. The components of any graph partition its vertices into disjoint sets, and are the induced subgraphs of those sets. A graph that is itself connected has exactly one component, consisting of the whole graph. Components are also sometimes called connected components.

Definitions and examples

A component of a given undirected graph may be defined as a connected subgraph that is not part of any larger connected subgraph. Every vertex of a graph belongs to one of the graph's components, which may be found as the induced subgraph of the set of vertices reachable from .[1] For instance, the graph shown in the illustration has three components. As additional examples of this general rule, we have the following special cases:

  • In an empty graph, each vertex forms a component with one vertex and zero edges.[2] More generally a component of this type is formed for every isolated vertex in any graph.[3]
  • In a connected graph, there is exactly one component, the whole graph.[3]

Another way to define components involves the equivalence classes of an equivalence relation that is defined on the vertices of the graph. In an undirected graph, a vertex is reachable from a vertex if there is a path from to . In this definition, a single vertex is counted as a path of length zero, and the same vertex may occur more than once within a path. Reachability is an equivalence relation, since:

  • It is reflexive: There is a trivial path of length zero from any vertex to itself.
  • It is symmetric: If there is a path from to , the same edges in the reverse order form a path from to .
  • It is transitive: If there is a path from to and a path from to , the two paths may be concatenated together to form a path from to .

The equivalence classes of this relation partition the vertices of the graph into disjoint sets, subsets of vertices that are all reachable from each other, with no additional reachable pairs outside of any of these subsets. Each vertex belongs to exactly one equivalence class. The components are then the induced subgraphs formed by each of these equivalence classes.[4]

Number of components

A graph can be interpreted as a topological space in multiple ways, for instance by placing its vertices as points in general position in three-dimensional Euclidean space and representing its edges as line segments between those points. The components of a graph can be generalized through these interpretations as the number of topological connected components of the corresponding space. Just as the number of connected components is an important topological invariant, the zeroth Betti number of a space, the number of components of a graph is an important graph invariant, and in topological graph theory it can be interpreted as the zeroth Betti number of the graph.[2]

The same number arises in other ways in graph theory as well. In algebraic graph theory it equals the multiplicity of 0 as an eigenvalue of the Laplacian matrix of the graph.[5] It is also the index of the first nonzero coefficient of the chromatic polynomial of a graph. Numbers of components play a key role in the Tutte theorem characterizing graphs that have perfect matchings, and in the definition of graph toughness.

Algorithms

It is straightforward to compute the components of a graph in linear time (in terms of the numbers of the vertices and edges of the graph) using either breadth-first search or depth-first search. In either case, a search that begins at some particular vertex will find the entire component containing (and no more) before returning. To find all the components of a graph, loop through its vertices, starting a new breadth first or depth first search whenever the loop reaches a vertex that has not already been included in a previously found component. Hopcroft & Tarjan (1973) describe essentially this algorithm, and state that at that point it was already "well known".[6]

There are also efficient algorithms to dynamically track the components of a graph as vertices and edges are added, by using a disjoint-set data structure to keep track of the partition of the vertices into equivalence classes, replacing any two classes by their union when an edge connecting them is added. These algorithms take amortized time per operation, where adding vertices and edges and determining the component in which a vertex falls are both operations, and is a very slowly growing inverse of the very quickly growing Ackermann function.[7] One application of this sort of incremental connectivity algorithm is in Kruskal's algorithm for minimum spanning trees, which adds edges to a graph in sorted order by length and includes an edge in the minimum spanning tree only when it connects two different components of the previously-added subgraph.[8]

Components of graphs have been used in computational complexity theory to study the power of Turing machines that have a working memory limited to a logarithmic number of bits, with the much larger input accessible only through read access rather than being modifiable. The problems that can be solved by machines limited in this way define the complexity class L. It was unclear for many years whether connected components could be found in this model, when formalized as a decision problem of testing whether two vertices belong to the same component, and in 1982 a related complexity class, SL, was defined to include this connectivity problem and any other problem equivalent to it under logarithmic-space reductions.[9] Finally, in 2008, it was proven that this connectivity problem can be solved in logarithmic space, and therefore that SL = L.[10]

In random graphs

In random graphs the sizes of components are given by a random variable, which, in turn, depends on the specific model. In the version of the Erdős–Rényi model, a graph on vertices is generated by choosing randomly and independently for each pair of vertices whether to include an edge connecting that pair, with probability of including an edge and probability of leaving those two vertices without an edge connecting them. The connectivity of this model depends on , and there are three different ranges of with very different behavior from each other (with high probability):

Subcritical
In this range of , all components are simple and very small. The largest component has size . The graph is a pseudoforest, and most of its components are trees.
Critical
There is a single giant component with ; the remaining components are small, with size .
Supercritical
The size of the giant component becomes linear, and for large values of approaches the whole graph: where is the positive solution to the equation Again, all remaining components are small.

For a different model, the random subgraphs of grid graphs, the connected components are described by percolation theory.

See also

References

  1. ^ Clark, John; Holton, Derek Allan (1995), A First Look at Graph Theory, Allied Publishers, p. 28, ISBN 9788170234630
  2. ^ a b Tutte, W. T. (1984), Graph Theory, Encyclopedia of Mathematics and its Applications, vol. 21, Reading, Massachusetts: Addison-Wesley, p. 15, ISBN 0-201-13520-5, MR 0746795
  3. ^ a b Thulasiraman, K.; Swamy, M. N. S. (2011), Graphs: Theory and Algorithms, John Wiley & Sons, p. 9, ISBN 978-1-118-03025-7
  4. ^ Foldes, Stephan (2011), Fundamental Structures of Algebra and Discrete Mathematics, John Wiley & Sons, p. 199, ISBN 978-1-118-03143-8
  5. ^ Cioabă, Sebastian M. (2011), "Some applications of eigenvalues of graphs", in Dehmer, Matthias (ed.), Structural analysis of complex networks, New York: Birkhäuser/Springer, pp. 357–379, doi:10.1007/978-0-8176-4789-6_14, MR 2777924; see proof of Lemma 5, p. 361
  6. ^ Hopcroft, John; Tarjan, Robert (June 1973), "Algorithm 447: efficient algorithms for graph manipulation", Communications of the ACM, 16 (6): 372–378, doi:10.1145/362248.362272
  7. ^ Bengelloun, Safwan Abdelmajid (December 1982), Aspects of Incremental Computing (PhD thesis), Yale University, p. 12, ProQuest 303248045
  8. ^ Skiena, Steven (2008), "6.1.2 Kruskal's Algorithm", The Algorithm Design Manual, Springer, pp. 196–198, doi:10.1007/978-1-84800-070-4, ISBN 978-1-84800-069-8
  9. ^ Lewis, Harry R.; Papadimitriou, Christos H. (1982), "Symmetric space-bounded computation", Theoretical Computer Science, 19 (2): 161–187, doi:10.1016/0304-3975(82)90058-5, MR 0666539
  10. ^ Reingold, Omer (2008), "Undirected connectivity in log-space", Journal of the ACM, 55 (4): A17:1–A17:24, doi:10.1145/1391289.1391291, MR 2445014

External links