Modular%20Decomposition - PowerPoint PPT Presentation

About This Presentation
Title:

Modular%20Decomposition

Description:

If we have a set with more than one vertex, it is a clique module. ... Claim: Let S be a connected module, in a chordal graph with no 'clique module' ... – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 38
Provided by: mathT
Category:

less

Transcript and Presenter's Notes

Title: Modular%20Decomposition


1
Modular Decomposition and Interval
Graphs recognition
Speaker Asaf Shapira
2
We will discuss
  • Modular Decomposition of graphs.
  • Chordal graphs and Interval graphs.
  • Modular Decomposition of Chordal graphs.
  • Identifying Interval graphs in linear time.

3
Modular 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.
4
Modular 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
5
Modular 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.
6
Modular 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
7
Modular 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.
8
Modular 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.

9
Modular 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
11
Modular 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.

12
Modular 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)
13
Modular 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.
14
Chordal 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.
15
MD 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.

16
Clique 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.
17
Connected 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)

18
a
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
19
Linear 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.

20
Linear 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
21
Linear 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.

22
Connected 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.
23
Connected 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
24
Connected 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.

25
Independent 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.

26
MD 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.
27
Interval 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.
28
Interval Graphs Introduction cont.
An interval graph And its interval
representation
a
e
b
d
f
c
a
b
e
d
c
f
29
Interval 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.
30
Identifying 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

31
Identifying 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
32
Identifying 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
33
Identifying 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
34
Identifying 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.

35
Identifying 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.
36
Identifying 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.
37
non-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
Write a Comment
User Comments (0)
About PowerShow.com