lexbfs on chordal graphs with more example

Post on 07-Aug-2015

53 Views

Category:

Science

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CORDAL GRAPH Recognition via Lex

BFS

Nazli TemurM1 International Master of Computer Science

Cordal Graphs

Definition. A Graph is chordal if it has no induced cycles larger than triangles.

For a graph G on n vertices, the following conditions are equivalent:

G is chordal;

1.G has a perfect elimination ordering.

2. If every minimal vertex separator of a G is complete.

3. If every induced subgraph of G has a simplicial vertex.

Condition 1: Perfect Elimination Ordering

Definition. A graph G on n vertices is said to have a perfect elimination ordering if and only if there is an ordering {v1, . . . vn} of G’s vertices, such that each vi is simplicial in the subgraph induced by the vertices {v1, . . . vi}.

Simplicial Vertex

Definition. In a graph G, a vertex v is called simplicial if and only if the subgraph (adjacency set) of G induced by the vertex set {v} ∪ N (v) is a complete graph.

// A clique that is not necessarily maximal.

Note: Example graph is not chordal.

Condition 2: Minimal Vertex Seperation

Definition. A vertex separator S in G is minimal if and only if the graph , obtained by removing S from G, has two connected components C1 and C2 such that each vertex in S is both adjacent to some vertex in C1 and to some vertex in C2.

In other words S’s vertices induce a complete subgraph of G. // Clique

Note : A graph with no or one nodes is connected.

Vertex Seperator

Below picture includes 3 minimal vertex separator that are {2} {4} {4,6}

LEX BFS Intro

Cordal Graph Recognition with LEX BFSRose, Lueker & Tarjan (1976) (see also Habib et al. 2000) show that a perfect elimination ordering of a chordal graph may be found efficiently using an algorithm known as lexicographic breadth-first search.

IDEA

Maintain an ordered partition of the vertices;

At each step Maintain that every part has the same neighborhood to the left (i.e. of already visited vertices).

Choose the next vertex to visit  in the leftmost part.

Visiting a vertex x can be done by refining  current partition with N(x).

That is the idea.

LexBFS Partition Refinement Approach

Highlights

A single perfect elimination ordering  can be found in linear time using

either the LexBFS algorithm or MCS(Maximum cardinality search).

However neither of these algorithms can be used to proceed every perfect

elimination ordering [PEO] for a given chordal graph.

Any ordering of LexBFS is a perfect elimination ordering.

There is an algorithm that is used to generate every perfect elimination

orderings[PEOs] of a chordal graph by successively removing simplicial

vertices. //main difficulty is to maintain the list of simplicial vertices.

If S is the minimal vertex separator of the G graph.Whenever there exist

u,v V(G) such that every path connecting u,v contains a vertex in S.

In clique tree of a chordal graph(ordering of maximal cliques),if both

maximal cliques that contains a given vertex x , then all the edges of path

that connecting them are associated with minimal vertex separators that

contains x.

LEX BFS Simulation

LEX BFS on Cordal Graphs starts from node f

Sigma(a) a N’(a)-adj Partitions (Slices)

// Pivots// Adjacent Vertexes L={fgcdbae}

1 f N’ ={g,c}

2 g N’ ={c,d}

3 c N’ ={d,b,a}

4 d N’ ={b,a,e}

5 b N’ ={a}

6 a N’ ={}

7 e N’ ={}

8 no remains TERMINATE

9

10

{gc}{dbae

}

{c} bae{d}

{bae}

{e}{a}

Resulting order = {f,g,c,d,b,a,e }

bae{d}

{e}

BFS Path

f

g c

d ba

f

eResulting order = {f,g,c,d,b,a,e }

Is the LEXBFS Order an PEO ?

Vertices Adjacencyinduced N(V) is

complete

simplicial node

1 f N’ ={g,c} YES

2 g N’ ={c,d} YES

3 c N’ ={d,b,a} YES

4 d N’ ={b,a,e} YES

5 b N’ ={a} YES

6 a N’ ={} YES

7 e N’ ={} YES

8 no remains TERMINATE

9

10

LEX BFS Simulation….Co graph ?

LEX BFS on Co-Graph

Sigma(a) a N’(a)-adj Partitions (Slices)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 x

2

3

4

5

6

7

8

9

10

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2

3

4

5

6

7

8

9

10

11

12

{yuvwz}

{decab}

Resulting order = {x, }

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 y

3

4

5

6

7

8

9

10

11

12

{yuvwz}

{decab}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3

4

5

6

7

8

9

10

11

12

{yuvwz}

{decab}

Resulting order = {x,y }

{wz}

{uv}

{decab}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 w

4

5

6

7

8

9

10

11

12

{yuvwz}

{decab}

{wz}

{uv}

{decab}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4

5

6

7

8

9

10

11

12

{yuvwz}

{decab}

Resulting order = {x,y,w }

{wz}

{uv}

{decab}

{z}{decab

}{uv}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z

5

6

7

8

9

10

11

12

{yuvwz}

{decab}

{wz}

{uv}

{decab}

{z}{decab

}{uv}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5

6

7

8

9

10

11

12

{yuvwz}

{decab}

Resulting order = {x,y,w,z }

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 u

6

7

8

9

10

11

12

{yuvwz}

{decab}

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6

7

8

9

10

11

12

{yuvwz}

{decab}

Resulting order = {x,y,w,z,u }

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v

7

8

9

10

11

12

{yuvwz}

{decab}

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v N'={adecb}

7

8

9

10

11

12

{yuvwz}

{decab}

Resulting order = {x,y,w,z,u,v }

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}{a}

{decb}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v N'={adecb}

7 a

8

9

10

11

12

{yuvwz}

{decab}

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}{a}

{decb}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v N'={adecb}

7 a N'={}

8

9

10

11

12

{yuvwz}

{decab}

Resulting order = {x,y,w,z,u,v,a }

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}{a}

{decb}

{decb}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v N'={adecb}

7 a N'={}

8 d

9

10

11

12

{yuvwz}

{decab}

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}{a}

{decb}

{decb}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v N'={adecb}

7 a N'={}

8 d N'={cb}

9

10

11

12

{yuvwz}

{decab}

Resulting order = {x,y,w,z,u,v,a,d }

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}{a}

{decb}

{decb}{cb

} {e}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v N'={adecb}

7 a N'={}

8 d N'={cb}

9 c

10

11

12

{yuvwz}

{decab}

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}{a}

{decb}

{decb}{cb

} {e}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v N'={adecb}

7 a N'={}

8 d N'={cb}

9 c N'={}

10

11

12

{yuvwz}

{decab}

Resulting order = {x,y,w,z,u,v,a,d,c }

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}{a}

{decb}

{decb}{cb

} {e}

{b} {e}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v N'={adecb}

7 a N'={}

8 d N'={cb}

9 c N'={}

10 b

11

12

{yuvwz}

{decab}

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}{a}

{decb}

{decb}{cb

} {e}

{b} {e}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v N'={adecb}

7 a N'={}

8 d N'={cb}

9 c N'={}

10 b N'={}

11

12

{yuvwz}

{decab}

Resulting order = {x,y,w,z,u,v,a,d,c,b }

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}{a}

{decb}

{decb}{cb

} {e}

{b} {e}

{e}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v N'={adecb}

7 a N'={}

8 d N'={cb}

9 c N'={}

10 b N'={}

11 e

12

{yuvwz}

{decab}

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}{a}

{decb}

{decb}{cb

} {e}

{b} {e}

{e}

LEX BFS on Cordal Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v N'={adecb}

7 a N'={}

8 d N'={cb}

9 c N'={}

10 b N'={}

11 e N'={} no remaining

12

{yuvwz}

{decab}

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}{a}

{decb}

{decb}{cb

} {e}

{b} {e}

{e}

LEX BFS on Co Graph

Sigma(a)

a N’(a)-adj Partitions (Tied)

// Pivots// Adjacent Vertexes L={xdyuevwcazb}

1 xN’={yuvwz}

2 yN’={wzdecab}

3 wN'={zdecab}

4 z N'={uva}

5 uN'={vadecb}

6 v N'={adecb}

7 a N'={}

8 d N'={cb}

9 c N'={}

10 b N'={}

11 e N'={} no remaining

12no remaining Terminate

{yuvwz}

{decab}

Resulting order = {x,y,w,z,u,v,a,d,c,b,e}

{wz}

{uv}

{decab}

{z}{decab

}{uv}

{decb}{uv}

{a}

{a}{v}{decb

}{a}

{decb}

{decb}{cb

} {e}

{b} {e}

{e}

BFSLexBFS is a restricted version of BFS. So that LexBFS orderings are sub set of BFS orderings. Same LexBFS order can be obtain from BFS by ordering same level nodes accordingly.

x

y w z u v

a d c b e

N(x) ={y,u,v,w,z} N(y) ={d,e,c,a,b,u,v,w,z}

Resulting order = {x,y,w,z,u,v,a,d,c,b,e}

THANKS !

top related