Algorithms for Graph Visualization Flow Methods: Orthogonal Layout
Total Page:16
File Type:pdf, Size:1020Kb
Algorithms for Graph Visualization Flow Methods: Orthogonal Layout INSTITUT FUR¨ THEORETISCHE INFORMATIK · FAKULTAT¨ FUR¨ INFORMATIK Tamara Mchedlidze 18.01.2018 1 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Orthogonal Layout • Edges consist of vertical and horizontal segments • Applied in many areas ER diagram in OGDF UML diagram by Oracle Organigram of HS Limburg Circuit diagram by Jeff Atwood 2 - 1 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Orthogonal Layout • Edges consist of vertical and horizontal segments • Applied in many areas Aesthetic functions? ER diagram in OGDF UML diagram by Oracle Organigram of HS Limburg Circuit diagram by Jeff Atwood 2 - 2 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Orthogonal Layout • Edges consist of vertical and horizontal segments • Applied in many areas Aesthetic functions: • number of bends • length of edges • ER diagram in OGDF width, height, area • monotonicity of edges UML diagram by Oracle • ... Organigram of HS Limburg Circuit diagram by Jeff Atwood 2 - 3 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen (Planar) Orthogonal Drawings Three-step approach: Topology { Shape { Metrics [Tamassia SIAM J. Comput. 1987] V = fv1; v2; v3; v4g E = fv1v2; v1v3; v1v4; v2v3; v2v4g 3 - 1 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen (Planar) Orthogonal Drawings Three-step approach: Topology { Shape { Metrics [Tamassia SIAM J. Comput. 1987] V = fv1; v2; v3; v4g E = fv1v2; v1v3; v1v4; v2v3; v2v4g combinatorial embedding/ planarization 4 3 Reduce Crossings 2 1 3 - 2 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen (Planar) Orthogonal Drawings Three-step approach: Topology { Shape { Metrics [Tamassia SIAM J. Comput. 1987] V = fv1; v2; v3; v4g E = fv1v2; v1v3; v1v4; v2v3; v2v4g combinatorial embedding/ planarization 4 4 3 Bend Minimization Reduce Crossings 1 3 2 orthogonal 1 representation 2 3 - 3 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen (Planar) Orthogonal Drawings Three-step approach: Topology { Shape { Metrics [Tamassia SIAM J. Comput. 1987] 4 V = fv1; v2; v3; v4g 3 E = fv1v2; v1v3; v1v4; v2v3; v2v4g 1 combinatorial 2 embedding/ planar planarization Area- orthogonal minimization 4 drawing 4 3 Bend Minimization Reduce Crossings 1 3 2 orthogonal 1 representation 2 3 - 4 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen (Planar) Orthogonal Drawings Three-step approach: Topology { Shape { Metrics [Tamassia SIAM J. Comput. 1987] 4 V = fv1; v2; v3; v4g 3 E = fv1v2; v1v3; v1v4; v2v3; v2v4g 1 combinatorial 2 embedding/ planar planarization Area- orthogonal minimization 4 drawing 4 3 Bend Minimization Reduce Crossings 1 3 2 orthogonal 1 representation 2 3 - 5 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Orthogonal Representation Given: planar Graph G = (V; E), set of faces F, outer face f0 Find: orthogonale representation H(G) = fH(f) j f 2 Fg Face representation H(f): of f is a clockwise* ordered sequence of edge descriptions (e; δ; α) with • e edge of f • δ is sequence of f0; 1g∗ (0 = right bend, 1 = left bend) • π 3π 0 α is angle 2 f 2 ; π; 2 ; 2πg between e and next edge e 4 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Orthogonal Representation: Example π 3π π H(f0) = ((e1; 11; 2 ); (e5; 111; 2 ); (e4; ;; π); (e3; ;; π); (e2; ;; 2 )) 3π π H(f1) = ((e1; 00; 2 ); (e2; ;; 2 ); (e6; 00; π)) π π π H(f2) = ((e5; 000; 2 ); (e6; 11; 2 ); (e3; ;; π); (e4; ;; 2 )) e3 f e2 0 Combinatorial \drawing" of H(G)? f1 f2 e4 e6 e1 e5 5 - 1 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Orthogonal Representation: Example π 3π π H(f0) = ((e1; 11; 2 ); (e5; 111; 2 ); (e4; ;; π); (e3; ;; π); (e2; ;; 2 )) 3π π H(f1) = ((e1; 00; 2 ); (e2; ;; 2 ); (e6; 00; π)) π π π H(f2) = ((e5; 000; 2 ); (e6; 11; 2 ); (e3; ;; π); (e4; ;; 2 )) 1 e1 1 f0 0 0 1 e2 e3 e4 e e 3 0 f0 2 0 f1 0 f1 f2 e4 e 1 f2 e6 1 6 e1 0 0 e5 1 e5 1 5 - 2 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Orthogonal Representation: Example π 3π π H(f0) = ((e1; 11; 2 ); (e5; 111; 2 ); (e4; ;; π); (e3; ;; π); (e2; ;; 2 )) H(f ) = ((e ; 00; 3π ); (e ; ;; π ); (e ; 00; π)) 1 1 2 2 2 6 is f0 listed wrongly!? π π π H(f2) = ((e5; 000; 2 ); (e6; 11; 2 ); (e3; ;; π); (e4; ;; 2 )) 1 e1 1 f0 0 0 1 e2 e3 e4 e e 3 0 f0 2 0 f1 0 f1 f2 e4 e 1 f2 e6 1 6 e1 0 0 e5 1 e5 1 5 - 3 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Orthogonal Representation: Example π 3π π H(f0) = ((e1; 11; 2 ); (e5; 111; 2 ); (e4; ;; π); (e3; ;; π); (e2; ;; 2 )) 3π π H(f1) = ((e1; 00; 2 ); (e2; ;; 2 ); (e6; 00; π)) π π π H(f2) = ((e5; 000; 2 ); (e6; 11; 2 ); (e3; ;; π); (e4; ;; 2 )) 1 e1 1 f0 0 0 π π e2 e3 π e4 3π 1 2 π 3π 2 π e3 π π π π π 2 e 0 2 2 2 2 2 f0 2 0 f1 0 f1 f2 e4 e 1 f2 e6 1 6 e1 0 0 e5 1 e5 1 5 - 4 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Orthogonal Representation: Example π 3π π H(f0) = ((e1; 11; 2 ); (e5; 111; 2 ); (e4; ;; π); (e3; ;; π); (e2; ;; 2 )) 3π π H(f1) = ((e1; 00; 2 ); (e2; ;; 2 ); (e6; 00; π)) π π π H(f2) = ((e5; 000; 2 ); (e6; 11; 2 ); (e3; ;; π); (e4; ;; 2 )) 1 e1 1 f0 π 0 0 2 π π π e2 e3 π e4 3π 1 0 3π 2 π e3 2 π π π π 2 e 2 2 2 2 f0 2 f1 f1 f2 e4 0 0 f2 e6 1 e6 1 e1 0 0 e5 1 e5 1 5 - 5 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Orthogonal Representation: Example π 3π π H(f0) = ((e1; 11; 2 ); (e5; 111; 2 ); (e4; ;; π); (e3; ;; π); (e2; ;; 2 )) 3π π H(f1) = ((e1; 00; 2 ); (e2; ;; 2 ); (e6; 00; π)) π π π H(f2) = ((e5; 000; 2 ); (e6; 11; 2 ); (e3; ;; π); (e4; ;; 2 )) 1 e1 1 f0 π 0 0 2 π π π e2 e3 π e4 3π 1 0 3π 2 π e3 2 π π π π 2 e 2 2 2 2 f0 2 f1 f1 f2 e4 0 0 f2 e6 1 e6 1 e1 0 0 e5 1 e5 1 concrete coordinates are not fixed yet! 5 - 6 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Correctness of an Orthogonal Representation (H1) H(G) corresponds to F; f0 6 - 1 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Correctness of an Orthogonal Representation (H1) H(G) corresponds to F; f0 (H2) for an edge fu; vg shared by faces f and g with ((u; v); δ1; α1) 2 H(f) and ((v; u); δ2; α2) 2 H(g) sequence δ1 is reverced and inverted δ2 6 - 2 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Correctness of an Orthogonal Representation (H1) H(G) corresponds to F; f0 (H2) for an edge fu; vg shared by faces f and g with ((u; v); δ1; α1) 2 H(f) and ((v; u); δ2; α2) 2 H(g) sequence δ1 is reverced and inverted δ2 (H3) Let jδj0 (resp. jδj1) be the number of zeros (resp. ones) in δ and r = (e; δ; α). For C(r) := jδj0 − jδj1 + 2 − 2α/π holds X X that: C(r) = 4 for f 6= f0 and C(r) = −4 r2H(f) r2H(f0) 6 - 3 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Correctness of an Orthogonal Representation (H1) H(G) corresponds to F; f0 (H2) for an edge fu; vg shared by faces f and g with ((u; v); δ1; α1) 2 H(f) and ((v; u); δ2; α2) 2 H(g) sequence δ1 is reverced and inverted δ2 (H3) Let jδj0 (resp. jδj1) be the number of zeros (resp. ones) in δ and r = (e; δ; α). For C(r) := jδj0 − jδj1 + 2 − 2α/π holds X X that: C(r) = 4 for f 6= f0 and C(r) = −4 r2H(f) r2H(f0) (H4) For each node v the summ of incident angles is 2π 6 - 4 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Correctness of an Orthogonal Representation (H1) H(G) corresponds to F; f0 (H2) for an edge fu; vg shared by faces f and g with ((u; v); δ1; α1) 2 H(f) and ((v; u); δ2; α2) 2 H(g) sequence δ1 is reverced and inverted δ2 (H3) Let jδj0 (resp. jδj1) be the number of zeros (resp. ones) in δ and r = (e; δ; α). For C(r) := jδj0 − jδj1 + 2 − 2α/π holds X X that: C(r) = 4 for f 6= f0 and C(r) = −4 r2H(f) r2H(f0) (H4) For each node v the summ of incident angles is 2π Pair, think and share: 5 min What does the condition (H3) mean intuitively? 6 - 5 Dr. Tamara Mchedlidze · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen Bend Minization with Given Embedding Problem: Geometric Bend Minimization Given: • planar Graph G = (V; E) with maximum degree 4 • combinatorial embedding F and outer face f0 Find: orthogonal drawing with minimum number of bends that preserves the embedding 7 - 1 Dr.