Title: Fast Node Overlap Removal
1Fast Node Overlap Removal
- Tim Dwyer¹
- Kim Marriott¹
- Peter J. Stuckey²
¹Monash University ²The University of
Melbourne Victoria, Australia
2Overlap removal by layout adjustment
3Mental Map Model (Misue et al. 1995)
- Orthogonal Ordering
- Proximity Relations
- Topology
1
1
2
2
3
3
4Past work Force methods
- Force Scan Algorithm Misue et al. 1995
- (Improved) Push Force Scan Hayashi et al. 1998
- Others Huang and Lai 2002, Li et al. 2004
Derivation of Overlap Force by Misue et al.
1995
5Past work Cluster busting
- Voronoi Cluster Busting Lyons et al. 1998
- Applied to node overlap removal by Gansner and
North 1998
Voronoi Diagram
Overlap removal by neato (www.graphviz.org)
6Constrained optimization approach He and
Marriott 1998
- Cost of modifying original layout
(x0,y0)
7Quadratic programming heuristic
- 1. Generate horizontal no-overlap constraints
8Our contribution
- New constraint generation algorithm
- O(n) constraints
- O(n log n) time
- New solver algorithm
- High quality near optimal solution O(n log n)
time - Optimal solution with simple extension
9Generating non-overlap constraints
c
- Vertical sweep tocreate horizontalconstraints
a
b
c
b
d
b
a
a
c
d
b
10Generating non-overlap constraints
c
- Vertical sweep tocreate horizontalconstraints
a
b
- If nodes overlap more horizontally than
vertically skip
d
- Remaining overlaps handled by vertical
constraints
11Generating non-overlap constraints
- Two strategies for checking neighbours
- Two strategies for checking neighbours
- 1. Immediate neighbours only
- Two strategies for checking neighbours
- 1. Immediate neighbours only
- 2. List of all overlapping neighbours
12Generating non-overlap constraints
- Open list uses red-black tree
- O(log n) insert, remove, next_left, next_right
operations - Up to kn constraints in x-dimension, 2n
constraints in y-dimension - O(n log n) time assuming k is bounded
13Solving separation constraints
- Objective function
- minimize
- subject to C
- where each c?C has form left(c) gap(c)
right(c) - where gap(c) ½ (left(c).size right(c).size)
- Separation constraints form DAG over variables
d
a
c
b
e
a
d
e
c
b
14Approximate feasible solution
- Create blocks by merging across violated
constraints
15Approximate feasible solution
- May need to merge backwards
16Merge complexity
- Significant costs
- Initial total order O(VC) by depth-first
search - Maintaining block in and out constraint priority
queues - We use pairing heaps
- O(1) insert, findMax, merge
- O(log n) deleteMax (amortised)
- Cost of copying variables between blocks
- We always copy the smaller block to the larger
- We assume
- C prop. to kV
- bounded k
- O(n log n).
17Approximate feasible solution
- Solution after merging may not be optimal
18Optimal solution
- Need to split blocks to improve solution
- Within blocks we have a tree of active
constraints
b
c
a
d
- Do the sub-blocks on either side of each
constraint want to move apart?
19Optimal solution
- By placing blocks at their weighted average
position we minimize - such that
-
- So summing partial derivatives to one side of
each constraint c gives us the Lagrange
multiplier ?c - ?clt 0 means we can split across c
20Optimal solution
- Splitting may trigger further merging in each
direction
- Optimal solution when for all active c, ?c 0
21Results
22(No Transcript)
23(No Transcript)