In
graph theory
In mathematics and computer science, graph theory is the study of ''graph (discrete mathematics), graphs'', which are mathematical structures used to model pairwise relations between objects. A graph in this context is made up of ''Vertex (graph ...
, a biconnected component or block (sometimes known as a 2-connected component) is a maximal
biconnected subgraph. Any
connected graph decomposes into a
tree
In botany, a tree is a perennial plant with an elongated stem, or trunk, usually supporting branches and leaves. In some usages, the definition of a tree may be narrower, e.g., including only woody plants with secondary growth, only ...
of biconnected components called the block-cut tree of the graph. The blocks are attached to each other at shared
vertices called cut vertices or separating vertices or articulation points. Specifically, a cut vertex is any vertex whose removal increases the number of
connected components.
A block containing at most one cut vertex is called a leaf block, it corresponds to a
leaf vertex in the block-cut tree.
Algorithms
Linear time depth-first search
The classic
sequential algorithm
In computer science, a sequential algorithm or serial algorithm is an algorithm that is executed sequentially – once through, from start to finish, without other processing executing – as opposed to concurrently or in parallel. The term is pr ...
for computing biconnected components in a connected
undirected graph
In discrete mathematics, particularly in graph theory, a graph is a structure consisting of a set of objects where some pairs of the objects are in some sense "related". The objects are represented by abstractions called '' vertices'' (also call ...
is due to
John Hopcroft and
Robert Tarjan
Robert Endre Tarjan (born April 30, 1948) is an American computer scientist and mathematician. He is the discoverer of several graph theory algorithms, including his strongly connected components algorithm, and co-inventor of both splay trees a ...
(1973). It runs in
linear time
In theoretical computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations ...
, and is based on
depth-first search
Depth-first search (DFS) is an algorithm for traversing or searching tree or graph data structures. The algorithm starts at the root node (selecting some arbitrary node as the root node in the case of a graph) and explores as far as possible al ...
. This algorithm is also outlined as Problem 22-2 of
Introduction to Algorithms
''Introduction to Algorithms'' is a book on computer programming by Thomas H. Cormen, Charles E. Leiserson, Ron Rivest, Ronald L. Rivest, and Clifford Stein. The book is described by its publisher as "the leading algorithms text in universities w ...
(both 2nd and 3rd editions).
The idea is to run a depth-first search while maintaining the following information:
# the depth of each vertex in the depth-first-search tree (once it gets visited), and
# for each vertex , the lowest depth of neighbors of all descendants of (including itself) in the depth-first-search tree, called the .
The depth is standard to maintain during a depth-first search. The lowpoint of can be computed after visiting all descendants of (i.e., just before gets popped off the depth-first-search
stack
Stack may refer to:
Places
* Stack Island, an island game reserve in Bass Strait, south-eastern Australia, in Tasmania’s Hunter Island Group
* Blue Stack Mountains, in Co. Donegal, Ireland
People
* Stack (surname) (including a list of people ...
) as the minimum of the depth of , the depth of all neighbors of (other than the parent of in the depth-first-search tree) and the lowpoint of all children of in the depth-first-search tree.
The key fact is that a nonroot vertex is a cut vertex (or articulation point) separating two biconnected components
if and only if
In logic and related fields such as mathematics and philosophy, "if and only if" (often shortened as "iff") is paraphrased by the biconditional, a logical connective between statements. The biconditional is true in two cases, where either bo ...
there is a child of such that . This property can be tested once the depth-first search returned from every child of (i.e., just before gets popped off the depth-first-search stack), and if true, separates the graph into different biconnected components. This can be represented by computing one biconnected component out of every such (a component which contains will contain the subtree of , plus ), and then erasing the subtree of from the tree.
The root vertex must be handled separately: it is a cut vertex if and only if it has at least two children in the DFS tree. Thus, it suffices to simply build one component out of each child subtree of the root (including the root).
Pseudocode
GetArticulationPoints(i, d)
visited
:= true
depth
:= d
low
:= d
childCount := 0
isArticulation := false
for each ni in adj
do
if not visited
ithen
parent
i:= i
GetArticulationPoints(ni, d + 1)
childCount := childCount + 1
if low
i≥ depth
then
isArticulation := true
low
:= Min (low
low
i
else if ni ≠ parent
then
low
:= Min (low
depth
i
if (parent
≠ null and isArticulation) or (parent
= null and childCount > 1) then
Output i as articulation point
Note that the terms child and parent denote the relations in the DFS tree, not the original graph.
Other algorithms
A simple alternative to the above algorithm uses
chain decomposition
In mathematics, in the areas of order theory and combinatorics, Dilworth's theorem states that, in any finite partially ordered set, the maximum size of an antichain of incomparable elements equals the minimum number of chains needed to cover al ...
s, which are special ear decompositions depending on
DFS-trees.
[.] Chain decompositions can be computed in linear time by this
traversing rule. Let be a chain decomposition of . Then is 2-vertex-connected if and only if has minimum
degree 2 and is the only
cycle in . This gives immediately a linear-time 2-connectivity test and can be extended to list all cut vertices of in linear time using the following statement: A vertex in a connected graph (with minimum degree 2) is a cut vertex if and only if is incident to a
bridge
A bridge is a structure built to Span (engineering), span a physical obstacle (such as a body of water, valley, road, or railway) without blocking the path underneath. It is constructed for the purpose of providing passage over the obstacle, whi ...
or is the first vertex of a cycle in . The list of cut vertices can be used to create the
block-cut tree of in linear time.
In the
online
In computer technology and telecommunications, online indicates a state of connectivity, and offline indicates a disconnected state. In modern terminology, this usually refers to an Internet connection, but (especially when expressed as "on lin ...
version of the problem, vertices and edges are added (but not removed) dynamically, and a data structure must maintain the biconnected components.
Jeffery Westbrook and
Robert Tarjan
Robert Endre Tarjan (born April 30, 1948) is an American computer scientist and mathematician. He is the discoverer of several graph theory algorithms, including his strongly connected components algorithm, and co-inventor of both splay trees a ...
(1992) developed an efficient data structure for this problem based on
disjoint-set data structure
In computer science, a disjoint-set data structure, also called a union–find data structure or merge–find set, is a data structure that stores a collection of Disjoint sets, disjoint (non-overlapping) Set (mathematics), sets. Equivalently, it ...
s. Specifically, it processes vertex additions and edge additions in total time, where is the
inverse Ackermann function
In computability theory, the Ackermann function, named after Wilhelm Ackermann, is one of the simplest and earliest-discovered examples of a total computable function that is not primitive recursive. All primitive recursive functions are total ...
. This time bound is proved to be optimal.
Uzi Vishkin
Uzi Vishkin (; born 1953) is a computer scientist at the University of Maryland, College Park, where he is Professor of Electrical and Computer Engineering at the University of Maryland Institute for Advanced Computer Studies (UMIACS). Uzi Vishkin ...
and
Robert Tarjan
Robert Endre Tarjan (born April 30, 1948) is an American computer scientist and mathematician. He is the discoverer of several graph theory algorithms, including his strongly connected components algorithm, and co-inventor of both splay trees a ...
(1985) designed a
parallel algorithm
In computer science, a parallel algorithm, as opposed to a traditional serial algorithm, is an algorithm which can do multiple operations in a given time. It has been a tradition of computer science to describe serial algorithms in abstract mach ...
on CRCW
PRAM that runs in time with processors.
Related structures
Equivalence relation
One can define a
binary relation
In mathematics, a binary relation associates some elements of one Set (mathematics), set called the ''domain'' with some elements of another set called the ''codomain''. Precisely, a binary relation over sets X and Y is a set of ordered pairs ...
on the edges of an arbitrary undirected graph, according to which two edges and are related if and only if either or the graph contains a
simple cycle through both and . Every edge is related to itself, and an edge is related to another edge if and only if is related in the same way to . Less obviously, this is a
transitive relation
In mathematics, a binary relation on a set (mathematics), set is transitive if, for all elements , , in , whenever relates to and to , then also relates to .
Every partial order and every equivalence relation is transitive. For example ...
: if there exists a simple cycle containing edges and , and another simple cycle containing edges and , then one can combine these two cycles to find a simple cycle through and . Therefore, this is an
equivalence relation
In mathematics, an equivalence relation is a binary relation that is reflexive, symmetric, and transitive. The equipollence relation between line segments in geometry is a common example of an equivalence relation. A simpler example is equ ...
, and it can be used to partition the edges into equivalence classes, subsets of edges with the property that two edges are related to each other if and only if they belong to the same
equivalence class
In mathematics, when the elements of some set S have a notion of equivalence (formalized as an equivalence relation), then one may naturally split the set S into equivalence classes. These equivalence classes are constructed so that elements ...
. The subgraphs formed by the edges in each equivalence class are the biconnected components of the given graph. Thus, the biconnected components partition the edges of the graph; however, they may share vertices with each other.
Block graph
The block graph of a given graph is the
intersection graph of its blocks. Thus, it has one vertex for each block of , and an edge between two vertices whenever the corresponding two blocks share a vertex.
A graph is the block graph of another graph exactly when all the blocks of are complete subgraphs. The graphs with this property are known as the
block graph
Block or blocked may refer to:
Arts, entertainment and media Broadcasting
* Block programming, the result of a programming strategy in broadcasting
* W242BX, a radio station licensed to Greenville, South Carolina, United States known as ''96. ...
s.
Block-cut tree
A cutpoint, cut vertex, or articulation point of a graph is a vertex that is shared by two or more blocks. The structure of the blocks and cutpoints of a connected graph can be described by a
tree
In botany, a tree is a perennial plant with an elongated stem, or trunk, usually supporting branches and leaves. In some usages, the definition of a tree may be narrower, e.g., including only woody plants with secondary growth, only ...
called the block-cut tree or BC-tree. This tree has a vertex for each block and for each articulation point of the given graph. There is an edge in the block-cut tree for each pair of a block and an articulation point that belongs to that block.
[, p. 36.]
See also
*
Triconnected component
*
Bridge (graph theory)
In graph theory, a bridge, isthmus, cut-edge, or cut arc is an Glossary of graph theory#edge, edge of a Graph (discrete mathematics), graph whose deletion increases the graph's number of Connected component (graph theory), connected components. ...
*
Single-entry single-exit Counter part of biconnected components in directed graphs
Notes
References
*
External links
C++ implementation of Biconnected Components
{{DEFAULTSORT:Biconnected Component
Graph connectivity
Articles with example pseudocode