(A fast quadratic program solver for) Stress Majorization with Orthogonal Ordering Constraints Tim Dwyer 1 Yehuda Koren 2 Kim Marriott 1 1 Monash University, Victoria, Australia 2 AT&T - Research
Orthogonal order preserving layout
Orthogonal order preserving layout New South Wales rail network
Graph layout by Stress Majorization Stress Majorization in use in MDS applications for decades – e.g. de Leeuw 1977 “Reintroduced” to graph-drawing community by Gansner et al Features: – Monotonic convergence – Better handling of weighted edges (than Kamada-Kawai 1988) – Addition of constraints by quadratic programming (Dwyer and Koren 2005) Today we introduce: – A fast quadratic programming algorithm for a simple class of constraints
Layout by Stress Majorization Stress function: -w 12 -w 1n -w 2n … … Σ i≠1 w 1i Σ i≠2 w 2i … Σ i≠n w in Constant terms Quadratic coefficients Linear coefficients
Layout by Stress Majorization Iterative algorithm: Take Z=X t Find X t+1 by solving F Z (X t+1 ) t=t+1 Converges on local minimum of overall stress function Stress function:
Quadratic Programming At each iteration, in each dimension we solve: x T A x – 2 x T A Z Z (a) b T = 2 A Z Z (a) x T A x – b x min x subject to: C x ≥ d
Orthogonal Ordering Constraints
QP with ordering constraints x T A x – b x min x subject to: C x ≥ d u3u3 u2u2 u1u1
Gradient projection g = 2 A x + b x′ = x – s g s = g T g g T A g -g -sg x x′x′
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′
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′′ α = max( g T d d T A d, 1)
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* α = max( g T d d T A d, 1)
Projection Algorithm Sort within levels For each boundary: Find most violating nodes Repeat: Compute average position p Find nodes in violation of p Until all satisfied
Projection Algorithm Sort within levels For each boundary: Find most violating nodes Repeat: Compute average position p Find nodes in violation of p Until all satisfied
Complexity Projection: O( mn + n log n ) – m: levels – n: nodes Computing gradient and step-size: O( n 2 ) Gradient Projection iteration: O( n 2 ) Same as for conjugate-gradient
Applications – directed graphs
Orthogonal order preserving layout New South Wales rail network
Orthogonal order preserving layout Internet backbone network
Running Time
Further work Experiment with other constrained optimisation techniques Other applications – Using more general linear constraints – Constraints regenerated at each iteration