Presentation is loading. Please wait.

Presentation is loading. Please wait.

IPSep-CoLa: The choice of a new generation (of graph visualisation enthusiasts) Tim Dwyer – Monash University, Australia Yehuda Koren – AT&T Research Kim.

Similar presentations


Presentation on theme: "IPSep-CoLa: The choice of a new generation (of graph visualisation enthusiasts) Tim Dwyer – Monash University, Australia Yehuda Koren – AT&T Research Kim."— Presentation transcript:

1 IPSep-CoLa: The choice of a new generation (of graph visualisation enthusiasts) Tim Dwyer – Monash University, Australia Yehuda Koren – AT&T Research Kim Marriott – Monash University IPSep-CoLa: an Incremental Procedure for Separation- Constraint Layout of graphs

2 (x 1,y 1 ) (x 2,y 2 ) (x 3,y 3 ) w1w1 w2w2 h2h2 h3h3 Constraint-based Graph Layout Separation constraints: x 1 +d ≤ x 2, y 1 +d ≤ y 2 can be used with force-directed layout to impose certain spacing requirements In this talk we present: –A fast algorithm to perform stress-majorization layout subject to separation constraints –Applications of constrained graph layout x 1 + ≤ x 2 (w 1 +w 2 ) 2 y 3 + ≤ y 2 (h 2 +h 3 ) 2

3 Constraints are not springies, they must be satisfied Springies are a modification of the goal function Constraints (in the OR sense) are separate (in)equalities subject to which the original goal function is optimised Springies: –Sugiyama and Misue (1995), Ryal et al. (1997), etc… Constraints: –He and Marriott (1998); Dwyer and Koren (2005); Dwyer, Koren and Marriott (2006) Constraint-based Graph Layout

4 “Unix” Graph data From www.graphviz.org

5 Downward-pointing edge constraints Constraint-layout in an interactive system

6 Page-boundary constraints Constraint-layout in an interactive system

7 Non-overlap constraints Constraint-layout in an interactive system

8 Alignment constraints Constraint-layout in an interactive system

9 Stress Majorisation stress(X) stress(X ) = Minimise a quadratic function in each axis of drawing f(x) = ½ x T A x + x T b f(y) = ½ y T A y + y T b X* x* y* x* y*

10 Constrained stress majorization stress(X) Instead of solving unconstrained quadratic forms we solve subject to separation constraints i.e. Quadratic Programming X* x* y* x* y*

11 Gradient projection g = 2 A x + b x′ = x – s g s = g T g g T A g -g -sg x x′x′

12 x′ = project( x – s g ) Gradient projection g = 2 A x + b x′ = x – s g s = g T g g T A g x -sg x′x′

13 x′ = project( x – s g ) Gradient projection g = 2 A x + b s = g T g g T A g x x′x′ d = x′ – x d αdαd x′′ = x + α d x′′x′′ α = min( -g T d d T A d, 1)

14 x x′ = project( x – s g ) Gradient projection g = 2 A x + b s = g T g g T A g d = x′ – x x′′ = x + α d x* α = min( -g T d d T A d, 1)

15 Projection operation Is itself a quadratic program: Solve with active-set style method: –Move each x i to u i –Build blocks of active constraints: Find most violated constraint x k +d ≤ x l Add to any existing block B involving x k or x l (and satisfy) b d a c e u subj to: x k +d ≤ x l uiui

16 –Move each x i to u i –Build blocks of active constraints: Find most violated constraint x k +d ≤ x l Add to any existing block B involving x k or x l (and satisfy) Move B to average position of constituent vars: Projection operation Is itself a quadratic program: Solve with active-set style method: b d a c e subj to: x k +d ≤ x l uiui u

17 Projection operation b d a c e –Move each x i to u i –Build blocks of active constraints: Find most violated constraint x k +d ≤ x l Add to any existing block B involving x k or x l (and satisfy) Move B to average position of constituent vars: Is itself a quadratic program: Solve with active-set style method: etc… subj to: x k +d ≤ x l uiui u

18 Projection operation b d a c e –Move each x i to u i –Build blocks of active constraints: Find most violated constraint x k +d ≤ x l Add to any existing block B involving x k or x l (and satisfy) Move B to average position of constituent vars: Is itself a quadratic program: Solve with active-set style method: etc… subj to: x k +d ≤ x l uiui u

19 Projection operation b d a c e –Move each x i to u i –Build blocks of active constraints: Find most violated constraint x k +d ≤ x l Add to any existing block B involving x k or x l (and satisfy) Move B to average position of constituent vars: Is itself a quadratic program: Solve with active-set style method: etc… subj to: x k +d ≤ x l uiui u

20 Projection operation: incremental Block structure is preserved between projection operations Before each projection previous blocks are checked for split points (ensures convergence) b d a c e

21 Projection operation: incremental Block structure is preserved between projection operations Before each projection previous blocks are checked for split points (ensures convergence) In next projection blocks will be moved as one to new weighted average desired positions b d a c e

22 Projection operation: special case It can happen that the most violated constraint can have both ends in the same block! b d a c e

23 Projection operation: special case It can happen that the most violated constraint can have both ends in the same block! Need to split the block before inserting the violated constraint b d a c e

24 Projection operation: special case It can happen that the most violated constraint can have both ends in the same block! Need to split the block before inserting the violated constraint But you have to be careful… b d a c e

25 Projection operation: special case When inserting a constraint, if you don’t choose the split point carefully cycling can occur! b d a c ef h i g … … … … … …

26 Projection operation: special case When inserting a constraint, if you don’t choose the split point carefully cycling can occur! b d a c ef h i g … … … … … …

27 Projection operation: special case When inserting a constraint, if you don’t choose the split point carefully cycling can occur! b d a c ef h i … … … … … g …

28 Projection operation: special case When inserting a constraint, if you don’t choose the split point carefully cycling can occur! b d a c ef h i g … … … … … …

29 Projection operation: special case When inserting a constraint, if you don’t choose the split point carefully cycling can occur! b d a c ef h i g … … … … … …

30 Projection operation: special case When inserting a constraint, if you don’t choose the split point carefully cycling can occur! b d a c ef h i … … … … … g …

31 Running time

32 Drawing large directed graphs Unconstrained layout 1,142 crossings Stress=39,954

33 Sugiyama-style layout 6,148 crossings Drawing large directed graphs

34 DiG-CoLa 7,600 crossings Stress=74,894 Drawing large directed graphs

35 IPSep-CoLa 3,617 crossings Stress=49,035 Drawing large directed graphs

36 More applications Non-overlapping clusters Original figure, courtesy Stephen J. Brams

37 Prevent overlaps between labels in MDS plots (DMDS)

38 Multi-dimensional scaling with clusters

39 Further work Make it faster –e.g. scaled gradient projection Approximating arbitrary linear constraints with separation constraints –To straighten bendy edges See: Dwyer, Marriott and Wybrow GD’2006 –To allow convex-hull clusters

40 Conclusion Separation constraints allow us to impose application specific requirements on stress-majorization layout We can do a lot of new things that previously could only be approximated with potentially unstable springies You can download an LGPLed C++ library implementation (adaptagrams.sf.net), or play with it in neato (www.graphviz.org) or Inkscape (www.inkscape.org)adaptagrams.sf.netwww.graphviz.orgwww.inkscape.org We’d love to collaborate with you to find more applications –contact: Tim.Dwyer@infotech.monash.edu.au


Download ppt "IPSep-CoLa: The choice of a new generation (of graph visualisation enthusiasts) Tim Dwyer – Monash University, Australia Yehuda Koren – AT&T Research Kim."

Similar presentations


Ads by Google