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

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

Embed Size (px)

Citation preview

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

1

Constructing Splits Graphs

Author:

Andreas W.M. Dress

Daniel H. Huson

Presented by:

Bakhtiyar Uddin

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

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

3

Constructing Splits Graphs

Objective

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

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

8

Constructing Splits Graphs

Definitions, Theorems and Notations

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

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

13

Constructing Splits Graphs

cat

dog

mouse

turtle

parrot

owl

Example of a circular split system

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

14

Constructing Splits Graphs

Constructing Plane Splits Graphs

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

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

43

Constructing Splits Graphs

Constructing Non planar Splits Graphs

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

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

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: 1 Constructing Splits Graphs Author: Andreas W.M. Dress Daniel H. Huson Presented by: Bakhtiyar Uddin

54

Constructing Splits Graphs

Conclusion

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

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.