55
1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

Constructing Splits Graphs

  • Upload
    willis

  • View
    50

  • Download
    0

Embed Size (px)

DESCRIPTION

Constructing Splits Graphs. Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin. Constructing Splits Graphs. Agenda: Objective Definitions, Theorems and Notations Constructing Plane Splits Graphs Constructing Non Planar Splits Graphs Conclusion. - PowerPoint PPT Presentation

Citation preview

Page 1: Constructing Splits Graphs

1

Constructing Splits Graphs

Author:

Andreas W.M. Dress

Daniel H. Huson

Presented by:

Bakhtiyar Uddin

Page 2: Constructing Splits Graphs

2

Constructing Splits Graphs

Agenda:

1. Objective

2. Definitions, Theorems and Notations

3. Constructing Plane Splits Graphs

4. Constructing Non Planar Splits Graphs

5. Conclusion

Page 3: Constructing Splits Graphs

3

Constructing Splits Graphs

Objective

Page 4: Constructing Splits Graphs

4

Constructing Splits Graphs

Objective:

Given a set of splits (not necessarily compatible), generate a splits graph. The algorithm is designed to handle large split systems.

Note: Splits graph is a graphical representation of an arbitrary splits system (set of splits).

Page 5: Constructing Splits Graphs

5

Constructing Splits GraphsExample:Input:

Set of taxa, X = {dog, cat, mouse, turtle, parrot}

Circular ordering of X = (dog, cat, mouse, turtle, parrot)

Splits System:

S1 = {dog, cat} / {mouse, turtle, parrot} S2 = {turtle, parrot} / {cat, dog, mouse}

S3 = {dog, mouse} / {cat, turtle, parrot} S4 = {mouse, parrot} / {dog, cat, turtle}

Page 6: Constructing Splits Graphs

6

Constructing Splits GraphsExample:Input:

Set of taxa, X = {dog, cat, mouse, turtle, parrot}

Circular ordering of X = (dog, cat, mouse, turtle, parrot)

Splits System:

S1 = {dog, cat} / {mouse, turtle, parrot} S2 = {turtle, parrot} / {cat, dog, mouse}

S3 = {dog, mouse} / {cat, turtle, parrot} S4 = {mouse, parrot} / {dog, cat, turtle}

f1

f2f3

f5

f4

v0 u’2

v1

v2

v4

v5

v3

g1

u’1g2u’3 u’4g3

g4 g5

Page 7: Constructing Splits Graphs

7

Constructing Splits Graphs

This problem has been addressed by earlier publications. But in practice, the proposed approach is only feasible for small split systems.

Page 8: Constructing Splits Graphs

8

Constructing Splits Graphs

Definitions, Theorems and Notations

Page 9: Constructing Splits Graphs

9

Constructing Splits GraphsSigma: Set of splits

C: Set of colors

X: set of taxa

X-split: Partitioning of X into two non empty and complementary sets A and A’

EtoC: E -> C

Assigns a color to each edge

nu: X -> V

Mapping from set of taxa X to a node v in a graph.

Properly colored:

A path is properly colored if each edge in P has a different color.

Isometric coloring:

Coloring of the edges such that every shortest paths between any two vertices are properly colored and utilize the same set of colors

Page 10: Constructing Splits Graphs

10

Splits Graph:

A graph G = (V,E) is called a splits graph if it is:

1) Finite, simple, connected, bipartite

2) And there exists an isometric and surjective(onto C) edge coloring.

Theorem:

Assume G = (V,E) is a splits graph and EtoC is an appropriate edge coloring. For any color c in C, the graph G_c, obtained by deleting all edges of color c, consists of precisely two separate connected components.

Thus, given a splits Graph G(V,E), there exists a set of color C such that it has one-one mapping with Sigma (set of splits on G). We can use the set C as the range for EtoC.

Also, let StoC be the mapping from split to color.

StoC: Sigma -> C

Constructing Splits Graphs

Page 11: Constructing Splits Graphs

11

Constructing Splits GraphsTrivial Split:

A partition with a single element in one of the splits.

I represent the set of trivial splits as Sigma_O.

I represent the set of non trivial splits as Sigma_I

Frontier of G:

Frontier of G consists of the set of vertices and edges of G that are incident to the unbounded face of G

Outer-labeled graph:

G is outer-labeled if al labeled vertices of G are of degree one and contained in the frontier of G.

Convex sub graph: G’ is a convex sub graph of a graph G is an induced subgraph of G such that for any pair of v and w belonging to G’, all shortest paths between v and w that belongs to G also belongs to G’.

Convex Hull:Convex Hull H_A is the smallest convex sub graph containing all the elements in A.

Page 12: Constructing Splits Graphs

12

Constructing Splits Graphs

Circular Split System:

Split system Sigma for a set of taxa X is circular if there exists an ordered list (x_1,x_2,….,x_n) of elements of X and every split in S belonging to Sigma is interval realizable, ie there exists p,q with 1<p<q<=n such that S = {x_p, x_(p+1),…,x_q}/(X-{x_p, x_(p+1),…,x_q})

Example:

Given ordering (x1,x2,x3,x4) of X = {x1,x2,x3,x4} Sigma = { {x1,x2}/{x3,x4}, {x2,x3}/{x1,x4} } is a circular split system

Theorem: A set of X-splits Sigma is circular iff there exists an outer-labeled plane splits graph G that represents Sigma U Sigma_O, where Sigma_O = { {x}/(X-{x}) | x belongs to X}

Page 13: Constructing Splits Graphs

13

Constructing Splits Graphs

cat

dog

mouse

turtle

parrot

owl

Example of a circular split system

Page 14: Constructing Splits Graphs

14

Constructing Splits Graphs

Constructing Plane Splits Graphs

Page 15: Constructing Splits Graphs

15

Constructing Splits Graphs

Input: A set of taxa X = {x_1,x_2,….,x_n}

A set of nontrivial X-splits, Sigma_I, such that Sigma_I is circular with respect to the ordering (x_1,x_2,….,x_n)

A set of trivial X-splits, Sigma_O

Output: Outer-labeled plane splits graph G representing Sigma_I and Sigma_O.

Page 16: Constructing Splits Graphs

16

Constructing Splits Graphs

Input: A set of taxa X = {x_1,x_2,….,x_n}

A set of nontrivial X-splits, Sigma_I, such that Sigma_I is circular with respect to the ordering (x_1,x_2,….,x_n)

A set of trivial X-splits, Sigma_O

Output: Outer-labeled plane splits graph G representing Sigma_I and Sigma_O.

Algorithm:

Apply Algorithm 1 to obtain a star graph (G_0, nu) representing Sigma_O.

Order the set Sigma_I by increasing the size of the split part containing x1

For each split S_t in Sigma_I, do:

Determine p,q such that S_t = {x_p, …, x_q}/( X - {x_p,…,x_q} )

Apply Algorithm 2 to find the shortest path P from nu(x_p) to nu(x_q)

Apply Algorithm 3 to G_(t-1), S_t and P to obtain G_t.

Page 17: Constructing Splits Graphs

17

Constructing Splits Graphs

Algorithm 1: Add trivial splits

Input: An ordering (x_1,x_2,…, x_n) of X and the set of all trivial X-splits Sigma_O = {S1_O, S2_O,…,Sn_O}

Output: Outer-labeled plane splits graph G_0 = (V,E) representing Sigma_O

Page 18: Constructing Splits Graphs

18

Constructing Splits GraphsAlgorithm 1: Add trivial splitsInput: An ordering (x_1,x_2,…, x_n) of X and the set of all trivial X-splits Sigma_O = {S1_O, S2_O,…,Sn_O}

Output: Outer-labeled plane splits graph G_0 = (V,E) representing Sigma_O

Example:

Input: Ordering (x1,x2,x3,x4,x5,x6,x7)

Sigma_O = { {x1}/{x2, …, x7}, {x2}/{x1, x3, …, x7}, {x3}/{x1, x2, x4, …, x7}, {x4}/{x1, …, x3, x5, x6, x7},

{x5}/{x1, …, x4, x6, x7}, {x6}/{x1, …, x5, x7}, {x7}/{x1, …, x6} }

Output: v1

v6v5

v4

v3

v2

v7

f1 f2

f7

f4

f5

f3

f6

Page 19: Constructing Splits Graphs

19

Constructing Splits GraphsAlgorithm 1: Add trivial splitsInput: An ordering (x1,x2,…, xn) of X and the set of all trivial X-splits Sigma_O = {S1_O, S2_O,…,Sn_O}

Output: Outer-labeled plane splits graph G_0 = (V,E) representing Sigma_O

Algorithm:

1. Create a new vertex v0

2. For each new taxon xi in {x_1,x_2,…,x_n}

2.1 Create a new vertex v_i and set nu(x_i) = v_i

2.2 Create a new edge f_i and set set c(f_i) = {x_i}/(X-{x_i})

2.3 Set E(v_i) = (f_i)

3. Set E(v_0) = (f_1,f_2,…,f_n)

Page 20: Constructing Splits Graphs

20

Constructing Splits Graphs

Algorithm 2: Find Shortest Path

Input: Graph, G_(t-1)

Split S_t = {xp, …, xq}/(X - {xp, …, xq})

Output: Shortest path P = (u0, e0, u1, e1, …, uk) from u0 = nu(xp) and uk = nu(xq)

Page 21: Constructing Splits Graphs

21

Constructing Splits GraphsAlgorithm 2: Find Shortest PathInput: Graph, G_(t-1)

Split S_t = {xp, …, xq}/(X - {xp, …, xq})

Output: Shortest path P = (u0, e0, u1, e1, …, uk) from u0 = nu(xp) and uk = nu(xq)

Example:

Input: G_(t-1) = S_t = {x2, x3, x4}/{x1, x5, x6, x7}

v1

v6

v5

v4

v3 v2

v7

f1

f2

f7

f4

f5

f3

f6

v1

v6

v5

v4

v3 v2

v7

f1

f2

f7

f4

f5

f3

f6

e0

e1

e3e2

Output: Path P = (v2, e0, u1, e1, u2, e2, u3, e3, v4)

u3

u2u1

(The algorithm labels edges and vertices)

Page 22: Constructing Splits Graphs

22

Constructing Splits GraphsAlgorithm 2: Find Shortest PathInput: Graph, G_(t-1)

Split S_t = {xp, …, xq}/(X - {xp, …, xq})

Output: Shortest path P = (u0, e0, u1, e1, …, uk) from u0 = nu(xp) and uk = nu(xq)

Algorithm:

1. Set u_0 = nu(x_p), e_0=f_p

2. Set i = 0

3. Repeat

3.1 Define u_i to be the vertex opposite to u_(i-1) across e_(i-1)

3.2 Define e_i to be the first successor of e_(i-1) in E(u_i) such that e_i not in ({f_1…f_n}-{f_q})

4. Until e_i = f_q [have reached nu(x_q)]

5. Set u_i = nu(x_q)

v7

Page 23: Constructing Splits Graphs

23

Constructing Splits Graphs

Algorithm 2: Add non-trivial circular split

Input: Graph, G_(t-1) representing Sigma_(t-1)

Split S_t = {x_p, …, x_q}/(X - {x_p, …, x_q})

Shortest path P = (u_0, e_0, u_1, e_1, …, u_k) from u_0 = nu(x_p) and u_k = nu(x_q)

Output: Outer-labeled plane splits graph G_t representing Sigma_t

Note: Sigma_t = Sigma_(t-1) U {S_t}

Page 24: Constructing Splits Graphs

24

Constructing Splits Graphs

Example:

Input: G_(t-1) =

v1

v6

v5

v4

v3 v2

v7

f1

f2

f7

f4

f5

f3

f6

v1

v6

v5

v4

v3 v2

v7

f1

f2

f7

f4

f5

f3

f6

e0

e1

e2Output:

u’3

u’2u’1

S_t = {x2, x3, x4}/{x1, x5, x6, x7}

P = (v2, e0, u1, e1, u2, e2,

u3, e3, v4) (shortest path between nu(x2)=v2 and nu(x4)= v4)

g1g2

g3

u3

u2u1

u3

u2 u1

Page 25: Constructing Splits Graphs

25

Constructing Splits Graphs

v1

v6

v5

v4

v3 v2

f1

f2

f7

f4

f5

f3

f6

e0

e1

e3e2

u3

u2u1

S_t = {x2, x3, x4}/{x1, x5, x6, x7}

P = (v2, e0, u1, e1, u2, e2,

u3, e3, v4) (shortest path between nu(x2)=v2 and nu(x4)= v4)

Page 26: Constructing Splits Graphs

26

Constructing Splits Graphs

v4

v3 v2

f2

f4

f3 e0

e1

e3 e2

u2u1

v1

v6

v5

f1

f7

f5

f6

e1

e2

u3

u2u1

S_t = {x2, x3, x4}/{x1, x5, x6, x7}

P = (v2, e0, u1, e1, u2, e2,

u3, e3, v4) (shortest path between nu(x2)=v2 and nu(x4)= v4)

u3

Page 27: Constructing Splits Graphs

27

Constructing Splits Graphs

v4

v3 v2

f2

f4

f3 e0

e1

e3 e2

u2u1

v1

v6

v5

f1

f7

f5

f6

e1

e2

u3

u2u1

g1g2

g3

S_t = {x2, x3, x4}/{x1, x5, x6, x7}

P = (v2, e0, u1, e1, u2, e2,

u3, e3, v4) (shortest path between nu(x2)=v2 and nu(x4)= v4)

u3

Page 28: Constructing Splits Graphs

28

Constructing Splits GraphsAlgorithm 3: Add non-trivial circular splitInput: Graph, G_(t-1) representing Sigma_(t-1)

Split S_t = {x_p, …, x_q}/(X - {x_p, …, x_q}) Shortest path P = (u_0, e_0, u_1, e_1, …, u_k) from u_0 = nu(x_p) and u_k = nu(x_q)Output: Outer-labeled plane splits graph G_t representing Sigma_t

Note: Sigma_t = Sigma_(t-1) U {S_t}

Algorithm:

1 For each i = 1…. k

1.1 Create a new vertex u’_i

1.2 Create a new edge g_i(u’_i, u_i) and EtoS(u’_i) = S_t

1.3 if (i < k) create a new edge e’_i with CtoS(e’_i) = CtoS(e_i)

2 For each I = 1,2,… k

2.1 Assume E(u_i) = (e_(i-1), r_1, r_2, …, r_x, e_i, l_1, l_2, …, l_y)

2.2 Set E(u_i) = (e_(i-1), r_1, r_2, …, r_x, e_i, g_i)

2.3 if (i = 1)

2.3.1 E(u’_i) = (g_i, e’_i, l_1, l_2, .., l_y)

2.4 if (1<i<k)

2.4.1 E(u’_i) = (e’_(i-1), g_i, e’_i, l_1, l_2, …, l_y)

2.5 if (i = k)

2.5.1 E(u’_i) = (e’_(i-1), g_i, l_1, l_2, …, l_y)

Page 29: Constructing Splits Graphs

29

Constructing Splits GraphsAlgorithm 3: Add non-trivial circular splitInput: Graph, G_(t-1) representing Sigma_(t-1)

Split S_t = {x_p, …, x_q}/(X - {x_p, …, x_q}) Shortest path P = (u_0, e_0, u_1, e_1, …, u_k) from u_0 = nu(x_p) and u_k = nu(x_q)Output: Outer-labeled plane splits graph G_t representing Sigma_t

Note: Sigma_t = Sigma_(t-1) U {S_t}

Algorithm:

1 For each i = 1…. k

1.1 Create a new vertex u’_i

1.2 Create a new edge g_i(u’_i, u_i) and EtoS(u’_i) = S_t

1.3 if (i < k) create a new edge e’_i with CtoS(e’_i) = CtoS(e_i)

2 For each I = 1,2,… k

2.1 Assume E(u_i) = (e_(i-1), r_1, r_2, …, r_x, e_i, l_1, l_2, …, l_y)

2.2 Set E(u_i) = (e_(i-1), r_1, r_2, …, r_x, e_i, g_i)

2.3 if (i = 1)

2.3.1 E(u’_i) = (g_i, e’_i, l_1, l_2, .., l_y)

2.4 if (1<i<k)

2.4.1 E(u’_i) = (e’_(i-1), g_i, e’_i, l_1, l_2, …, l_y)

2.5 if (i = k)

2.5.1 E(u’_i) = (e’_(i-1), g_i, l_1, l_2, …, l_y)

Complexity:

O(k2 + nk)

Page 30: Constructing Splits Graphs

30

Constructing Splits Graphs

Finding ordered list of incident edges recursively (Step 2 of algorithm 3): For a star graph:

E(v_0) = (f_1,f_2,….,f_n)

E(v_i) = (f_i)

Else

If at the i_th iteration E(u_i) = (e_(i-1), r_1, r_2, …, r_x, e_i, l_1, l_2, …, l_y) for the node u_i

u_i

u_i

u_i

u_i

u_i

r_1r_2

l_yl_1l_2

r_x

e_(i-1)e_i

g_i

e_(i-1)e_ir_1

r_2r_x

e’_i

e’_i

g_i

g_i

g_i

l_1l_2

l_y

l_y

l_y

l_1

l_1

l_2

l_2

e’_(i-1)

e’_(i-1)

Then,

E(u_i) = (e_(i-1), r_1, r_2, …, r_x, e_i, f_i)

If i = 1

If 1<i<k

If i = k

And, E(u’_i) =

(g_i, e’_i, l_1, l_2, .., l_y)

(e’_(i-1), g_i, e’_i, l_1, l_2, …, l_y)

(e’_(i-1), g_i, l_1, l_2, …, l_y)

Page 31: Constructing Splits Graphs

31

Constructing Splits GraphsExample:

Input: Set of taxa X such that X is circular with respect to ordering. X = (dog, cat, mouse, turtle, parrot)

Set of non-trivial splitsSigma_I = { {dog, cat | mouse, turtle, parrot},

{turtle, parrot|cat, dog, mouse}, {dog, mouse | cat, turtle, parrot} }

Set of trivial splits Sigma_O

Output: Outer labeled plane splits graph G representing Sigma_I and Sigma_O

Page 32: Constructing Splits Graphs

32

Constructing Splits GraphsAlgorithm 1 creates the star:

f1

f2

f3

f5

f4v0

E(v0) = (f1,f2,…f5)

E(dog) = (f1)

E(cat) = (f2)

E(parrot) = (f3)

E(turtle) = (f4)

E(mouse) = (f5)

v1

v2

v4

v5

v3

Page 33: Constructing Splits Graphs

33

Constructing Splits Graphs

f1

f2

f3

f5

f4v0

E(v0) = (f1,f2,…f5)

E(dog) = (f1)

E(cat) = (f2)

E(parrot) = (f3)

E(turtle) = (f4)

E(mouse) = (f5)

Iteration 1:

Consider S1 = {dog,cat}/{mouse, turtle, parrot}

v1

v2

v4

v5

v3

Page 34: Constructing Splits Graphs

34

Constructing Splits Graphs

f1

f2

f3

f5

f4v0

E(v0) = (f1,f2,…f5)

E(dog) = (f1)

E(cat) = (f2)

E(parrot) = (f3)

E(turtle) = (f4)

E(mouse) = (f5)

Iteration 1:

Consider S1 = {dog,cat}/{mouse, turtle, parrot}

Algorithm 2 will generate the path P = ( v1, f1, v0, f2, v2)

v1

v2

v4

v5

v3

Page 35: Constructing Splits Graphs

35

Constructing Splits Graphs

f1

f2

f3

f5

f4v0

E(v0) = (f1,f2,…f5)

E(dog) = (f1)

E(cat) = (f2)

E(parrot) = (f3)

E(turtle) = (f4)

E(mouse) = (f5)

Iteration 1:

Consider S1 = {dog,cat}/{mouse, turtle, parrot}

Algorithm 2 will generate the path P = ( v1, f1, v0, f2, v2)

Algorithm 3 will create a new node u’1 and a new edge g1(v0, u’1)

u’1

v1

v2

v4

v5

v3

g1

Page 36: Constructing Splits Graphs

36

Constructing Splits Graphs

f1

f2

f3

f5

f4v0

E(v0) = (f1,f2,g1)

E(v1) = (f1)

E(v2) = (f2)

E(v3) = (f3)

E(v4) = (f4)

E(v5) = (f5)

E(u’1) = (g1,f3,f4,f5)

Iteration 1:

Consider S1 = {dog,cat}/{mouse, turtle, parrot}

Algorithm 2 will generate the path P = ( v1, f1, v0, f2, v2)

Algorithm 3 will create a new node u’1 and a new edge g1(v0, u’1)

Algorithm 3 will also modify E(v0) = (f1, f2, g1) E(u’1) = (g1, f3, f4, f5)

u’1

v1

v2

v4

v5

v3

g1

Page 37: Constructing Splits Graphs

37

Constructing Splits Graphs

f1

f2

f3

f5

f4v0

E(v0) = (f1,f2,g1)

E(v1) = (f1)

E(v2) = (f2)

E(v3) = (f3)

E(v4) = (f4)

E(v5) = (f5)

E(u’1) = (g1,f3,f4,f5)

Iteration 2:

Consider S2 = {turtle, parrot}/{cat, dog, mouse}

Algorithm 2 will generate the path P = ( v3, f3, u’1, f4, v4)

u’1

v1

v2

v4

v5

v3

g1

Page 38: Constructing Splits Graphs

38

Constructing Splits Graphs

f1

f2f3

f5

f4v0

E(v0) = (f1,f2,g1)

E(v1) = (f1)

E(v2) = (f2)

E(v3) = (f3)

E(v4) = (f4)

E(v5) = (f5)

E(u’1) = (g1,f3,f4,f5)

Iteration 2:

Consider S2 = {turtle, parrot}/{cat, dog, mouse}

Algorithm 2 will generate the path P = ( v3, f3, u’1, f4, v4)

Algorithm 3 will create a new node u’2 and the new edge g2(u’1, u’2)

u’1

v1

v2

v4

v5

v3

g1

u’2

Page 39: Constructing Splits Graphs

39

Constructing Splits Graphs

f1

f2f3

f5

f4v0

E(v0) = (f1,f2,g1)

E(v1) = (f1)

E(v2) = (f2)

E(v3) = (f3)

E(v4) = (f4)

E(v5) = (f5)

E(u’1) = (g1,f3,f4,f5)

E(u’2) = (g2, f5, g1)

Iteration 2:

Consider S2 = {parrot, turtle}/{cat, dog, mouse}

Algorithm 2 will generate the path P = ( v3, f3, u’1, f4, v4)

Algorithm 3 will create a new node u’2 and the new edge g2(u’1, u’2)

Algorithm 3 will modify E(u’1) = (f3, f4, g2)E(u’2) = (g2, f5, g1)

u’2

v1

v2

v4

v5

v3

g1

u’1

g2

Page 40: Constructing Splits Graphs

40

Constructing Splits Graphs

f1

f2f3

f5

f4v0

Iteration 3:

Consider S3 = {mouse, dog}/{cat, parrot, turtle}

Algorithm 2 will generate the path P = ( v5, f5, u’2, g1, v0, f1, v1)

u’2

v1

v2

v4

v5

v3

g1

u’1

g2

E(v0) = (f1,f2,g1)

E(v1) = (f1)

E(v2) = (f2)

E(v3) = (f3)

E(v4) = (f4)

E(v5) = (f5)

E(u’1) = (g1,f3,f4,f5)

E(u’2) = (g2, f5, g1)

Page 41: Constructing Splits Graphs

41

Constructing Splits Graphs

f1

f2f3

f5

f4

v0

Iteration 3:Consider S3 = {mouse, dog}/{cat, parrot, turtle}Algorithm 2 will generate the path P = ( v5, f5, u’2, g1, v0, f1, v1)

Algorithm 3 will create:

two new nodes u’3, u’4

a new edge g3(u’3, u’4) with EtoC(g2) = EtoC(g3)

and two new edges g4(u’3, v0) and g5(u’4, u’2) with EtoC(g4) = EtoC(g5) = StoC(S3)

u’2

v1

v2

v4

v5

v3

g1

u’1

g2u’3 u’4g3

g4 g5

E(v0) = (f1,f2,g1)

E(v1) = (f1)

E(v2) = (f2)

E(v3) = (f3)

E(v4) = (f4)

E(v5) = (f5)

E(u’1) = (g1,f3,f4,f5)

E(u’2) = (g2, f5, g1)

Page 42: Constructing Splits Graphs

42

Constructing Splits Graphs

f1

f2f3

f5

f4

v0

Iteration 3:Consider S3 = {mouse, dog}/{cat, parrot, turtle}Algorithm 2 will generate the path P = ( v5, f5, u’2, g1, v0, f1, v1)

Algorithm 3 will create:

two new nodes u’3, u’4

a new edge g3(u’3, u’4) with EtoC(g2) = EtoC(g3)

and two new edges g4(u’3, v0) and g5(u’4, u’2) with EtoC(g4) = EtoC(g5) = StoC(S3)

It will modify E(v0), E(u’2) and create E(u’3) and E(u’4)

u’2

v1

v2

v4

v5

v3

g1

u’1

g2u’3 u’4g3

g4 g5

E(v0) = (g1, f1, g4)

E(v1) = (f1)

E(v2) = (f2)

E(v3) = (f3)

E(v4) = (f4)

E(v5) = (f5)

E(u’1) = (g1,f3,f4,f5)

E(u’2) = (f5, g1, g5)

E(u’3) = (g3, g4, f2)

E(u’4) = (g5, g3, g2)

Page 43: Constructing Splits Graphs

43

Constructing Splits Graphs

Constructing Non planar Splits Graphs

Page 44: Constructing Splits Graphs

44

Constructing Splits Graphs

Non circular splits system leads to non-planar splits graphs.

Reminder:

Convex sub graph:

G’ is a convex sub graph of a graph G is an induced subgraph of G such that for any pair of v and w belonging to G’, all shortest paths between v and w that belongs to G also belongs to G’.

Convex Hull:

Convex Hull H_A is the smallest convex sub graph containing all the elements in A.

Page 45: Constructing Splits Graphs

45

Constructing Splits Graphs

Input: Splits Graph G_(t-1) representing

Sigma_(t-1) = Sigma_O U Sigma_I_(t-1)

Split S_t

Output: Splits Graph G_t representing

Sigma_t = Sigma_(t-1) U S_t

Page 46: Constructing Splits Graphs

46

Constructing Splits GraphsInput: Splits Graph G_(t-1) representing Sigma_(t-1) = Sigma_O U Sigma_I_(t-1)

Split S_t

Output: Splits Graph G_t representing Sigma_t = Sigma_(t-1) U S_t

Algorithm:Assume S_t = A/A’

1. Compute convex hulls H_A and H_A’

2. Define H_n = intersection of H_A and H_A’

3. F = f_1, f_2, …, f_s denote the set of all edges whose both ends lie in H_n

4. For each i = 1, 2, …, r

4.1 Create a new vertex u’_i

4.2 Create a new edge e_i

4.3 Set EtoC(e_i) = StoC(S_t)

5. For each i = 1,2,…, s

5.1 Create a new edge f’_i

5.2 set EtoC(f’_i) = EtoC(f_i)

6. For each i = 1, 2, …, r

6.1 E_A = set of edges in E(u_i) whose opposite vertices lie in H_A

6.2 E_A’ = set of edges in E(u_i) whose opposite vertices lie in H_A’

6.3 E_n = {g_1, g_2, …, g_q} = set of edges in E(u_i) whose opposite vertices lie in H_n

6.4 E’_n = {g’_1, g’_2, …, g’_q}

6.5 E(u_i) = E_A U E_n U {e_i}

6.6 E(u_i) = E_A’ U E’_n U {e_i}

Page 47: Constructing Splits Graphs

47

Constructing Splits Graphs

f1

f2f3

f5

f4

v0

Consider the split S = {mouse, parrot}/{dog, cat, turtle} = A/A’(not circular)

u’2

v1

v2

v4

v5

v3

g1

u’1

g2u’3 u’4g3

g4 g5

Page 48: Constructing Splits Graphs

48

Constructing Splits Graphs

f1

f2f3

f5

f4

v0 u’2

v1

v2

v4

v5

v3

g1

u’1

g2u’3 u’4g3

g4 g5

split S = {mouse, parrot}/{dog, cat, turtle}Convex Hull of the nodes {mouse, parrot} = H_A

Page 49: Constructing Splits Graphs

49

Constructing Splits Graphs

f1

f2f3

f5

f4

v0 u’2

v1

v2

v4

v5

v3

g1

u’1

g2u’3 u’4g3

g4 g5

split S = {mouse, parrot}/{dog, cat, turtle}Convex Hull of the nodes {dog, cat, parrot} = H_A’

Page 50: Constructing Splits Graphs

50

Constructing Splits Graphs

f1

f2f3

f5

f4

v0

split S = {mouse, parrot}/{dog, cat, turtle}The intersection of the two convex hulls have edges g5 and g2.

u’2

v1

v2

v4

v5

v3

g1

u’1

g2u’3 u’4g3

g4 g5

Page 51: Constructing Splits Graphs

51

Constructing Splits Graphs

f1

f2f3

f5

f4

v0 u’2

v1

v2

v4

v5

v3

g1

u’1

g2u’3 u’4g3

g4 g5

split S = {mouse, parrot}/{dog, cat, turtle}

Page 52: Constructing Splits Graphs

52

Constructing Splits Graphs

f1

f2f3

f5

f4

v0 u’2

v1

v2

v4

v5

v3

g1

u’1g2u’3 u’4g3

g4 g5

split S = {mouse, parrot}/{dog, cat, turtle}

For each edge e in the intersection, create a new edge fEtoC(f) = EtoC(e)

For each node u in the intersection, create a new node vcreate an edge f(u,v)EtoC(f) = StoC(S)

u’5

u’6

u’7g6g7

Page 53: Constructing Splits Graphs

53

Constructing Splits Graphs

f1

f2f3

f5

f4

v0 u’2

v1

v2

v4

v5

v3

g1

u’1g2u’3 u’4g3

g4 g5

split S = {mouse, parrot}/{dog, cat, turtle}S is the partition obtained by removing the brown color edges

u’5u’7g6

u’6g7

Page 54: Constructing Splits Graphs

54

Constructing Splits Graphs

Conclusion

Page 55: Constructing Splits Graphs

55

Constructing Splits Graphs

• The paper include other algorithms

1. Algorithm to compute coordinates.

2. Algorithm to obtain a circular ordering that maximizes the number of splits in Sigma that are interval-realizable with respect to

the given ordering.

• To process a large set of splits:

1. First use Algorithm 4 to process the subset of circular splits

2. Use Algorithm 6 to process the remaining splits

• All the presented algorithms are implemented in a new program called SplitsTree4.