Connectivity (graph theory)

From testwiki
Jump to navigation Jump to search

Template:Short description

File:Network Community Structure.svg
This graph becomes disconnected when the right-most node in the gray area on the left is removed
This graph becomes disconnected when the dashed edge is removed.

In mathematics and computer science, connectivity is one of the basic concepts of graph theory: it asks for the minimum number of elements (nodes or edges) that need to be removed to separate the remaining nodes into two or more isolated subgraphs.[1] It is closely related to the theory of network flow problems. The connectivity of a graph is an important measure of its resilience as a network.

Connected vertices and graphs

With vertex 0, this graph is disconnected. The rest of the graph is connected.

In an undirected graph Template:Mvar, two vertices Template:Mvar and Template:Mvar are called connected if Template:Mvar contains a path from Template:Mvar to Template:Mvar. Otherwise, they are called disconnected. If the two vertices are additionally connected by a path of length Template:Math (that is, they are the endpoints of a single edge), the vertices are called adjacent.

A graph is said to be connected if every pair of vertices in the graph is connected. This means that there is a path between every pair of vertices. An undirected graph that is not connected is called disconnected. An undirected graph Template:Mvar is therefore disconnected if there exist two vertices in Template:Mvar such that no path in Template:Mvar has these vertices as endpoints. A graph with just one vertex is connected. An edgeless graph with two or more vertices is disconnected.

A directed graph is called weakly connected if replacing all of its directed edges with undirected edges produces a connected (undirected) graph. It is unilaterally connected or unilateral (also called semiconnected) if it contains a directed path from Template:Mvar to Template:Mvar or a directed path from Template:Mvar to Template:Mvar for every pair of vertices Template:Math.[2] It is strongly connected, or simply strong, if it contains a directed path from Template:Mvar to Template:Mvar and a directed path from Template:Mvar to Template:Mvar for every pair of vertices Template:Math.

Components and cuts

A connected component is a maximal connected subgraph of an undirected graph. Each vertex belongs to exactly one connected component, as does each edge. A graph is connected if and only if it has exactly one connected component.

The strong components are the maximal strongly connected subgraphs of a directed graph.

A vertex cut or separating set of a connected graph Template:Mvar is a set of vertices whose removal renders Template:Mvar disconnected. The vertex connectivity Template:Math (where Template:Mvar is not a complete graph) is the size of a smallest vertex cut. A graph is called Template:Mvar-vertex-connected or Template:Mvar-connected if its vertex connectivity is Template:Mvar or greater.

More precisely, any graph Template:Mvar (complete or not) is said to be Template:Mvar-vertex-connected if it contains at least Template:Math vertices, but does not contain a set of Template:Math vertices whose removal disconnects the graph; and Template:Math is defined as the largest Template:Mvar such that Template:Mvar is Template:Mvar-connected. In particular, a complete graph with Template:Mvar vertices, denoted Template:Mvar, has no vertex cuts at all, but Template:Math.

A vertex cut for two vertices Template:Mvar and Template:Mvar is a set of vertices whose removal from the graph disconnects Template:Mvar and Template:Mvar. The local connectivity Template:Math is the size of a smallest vertex cut separating Template:Mvar and Template:Mvar. Local connectivity is symmetric for undirected graphs; that is, Template:Math. Moreover, except for complete graphs, Template:Math equals the minimum of Template:Math over all nonadjacent pairs of vertices Template:Math.

Template:Math-connectivity is also called biconnectivity and Template:Math-connectivity is also called triconnectivity. A graph Template:Mvar which is connected but not Template:Math-connected is sometimes called separable.

Analogous concepts can be defined for edges. In the simple case in which cutting a single, specific edge would disconnect the graph, that edge is called a bridge. More generally, an edge cut of Template:Mvar is a set of edges whose removal renders the graph disconnected. The edge-connectivity Template:Math is the size of a smallest edge cut, and the local edge-connectivity Template:Math of two vertices Template:Math is the size of a smallest edge cut disconnecting Template:Mvar from Template:Mvar. Again, local edge-connectivity is symmetric. A graph is called Template:Mvar-edge-connected if its edge connectivity is Template:Mvar or greater.

A graph is said to be maximally connected if its connectivity equals its minimum degree. A graph is said to be maximally edge-connected if its edge-connectivity equals its minimum degree.[3]

Super- and hyper-connectivity

A graph is said to be super-connected or super-κ if every minimum vertex cut isolates a vertex. A graph is said to be hyper-connected or hyper-κ if the deletion of each minimum vertex cut creates exactly two components, one of which is an isolated vertex. A graph is semi-hyper-connected or semi-hyper-κ if any minimum vertex cut separates the graph into exactly two components.[4]

More precisely: a Template:Mvar connected graph is said to be super-connected or super-κ if all minimum vertex-cuts consist of the vertices adjacent with one (minimum-degree) vertex. A Template:Mvar connected graph is said to be super-edge-connected or super-λ if all minimum edge-cuts consist of the edges incident on some (minimum-degree) vertex.[5]

A cutset Template:Mvar of Template:Mvar is called a non-trivial cutset if Template:Mvar does not contain the neighborhood Template:Math of any vertex Template:Math. Then the superconnectivity κ1 of Template:Mvar is κ1(G)=min{|X|:X is a non-trivial cutset}.

A non-trivial edge-cut and the edge-superconnectivity λ1(G) are defined analogously.[6]

Menger's theorem

Template:Main

One of the most important facts about connectivity in graphs is Menger's theorem, which characterizes the connectivity and edge-connectivity of a graph in terms of the number of independent paths between vertices.

If Template:Mvar and Template:Mvar are vertices of a graph Template:Mvar, then a collection of paths between Template:Mvar and Template:Mvar is called independent if no two of them share a vertex (other than Template:Mvar and Template:Mvar themselves). Similarly, the collection is edge-independent if no two paths in it share an edge. The number of mutually independent paths between Template:Mvar and Template:Mvar is written as Template:Math, and the number of mutually edge-independent paths between Template:Mvar and Template:Mvar is written as Template:Math.

Menger's theorem asserts that for distinct vertices u,v, Template:Math equals Template:Math, and if u is also not adjacent to v then Template:Math equals Template:Math.[7][8] This fact is actually a special case of the max-flow min-cut theorem.

Computational aspects

The problem of determining whether two vertices in a graph are connected can be solved efficiently using a search algorithm, such as breadth-first search. More generally, it is easy to determine computationally whether a graph is connected (for example, by using a disjoint-set data structure), or to count the number of connected components. A simple algorithm might be written in pseudo-code as follows:

  1. Begin at any arbitrary node of the graph Template:Mvar.
  2. Proceed from that node using either depth-first or breadth-first search, counting all nodes reached.
  3. Once the graph has been entirely traversed, if the number of nodes counted is equal to the number of nodes of Template:Mvar, the graph is connected; otherwise it is disconnected.

By Menger's theorem, for any two vertices Template:Mvar and Template:Mvar in a connected graph Template:Mvar, the numbers Template:Math and Template:Math can be determined efficiently using the max-flow min-cut algorithm. The connectivity and edge-connectivity of Template:Mvar can then be computed as the minimum values of Template:Math and Template:Math, respectively.

In computational complexity theory, SL is the class of problems log-space reducible to the problem of determining whether two vertices in a graph are connected, which was proved to be equal to L by Omer Reingold in 2004.[9] Hence, undirected graph connectivity may be solved in Template:Math space.

The problem of computing the probability that a Bernoulli random graph is connected is called network reliability and the problem of computing whether two given vertices are connected the ST-reliability problem. Both of these are #P-hard.[10]

Number of connected graphs

Template:Main The number of distinct connected labeled graphs with n nodes is tabulated in the On-Line Encyclopedia of Integer Sequences as sequence Template:OEIS link. The first few non-trivial terms are

The number and images of connected graphs with 4 nodes
n graphs
1 1
2 1
3 4
4 38
5 728
6 26704
7 1866256
8 251548592

Examples

Bounds on connectivity

Other properties

See also

References

Template:Reflist