Post on 18-Dec-2015
The Breakpoint Graph
1 5 -2 -4 3
The Breakpoint Graph
• Augment with 0 = n+1
6 1 5 -2 -4 3 0
The Breakpoint Graph
• Augment with 0 = n+1• Vertices 2i, 2i-1 for each i
6 1 5 -2 -4 3 0
11 2 1 9 10 3 4 8 7 6 5 0
The Breakpoint Graph
• Augment with 0 = n+1• Vertices 2i, 2i-1 for each i • Blue edges between adjacent vertices
6 1 5 -2 -4 3 0
11 2 1 9 10 3 4 8 7 6 5 0
12,2 1 ii
The Breakpoint Graph
• Augment with 0 = n+1• Vertices 2i, 2i-1 for each i • Blue edges between adjacent vertices• Red edges between consecutive labels 2i,2i+1
6 1 5 -2 -4 3 0
11 2 1 9 10 3 4 8 7 6 5 0
12,2 1 ii
11 2 1 9 10 3 4 8 7 6 5 0
11 10 9 8 7 6 5 4 3 2 1 0
into n+1 trivial cycles
Sort a given breakpoint graph
11 2 1 9 10 3 4 8 7 6 5 0
Sort a given breakpoint graph
Conclusion: We want to increase number of cycles
11 10 9 8 7 6 5 4 3 2 1 0
into n+1 trivial cycles
Def:A reversal acts on two blue edges
cutting them and re-connecting them
11 2 1 9 10 3 4 88 77 6 5 0
11 2 1 9 10 3 4 77 88 6 5 0
A reversal can either
Act on two cycles, joining them (bad!!)
11 2 1 9 10 3 4 88 77 6 5 0
11 2 1 9 10 3 4 77 88 6 5 0
A reversal can either
Act on one cycle, changing it (profitless)
11 2 1 9 10 3 4 88 77 6 5 0
11 2 1 5 66 7 8 4 3 10 9 0
A reversal can either
Act on one cycle, splitting it (good move)
11 2 1 9 10 3 4 88 77 6 5 0
11 10 9 1 2 3 4 88 77 6 5 0
Basic Theorem
)(1)( cnd
Where d=#reversals needed (reversal distance),
and c=#cycles.
Proof: Every reversal changes c by at most 1.
(Bafna, Pevzner 93)
)(1)( cnd
Where d=#reversals needed (reversal distance),
and c=#cycles.
Proof: Every reversal changes c by at most 1.
Alternative formulation:
where b=#breakpoints, and c ignores short cycles
)()()( cbd
Basic Theorem(Bafna, Pevzner 93)
Right-to-Right
Left-to-Left
Left-to-Right
Right-to-Left
Red edges can be :
Oriented{
Unoriented{
Oriented Edges
Right-to-Right
Left-to-Left
Left-to-Right
Right-to-Left
Red edges can be :
Oriented{
Unoriented{Def:This reversal acts on the red edge
Oriented Edges
Right-to-Right
Left-to-Left
Left-to-Right
Right-to-Left
Red edges can be :
Oriented{
Unoriented{Def:This reversal acts on the red edge
Oriented Edges
Thm: A reversal acting on a red edge is good the edge is oriented
Def: Two red edges are said to be overlapping if they span intersecting intervals which do not contain one another.
Overlapping Edges
Overlapping Edges
Def: Two red edges are said to be overlapping if they span intersecting intervals which do not contain one another The lines intersect
Thm: A reversal acting on a red edge flips the orientation of all edges overlapping it, leaving other orientations unchanged
Overlapping Edges
Def: Two red edges are said to be overlapping if they span intersecting intervals which do not contain one another The lines intersect
Thm: if e,f,g overlap each other, then after applying a reversal that acts on e, f and g do not overlap
Overlapping Edges
Def: Two red edges are said to be overlapping if they span intersecting intervals which do not contain one another The lines intersect
Overlap Graph
Nodes correspond to red edges.Two nodes are connected by an arc if they overlap
Overlap Graph
Def:Unoriented connected components in the overlap graph - all nodes correspond to oriented edges.
Nodes correspond to red edges.Two nodes are connected by an arc if they overlap
Overlap Graph
Def:Unoriented connected components in the overlap graph - all nodes correspond to oriented edges.
Cannot be solved in only good moves
Nodes correspond to red edges.Two nodes are connected by an arc if they overlap
Dealing with Unoriented Components
• A profitless move on an oriented edge, making its component to oriented
Dealing with Unoriented Components
• A profitless move on an oriented edge, making its component to oriented
or:
• A bad move (reversal) joining cycles from different unoriented components, thus merging them flipping the orientation of many components on the way
Merging Unoriented Components
Merging Unoriented Components
Merging Unoriented Components
Merging Unoriented Components
Hurdles
• Def:Hurdle - an unoriented connected component which is consecutive along the cycle
Hurdles
d b c h( ) ( ) ( ) ( )
• Def:Hurdle - an unoriented connected component which is consecutive along the cycle
• Thm: (Hannenhalli, Pevzner 95)
Proof: A hurdle is destroyed by a profitless move, or
at most two are destroyed (merged) by a bad move.
Hurdles
• Def:Hurdle - an unoriented connected component which is consecutive along the cycle
• Thm: (Hannenhalli, Pevzner 95)
Proof: A hurdle is destroyed by a profitless move, or
at most two are destroyed (merged) by a bad move.
• Thm:
d b c h( ) ( ) ( ) ( )
d b c h f f( ) ( ) ( ) ( ) ( ), ( ) { , } 0 1