170 likes | 180 Views
Learn about the identification and modification of simple separator trees, including insertion, removal, label change, and contract operations.
E N D
Simple separator trees: • We identify with each layer three things: • The decision nodes in that layer • The topology representing this layer • The vertex-subset chosen in this layer to be contracted (IS). • Note that each edge in Ti corresponds to a decision node in layer i. This decision node is connected to one of the following: • A decision node in layer i+1. In this case it is called a dummy node. • Three decision nodes in layer i+1. In this case it is labeled by the internal vertex common to the three edges in Ti+1 corresponding to these nodes. This vertex belongs to the contracted subset (IS) of layer i.
Example of a Simple Separator Tree 5 5 j 3 5 6 3 j 6 IS: {5} 2 j 4 5 3 6 1 2 4 j 6 1 IS: {3} l m 6 j e k f 5 2 d a b c d e f g h i j k l m 3 g i 1 4 a c h IS: {1,2,4,6} b
removal label change Removal+label change • Legend • The right side corresponds to two consecutive layers in the separator tree before insertion/removal. • The left side corresponds to these layers after insertion/removal. • Insertion: • The edge to which the new taxon is attached, is circled. • Insertion results in replacing the target edge with three new edges intersecting in an internal vertex (z) to which the new taxon (x) is attached. • Removal: • The removed taxon is circled. • Removal results in replacing the three edges closest to the removed taxon, with a new edge connecting the two components of the remaining topology. • Insertion/removal operations may result in modifications to IS (circled vertices) in order to maintain its maximality and independence. As a result, some of the following may be modified as well: • The topology in the upper layer • The vertex-labeling of the topology in the upper layer • (changes are highlighted in red)
Case 1: New taxon is added to an edge which is not adjacent to a vertex in IS Changes in IS: add the newly formed internal vertex (z) to IS. Operation induced: None. a b a b No operation Contract(z) No operation a b a z b Add((z,x),(a,b))
Case 2: New taxon is added to an internal edge adjacent to a vertex in IS One of the vertices (a) touched by the target edge is in IS, and one (b) is not. Sub-case 2a: (b) is shallow and has no neighbor in IS. Changes in IS: add (b) to IS. Operation induced: Change label. d z c d b c Change(bz) Contract(a,b) Contract(a) d b a c d b z a c Add((z,x),(a,b))
Case 2: New taxon is added to an internal edge adjacent to a vertex in IS One of the vertices (a) touched by the target edge is in IS, and one (b) is not. Sub-case 2b: (b) is either not shallow, or has a neighbor (d) in IS. Changes in IS: none. Operation induced: Add taxon. b z c b c Add( (z,x),(b,c)) Contract(a,d) Contract(a,d) d b a c d b z a c Add((z,x),(a,b))
Case 3: New taxon is added to an external edge adjacent to a vertex in IS The internal vertex (a) touched by the target edge may no longer be shallow, so it is removed from IS, and the new internal vertex (z) replaces it. We check to see if any of the neighbors of (a) can be added to IS. Sub-case 3a: both neighbors (d,c) of(a) are shallow, and have no other neighbor in IS. Changes in IS: (a) is replaced by (z), (d,c) are added. Operation induced: Remove taxon + Change label. f a e f d c e Remove(c) + Change(da) Contract(z,c,d) Contract(a) f d a c e f d a c e Add((z,x),(a,b)) z b x b
Case 3: New taxon is added to an external edge adjacent to a vertex in IS The internal vertex (a) touched by the target edge may no longer be shallow, so it is removed from IS, and the new internal vertex (z) replaces it. We check to see if any of the neighbors of (a) can be added to IS. Sub-case 3b: only one neighbor (d) of(a) is shallow and has no other neighbor in IS. Changes in IS: (a) is replaced by (z), (d) is added. Operation induced: Change label. f a c f d c Change(da) Contract(z,d,e) Contract(a,e) f d a c e f d a c e Add((z,x),(a,b)) z b x b
Case 3: New taxon is added to an external edge adjacent to a vertex in IS The internal vertex (a) touched by the target edge may no longer be shallow, so it is removed from IS, and the new internal vertex (z) replaces it. We check to see if any of the neighbors of (a) can be added to IS. Sub-case 3c: both neighbors (d,c) of(a) are either not shallow, or have other neighbors (f,e) in IS. Changes in IS: (a) is replaced by (z). Operation induced: Add taxon. d a c d c Add((a,b),(c,d)) Contract(z,e,f) Contract(a,e,f) f d a c e f d a c e Add((z,x),(a,b)) z b x b
Case 1: Removed internal vertex isin IS The removed internal vertex (a) is removed from IS. We check to see if any of the neighbors of (a) can be added to IS. Sub-case 1a: one neighbor (b) of(a) is shallow and has no other neighbor in IS. If (b) has its label changed to ‘f’: Changes in IS: (a) is replaced by (f). Operation induced: None. If (c) has its label changed to ‘f’: Changes in IS: (a) is replaced by (b). Operation induced: Change label cf. d c Remove(b) d b c f d Remove(b) + Change(cf) Contract(f,e) Contract(b,e) Contract(a,e) d f c e a d b c e Remove(a) + Change(bf) b d e f Remove(a) + Change(cf)
Case 1: Removed internal vertex isin IS The removed internal vertex (a) is removed from IS. We check to see if any of the neighbors of (a) can be added to IS. Sub-case 1b: both neighbors (b,c) of(a) are either not shallow, or have other neighbors (d,e) in IS. Changes in IS: (a) is removed from IS. Operation induced: Change label. f c b c Change(bf) Contract(d,e) Contract(a,d,e) a d b c e d f c e Remove(a) + Change(bf)
Case 2: Removed internal vertex has one neighbor in IS. The removed internal vertex (a) has one neighbor (c) in IS, and one neighbor (b) not. IS remains independent and maximal. If (b) has its label changed to ‘f’: Changes in IS: None. Operation induced: Remove taxon + Change label If (c) has its label changed to ‘f’: Changes in IS: None (except for label change). Operation induced: Remove taxon. f Remove(a) + Change(bf) b b a Contract(c) Remove(a) Contract(f) Contract(c) a b c f c Remove(a) + Change(bf) b f Remove(a) + Change(cf)
Case 3: Removed internal vertex has two neighbor in IS. The removed internal vertex (a) has two neighbors (b,c) in IS. In order to maintain IS independent we remove one of them (c) [whose label didn’t change] from IS. We check to see if its other neighbor (e) may be added to IS instead. Sub-case 3a: (e) is shallow and has no neighbor in IS. Changes in IS: (c) is replaced by (e) (and label change). Operation induced: Remove taxon + Change label Remove(e) + Change(ac) d c d a e Contract(g,e) Contract(b,c) a d b c e d g c e Remove(a) + Change(bg)
Case 3: Removed internal vertex has two neighbor in IS. The removed internal vertex (a) has two neighbors (b,c) in IS. In order to maintain IS independent we remove one of them (c) [whose label didn’t change] from IS. We check to see if its other neighbor (e) may be added to IS instead. Sub-case 3b: (e) is either not shallow or has a neighbor (f) in IS. Changes in IS: (c) is removed (and label change). Operation induced: Change label Change(ac) d c e d a e Contract(g,f) Contract(b,c,f) a d b c e f d g c e f Remove(a) + Change(bg)