Title: Modular%20Decomposition
1Modular Decomposition and Interval
Graphs recognition
Speaker Asaf Shapira
2We will discuss
- Modular Decomposition of graphs.
- Chordal graphs and Interval graphs.
- Modular Decomposition of Chordal graphs.
- Identifying Interval graphs in linear time.
3Modular Decomposition Overview
Notations 1. All the graphs are simple
undirected graph. 2. We assume the graphs are
connected. 3. Given a subset of vertices, X, we
denote by GX the induced sub-graph on
X. 4. We denote by N(v), the set of neighbors of
v, and by Nv, N(v)? v (the neighborhood and
closed-neighborhood of v). 5. We write n
for V, and m for E.
4Modular Decomposition Overview
What is a module? A module in G, is a set of
vertices, X, such that for every vertex, v, not
in X, either v is adjacent to every vertex in X,
or v is not adjacent to any vertex in X. Notice
that all the singleton sets of one vertex, and
the set V, are clearly modules. We call them
trivial modules. G is prime iff it contains only
trivial modules.
d
a
b
d
f
c
5Modular Decomposition Overview cont.
Some trivial facts about modules Claim If X is
a module in G, and Y is a subset of X, then Y is
a module of G iff it is a module of GX. Claim
If X and Y are overlapping modules, then X \ Y,Y
\ X, X ? Y, X ? Y and X ? Y, are also
modules. Claim If X and Y are disjoint modules,
then either every member of X is adjacent to
every member of Y, or no member of X is adjacent
to any member of Y.
6Modular Decomposition Overview
What is a modular decomposition? A modular
decomposition, is the process of substituting a
module of the graph with a marker vertex, and
then recursively, finding all the modules in the
resulting graph, and in the induced sub graph on
the module.
a
d
b
d
c
f
7Modular Decomposition Overview cont.
Some trivial facts about modules A graph may
contain an exponential number of modules
(consider a clique) thus we can not expect to
represent all the modules explicitly. We thus
seek to find an efficient implicit representation
of the modules. We create a Decomposition Tree,
where each internal node, v, represents a module,
Xv, and the children of v, represent the modules
of GXv. We have V(G) as the root of the
tree. We now turn to a formal definition of the
Decomposition Tree.
8Modular Decomposition Overview cont.
MD(G) (Definition of the modular decomposition of
G)
- If G has one vertex, v, then return v.
- Let r be a new internal node in the modular
decomposition tree. - If G is disconnected, then for each connected
component, C, make MD(C), a child of r. Finally
mark r as degenerate. - Else if the complement of G is disconnected,
then for every connected component of the
complement, C, make MD(C), the child of r.
Finally mark r as degenerate. - Else for every highest module X, make MD(GX) a
child of r. Finally mark r as non-degenerate.
9Modular Decomposition Overview cont.
Claim If G and its complement are both
connected, then the highest modules, induce a
partition of the vertices of G, hence the
decomposition tree is well defined and
unique. Proof Assume there are two overlapping
highest modules, A, B. Note that
- Clearly A and B must cover the vertices of G.
- As A and B are modules, A must be adjacent to
all or none of the vertices in V \ A, thus A is
disconnected from V \ A, either in G or in its
complement. - Lets see the MD-tree of an n-clique, an n-cycle
and an n-Star.
10 f
g
d
i
j
k
c
a
e
l
b
f
m
n
p
v
q
11Modular Decomposition Overview cont.
- Clearly all the nodes of the tree are modules of
G. It can be shown that the union of a set of
children of a degenerate node, is also a module
of G, and that any module of G that is not a node
in the tree, is the union of some children of a
degenerate node. We thus have an implicit
representation of the modules of G. - Notice that keeping in each internal node, the
vertices it consists, may require ?(n2) space. - An alternative solution is to keep in each node,
a pointer to a list of its children. This
solution requires O(1) memory per node, thus O(n)
memory for the entire tree, which is optimal. - This solution still enables us to list the
vertices of a module X, in optimal O(X) time,
by enumerating the leafs of its sub tree.
12Modular Decomposition Overview cont.
A wild algorithm for Modular Decomposition 1.
Create a trivial module Xv, from an arbitrary
vertex v. 2. Add vertices to X, while it is
still a module. 3. Replace X, by a marker
vertex. 4. Continue recursively, on GX and G \
X. Stages (1) and (2) take O(n3), thus we
get T(n) T(X)T(n-X)O(n3) O(n4)
13Modular Decomposition Overview cont.
Current solutions to the problem 1. There are
some rather complicated O(nm) algorithms for
modular decomposition on general graphs. 2. We
now turn to describe a simple O(nm) algorithm,
for performing modular decomposition on chordal
graphs.
14Chordal Graphs Introduction
What is a chordal graph? A graph G(V,E) is a
chordal graph, if it contains no induced
chordaless cycle, of size more than 3, that is,
if it has no hole of size more than 3.
15MD on chordal graphs Strategy
We will identify the modules in three steps
- Identify modules that form a clique.
- Identify modules that form a connected
component. - Identify modules that form an independent set.
- We will perform each step in O(nm), and thus
get a linear time algorithm, for modular
decomposition on chordal graphs.
16Clique modules
Finding clique modules 1. Create an initial set
of all the vertices of G. 2. For every vertex v
Partition each list,
into neighbors and non-neighbors of v. (assume
there is a self edge from v to itself). If we
have a set with more than one vertex, it is a
clique module. After this stage, we replace each
module by a marker vertex.
17Connected modules
Finding connected modules We will first perform
a linear arrangement of the vertices of G
- Sort the vertices of G by their degree (in
descending order) - 2. Create a list L, of sets with V as the only
set in L. - 3. For i 1 to n do
- v first element of first set in L
- remove v
- ?(i) v
- split and replace each Lj, into Lj ?
N(v), Lj \ N(v) - put Lj ? N(v) before Lj \ N(v)
18a
b
c
d
e
? d
? d e
? d e g
? d e g h f b a c
? d e g h
f
g
h
L d, e, g, b, h, f, a, c
L d, e, g, b, h, f, a, c
L e, g, b, h, f, a c
L e, g, b, h, f, a c
L g, b, h, f a c
L g, b, h, f a c
L h, f b f a c
L f b a c
L h, f b f a c
19Linear arrangement
Some claims on linear arrangements. Claim For
each module, S, in a chordal graph, either S or
N(S) is a clique. Proof Assume there are two
vertices, a and b, in S, that are not connected,
and two vertices, c and d, in N(S), that are not
connected, then Ga,b,c,d is a cycle of size
4, contradicting the fact that G is
chordal. Claim Let ? be a linear arrangement. If
Nu ? Nv then ?-1(u) gt
?-1(v). Proof As N(v)gtN(u), v is initially
put before u. As Nu ? Nv no vertex can pull u
before v, thus v will always stay before u.
20Linear arrangement
Claim Let S be a connected module, in a chordal
graph with no clique module. If ? is a linear
arrangement on G then 1. ?-1 (u) gt ?-1(v),
?v?N(S) and u?S. That is all the neighbors of S,
are ordered before S. 2. All vertices in S are
ordered consecutively. Proof (1) S is not a
clique, thus N(S) is a clique. If v?N(S) and u?S,
then Nu? S? N(s)?Nv. As Nv ?Nu (otherwise
they form a clique module), we get that Nu ?
Nv, thus ?-1(u)gt?-1(v).
v
u
S
21Linear arrangement
(2) Assume there are x,z?S, and y?S, such that,
?-1(x) lt ?-1(y) lt ?-1(z), and ?-1(x),?-1(y) are
the minimal possible. When x is selected, y and S
are in the first set in L. While we are adding
vertices from S to ?, y is never pulled into a
set in front of a set containing a vertex from S,
as by (1) y?N(S). As S is connected there must be
two adjacent vertices x,z, such that
?-1(x) lt ?-1(y) lt ?-1(z). But when we select
x, z will be pulled to a set in front of y,
thus ?-1(y) gt ?-1(z), a contradiction.
22Connected modules
We maintain a stack of stacks, where for each
stack we keep its size, its common neighborhood,
and the smallest index on which the vertices
disagree. Each stack is a candidate for
module. We must enforce two conditions 1. No
vertex in a stack is connected to a vertex in a
lower stack (why?) 2. All the vertices in a stack
must have the same neighbors outside the stack.
23Connected modules
a
b
c
? d e g h f b a c
d
e
g
g h f
f
g
h
h
h
e
e t b a c
f
f
f
t
t b a c
t b a c
b
b a
b a c
b a c
b a c
b a c
b a c
b a c
a
a
c
c
c
c
24Connected modules Complexity of finding connected
modules
- Ignoring the subroutines, the main loop takes
O(n). - Each call to CreateStack(v), takes O(N(v)),
and a total of O(m). - The cost of MergeTopStacks is proportional to
their neighborhoods (under what assumption?). - Any common neighborhood is not larger than any
vertex in the stack. - Charge the cost of a MergeTopStacks, to the
highest vertex at the lower stack, and the lowest
vertex in the higher stack. - These vertices will never be the the lowest in
upper stack, or highest in lower stack, thus they
will never be charged more than twice. - All MergeTopStacks take O(nm), and so does the
entire stage.
25Independent modules
After finding all the modules that form a clique,
or a connected component, we are left with
modules that must be independent sets. Finding
modules that are independent sets is similar to
finding modules that form a clique, and can be
done in O(nm). The difference is that now, we
dont put an edge from each vertex to itself.
26MD on chordal graphs Creating the Tree
How to create the decomposition tree?
1. For each clique module S, put a node in the
tree, that has all the members of S, as its
children.
2. The same for independent modules.
3. The same for connected modules.
3. For connected modules, first find independent
modules in the module. Group each independent
module to a new node in the tree under S.
27Interval Graphs Introduction
What is an interval graph? An undirected graph,
G(V,E), is an interval graph, if there is a set,
F, of nV closed intervals on the real line, F
I1,..,In (the interval Ii represents the
vertex vi), such that (vi , vj) is an edge in G,
iff the intervals Ii and Ij intersect. Lets
see an interval graph, and its interval
representation.
28Interval Graphs Introduction cont.
An interval graph And its interval
representation
a
e
b
d
f
c
a
b
e
d
c
f
29Interval Graphs Introduction cont.
Claim An interval graph is also a chordal
graph. Proof Assume G is an interval graph, yet
it contains a chordalles cycle (v1, v2, v3,, vk,
v1) for kgt3. We show that there is no interval
representation for the vertices v1,,vk, and thus
conclude that there is no interval representation
of G.
30Identifying interval graphs
We describe how to check if a prime graph is an
interval graph in O(nm). Together with the
O(nm) algorithm for modular decomposition on
chordal graphs, we will get an O(nm) algorithm
for identifying interval graphs. We will use the
following claim Lemma Given a chordal graph
G(V,E), one can create in O(nm), a tree, T,
such that the nodes of T, are the maximal cliques
of G, and for every vertex, v in G, the nodes
representing the maximal cliques containing v,
create a connected component in T. Lets see an
interval graph, and its clique tree
31Identifying prime interval graphs
C1
C2
C3
C4
C5
C6
The interval model of a graph
f
d
e
b
g
i
c
a
h
The tree of maximal cliques
a c e f
e
a
a b
a c d
h i
e h
a e g
C3
a b
a c
h
C1
C2
C4
C5
C6
32Identifying prime interval graphs
We will also use the following lemma Lemma A
graph G, is a prime interval graph iff, its
maximal cliques can be uniquely ordered, such
that for every vertex v, the maximal cliques
containing v, occur consecutively.
C1
C2
C3
C4
C5
C6
f
d
e
b
g
i
c
a
h
33Identifying prime interval graphs
Refining a partition Let A and B, be two sets of
maximal cliques, where A is left of B, in a
linear maximal clique arrangement. Suppose v is
shared by two cliques Ca from A, and Cb from B.
If X, is a set of maximal cliques at the right of
A, all cliques in X containing v, must be at the
left of those not containing v.
A
B
X
C1
Ca
Cb
X1
C5
X2
v
34Identifying prime interval graphs
The main idea is the following
- Start from an initial legal partition of the set
of maximal cliques. - Apply the refinement rule repeatedly, until you
are left with sets of size 1. - The resulting arrangement should be the unique
maximal cliques arrangement. - The following initial partition is legal
- Let ? be linear arrangement of the
vertices of G. Partition the set of maximal
cliques to those that contain the last vertex in
the partition, and those that do not.
35Identifying prime interval graphs
Putting it together
- Find the maximal cliques arrangement.
- Create an interval representation from the
clique arrangement. - Verify that the interval representation indeed
represents G.
Corollary We can identify prime interval graphs
in linear time.
36Identifying interval graphs
Putting it together
- Run the modular decomposition algorithm on G.
- For each module, S, verify that S is an interval
graph. - As for each module S, either S or N(S) is a
clique, we can always replace the interval of the
marker vertex vs, with the interval
representation of S. - If all the modules (including the last prime
graph, representing G) are prime, then G is also
prime.
Corollary We can identify interval graphs in
linear time.
37non-degenerate
q
e
h
l
degenerate
degenerate
degenerate
d
degenerate
degenerate
p
j
degenerate
degenerate
degenerate
k
i
c
v
m
n
degenerate
f
g
b
a