Clique separators of a graph
This note is an introduction of Tarjan’s algorithm of detecting clique separators of
a given graph. We are interested in the topic because graphs of clique separators have
vanishing star contents, and thus do not contribute to cluster integrals in the virial series.
The algorithm presented here is due to Tarjan [1] based on finding a minimal elimination
ordering of a given graph. This ordering can be computed by either the classic algorithm
by Rose, Tarjan and Lueker [2] (RTL algorithm below) based on lexicographic search or
the algorithm by Berry, Blair and Heggernes [3] based on maximal cardinality search [4].
In Sec. I, we give a general overview focusing on the background information and
overall logic of the algorithms. In Sec. II, we supply more details to help the reader study
the original papers.
I. Nontechnical introduction
I.A Clique separator
In a graph G = (V, E), a clique is a fully-connected set of vertices V′ (V′ ⊂ V ), i.e.,
for any u, v ∊V′ (u ≠ v), {u, v} is an edge in E. A separator is a set of vertices V′ (V′ ⊂ V)
such that the removal of all vertices in V′ along with the attached edges renders the graph
disconnected. Thus, a clique separator is a clique whose removal along with the
removal of the incident edges disconnects the graph. Some examples are shown in Fig. 1.
The concept of clique separator is a generalization of the concept of articulation point,
which is a single-vertex clique separator.
1
Figure 1. Clique separators of different numbers of vertices.
I.B Overview of Tarjan’s algorithm
Given a graph, Tarjan’s algorithm detects the existence of clique separators in two
steps [1]. In the first step, vertices are sorted in a minimal elimination ordering, which is
marginally optimized for a hypothetical Gaussian elimination procedure performed on the
connectivity matrix. The elimination process accumulates fill-in edges that correspond to
newly-created nonzero elements. The graph augmented with fill-in edges is called the
elimination graph [2]. In the second step, we go through vertices in the elimination graph
in the minimal elimination ordering [1]. If there is a clique separator, it can be found
along the way (hence in linear time) [1]. Below, we try to elaborate the above concepts
and sketch the algorithm without going through detailed proofs.
I.C Elimination graph
Given an input graph, Tarjan’s algorithm first computes a transformed graph
called the elimination graph. Consider the following process of eliminating vertices in a
graph G = (V, E), where V and E represent the vertex and edge sets, respectively. In each
eliminate step, we remove a vertex v, then join all vertices adjacent to v: for any two nonadjacent vertices u and w that are both adjacent to v, we add a fill-in edge u-w if u and w
2
are not adjacent in the original graph (see Fig. 2). We then repeat the above step on
another vertex v′ in the graph with fill-in edges created previously (but without v). The
entire process finishes in n = |V | steps.
Figure 2. Elimination step and fill-in edge. Left: during the elimination of vertex v, we join
vertices u and w, which are both adjacent to v, and produce a fill-in edge u-w. Right: the
same process represented on the connectivity matrix. The empty and filled cells represent
zeros and nonzeros, respectively. The blue cells (which is originally white) represent the
newly-created fill-in edge u-w.
The above process depends on the graph G as well as the elimination ordering α.
Here, α is a function from 1, 2, …, n to vertices; α(i) gives the ith eliminated vertex; and
α–1(v) tells when v is eliminated; u <α v means α–1(u) < α–1(v). We denote by Fα the set of
all fill-in edges accumulated in the process. The augmented graph Gα = (V, Eα = E ⋃ Fα)
containing all fill-in edges is called the elimination graph (unlike the RTL paper, we will
not attach “*” to Gα here). We can characterize fill-in edges as follows.
3
PROPOSITION I. For each fill-in edge {v, w}∊Fα, there is a vertex u
with u <α v and u <α w such that {u, v} and {u, w}∊Eα. Conversely
if u <α v, u <α w, with {u, v} and {u, w}∊Eα, then {v, w} ∊ Eα.
Since this proposition is quite straightforward, it will be used below without references.
Historically, the study on elimination graphs was motivated by the problem of
optimizing the Gaussian elimination process on a sparse matrix. To see the connection,
first recall that the connectivity matrix of a graph is an n×n Boolean matrix, in which the
element on the ith row and jth column is either 1 if vertices i and j are adjacent, or 0
otherwise. Suppose we wish to perform a Gaussian elimination on the matrix, whose
nonzero elements have been replaced by random numbers, every nonzero element created
in the process corresponds to a fill-in edge, as shown in Fig. 2. Our aim is to find a
ordering that minimizes the number of nonzero elements created in the process to
maintain the sparseness of the matrix.
I.D Perfect, minimal and minimum orderings
If the set Fα happens to be empty, the ordering α is called a perfect (elimination)
ordering of G. Not every graph has a perfect ordering (e.g., the four-vertex ring graph ⃞
has no such ordering). An elimination graph Gα = (V, E ∪ Fα) constructed from an
arbitrary G = (V, E) and α always has a perfect ordering, which is α, because the same
elimination process on Gα can no longer produce any fill-in edge other than those in Fα.
Since a perfect ordering is not always attainable, it is desirable to find a minimum
ordering, which minimizes the number of fill-in edges. But since a minimum ordering is
4
still very hard to find (the problem NP-complete [5]), we will settle for a minimal
ordering. If the set of fill-in edges produced by a minimal ordering α is F, then no
ordering can produce a set of fill-in edges F′ that is a proper subset of F. In other words,
the set of fill-in edges produced is marginally minimized in a minimal ordering (while the
size of the set is globally minimized in a minimum ordering). We should emphasize that
only a minimal ordering is needed for testing clique separators, although a minimum
ordering is more desirable for other purposes. It is therefore fortunate that we have a
polynomial algorithm to obtain a minimal ordering.
To clarity the concepts of the various orderings, we list a few properties below
i.
Minimal, minimum, and perfect orderings of a graph are not necessarily unique.
ii.
A minimum ordering is necessarily minimal, but a minimal ordering is not
necessarily a minimum ordering. They can be very different.
iii.
A perfect ordering of a graph is obviously minimum and minimal. If a graph has
a perfect ordering, the minimum or minimal ordering must also be perfect.
Let us clarify the meaning of an elimination graph by the following proposition.
PROPOSITION II. A graph H has a perfect elimination ordering if
and only if H is the elimination graph of some graph G and
ordering α.
Proof. If H has a perfect ordering α, then H is the elimination graph of itself H and α.
Conversely, if the H is the elimination graph of G and α, eliminating vertices on H using
α will not produce new fill-in edges. So H has a perfect elimination ordering α. ■
According to PROPOSITION II, we may call a graph an elimination graph if and
only if it has a perfect ordering. Although our main interest is to find a minimal ordering
5
for an arbitrary graph, the special case of finding a minimal (hence perfect) ordering for
an elimination graph sheds critical insights on the solution of the general problem.
I.E The RTL Algorithm
In the next few sections, we describe the RTL algorithm [2] which finds a
minimal ordering and the corresponding elimination graph. The RTL algorithm serves as
the first step of Tarjan’s algorithm. Here we only give an overview (which roughly
corresponds to Sec. 3 of the RTL paper [2]), and leave technical details in Sec. II.A.
In short, the RTL algorithm tries to build a hierarchical spanning tree by an
advanced breadth-first search (BFS) [6] called lexicographic search, and then define a
vertex ordering from the tree levels. This ordering is shown to be minimal. In Sec. I.F,
we try to explain why BFS is useful in finding a minimal ordering. We wish to mention
in passing that among the n! possible orderings, many of them are minimal, and any one
of them will meet our need. This is possibly why there is a polynomial algorithm for a
minimal ordering but not one for a minimum ordering.
The RTL paper in fact contains two algorithms LEX-M and LEX-P. While the
former tries to find a minimal ordering of an arbitrary graph, the latter is specialized for
elimination graphs (thus, it outputs perfect orderings). The significance of the latter is
that it offers the basic ingredients and insights for the former. Interestingly, a similar
relationship exists between the simplified algorithms MCS-M and MCS-P based on
maximal cardinality search [3].
6
I.F Spanning tree from the breadth-first search
Let us now recall the process of building a spanning tree from a breadth-first
search, or a BFS tree below. The processes assign a level to each vertex, which is equal
to the minimal number of edges from the root vertex. An example is shown in Fig. 3.
Figure 3. An example of breadth-first search. The levels of adjacent vertices differ by no
more than one.
The BFS tree groups adjacent vertices in the same or adjacent levels. Since the
minimal distances of two adjacent vertices from the root cannot differ by an amount
greater than one, we have
PROPOSITION III. If two vertices are adjacent, their levels in the
BFS tree differ by at most one.
It follows that
PROPOSITION IV. If G = (V, E) has a perfect elimination ordering α,
and there are three vertices u, v, and w such that level(u) = level(v)
– 1, and level(w) = level(v) + 1 in the BFS tree, then v cannot be
eliminated before u and w in α.
7
Proof. Suppose v is eliminated before u and w, there would be an edge {u, w} (either
original or fill-in) when v is eliminated; and {u, w} ∊ E for the ordering α is perfect. But
this is impossible by PROPOSITION III. ■
I.G Hierarchical BFS tree
PROPOSITION IV shows that a perfect ordering α of an elimination graph G has to
be compatible with the levels of the BFS tree of G. This result gives a hint on how to
solve the problem of finding a perfect ordering of an elimination graph (LEX-P). To
design a perfect ordering, we may try to eliminate vertices on the highest level of the BFS
tree first, then those on the next highest level, and so on, and the root is eliminated last.
Further, vertices on the same level, can be distinguished by a second-level BFS tree
among the vertices, with the root chosen arbitrarily. If the second-level tree still leaves
out some vertices with the same level, a third-level search is conducted, …. In the end,
we obtain a hierarchically BFS tree in which every vertex possesses a unique level. One
can show that the ordering obtained from the hierarchical BFS tree is a perfect ordering.
This is the basic idea behind LEX-P for finding a prefect (or minimal) ordering of an
elimination graph. But use of a hierarchically BFS tree is rather clumsy in practice.
We can also borrow the above technique to solve the general problem of finding a
minimal ordering of an arbitrary graph (LEX-M). The extension is, however, nontrivial.
While all edges are known for an elimination graph, so the BFS trees can be constructed
easily, this is not so for an arbitrary graph G. Fill-in edges in the final elimination graph
Gα are unknown until the ordering α is available. So we now face a chicken (Gα) and egg
α problem. This can be solved by a careful bookkeeping technique called lexicographic
8
search. In each step, we will only deduce the ordering of a single vertex, and use it to
build a part of the elimination graph. As we proceed from the last-eliminated vertex to
the first-eliminated one, the entire elimination graph is revealed.
The essence of lexicographic ordering is as follows. First, we replace each BFS
tree by a simple dichotomy: vertices adjacent to root, and the rest, such that tree levels are
now binary 0 or 1. The hierarchical tree level now becomes a binary sequence, or a
lexicographic label. The lexicographic label L(v) of vertex v is defined as the sequence
of all α–1(w) sorted in descending ordering, where w is a neighbor of vertex v (vertices
adjacent to v) in the final elimination graph that are ordered after v in the output
elimination ordering α.
The ordering of lexicographic labels are designed to match that of the hierarchical
tree levels. The entire lexicographic search contains n steps, where n is the number of
vertices in the graph. In each step, we will determine the ordering of a single vertex α(k),
and let k go down from n to 1. In step k, we pick the vertex with the largest lexicographic
label as α(k), and update the labels of the rest vertices. This process is applicable to both
LEX-P and LEX-M. In the end, both the ordering and the entire set of fill-in edges (in
case of LEX-M) are determined.
In LEX-M, the additional task of judging if two vertices v and w are adjacent in
the final elimination graph is given by searching a path between v and w with the
intermediate vertices being those of smaller labels. This is inspired by Lemma 4 of the
RTL papers.
We have sketched some basic ingredients of the RTL algorithm. Sec. II.A gives a
more-detailed study guide of the algorithm and its proof.
9
I.H Detecting clique separators
We now turn to the second step of Tarjan’s algorithm, which uses a minimal
ordering of the graph to detect clique separators in the graph. Denote G is a graph, C is
clique separator, and X1, X2, …, are separate connected components in G – C. We
assume that C is minimal such that no subset of C is also a clique separator. The key
insight is that in a minimal ordering, there is always one component Xi, whose last vertex
is adjacent to the clique separator C right before its elimination. Here the “adjacent to” is
defined on the elimination graph associated with the minimal ordering. Thus we have the
following algorithm which returns a clique separator, if the input graph has one.
Algorithm CSEP.
1. Find a minimal ordering α and the corresponding fill-in Fα. Set i = 1.
2. For x = α(i), collect in C(x) all vertices v adjacent to (in the elimination graph
Gα) x with α–1(v) > i.
3. If C(x) is a clique and it does not contain all unprocessed vertices, return C(x).
Increase i by 1, and go to step 2.
4. Return ∅.
The proof of the algorithm will be given in Sec. II.B.
I.I Maximal cardinality search
In the above, we have described Tarjan’s algorithm of testing clique separators.
In the first step, we used the RTL algorithm based on lexicographic to find a minimal
ordering. This step, however, can be replaced by a simplified algorithm [3] based on
maximal cardinality search [4]. Below is a brief introduction of the simplification.
10
Originally, maximal cardinality search is developed by Tarjan and Yannakakis [4]
to simplify algorithm LEX-P for finding perfect ordering of elimination graphs. This
algorithm is called MCS-P below. Later, Berry, Blair, and Heggernes showed that the
similar transition from LEX-P to LEX-M can be applied to MCS-P as well; and the
resulting algorithm, called MCS-M below, also produces a minimal ordering for the
general graph.
The structure of algorithms LEX-P(-M) and MCS-P(-M) are largely the same.
The only difference is that the lexicographic labels employed in the former (which are
used to mark the hierarchical tree levels) are now replaced by the cardinality in the latter.
The cardinality of a vertex v is defined as the number of vertices adjacent to v that are
ordered after v in the prefect or minimal ordering α. The details of algorithm LEX-P is
explained in Sec. II.C.
II. Technical details
The purpose of this section is to fill some missing proofs in the previous sections.
We hope, by giving examples and illustrations, ideas presented in the original papers are
more readily understood. Except for the RTL paper, we attach authors’ initials to the
labels of propositions.
II.A The RTL algorithm
The RTL paper addresses the problem of finding a minimal elimination ordering
of a given graph. The key result is the RTL algorithm based on lexicographic ordering.
Below we focus on the proof of the algorithms.
11
The proof that the RTL algorithm produces a minimal ordering is supplied by
THEOREM 4, which is directly supported by two independent theorems, THEOREM 2 and
THEOREM 3. The relationship among theorems are illustrated in Fig. 4.
Figure 4. Map of theorems in the RTL paper.
II.A.1 Triangulated or chordal graph
The proof pivots at the characterization of elimination graphs as triangulated or
chordal graphs (THEOREM A). We call a graph triangulated or chordal, if in every cycle
of at least four vertices v1 – v2 – … – vk – v1 (k ≥ 4), there is a chord, or an edge joining
two nonadjacent vertices. Rose showed that
THEOREM A [7]. A graph is an elimination graph (hence, has a
perfect ordering) if and only if it is triangulated or chordal.
Thus, being an elimination graph is the same as being chordal. In this article, we
prefer the term “elimination graph” unless we want to emphasize the chordal sense, for
many propositions below are proved by showing there is an elimination ordering. In the
original papers, however, the term triangulated or chordal graph is used instead.
The connection between elimination and chordal graphs provides a means of
proving the RTL and Tarjan’s algorithms. THEOREM 2 shows that if the fill-in edges
12
produced by the ordering α is marginal chordal, the ordering α is minimal. THEOREM 3
shows that the fill-in by lexicographic search is indeed marginally chordal, and thus the
search produces a minimal ordering.
II.A.2 Terms and notations
We first define a few terms and notations.
The set of fill-in edges F produced by a minimal elimination ordering is called a
minimal triangulation, or a minimal fill-in.
The notation v – u in G = (V, E) means {v, u} ∊ E; u ⌿ w means {u, w} ∉ G.
Both v <α u and α–1(v) < α–1(u) mean v is eliminate before u under the ordering α.
The notation v →α u means v – u and v <α u.
The deficiency D(v) is defined as the set of fill-in edges produced by eliminating a
single vertex v from G, i.e., D(v) = {{u, w} | u⌿w, v–u, v–w}. In other words, the
deficiency joins nonadjacent vertices in the neighborhood Γ(v) of v. Obviously,
the deficiency D(v) is independent of any ordering. The graph Gv after v is
eliminated from G is called the v-eliminated graph. A non-deficient (or
simplicial [5]) vertex v means D(v) = ∅, i.e., the neighborhood Γ(v) is a
clique [5].
II.A.3 Perfect orderings (LEMMA 1, COROLLARY 1, and COROLLARY 2)
Given an elimination graph G and an perfect ordering α, the following
propositions gives a few tools of constructing similar elimination graphs or alternative
perfect orderings.
13
LEMMA 1. If G = (V, E) is an elimination graph and x∊V, then so is
G′ = (V, E ∪ D(x)). Further, G and G′ share all perfect orderings.
LEMMA 1 is thoroughly proved in the RTL paper. The proof of COROLLARY 1 is
almost identical to that of LEMMA 1, although the former is not implied by the latter or
the other way around. Thus, we will only prove COROLLARY 1 here.
COROLLARY 1. If G = (V, E) is an elimination graph and x∊V, then
so is the x-eliminated graph Gx = (V – {x}, E(V – {x}) ∪ D(x)).
Further, Gx and G share the same perfect orderings (except that x is
missing in the perfect ordering for Gx).
Proof of COROLLARY 1. Suppose α = {v1, …, vk–1, x, vk+1, …vn} is a perfect ordering of
G, we wish to show that αx = {v1, …, vk–1, vk+1, …vn} is a perfect ordering of Gx. In other
words, if v <α u, w, and {v, u}, {v, w} ∊ Ex, we need to show {u, w} ∊ Ex. where Ex ≡ E(V
– {x}) ∪ D(x). Under the condition v <α u and w, we consider three cases (Fig. 5).
(i) If both {v, u} and {v, w} ∊ E(V – {x}) ⊂ E, then {u, w} ∊ E because α is a perfect
ordering of G. Since u, w ∊ V – {x}, we have {u, w} ∊ E(V – {x}).
(ii) If both {v, u} and {v, w} ∊ D(x), then {x, v}, {x, u}, and {x, w} ∊ E. It follows
that {u, w} ∊ D(x).
(iii) Finally consider the case {v, u} ∊ E and {v, w} ∊ D(x). The latter means that {x,
v} ∊ E and {x, w} ∊ E. We also know v <α x (for otherwise {v, w} would be a fill-
14
in edge when x is eliminated under the ordering α, and thus α is not perfect, which
is a contradiction). Since v <α u and v <α x, we have {u, x} ∊ E for α is perfect.
But as {x, w} ∊ E, we must also have {u, w} ∊ E ∪ D(x). (Note that it is possible
that {u, w} ∉ E, if x is eliminated after u or w, so “∪ D(x)” is necessary.) ■
Figure 5. Three cases in the proving of COROLLARY 1.
COROLLARY 2. If G = (V, E) is an elimination graph and D(x) = ∅
for x∊V, then there is an ordering with α(1) = x.
Proof. Suppose β = {v1, …, vk–1, x, vk+1, …vn} is a perfect ordering of the elimination
graph G. Then, by COROLLARY 1, βx = {v1, …, vk–1, vk+1, …vn} is a perfect ordering of
the graph Gx = (V – {x}, E(V – {x}) ∪ D(x)). But Gx is the graph produced by eliminating
x from G, so α = {x, v1, …, vk–1, vk+1, …vn} is a perfect ordering of G satisfying α(1) = x
(eliminating x from G produces no fill-in edge because D(x) = ∅). ■
15
II.A.4 Minimal fill-in is marginally minimized (LEMMA 2 and THEOREM 1)
Armed with the above propositions, we now show that a fill-in F is minimal if and
only if the set of edges in F is marginally minimized, i.e., no edge f should be taken away
from the fill-in F.
LEMMA 2. If F is a nonempty fill-in of an elimination graph G =
(V, E) (F ≠ ∅, E ∩ F = ∅), so that G′ = (V, E ∪ F) is also an
elimination, then there is f ∊ F such that F – {f}is also a fill-in of
G, i.e., G′ – f = (V, E ∪F – {f}) is also an elimination graph.
Proof. We will try to find such an edge f and construct a perfect ordering for G′ – f.
Consider the two mutually exclusive cases.
Figure 6. Two cases in proving LEMMA 2. Fill-in edges in F are shown as dashed lines. The
highlighted vertex x is non-deficient in G′ = (V, E ∪ F). The removable edge f is shown in
blue. In case (i), there is an fill-in edge adjacent to the non-deficient vertex x; while in case
(ii), we assume that no such edge exists.
Case (i). First, in G′, for every non-deficient vertex x with D′(x) = ∅, there is at
least one perfect ordering β with β(1) = x by COROLLARY 2. If F has an edge f incident to
a non-deficient vertex x with D′(x) = ∅, then a perfect ordering β = (x, …) led by x is also
16
a perfect ordering for G′ – f. This is because eliminating x from G′ – f creates no fill-in
edge, and the x-elimination graphs obtained from G′ and G′ – f are identical. Thus, we
have found the desired edge f and ordering β.
Case (ii). We assume that no edge in F is incident to any non-deficient vertex x
below. We wish to show that in this case there is a vertex x non-deficient in G′ with D′(x)
= ∅, such that F is not fully contained in D(x) (#); and for such an x, D(x) ⊂ F (*).
Let us prove (#). Suppose (#) is not true, then F ⊂ D(z) for every z satisfying
D′(z) = ∅. It follows F = D(z) because any deficient edge e ∊ D(z) must be filled by F to
satisfy D′(z) = ∅, and thus D(z) ⊂ F. But now we can pick x with D(x) = ∅, and a perfect
ordering α of G led by x is also perfect for G′ because of LEMMA 1, and D′(x) = ∅. But
this is a contradiction, for F ⊄ D(x). So (#) is true. (*) is true because all edges in D(x)
must be filled by F to make D′(x) = ∅.
The result (#) allows us to prove the LEMMA 2 by induction. Suppose LEMMA 2
holds for graphs of n – 1 vertices (n = |V|), we will show that it also holds for graphs of n
vertices (the lemma is apparently true for n ≤ 3). We first construct two elimination
graphs of n – 1 vertices by COROLLARY 1,
Gx = (V – {x}, E(V – {x}) ∪ D(x)),
and
G′x = (V – {x}, (E ∪ F)(V – {x})).
17
We have used D′(x) = ∅ in the second case. Since we have assumed in case (ii) that
edges in F are not incident to x, G′x can be also rewritten as
G′x = (V – {x}, E(V – {x}) ∪ D(x) ∪ F′),
where F′ = F – D(x), and F′ ≠ ∅ because of (#), note also D(x) ⊂ F because of (*). The
induction hypothesis states that there is an edge f in F′, such that G′x – f is an elimination
graph with a perfect ordering α = {v1, …, vn–1}. Now note that if we eliminate x from Gʺ
≡ G′ – f = (V, E ∪ F – {f}), then the resulting graph is precisely G′x – f . Further since the
deficiency Dʺ(x) in Gʺ is same as D′(x) = ∅, the ordering {x, v1, …, vn–1} is perfect for
Gʺ, and thus Gʺ = G′ – f is an elimination graph. This completes the proof. ■
LEMMA 2 says that if F is not a minimal fill-in, we can always take an edge away
from F such that F – {f} is still a fill-in. In other words, if we cannot take any edge away
from the fill-in F, then F must be minimal. Thus,
THEOREM 1. The fill-in F of G = (V, E) is minimal if and only if
for any edge f ∊ F, F – {f} is not a fill-in of G, i.e., G = (V, E ∪ F –
{f}) is not an elimination graph.
Proof. We have just shown the “if” part by restating LEMMA 2. Conversely if F is a
minimal fill-in of G, then F – {f} cannot be a fill-in by definition. ■
Note that the notion of minimal fill-in F only concerns the operation of removing
edges from F, but it says nothing about adding edges into F. In fact, we should be aware
that adding an edge into an elimination graph may produce a non-elimination graph, see
Fig. 7 for an example.
18
Figure 7. Adding an edge (blue) to a chordal graph (a) can lead to a non-chordal graph (b).
The graph in panel (b) is not chordal because the dotted 4-cycle is unchorded.
II.A.5 Marginal chordality (LEMMA 3 and THEOREM 2)
We now use THEOREM A to characterize a minimal fill-in in terms of chordal
properties. THEOREM 1 shows that edges in a minimal fill-in are marginally minimized.
But can we similarly define a marginally chordal graph? LEMMA 3 is such an attempt.
LEMMA 3. If G = (V, E) is an elimination graph, then G – f is
either also an elimination graph or has an unchorded 4-cycle.
Proof. If G – f is not an elimination graph, then it is not chordal. So it has at least one
unchorded cycle (THEOREM A). If the cycle involves more than five vertices, adding an
edge f to the graph still leaves an unchorded cycle of four vertices or more, and G cannot
be chordal, which is a contradiction. ■
THEOREM 2. In an elimination graph G′ = (V, E ∪ F) of G = (V,
E), the fill-in F is minimal if and only if every f ∊ F is a unique
chord of a 4-cycle in G′.
Proof. (only if) If the fill-in F is minimal, let us show every f ∊ F is a unique chord of a
4-cycle in G′. Since the fill-in F is minimal, G′ – f is not an elimination graph, hence not
19
chordal. By LEMMA 3, G′ – f has an unchorded 4-cycle, which has to be chorded in G′.
So f is a unique chord of the 4-cycle.
(if) Conversely, if every f ∊ F is a unique chord of a 4-cycle in G′, let us show the
fill-in F is minimal. Suppose F is not minimal, then there is at least one edge f in F, such
that G′ – f is also an elimination graph, and thus chordal. But since f is a unique chord of
a 4-cycle in G′, the 4-cycle is unchorded in G′ – f. So G′ – f is not chordal
(contradiction). ■
THEOREM 2 says that to see if a fill-in F is minimal, we only need to check if
every fill-in edge is a unique chord of 4-cycle. This condition was used to prove the
correctness of lexicographic search in producing minimal ordering.
II.A.6 Fill-in edges (LEMMA 4)
LEMMA 4. Let the elimination graph of G = (V, E) and ordering α
be Gα = (V, Eα), where Eα = E ∪ Fα. Then {u, v} ∊ Eα if and only if
there is a path v1(= v) – v2 – … – vk – vk+1(= u) in G with α–1(vi) <
min{α–1(v), α–1(u)}.
Proof. First, let’s show if {u, v} ∊ Eα, then there is a path v1(v) – v2 – … – vk – vk+1(u). If
{u, v} ∊ E, the path u – v exists (which can be considered as the k = 1 case); so we only
need to consider cases where {u, v} is a fill-in edge below. We will carry an induction on
l = min{α–1(v), α–1(u)}. If l = 1, {u, v} is in E. The induction hypothesis is that the path
exists for all pairs {u′, v′} with min{α–1(v′), α–1(u′)} < l0. Consider the pair {u, v} with l0
= min{α–1(v), α–1(u)}. If {u, v} ∊ E, we are done. Otherwise {u, v} is a fill-in edge, and
20
there is a vertex x such that α–1(x) < min{α–1(v), α–1(u)} and {u, x}, {v, x} ∊ Eα. But both
pairs {u, x}, {v, x} qualify the induction hypothesis, so there are two paths u – …– x and
x – …– v. Joining the two paths yields the desired path between u and v, see Fig. 8.
Figure 8. Induction process in the proving LEMMA 4.
Conversely, we need to show that if a path v1(v) – v2 – … – vk – vk+1(u) exists, then
{v, u} ∊ Eα. In fact, we will show a slightly stronger version: if each link {vi, vi–1} on the
path is an edge in Eα instead of E, then {u, v} ∊ Eα. We can thus pick the vertex on the
path with the smallest α–1(vi). Since {vi, vi–1}, {vi, vi+1} ∊ Eα, and α–1(vi) < min{α–1(vi–1),
α–1(vi+1)}, we have {vi–1, vi+1} ∊ Eα. We can eliminate all intermediate vertices by
repeating the process k – 1 times, so {v, u} ∊ Eα. ■
II.A.7 Lexicographic labels and algorithm LEX-P
The RTL algorithm finds a minimal elimination ordering for an arbitrary graph by
lexicographic search. We will first specify the labels employed in the search. A vertex v
21
has a label L(v). Each label is a sequence of indices, e.g., L(v) = {9, 7, 6}, and the indices
are always sorted in descending order. Two labels can be compared lexicographically,
from the most significant index to the least significant one, e.g., {9, 7, 6} > {9, 7} and {7,
6, 4, 1} > {7, 6, 3, 2}. Each index k in the label corresponds to the kth eliminated vertex
α(k). The ordering α is also to be determined in the search.
The labels are designed to facilitate the determination of a minimal ordering α in
the search. In LEMMA 7, we will show that the label L(v) collects indices of all
succeeding neighbours of v, that is, L(v) = {α–1(w) | v →α w} at the end of the search.
For a graph of n vertices, the search has n steps. In each step, we will number a
vertex α(i) with i going from n down to 1 (the last eliminated vertex will be numbered
first). We will simultaneously update the labels, and the updated labels will determine
the next vertex α(i – 1).
II.A.8 Algorithms LEX-P and LEX-M
The dynamics of the labels is best illustrated in algorithm LEX-P, which finds a
perfect ordering α for an elimination graph. Algorithm LEX-P is a simplification of
LEX-M, which finds the minimal ordering of a general graph, although the use of labels
is very similar.
ALGORITHM LEX-P.
1. Clear labels L(v) as ∅ for all vertices v. For i from n down to 1, do steps 2 and 3.
2. Select the vertex v with the largest label (break ties arbitrarily). Set α(i) ≔ v.
3. Add the current index i to labels L(w) of all unnumbered vertices w adjacent to v.
22
Since the labels are updated dynamically, we write Li(v) as the label just before
numbering vertex i. The label Li(v) does not contain index i, only indices greater than i.
Thus, Ln(v) = ∅ and L0(v) = L(v). In step 3, the label updating process can be written as
Li–1(w) = Li(w) ∪ {i} for w →α v.
Algorithm LEX-P can be considered as an implementation of the hierarchical
BFS tree, as discussed in Sec. I.F. The proof of the algorithm is, however, not much
simpler than the more general LEX-M, which is the following.
ALGORITHM LEX-M.
1. Clear labels L(v) as ∅ for all vertices v. For i from n down to 1, do steps 2 and 3.
2. Select the vertex v with the largest label (breaking ties arbitrarily). Set α(i) ≔ v.
3. Add the current index i to labels L(w) of all unnumbered vertices w such that there
is a chain [v = v1, v2, …, vk , vk+1 = w], with v2, …, vk being unnumbered vertices
and L(vj) < L(w) for j = 2, …, k.
The only new feature in LEX-M comes from the additional search over paths in
step 3. LEX-P spares this search because we can assume that no fill-in edge exists. Step
3 tries to emulate the behaviour of ordering α–1(v) (LEMMA 4) by the labels L(v).
II.A.9 Properties of lexicographic labels (LEMMA 6)
We now list a few properties of the labels according to the dynamics in LEX-M.
These properties will be used in proving LEMMA 7 and THEOREM 3.
LEMMA 6. For a graph G = (V, E), let α be a lexicographic
ordering. Then the labels L(v) satisfy:
23
(i) If Li(v) > Li(w), then Lj(v) > Lj(w), for j < i.
(ii) Lj(v) ≥ Li(v) for j > i.
(iii) Given α–1(v) = i and α–1(w) = m. If i > m, then Lj(v) ≥ Lj(w) for
j ≥ i.
(iv) Given α–1(v) = i and α–1(w) = m. If Lj(v) > Lj(w) for some j ≥
max{i, m}, then i > m.
(v) j ∊ L(w) if and only if j > α–1(w) and there exists a path [v1, v2,
…, vk+1], starting from v = v1 = α(j) ending at vk+1 = w, such that
Lj(w) > Lj(vi) and j > α–1(vi) for 2 ≤ i ≤ k.
Some comments are in order. (i) means that once the label of vertex v is larger
than the label of vertex u, the relation persists to the end of the search. This is because in
later steps, only indices smaller than i will be added to the labels L(v) and L(w), while the
current labels contain indices greater than i, which carry larger weights. (ii) simply
means that a label always grows as more indices are added into it.
The next two properties (iii) and (iv) are akin to lexicographic search, and they try
to establish the relation between the elimination ordering α–1 and labels L. (iii) means
that if α–1(v) > α–1(w), the labels L(v) and L(w) have been differentiated likewise before v
is numbered, except a possible tie. (iv) means that if L(v) > L(w) before v is numbered,
then α–1(v) > α–1(w).
Property (v) is a summary of step 3 in algorithm LEX-M.
II.A.10 Lexicographic search (LEMMA 7, THEOREM 3, and THEOREM 4)
The following lemma shows that lexicographic labels contains all edges in the
final elimination graph.
24
LEMMA 7. For an ordering α produced by the lexicographic search,
w →α v in the elimination graph Gα if and only if α–1(v) ∊ L(w).
Proof. We first show that if i = α–1(v) ∊ L(w), then w →α v in Gα. If i ∊ L(w), we have a
path [v, v2, …, vk, w] with Li(w) > Li(vj), for j = 2, …, k [property (v)]. Since i > α–1(w)
and i > α–1(vj), we have α–1(w) > α–1(vj), for j = 2, …, k [property (iv)]. Then, by LEMMA
4 (the “if” part), w →α v.
Figure 9. Proof of the “only if” part of LEMMA 7: α–1(v) ∊ L(w) if w →α v in Gα.
Conversely, if w →α v in Gα, we will show i = α–1(v) ∊ L(w). By the “only if” part
of LEMMA 4, we know there is a path [v1= v, v2, …, vk, vk+1 = w], such that
i > m = α–1(w) > α–1(vj),
(#)
for j = 2, …, k. Then, by property (iii), we have Li(w) ≥ Li(vj). Now let j* be the first j
such that Li(vj*) = Li(w), see Fig. 9, we have α–1(vl) > α–1(vj*), for l = 2, …, j* – 1. Thus,
by property (v), we have i ∊ Li–1(vj*). If w = vj*, then i ∊ Li–1(w) ⊂ L(w) by property (i); so
we are done. Otherwise, we have Li–1(vj*) = Li(vj*) ∪ {i}. Now suppose i ∉ Li–1(w), then
25
Li–1(w) = Li(w) = Li(vj*) < Li–1(vj*),
and since i – 1 ≥ max{α–1(w), α–1(vj*)}, we have α–1(w) < α–1(vj*) by property (iv), which
contradicts with (#). So i ∊ Li–1(w). ■
THEOREM 3. Every fill-in edge {v, w} produced by lexicographic
search is a unique chord of a 4-cycle in the elimination graph Gα.
Proof. We will prove that there is a 4-cycle [p, v, q, w] in Gα. We can assume i = α–1(v)
> α–1(w) below without loss of generality. A general scheme is shown in Fig. 10.
We first show that there is a vertex p such that {p, v}, {p, w} ∊ Eα, and Li(w) >
Li(p). The last condition is critical for finding vertex q later (otherwise, p can be chosen
too easily, for {v, w} is a fill-in edge). Since {v, w} is a fill-in edge, property (v) of
LEMMA 6 shows that there exists a path [v, v2, …, vk, w] with Li(w) > Li(vj), for j = 2, …,
k. We will choose p as the vertex of the maximal α–1(vj) among all vj ( j = 2, …, k), and
Li(w) > Li(p). Then by the “if” part of LEMMA 4, {p, w}, {p, v} ∊ Eα.
Next we show that there exists a vertex q such that {w, q} ∊ Eα, but {p, q} ∉ Eα.
To show this, we observe that Li(w) contains all indices in Li(p). This is because for any u
with α–1(u) > i and {u, p} ∊ Eα, we also have {u, w} ∊ Eα owing to {w, p} ∊ Eα. But Li(w)
> Li(p) means that there is at least one vertex q with α–1(q) > i, and {q, p} ∉ Eα while {q,
w} ∊ Eα.
26
Now since {w, q}, {w, v} ∊ Eα, α–1(w) < max{α–1(v), α–1(q)}, we have {v, q} ∊ Eα.
Thus [p, v, q, w] forms a 4-cycle in Gα; and since {p, q} ∉ Eα, {v, w} is the unique chord
of the cycle. ■
Figure 10. Proof of THEOREM 3.
Now, THEOREM 3 shows that every fill-in edges {v, w} produced by lexicographic
search is a unique chord of some 4-cycle in the elimination graph Gα. Theorem 2 then
shows that such a fill-in is minimal. Thus,
THEOREM 4. Lexicographic search produces a minimal ordering.
II.A.11 Implementing lexicographic search
We will now discuss briefly how to implement step 3 of LEX-M (Sec. 5.3 of the
RTL paper). Given a vertex v, our aim is to find all unnumbered vertices w such that
there is a chain [v = v1, v2, …, vk , vk+1 = w], in which v2, …, vk are unnumbered vertices
and L(vj) < L(w) for j = 2, …, k. LEX-M will execute this step n = |V| times.
The search over paths is conducted by a modified BFS over unnumbered vertices.
We will first describe a straightforward but inefficient implementation, and then improve
27
it in the next paragraph. In this implementation, each unnumbered neighbour v2 of v
serves as the seed and leads an independent BFS over vertices along the path [v, v2, …,
vk, w]. Subsequent intermediate vertices v3, …, vk must be of labels no less than L(v2). If
a vertex w has a label L(w) greater than L(v2), we abort the search along the path, and add
v to L(w).
The above implementation is inefficient for it has ev rounds of BFSs, where ev is
the number of seeds v2, and these rounds contains overlapped path segments. We can,
however, avoid overlapped path segments by the following trick. For two paths [v, v2,
…, z, …] and [v, v2′, …, z, …] that pass through the same intermediate vertex z. If L(v2)
< L(v2′), the condition L(w) > L(v2) is easier to meet than L(w) > L(v2′) for paths sharing
the same subsequent vertices w. Thus, once a vertex z is reached by a path led by the
seed vertex v2 of the smallest label, we do not have to consider other paths of reaching
vertex z led by seed vertices v′2 with larger labels. To exploit this fact, we may sort the
seed vertices v2 by their labels and conduct searches of paths from them in this order. In
the search of paths, we mark a vertex as “reached” once it is reached, and our search over
vertices are limited to unreached vertices instead of unnumbered vertices. The following
algorithm is implements the above process (it roughly corresponds to the process search
with the preceding preparation loop in LEX-M on pages 280-281).
ALGORITHM SEARCH(v).
1. For all distinct labels L(u), prepare a list Q(L(u)) ≔ ∅.
2. Put every unnumbered neighbours v2 of v into the corresponding queue Q(L(v2)).
Mark all v2 as reached, also mark all numbered vertices as reached.
3. Loop over distinct labels j from small to larger, do steps 4 to 7.
28
4.
5.
While Q(j) is not empty, do steps 5 to 7.
Pop a vertex v2 from Q(j). For each unreached neighbour z of v2, do steps 6
and 7.
6.
Mark z as reached.
7.
If L(z) > j, add z into Q(L(z)), mark {v, z} as an edge of Gα, and add α–1(v)
into L(z). Otherwise, add z into Q(j).
Several explanations are in order. In step 2, we group vertices by their labels.
This step essentially implements a radix sort of vertices by labels. Steps 4-7 adopt the
basic structure of the standard BFS. As discussed in the above, step 6 avoids the search
over duplicated path segments. Step 7 offers a clever trick of handling path segments led
by a newly encountered vertex. The recursive nature of the path search allows us to treat
the search over subsequent paths led by z similarly as the path search led by v2. The label
threshold L(w) for the terminal vertex w on the path should be the larger of j = L(v2) and
L(z). This is why we add z into Q(L(z)) when L(z) > j, or into Q(j = L(z)) otherwise.
Finally, we mention a simplification of labels adopted by LEX-M in Sec. 5.3 of
the RTL paper (not adopted here). The lexicographic label L(z) is replaced by an integral
label l(z), and the operation L(z) → L(z) ∪ {α–1(v)} is replaced by l(z) → l(z) + 1/2. The
labels, however, needs to be resorted to an array of integers after calling SEARCH(v).
II.A.12 Testing chordal graphs
Let us now consider the task of testing if a given graph is a chordal or elimination
graph. The simplest solution is to use LEX-M: if in any step of LEX-M, a fill-in edge is
created then the graph is not chordal (note that the minimal ordering of a chordal graph
29
must be perfect). Since the LEX-M contains a somewhat messy step 3 of path searching,
one may also wish to solve the problem by the simpler algorithm LEX-P.
We first recall that the simplification of LEX-P over LEX-M is achieved by
assuming that the input is an elimination graph, and no fill-in edge is possible under the
presumably perfect ordering in the output. But if the input graph is not chordal, LEX-P
outputs an ordering (which is not necessarily minimal) anyway, and we must verify if this
ordering indeed produces no fill-in edge. If so, the input graph is chordal. The additional
step of computing fill-in edges for a given ordering is discussed in the next two sections.
II.A.13 Computing fill-in edges (LEMMA 5, THEOREM TY3, algorithm FILL)
We now consider the algorithm FILL, which computes fill-in edges for an
arbitrary (not necessarily minimal) ordering α. We present the algorithm in the RTL
paper [2], and an alternative in the TY paper [4].
A straightforward algorithm of computing fill-in edges is the following.
ALGORITHM FILL0(G, α)
1. For k from 1 to n, do step 2.
2. Set u ≔ α(k). For all existing u →α v and u →α w in Eα, join {v, w}.
In step 2, we have to loop over all pairs {v, w} by eu(eu – 1)/2 operations, where eu
is the number of edges incident to u. This step is improved in algorithm FILL. The key
is to introduce a function called the follower m(u) of a vertex u, which is the first
succeeding neighbor of u in Gα, i.e., α–1(x) is the smallest index of all vertices x adjacent
to u that satisfy α–1(x) > α–1(u).
30
Figure 11. Algorithms FILL0 and FILL. New fill-in edges created in every step are shown as
dashed lines. Although the two algorithms produce the same fill-in edges, algorithm FILL
requires fewer operations, for it only creates fill-in edges incident from the follower m(u).
ALGORITHM FILL(G, α)
1. Set up a forward neighbour list A(v) = {w | v →α w in G} for every vertices v.
Repeat steps 2 to 4 for k from 1 to n.
2.
Set u ≔ α(k).
3.
Find the vertex x in A(u) with the smallest index α–1(x), set m(u) ≔ x.
4.
For every w ∊ A(u) with w ≠ m(u), add {m(u), w} to the elimination graph,
and add w to A(m(u)).
At the end of the algorithm, the neighbour list A(v) = {w | v →α w in Gα}, i.e., it
contains all vertices adjacent to v in the elimination graph that are eliminated after v. The
difference between FILL0 and FILL are illustrated in Fig. 11. In algorithm FILL we only
need eu operations in each iteration: step 3 requires a loop over vertices adjacent to u, and
in step 4, we only create fill-in edges incident from vertex m(u).
31
The correctness is shown by LEMMA 5 below, which shows that every fill-in edge
is covered by algorithm FILL, even though we only create fill-in edges incident from a
single vertex m(u) in each iteration. We remind the reader that the content of LEMMA 5
has been changed considerably from the counterpart in the original paper.
LEMMA 5. Let the elimination graph of G = (V, E) and ordering α
be Gα = (V, Eα), where Eα = E ∪ Fα. For every fill-in edge {v, w} in
Fα and v <α w, there is a vertex u such that m(u) = v and u →α w in
Gα. Here, m(u) is the first succeeding neighbor of u in Gα, i.e., α–
1
(x) is the smallest index of all neighbors x of u satisfying α–1(x) >
α–1(u).
Proof. Since {v, w} is a fill edge, there is at least one vertex y satisfying {y, v}∊ Eα, {y,
w}∊ Eα, and α–1(y) < α–1(v). We will let u be such a vertex y with the largest α–1(y). We
claim that m(u) = v. Otherwise, suppose the m(u) = x, and x ≠ v [Fig. 12(a)]. Then, since
{u, v}, {u, x}∊ Eα, α–1(u) < α–1(x) < α–1(v), we have {x, v} ∊ Eα. Similarly, {x, w} ∊ Eα.
Then, since α–1(x) > α–1(u), u is not the vertex y with the largest α–1(y), which contradicts
with our hypothesis. ■
Let us now use LEMMA 5 recursively. For a fill-in edge {v, w}, the lemma states
that there is a u1 such that m(u1) = v and u1 →α w in Gα. If {u1, w} is also a fill-in edge,
then there is a u2 such that m(u2) = u [hence m(m(u2)) = v] and u2 →α w in Gα. We can
then repeat the process until we meet some i such that {ui, w} ∊ E, see Fig. 12(b). Thus,
we obtain a theorem of the TY paper, which allows a further improved implementation of
algorithm FILL.
32
THEOREM TY3. Let the elimination graph of G = (V, E) and
ordering α be Gα = (V, Eα), where Eα = E ∪ Fα. For every edge {v,
w} in Gα and v <α w, there is a vertex u such that u →α w in G and
mi(u) = v for some i (i ≥ 0). Here, mi(u) = m(⋯m(u)⋯) is the ith
iterate of m(u), with m0(u) = u.
Figure 12. (a) Proof of LEMMA 5. (b) Using LEMMA 5 iteratively leads to THEOREM TY3.
II.A.14 Computing fill-in edges (algorithms FILL1 and FILL2)
In this section, we will consider an alternative algorithm of computing the fill-in.
The main difference is that we will replace the forward neighbour list A(v) = {w | v →α w
in Gα} by a backward neighbour list B(w) = {v | v →α w in Gα}. The change is made to
help finding the follower m(v). Here is a simple implementation to realize the change
ALGORITHM FILL1(G, α)
1. Set up a forward neighbour list B(w) = {v | v →α w in G} for every vertices w.
For k from 1 to n, repeat steps 2 an 3.
2.
Set w ≔ α(k).
3.
For any vertex u in B(w), if m(u) has been computed, then add m(u) to B(w),
and set {m(u), w} as a fill-in edge; otherwise set m(u) ≔ w.
33
Algorithm FILL1 improves over algorithm FILL by substituting a single loop
over vertices in B(w) for the two loops in steps 3 and 4 for vertices in A(u). Note,
however, that in the loop of step 3, the list B(w) grows dynamically. In this way, after
m(u) enters B(w), m(m(u)) may also enter B(w) later in the loop, and so on; in the end of
loop, every mi(u) has a chance of entering B(w), so that {mi(u), w} can be a fill-in edge.
There is, however, a subtle blemish in FILL1 (which also affects FILL), since a
vertex v may be a written as mi(u) and mi′(u′), the same vertex v may enter B(w) multiple
times, causing duplications. A straightforward fix is to use a Boolean array to register all
vertices that are already in B(w), as done in the RTL paper.
A more elegant solution is to abandon B(w) altogether and switch to the array
index(v), which registers the largest elimination number α–1 of vertices in the set {w | v–w
in E and w has been processed}∪{v}. In the following algorithm, we will update index(v)
so that index(v) > k = α–1(w) means {v, w} no longer needs to be considered as a fill-in
edge.
ALGORITHM FILL2(G, α)
1. Set index(w) ≔ α–1(w), m(w) as NIL for every vertex w. For k from 1 to n,
repeat steps 2 to 8.
2. Set w ≔ α(k).
3. For any vertex u such that u →α w in G, set v = u, do steps 4-8.
4.
While index(v) < k, do steps 5 to 7.
5.
Set index(v) ≔ k.
6.
Add {v, w} to the elimination graph.
7.
If m(v) is NIL, quit the loop, otherwise v ≔ m(v).
34
8.
If m(v) is NIL, set m(v) = w.
Here steps 3, 6 and 7 are the direct application of THEOREM TY3. We do not need
maintain a separate neighbour list because the theorem requires only an edge u →α w in
the original graph to kick off the iterations for v = mi(u). Now if v can be expressed as
mi(u) and mi′(u′), with both u →α w and u′ →α w, then index(v) will be set as k (step 5) in
the first time, say, for u. The loop in step 4 is no longer applicable for u′ for it is
prohibited by the condition index(v) < k. We thus solve the duplication problem.
We finally mention a small difference from the original version in the TY paper.
There, m(v) is initialized as v instead of NIL (step 1 here). This trick allows us to avoid
the test “if m(v) is NIL” in step 7, because if m(v) is v, v remains unchanged by “v ≔
m(v)”, then the loop is terminated at step 4 encountered next. The NIL in step 8 should
also be replaced by v in this case.
II.B Tarjan’s algorithm
Compared with the RTL paper, Tarjan’s paper [1] is much more straightforward.
The key propositions are the following.
LEMMA T1. No edge in a minimal fill-in F joins vertices in two
disconnected components of G(V – C), where C is any clique
separator of G.
Proof. Denote by X1, X2, …, the isolated components of G(V – C). Denote by G′ the
graph without cross-component fill-in edges f in F. We wish to show that G′ is also an
elimination graph.
By THEOREM A, we only need to show that every cycle in G′ is chorded. If a
cycle is limited in a single Xi and C, the chords of the cycle, if any, does not involve
35
cross-component fill-in edges. Since the cycle is chorded in G, it is also chorded in G′.
In a cycle reaching at least two disconnected components in G(V – C), there are at least
two nonadjacent vertices u and v in the cycle that belong to the clique C, see Fig. 13.
Since {u, v} is an edge in the clique, it is a chord of the cycle. ■
Figure 13. A cycle (bold, black) reaching two distinct components of G(V – C) is chorded by
the two vertices in the cliques C.
We now use LEMMA T1 to prove the correctness of algorithm CSEP.
LEMMA T2. If graph G has a clique separator, and α is a minimal
ordering, then there is a vertex x such that C(x) is a clique
separator, where C(x) = {v | x →α v in Gα}, i.e., some step of the
algorithm CSEP will succeed.
Proof. We will choose C as a minimal clique separator, which means that no proper
subset of C is also a clique separator. For two connected components X and Y isolated by
C, we denote by x and y, the last eliminated vertices in X and Y, respectively. We will
first show that no vertex v in C is eliminated before x and y. Since G is connected, there
is a path v – x1 – x2 – … – xk (= x) from v to x through vertices xi in X. We have assumed
that the path contains no vertex in C other than v, because C is minimal: suppose v (v ∊
C) is not adjacent to any vertex in X, then C – {v} is also a clique separator that separates
36
X from the rest of the graph. Let u be the first vertex on the path such that α–1(u) > α–1(v).
Similarly, we have a path from v – y1 – y2 – … – yl (= y), and w is the first vertex on the
path such that α–1(w) > α–1(v). Now on the path u – … – x2 – x1 – v – y1 – y2 – … – w,
every intermediate vertex is eliminated before u and w. By LEMMA 4 in the RTL paper,
{u, w} is a cross-component edge in Gα, which is impossible by LEMMA T1 in Tarjan’s
paper. See Fig. 14(a).
Figure 14. (a) If v in the clique separator C is eliminated before the last vertices x and y in X
and Y, respectively, then there is a fill-in edge between u (∊ X) and w (∊Y). (b) The last
vertex x in the component X is adjacent to all vertices in the clique separator C before its
elimination. Fill-in edges are shown in dashed lines.
Thus, there is always an component, say X, whose vertices are collectively
eliminated before the clique separator C. We now show that, right before the elimination
of vertex x, x must be adjacent to all vertices in C, i.e., C = C(x) = {v | x →α v in Gα}.
Every vertex v in C is adjacent to some x′ in X by the minimality of C, and α–1(x′) < α–1(x)
< α–1(v). Let x′ – x1 – x2 – … – x be the path between x′ and x. Applying LEMMA 4 in the
RTL paper to the path v – x′ – x1 – x2 – … – x , we get {v, x} ∊ Gα. See Fig. 14(b).
37
II.C Maximal cardinality search
We now turn to the simplified algorithms of finding minimal ordering by maximal
cardinality search. In paper of Tarjan and Yannakakis [4], only the special case of
finding a perfect ordering for an elimination graph is considered, while the generalization
was given by Berry, Blair and Heggernes [3]. Although we will only consider the former
paper here, let us list the algorithms MCS-P and MCS-M first.
II.C.1 Algorithms MCS-P and MCS-M
For finding a prefect ordering of an elimination graph, we have
ALGORITHM MCS-P.
1. Set the cardinality size(v) as 0 for all vertices v. For i from n down to 1, do steps
2 and 3.
2. Select the vertex v of the largest cardinality (break ties arbitrarily). Set α(i) ≔ v.
3. Increase the cardinality size(w) by 1 of all unnumbered vertices w adjacent to v.
And for finding a minimal ordering of a general graph, we have
ALGORITHM MCS-M.
1. Set the cardinality size(v) as 0 for all vertices v. For i from n down to 1, do steps
2 and 3.
2. Select the vertex v of the largest cardinality (break ties arbitrarily). Set α(i) ≔ v.
3. Increase the cardinality size(w) of all unnumbered vertices w such that there is a
chain [v = v1, v2, …, vk , vk+1 = w], with v2, …, vk being unnumbered vertices and
size(vj) < size(w) for j = 2, …, k.
It is clear that the MCS algorithms are structurally very similar to the LEX
algorithms. Below we will prove the correctness of MCS-P.
38
II.C.2 Proving algorithms MCS-P
We wish to show that for an elimination graph, MCS-P produces a prefect
ordering. First, let us apply PROPOSITION I to an elimination graph:
LEMMA TY2. For an elimination graph, the ordering α is a perfect,
if and only if for u → α v and u →α w in G, we have {v, w}∊E.
To prove the correctness of MCS-P, we only need a sufficient condition for a
perfect ordering. Let us first generalize the above open triangle “u→αv, u→αw, and v⌿w
” to an unchorded arc, which is a path v(=u0) – u1 – u2 – ⋯– uk – w(=uk+1) in E such that
ui →α ui–1 →α ⋯ →α u1 →α v,
and
ui →α ui+1 →α ⋯ →α uk →α w,
for some i (1 ≤ i ≤ k), and uj–1⌿ uj+1 for j= 1,…, k, see Fig. 15(b) for an example. Below
we assume without losing generality w <α u. Since the open triangle is the special case of
k = 1, we have
COROLLARY TY2. If the ordering of an elimination graph permits
no unchorded arc v – u1 – u2 – … – uk – w, the ordering is perfect.
Proof. If the ordering allows no unchorded arc, it allows no open triangle. Then by
LEMMA TY2, the ordering is perfect.
We will derive another sufficient condition for eliminating an unchorded arc.
LEMMA TY4. For an elimination graph G = (V, E), suppose the
ordering α has the following property:
(P) For u – v, and w⌿v, with u <α w < α v, there is always another
vertex x, such that v →α x and u⌿x.
39
Then it allows no unchorded arc, and thus is perfect by
COROLLARY TY2.
Proof. Suppose the ordering α has property P, and there is an unchorded arc in G. We
choose v – u1 – u2 – … – uk – w as the unchorded arc with the maximal α–1(w). We will
show that there is another unchorded arc with a larger α–1(w′), leading to a contradiction.
First, u1, v and w satisfy the condition in property P. So there is a vertex x such
that v →α x and u1⌿x. Now let us denote by j (j = 1, 2, …, k) such that uj is the first
vertex adjacent to x. Then v – u1 – u2 – … – uj – x or the reverse x – uj –… – u2 –u1 – v
forms another unchorded arc (see Fig. 15), and since α–1(v) > α–1(w), α–1(x) > α–1(w), the
new unordered arc has larger α–1(w′) than α–1(w), where w′ can be either v or x. (Note a
subtlety of the proof: v – u1 – u2 – … – uk – w – x is unnecessarily an unchorded arc,
becuase x may or may not be adjacent to uk. ■
Figure 15. (a) Property P. (b) If v – u1 – u2 –…– uk–1 – uk –w is an unchorded arc with the
maximal α–1(w), then v – u1 – u2 –x is an unchorded arc (j = 2). Bold solid lines represent
adjacent pairs, while dotted lines represent nonadjacent pairs.
We now prove MCS-P by showing the ordering it produces satisfies property P.
40
THEOREM TY2. MCS-P yields a perfect ordering for an
elimination graph.
Proof. Suppose vertices u, w, and v that satisfy the condition in property P: u – v, and
w⌿v, with u <α w < α v [Fig. 15(a)], all we need to do is to show that there is an x, such
that v →α x and u⌿x. LEMMA TY4 takes care of the rest.
Recall in MCS-P, v is first numbered, then w, then u. Right before w is
numbered, w must have at least same cardinality as u in order to be picked as the vertex
of the maximal cardinality. But since u is adjacent to v, while w is not, u has the
advantage of have one more neighbor than w. To compensate the disadvantage, w must
be adjacent to some other numbered vertex x that is not a neighbor of u. Thus the
property P is fulfilled. ■
References
[1] R.E. Tarjan, Discrete Math. 55, 221 (1985).
[2] D. Rose, R. Tarjan, and G. Lueker, SIAM J. Comput. 5, 266 (1976).
[3] A. Berry, J.R.S. Blair, and P. Heggernes, in Graph-Theoretic Concepts in Computer
Science (Springer Berlin Heidelberg, 2002), Vol. 2573, Chap. 1 pp. 1-12.
[4] R.E. Tarjan and M. Yannakakis, SIAM J. Comput. 13, 566 (1984).
[5] M. Yannakakis, SIAM Journal on Algebraic Discrete Methods 2, 77 (1981).
[6] T.H. Cormen, Introduction to Algorithms, 2nd ed. (MIT Press, Cambridge, Mass.,
2001).
[7] G.A. Dirac, Abhandlungen aus dem Mathematischen Seminar der Universität
Hamburg 25, 71 (1961); D.J. Rose, Journal of Mathematical Analysis and
Applications 32, 597 (1970).
41
© Copyright 2026 Paperzz