We now turn to graphs. The definitions introduced here refer without exception to directed graphs (digraphs). In contrast to undirected graphs, the relation between two vertices is not necessarily symmetric.
3.2.1 Graphs, Vertices, and Arcs
A graph G is a tuple(V, A) with a finite vertex set V and a finite arc set A ⊆∗V × V , where
Ais a multiset(U, m) with U ⊆ V × V . Unless indicated otherwise, we assume this
naming for the vertex and arc set of a graph G in the remainder of this thesis.
The size of G is measured by the cardinalities n = |V | and m = |A|. An arc a with tail uand head v is specified by a = (u, v). In this case, a is said to be incident to both vertices u and v and a is an outgoing arc of u and an incoming arc of v. Two vertices u, v are called adjacent, if(u, v) ∈ A or (v, u) ∈ A. For an arc a = (u, v), we say that a is an incoming arc from u at v and an outgoing arc to v at u.
The reverse of an arc(u, v), denoted by (u, v)R, is an arc with transposed head and tail, i. e. ,(u, v)R = (v, u). For a (multi-)set Y ⊆ A of arcs, YR= [yR | y ∈ Y ] and consequently, |Y | = |YR|. The reverse of a graph G = (V, A) is the graph GR = (V, AR). Observe that reversion is an involution, i. e. ,(u, v)RR = (u, v), YRR = Y , and GRR = G.
A loop is an arc where head and tail coincide, e. g. , a= (u, u). An arc a = (u, v) has parallelarcs, if m(a) ≥ 2 and one or more anti-parallel arcs, if (v, u) ∈ A. The multiset containing all parallel arcs of an arc a, including a itself, is denoted by[a]∥. We say that
3.2 General Graph Theory 39 v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13
Figure 3.1:A multigraph with loops at v3, v6, and v11, three parallel arcs(v2, v4), two par-
allel arcs(v8, v10), as well as anti-parallel arcs {(v4, v5) , (v5, v4)}, {(v8, v10) , (v10, v8)},
and {(v9, v11) , (v11, v9)}.
a graph has parallel or anti-parallel arcs, if one of its arcs has parallel or anti-parallel arcs, respectively. A graph with loops, parallel, or anti-parallel arcs is called a multigraph. Otherwise, the graph is said to be simple. In the latter case, it suffices to define A as a simple set, i. e. , A ⊂ V × V . Figure 3.1provides an example of a multigraph that will serve as a running example for the remainder of this chapter.
A graph G′ = (V′, A′) is a subgraph of G, denoted by G′ ⊆ G, if V′ ⊆ V and A′ ⊆ A as well as A′ ⊆∗ V′ × V′. A subgraph G′ is spanning if V′ = V . For a set of vertices
X ⊆ V , the induced subgraph GX is the subgraph of G with vertex set X and arc set
(UX, mX), where UX = {(u, v) ∈ U | u ∈ X ∧ v ∈ X} and ∀a ∈ UX : mX(a) = m(a). Using a set of arcs Y , we define the spanning subgraph G⏐
⏐Y of G that is restricted to Y as G⏐
⏐Y = (V, A ∩ Y ).
A tournament is a simple graph G= (V, A) such that for each distinct pair of vertices
u, v∈ V , u ̸= v, exactly one of the arcs (u, v) and (v, u) is in A. A graph is bipartite if its
vertex set V can be partitioned into two sets V′ ˙∪ V′′= V such that for all arcs (u, v) ∈ A, either u ∈ V′ and v ∈ V′′ or u ∈ V′′ and v ∈ V′. A bipartite tournament is a simple bipartite graph G= (V′ ˙∪ V′′, A) with exactly one of (u, v) and (v, u) in A for each pair of vertices u, v such that u ∈ V′ and v ∈ V′′.
3.2.2 Vertex Degrees
For a vertex v ∈ V , we denote by N+(v) the simple set of vertices that v has an out-
going arc to, i. e. , N+(v) = {u ∈ V | (v, u) ∈ U}. Likewise, N−(v) denotes the simple
set of vertices that v has an incoming arc from, i. e. ,N−(v) = {u ∈ V | (u, v) ∈ U}. The
counting parallel arcs, i. e. ,d+(v) =∑
u∈N+(v)m((v, u)). Equivalently, d−(v) denotes v’s indegree, i. e. ,d−(v) =∑
u∈N−(v)m((u, v)). Finally, the (total) degree d(v) of v is defined asd(v) = d+(v) + d−(v) and the delta degree δ(v) as δ(v) = d+(v) − d−(v). Note that for
every graph,∑
v∈V δ(v) =∑v∈V d+(v) −∑v∈V d−(v) = 0.
A vertex v is called a source ifd+(v) ≥ 1 and d−(v) = 0 and a sink if d+(v) = 0 and
d−(v) ≥ 1. In case d(v) = 0, v is said to be isolated. The maximum degree of a vertex in a
graph is denoted by∆G, i. e. ,∆G= maxv∈V d(v).
A graph G is k-regular, if ∀v ∈ V : d(v) = k and k-subregular, if ∀v ∈ V : d(v) ≤ k, or equivalently,∆G = k. For k = 3, we also refer to such a graph as cubic or subcubic, respectively. For k = 4, the terms quartic and subquartic are used as an alternative. In case of k= 5, a graph is called quintic or subquintic, respectively.
3.2.3 Paths, Cycles, and Walks
A path P of length k is an alternating sequence of k+ 1 vertices and k connecting arcs P= ⟨v0,(v0, v1) , v1,(v1, v2) , v2, . . . , vk−1,(vk−1, vk) , vk⟩. In case no ambiguity arises, we may also specify a path by giving only either its vertices or arcs. As a short form, we write v0 ⇝ vkto denote an unspecified path from v0 to vk. A path is simple, if it does not include a vertex more than once. Let VP = {v0, v1, . . . , vk} be the set of vertices of Pand AP = {(v0, v1) , (v1, v2) , . . . , (vk−1, vk)} the set of arcs of P. With a slight abuse of notation, we write v ∈ P for a vertex v ∈ V to express that v ∈ VP, and a ∈ P for an arc
a∈ A to express that a ∈ AP.
A path P′ is a subpath of a path P= ⟨v
0,(v0, v1), v1,(v1, v2), v2, . . . , vk−1,(vk−1, vk), vk⟩, if P′ = ⟨vi,(vi, vi+1), vi+1, . . . , v
j−1,(vj−1, vj), vj⟩, for some i, j with 0 ≤ i ≤ j ≤ k, i. e. , P′is a continuous subsequence of vertices and arcs of P.
Two paths P and P′ are vertex-disjoint if they do not share a common vertex. Likewise, Pand P′are arc-disjoint, if they do not share a common arc. Every vertex-disjoint pair of paths is also arc-disjoint.
A cycle C of length k is a path of length k where the first and the last vertex coincide, i. e. , v0 = vk. For a cycle to be simple, all vertices apart from v0, vk must be distinct. Whenever a graph contains a cycle C that is not simple, it also contains a simple cycle C′ that consists of the shortest subpath in C that begins and ends at the same vertex.
The notion of vertex- and arc-disjointness is transferred from paths to cycles anal- ogously, i. e. , two cycles C and C′ are vertex-disjoint (arc-disjoint) if no vertex (arc) is contained in both C and C′.
3.2 General Graph Theory 41 Note that paths and cycles of length k= 1 are single arcs and loops, respectively. Similar to a path, a walk W of length k is an alternating sequence of k+ 1 vertices and k arcs W= ⟨v0, a{v0,v1}, v1, a{v1,v2}, v2, . . . , vk−1, a{vk−1,vk}, vk⟩ with the vital difference that
a{vi,vj}may either be the arc(vi, vj) or its reverse, i. e. , (vj, vi). Informally, a walk is a path where the arcs’ directions are ignored. Consequently, every path is also a walk, but not vice versa.
3.2.4 Connectivity and Acyclicity
A graph G is said to be connected, if there is a walk from u to v for every pair of vertices
u, v∈ V . G is said to be k-vertex-connected or simply k-connected, if n > k and for any subset of at most k − 1 vertices V′
⊊ V , GV \V′ is connected, i. e. , the removal of at most
k−1 arbitrary vertices does not disconnect G. A 2-connected graph is synonymously also called biconnected. A connected component of a graph is a maximal connected subgraph, i. e. , for X ⊆ V , GX is a connected component if GX is connected if there is no superset
X′ ⊋ X such that GX′ is connected. Analogously, a biconnected component or block of a
graph is a maximal biconnected subgraph. A vertex v is called a cut vertex, if GV \{v}has more connected components than G. In particular, a graph is biconnected if and only if it does not have a cut vertex. The definition implies that every cut vertex of a graph is part of at least two blocks. The block-cut tree of a graph G is an unrooted tree T whose nodes each represent either a block or a cut vertex of G. Two nodes of T are adjacent if and only if one of them represents a block, the other a cut vertex, and the block contains the cut vertex.
The graph depicted in Figure 3.1, e. g. , is not biconnected due to the presence of the (only) cut vertex v10. It contains two blocks: one consisting of all vertices viwith 0 ≤ i ≤ 10, and second consisting of all vertices vj with10 ≤ j ≤ 13. Observe that v10is contained in both blocks. The block-cut tree of this example graph thus consists of three nodes representing two blocks and one cut vertex.
For two vertices u, v of a graph G, v is said to be reachable from u if there is a path
u ⇝ v in G. The vertices u and v are called strongly connected, if they are mutually
reachable, i. e. , there are paths u ⇝ v and v ⇝ u in G. By transferring this definition to the whole graph, we obtain that a graph is strongly connected, if there is a path between each ordered pair of vertices.
A strongly connected component, SCC for short, of a graph is a strongly connected subgraph that is maximal with respect to its vertex set. Formally, the property of being
σ0 σ1 σ2 σ3 σ4 σ5 v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13
Figure 3.2:Strongly connected components of the example graph.
σ0
σ1
σ2
σ3 σ4
σ5
Figure 3.3: The condensation of the example graph.
strongly connected defines an equivalence relation on the set of vertices such that each equivalence class corresponds to the vertex set of exactly one SCC. This also implies that any two vertices vi, vj of a cycle C are strongly connected, as C can be split into two paths vi ⇝ vj and vj ⇝ vi. Therefore, for every cycle in G, its vertices and arcs must be part of the same SCC.Figure 3.2shows the SCCs of the example graph.
In general, the number of SCCs in a graph may range between1 and n. In the former case, the graph itself is strongly connected, while in the latter, every SCC consists of a single vertex only. If so, the graph does not contain a cycle of length k >1. A graph is said to be acyclic, if it does not contain a cycle of length k >0. In consequence, every loop-free graph with n SCCs is acyclic. Contracting each SCC of G to a single vertex always yields an acyclic graph that is called the condensation of G. SeeFigure 3.3for the condensation of the example graph.
In an acyclic graph, the reachability relation defines a partial order on the set of its vertices. Every linear extension of this relation (i. e. , to a total order) corresponds to a topological sorting of the acyclic graph. A topological sorting of G= (V, A) is a bijective mapping ξ: V → {0, . . . , n − 1} that assigns a topsort number ξ(v) to every vertex v such