Loading in 5 sec....

Modular Decomposition and Interval Graphs recognitionPowerPoint Presentation

Modular Decomposition and Interval Graphs recognition

- By
**nasya** - Follow User

- 90 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about 'Modular Decomposition and Interval Graphs recognition' - nasya

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

ModularDecompositionof graphs.

Chordal graphsand Intervalgraphs.

ModularDecomposition of Chordalgraphs.

Identifying Intervalgraphs in linear time.

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 G[X] the induced sub-graph on X.

4. We denote by N(v), the set of neighbors of v, and by N[v], N(v) v (the neighborhood and closed-neighborhood of v).

5. We write n for |V|, and m for |E|.

Modular Decomposition: Overview

What is amodule?

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.

a

d

b

d

f

c

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 G[X].

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.

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

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 G[Xv]. We have V(G) as the root of the tree.

We now turn to a formal definition of the Decomposition Tree.

Modular Decomposition: Overview cont.

MD(G)(Definition of the modular decomposition of G)

IfG has one vertex, v, then return v.

Let r be a new internal node in the modular decomposition tree.

IfG 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(G[X]) a child of r. Finally mark r as non-degenerate.

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.

Let’s see the MD-tree of an n-clique, an n-cycle and an n-Star.

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.

Modular Decomposition: Overview cont.

A “wild” algorithm for Modular Decomposition:

1. Create a trivial module X={v}, 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 G[X] and G \ X.

Stages (1) and (2) take O(n3), thus we get:

T(n) = T(|X|)+T(n-|X|)+O(n3) = O(n4)

Modular Decomposition: Overview cont.

Current solutions to the problem:

1. There are some rather complicated O(n+m) algorithms for modular decomposition on general graphs.

2. We now turn to describe a simple O(n+m) algorithm, for performing modular decomposition on chordal graphs.

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.

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(n+m), and thus get a linear time algorithm, for modular decomposition on chordal graphs.

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.

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. Fori= 1 to ndo

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)

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 = {f} {b} {a} {c}

L = {h, f} {b} {f} {a} {c}

L = {h, f} {b} {f} {a} {c}

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 G[{a,b,c,d}] is a cycle of size 4, contradicting the fact that G is chordal.

Claim: Let be a linear arrangement. If N[u] N[v] then -1(u) > -1(v).

Proof: As |N(v)|>|N(u)|, v is initially put before u. As N[u] N[v] no vertex can pull u before v, thus v will always stay before u.

Claim: Let S be a connected module, in a chordal graph with no “clique module”. If is alinear arrangement on G then:

1. -1 (u) >-1(v), vN(S) and uS. 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 vN(S) and uS, then N[u] S N(s)N[v]. As N[v] N[u] (otherwise they form a clique module), we get that N[u] N[v], thus -1(u)>-1(v).

v

u

S

(2) Assume there are x,zS, and yS, such that, -1(x) < -1(y) < -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) yN(S). As S is connected there must be two adjacent vertices x’,z’, such that -1(x’) < -1(y) < -1(z’). But when we select x’, z’ will be pulled to a set in front of y, thus -1(y) > -1(z’), a contradiction.

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.

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

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(n+m), and so does the entire stage.

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(n+m). The difference is that now, we don’t put an edge from each vertex to itself.

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.

What is an intervalgraph?

An undirected graph, G=(V,E), is an interval graph, if there is a set, F, of n=|V| 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.

Let’s see an interval graph, and its interval representation….

Interval Graphs: Introduction cont.

An interval graph:

And its interval representation:

a

e

b

d

f

c

a

b

e

d

c

f

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 k>3. We show that there is no interval representation for the vertices v1,…,vk, and thus conclude that there is no interval representation of G.

We describe how to check if a prime graph is an intervalgraph in O(n+m). Together with the O(n+m) algorithm for modulardecomposition on chordalgraphs, we will get an O(n+m) algorithm for identifying intervalgraphs.

We will use the following claim:

Lemma: Given a chordal graph G=(V,E), one can create in O(n+m), 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.

Let’s see an interval graph, and its clique tree…

Identifying prime interval graphs

C1

C2

C3

C4

C5

C6

The interval model of a graph

f

d

e

b

c

g

i

a

h

The tree of maximal cliques

a

c

e

f

e

a

a

c

d

a

b

h

i

e

h

a

e

g

a

c

C3

a

b

h

C2

C1

C6

C5

C4

Identifying prime interval graphs

We will also use the following lemma:

Lemma: A graph G, is a primeintervalgraph 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

c

g

i

a

h

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

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.

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.

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.

q

e

h

degenerate

degenerate

l

degenerate

degenerate

d

degenerate

p

j

degenerate

degenerate

degenerate

i

k

c

v

m

n

degenerate

f

g

a

b

Download Presentation

Connecting to Server..