Download presentation

Presentation is loading. Please wait.

Published byBret Dunn Modified over 2 years ago

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

2
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

3
3 Constructing Splits Graphs Objective

4
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).

5
5 Constructing Splits Graphs Example: 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}

6
6 Constructing Splits Graphs Example: 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 f2 f3 f5 f4 v0u’2 v1 v2 v4 v5 v3 g1 u’1g2 u’3 u’4 g3 g4 g5

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

8
8 Constructing Splits Graphs Definitions, Theorems and Notations

9
9 Constructing Splits Graphs Sigma: 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

10
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

11
11 Constructing Splits Graphs Trivial 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.

12 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

{ "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.com/12/3389391/slides/slide_12.jpg", "name": "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

13
13 Constructing Splits Graphs cat dog mouse turtle parrot owl Example of a circular split system

14
14 Constructing Splits Graphs Constructing Plane Splits Graphs

15
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.

16
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.

17
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

18
18 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 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 v6 v5 v4 v3 v2 v7 f1f2 f7 f4 f5 f3 f6

19
19 Constructing Splits Graphs Algorithm 1: Add trivial splits Input: 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)

20
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)

21
21 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) Example: Input : G_(t-1) = S_t = {x2, x3, x4}/{x1, x5, x6, x7} v1 v6 v5 v4 v3v2 v7 f1 f2 f7 f4 f5 f3 f6 v1 v6 v5 v4 v3v2 v7 f1 f2 f7 f4 f5 f3 f6 e0 e1 e3 e2 Output: Path P = (v2, e0, u1, e1, u2, e2, u3, e3, v4) u3 u2 u1 (The algorithm labels edges and vertices)

22
22 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) 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

23
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}

24
24 Constructing Splits Graphs Example: Input : G_(t-1) = v1 v6 v5 v4 v3v2 v7 f1 f2 f7 f4 f5 f3 f6 v1 v6 v5 v4 v3v2 v7 f1 f2 f7 f4 f5 f3 f6 e0 e1 e2 Output: u’3 u’2 u’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) g1 g2 g3 u3 u2 u1 u3 u2u1

25
25 Constructing Splits Graphs v1 v6 v5 v4 v3v2 f1 f2 f7 f4 f5 f3 f6 e0 e1 e3 e2 u3 u2 u1 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)

26
26 Constructing Splits Graphs v4 v3v2 f2 f4 f3 e0 e1 e3e2 u2 u1 v1 v6 v5 f1 f7 f5 f6 e1 e2 u3 u2 u1 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

27
27 Constructing Splits Graphs v4 v3v2 f2 f4 f3 e0 e1 e3e2 u2 u1 v1 v6 v5 f1 f7 f5 f6 e1 e2 u3 u2 u1 g1 g2 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

28
28 Constructing Splits Graphs Algorithm 3: 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} 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*
{
"@context": "http://schema.org",
"@type": "ImageObject",
"contentUrl": "http://images.slideplayer.com/12/3389391/slides/slide_28.jpg",
"name": "28 Constructing Splits Graphs Algorithm 3: 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} Algorithm: 1 For each i = 1….",
"description": "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
*

29
29 Constructing Splits Graphs Algorithm 3: 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} 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*
{
"@context": "http://schema.org",
"@type": "ImageObject",
"contentUrl": "http://images.slideplayer.com/12/3389391/slides/slide_29.jpg",
"name": "29 Constructing Splits Graphs Algorithm 3: 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} Algorithm: 1 For each i = 1….",
"description": "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
*

30
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 r_1 r_2 l_yl_1 l_2 r_x e_(i-1)e_i g_i e_(i-1) e_i r_1 r_2 r_x e’_i g_i l_1 l_2 l_y l_1 l_2 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*
{
"@context": "http://schema.org",
"@type": "ImageObject",
"contentUrl": "http://images.slideplayer.com/12/3389391/slides/slide_30.jpg",
"name": "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 r_1 r_2 l_yl_1 l_2 r_x e_(i-1)e_i g_i e_(i-1) e_i r_1 r_2 r_x e’_i g_i l_1 l_2 l_y l_1 l_2 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
*

31
31 Constructing Splits Graphs Example: Input: Set of taxa X such that X is circular with respect to ordering. X = (dog, cat, mouse, turtle, parrot) Set of non-trivial splits Sigma_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

32
32 Constructing Splits Graphs Algorithm 1 creates the star: f1 f2 f3 f5 f4 v0 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

33
33 Constructing Splits Graphs f1 f2 f3 f5 f4 v0 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

34
34 Constructing Splits Graphs f1 f2 f3 f5 f4 v0 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

35
35 Constructing Splits Graphs f1 f2 f3 f5 f4 v0 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

36
36 Constructing Splits Graphs f1 f2 f3 f5 f4 v0 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

37
37 Constructing Splits Graphs f1 f2 f3 f5 f4 v0 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

38
38 Constructing Splits Graphs f1 f2 f3 f5 f4 v0 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

39
39 Constructing Splits Graphs f1 f2 f3 f5 f4 v0 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

40
40 Constructing Splits Graphs f1 f2 f3 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) 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)

41
41 Constructing Splits Graphs f1 f2 f3 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 g2 u’3 u’4 g3 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)

42
42 Constructing Splits Graphs f1 f2 f3 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 g2 u’3 u’4 g3 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)

43
43 Constructing Splits Graphs Constructing Non planar Splits Graphs

44
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.

45
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

46
46 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 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}

47
47 Constructing Splits Graphs f1 f2 f3 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 g2 u’3 u’4 g3 g4 g5

48
48 Constructing Splits Graphs f1 f2 f3 f5 f4 v0u’2 v1 v2 v4 v5 v3 g1 u’1 g2 u’3 u’4 g3 g4 g5 split S = {mouse, parrot}/{dog, cat, turtle} Convex Hull of the nodes {mouse, parrot} = H_A

49
49 Constructing Splits Graphs f1 f2 f3 f5 f4 v0u’2 v1 v2 v4 v5 v3 g1 u’1 g2 u’3 u’4 g3 g4 g5 split S = {mouse, parrot}/{dog, cat, turtle} Convex Hull of the nodes {dog, cat, parrot} = H_A’

50
50 Constructing Splits Graphs f1 f2 f3 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 g2 u’3 u’4 g3 g4 g5

51
51 Constructing Splits Graphs f1 f2 f3 f5 f4 v0u’2 v1 v2 v4 v5 v3 g1 u’1 g2 u’3 u’4 g3 g4 g5 split S = {mouse, parrot}/{dog, cat, turtle}

52
52 Constructing Splits Graphs f1 f2 f3 f5 f4 v0u’2 v1 v2 v4 v5 v3 g1 u’1g2 u’3 u’4 g3 g4 g5 split S = {mouse, parrot}/{dog, cat, turtle} For each edge e in the intersection, create a new edge f EtoC(f) = EtoC(e) For each node u in the intersection, create a new node v create an edge f(u,v) EtoC(f) = StoC(S) u’5 u’6 u’7g6 g7

53
53 Constructing Splits Graphs f1 f2 f3 f5 f4 v0u’2 v1 v2 v4 v5 v3 g1 u’1g2 u’3 u’4 g3 g4 g5 split S = {mouse, parrot}/{dog, cat, turtle} S is the partition obtained by removing the brown color edges u’5 u’7g6 u’6 g7

54
54 Constructing Splits Graphs Conclusion

55
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.

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google