Part I: Graph Drawing – An Introduction
Alexander Wolff Lehrstuhl fur¨ Informatik I Universit¨at Wurzburg¨
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Part I: Graph Drawing – An Introduction
Alexander Wolff Lehrstuhl fur¨ Informatik I Universit¨at Wurzburg¨
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Part I: Graph Drawing – An Introduction
Alexander Wolff Lehrstuhl fur¨ Informatik I Universit¨at Wurzburg¨
BandyopadhyayChakrabortyGovindarajanKrishn enduMukhopadhyayaMukhopadhyayVenkateshx
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Part I: Graph Drawing – An Introduction
Alexander Wolff Lehrstuhl fur¨ Informatik I Universit¨at Wurzburg¨
BandyopadhyayChakrabortyGovindarajanKrishn enduMukhopadhyayaMukhopadhyayVenkateshx WurzburgG¨ ¨ottingenSch¨obelKarlsruheSaarbruck¨ enGoerikHoeferKaiserslauternFrankfurtM¨ohring Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Part I: Graph Drawing – An Introduction
Alexander Wolff Lehrstuhl fur¨ Informatik I Universit¨at Wurzburg¨
BandyopadhyayChakrabortyGovindarajanKrishn enduMukhopadhyayaMukhopadhyayVenkateshx WurzburgG¨ ¨ottingenSch¨obelKarlsruheSaarbruck¨ enGoerikHoeferKaiserslauternFrankfurtM¨ohring Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Wurzburg???¨ pronounce: [Vurtsburk]¨
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Wurzburg???¨ pronounce: [Vurtsburk]¨
. . . baroque architecture!
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Wurzburg???¨ pronounce: [Vurtsburk]¨
. . . good beer!
. . . baroque architecture!
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Wurzburg???¨ pronounce: [Vurtsburk]¨
. . . good beer! . . . Franconian wines!
. . . baroque architecture!
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Location
Eindhoven 2011
Stiˇr´ınˇ (Prague) 1999 Karlsruhe 2006 Passau 1995
Vienna 200? Konstanz 2010
Bordeaux 2013
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Location
Eindhoven 2011
ˇ Wurzburg¨ 2014 Stiˇr´ın (Prague) 1999 Karlsruhe 2006 Passau 1995
Vienna 200? Konstanz 2010
Bordeaux 2013
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Location
From Frankfurt Airport: 90 min by train
Eindhoven 2011
Frankfurt
ˇ Wurzburg¨ 2014 Stiˇr´ın (Prague) 1999 Karlsruhe 2006 Passau 1995
Vienna 200? Konstanz 2010
Bordeaux 2013
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Location
From Frankfurt Airport: 90 min by train From Munich Airport: Eindhoven 3 hrs by train 2011
Frankfurt
ˇ Wurzburg¨ 2014 Stiˇr´ın (Prague) 1999 Karlsruhe 2006 Passau 1995
Munich Vienna 200? Konstanz 2010
Bordeaux 2013
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Table of Contents
Reduction of Network Visualization to its algorithmic core problems Today, here: Models, problems, few algorithms, and even fewer proofs
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Table of Contents
Reduction of Network Visualization to its algorithmic core problems Today, here: Models, problems, few algorithms, and even fewer proofs
Part I Introduction: Notation, “Definition”, Examples
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Graph Drawing
Exciting young research direction Interesting mixture of combinatorics, geometry, algorithms International Symposium on Graph Drawing 2012: Redmond, WA, U.S.A. – 20th anniversary! 2013: Bordeaux, France 2014: Wurzburg,¨ Germany 2015: Northridge near L.A., U.S.A. 2016: Athens, Greece Dagstuhl seminars roughly every two years Bertinoro workshops every year
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Literature
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Graph Representations
What is a graph?
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Graph Representations
What is a graph? Tuple G = (V , E) Vertex set V = {v1, ... , vn} Edge set E = {e1, ... , em}
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Graph Representations
What is a graph? Tuple G = (V , E) Vertex set V = {v1, ... , vn} Edge set E = {e1, ... , em} Representation?
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Graph Representations
What is a graph? Tuple G = (V , E) Vertex set V = {v1, ... , vn} Edge set E = {e1, ... , em} Representation? V = {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10} Set notation E = {{v1, v2}, {v1, v8}, {v2, v3}, {v3, v5}, {v3, v9}, {v3, v10}, {v4, v5}, {v4, v6}, {v4, v9}, {v5, v8}, {v6, v8}, {v6, v9}, {v7, v8}, {v7, v9}, {v8, v10}, {v9, v10}}
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Graph Representations
What is a graph? Tuple G = (V , E) Vertex set V = {v1, ... , vn} Edge set E = {e1, ... , em} Representation? v1 : v2, v8 v2 : v1, v3 Set notation v3 : v2, v5, v9, v10 v4 : v5, v6, v9 Adjacency lists v5 : v3, v4, v8 v6 : v4, v8, v9 v7 : v8, v9 v8 : v1, v5, v6, v7, v9, v10 v9 : v3, v4, v6, v7, v8, v10 v10 : v3, v8, v9
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Graph Representations
What is a graph? Tuple G = (V , E) Vertex set V = {v1, ... , vn} Edge set E = {e1, ... , em} Representation? 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 Set notation 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 Adjacency lists 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 Adjacency matrix 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 0
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Graph Representations
What is a graph? Tuple G = (V , E) Vertex set V = {v1, ... , vn} Edge set E = {e1, ... , em} Representation? Set notation Adjacency lists Adjacency matrix Drawing
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Graph Representations
What is a graph? Tuple G = (V , E) Vertex set V = {v1, ... , vn} Edge set E = {e1, ... , em} Representation? Set notation Adjacency lists Adjacency matrix Drawing
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Graph Representations
v : v , v V = {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10} 1 2 8 E = {{v , v }, {v , v }, {v , v }, {v , v }, {v , v }, v2 : v1, v3 1 2 1 8 2 3 3 5 3 9 v : v , v , v , v {v3, v10}, {v4, v5}, {v4, v6}, {v4, v9}, {v5, v8}, 3 2 5 9 10 {v , v }, {v , v }, {v , v }, {v , v }, {v , v }, v4 : v5, v6, v9 6 8 6 9 7 8 7 9 8 10 v : v , v , v {v9, v10}} 5 3 4 8 v6 : v4, v8, v9 v7 : v8, v9 v8 : v1, v5, v6, v7, v9, v10 v9 : v3, v4, v6, v7, v8, v10 v10 : v3, v8, v9
0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 0
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Why Drawing Graphs?
Graphs are mathematical representations of networks.
Networks occur in real life in a wide variety of places:
Abstract Networks Physical Networks social n. traffic n. communication n. street n. phylogenetic n. supply n. regulatory n. computer n. metabolic n. integrated circuits class diagrams (UML) ... ...
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Why Drawing Graphs?
Graphs are mathematical representations of networks.
Networks occur in real life in a wide variety of places:
Without suitable visualization we (as humans) can hardly understand networks.
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Why Drawing Graphs?
Graphs are mathematical representations of networks.
Networks occur in real life in a wide variety of places:
Without suitable visualization we (as humans) can hardly understand networks.
Visualization needed for – communicating known networks – exploring new networks
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Why Drawing Graphs?
Graphs are mathematical representations of networks.
Networks occur in real life in a wide variety of places:
Without suitable visualization we (as humans) can hardly understand networks.
Visualization needed for – communicating known networks – exploring new networks
GD is about designing algorithms that draw graphs— as “nicely” as possible
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Examples
A Small Slide SHow
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Traffic Networks – US American Highway System
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Traffic Networks – Continental Airline Flights
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Traffic Networks – The London Tube
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Traffic Networks – The London Tube
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Traffic Networks – The London Tube
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Social Networks – Barrapunto
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Soziale Netze – Terrorist Cell
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Soziale Netze – Shareholding of German Companies
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Social Networks – Souvereign Wealth Fund Deals
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Patents — Cash Flow from Submitter to Inventor
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Social Networks – Exxon Funding
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Social Networks – Organigram UBS
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Biomedicine – Diseasome
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Biomedicine – Molecular Metabolic Networks
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Biomedicine – Proteines
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Biomedicine – Phylogenetic Trees
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Technical Networks – Internet USA
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Technical Networks – Web Trends
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Technical Networks – Cable Layout Plans
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Technical Networks – Wiring Diagrams
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Technical Networks – UML Diagrams
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ General Graphs – Micro-Macro Layout
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ General Graphs – Big!
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Alternative Representations – Inclusion Diagrams
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Alternative Representations – Contact Graphs
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Alternative Representations – Contact Graphs
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Some Fundamental Definitions
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Visual Variables According to Bertin (1967)
Jacques Bertin (Maisons-Laffitte 1918–2010 Paris)
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Visual Variables According to Bertin (1967)
size
value shape
position
orientation texture color Semiologie Graphique
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Visual Variables According to Bertin (1967)
size
value shape
position → Layoutproblem
orientation texture color Semiologie Graphique
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Definition Layout Problem
Restriction to node-link diagrams (standard representation)
Problem: Graph Layout given: graph G = (V , E) find: nice Drawing Γ : V ∪ E → P(R2) vertex v 7→ point Γ (v) edge uv 7→ simple, open curve Γ (uv) with endpoints Γ (u) and Γ (v)
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Definition Layout Problem
Restriction to node-link diagrams (standard representation)
Problem: Graph Layout given: graph G = (V , E) find: nice Drawing Γ : V ∪ E → P(R2) vertex v 7→ point Γ (v) edge uv 7→ simple, open curve Γ (uv) with endpoints Γ (u) and Γ (v)
But what is a nice drawing?
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Requirements for a Graph Layout
1) Drawing conventions (necessary properties), e.g. straight-line edges, that is, Γ (uv) = Γ (u)Γ (v) rectilinear edges (in general, with bends) grid drawings crossing-free
5 3 4 3 4 5 1 2 3 4 5 2 1 1 2
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Requirements for a Graph Layout
1) Drawing conventions (necessary properties)
2) Aesthetic criteria (to be optimized), e.g. crossing minimization bend minimization uniform edge lengths minimum total length / area angular resolution
→ often leads to NP-hard optimization problems! → often there are several competing criteria
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Requirements for a Graph Layout
1) Drawing conventions (necessary properties)
2) Aesthetic criteria (to be optimized)
3) Local constraints, e.g. positional restrictions for adjacent vertices restrictions for groups of vertices/edges
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Layout Problem, 2nd Attempt
Problem: Graph Layout given: graph G = (V , E) find: drawing Γ : V ∪ E → P(R2) that fulfills drawing conventions optimizes aesthetic criteria possibly adheres to further constraints
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Layout Problem, 2nd Attempt
Problem: Graph Layout given: graph G = (V , E) find: drawing Γ : V ∪ E → P(R2) that fulfills drawing conventions optimizes aesthetic criteria possibly adheres to further constraints
leads to algorithmically interesting questions ignores downstream rendering problem
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Graph Drawing Part II: Force-Directed Methods
Alexander Wolff Lehrstuhl f¨urInformatik I Universit¨atW¨urzburg
(based on slides of Martin N¨ollenburgand Robert G¨orke, KIT)
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg How Would You Do It?
Given a graph G = (V , E), find a “nice” drawing Γ that maps vertices on points and edges on the line segments between the corresponding points.
Any ideas?
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg How Would You Do It?
Given a graph G = (V , E), find a “nice” drawing Γ that maps vertices on points and edges on the line segments between the corresponding points.
Any ideas? Physical analogy: attraction and repulsion forces
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg How Would You Do It?
Given a graph G = (V , E), find a “nice” drawing Γ that maps vertices on points and edges on the line segments between the corresponding points.
Any ideas? Physical analogy: attraction and repulsion forces Case 1: vertices u, v adjacent Case 2: u and v not adjacent
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg How Would You Do It?
Given a graph G = (V , E), find a “nice” drawing Γ that maps vertices on points and edges on the line segments between the corresponding points.
Any ideas? Physical analogy: attraction and repulsion forces Case 1: vertices u, v adjacent Case 2: u and v not adjacent u v fstring
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg How Would You Do It?
Given a graph G = (V , E), find a “nice” drawing Γ that maps vertices on points and edges on the line segments between the corresponding points.
Any ideas? Physical analogy: attraction and repulsion forces Case 1: vertices u, v adjacent Case 2: u and v not adjacent u v u v fstring frep
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg An Iterative, Force-Directed Approach
SpringEmbedder(G = (V , E), p = (pv )v∈V , ε > 0, K ∈ N) t ← 1 while t < K and maxv∈V kFv (t)k > ε do foreach v ∈ V do P P Fv (t) ← u:uv∈/E frep(pu, pv ) + u:uv∈E fspring(pu, pv ) foreach v ∈ V do pv ← pv + δ · Fv (t) t ← t + 1 return p
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg An Iterative, Force-Directed Approach start layout
SpringEmbedder(G = (V , E), p = (pv )v∈V , ε > 0, K ∈ N) t ← 1 while t < K and maxv∈V kFv (t)k > ε do foreach v ∈ V do P P Fv (t) ← u:uv∈/E frep(pu, pv ) + u:uv∈E fspring(pu, pv ) foreach v ∈ V do pv ← pv + δ · Fv (t) t ← t + 1 return p
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg An Iterative, Force-Directed Approach start layout
SpringEmbedder(G = (V , E), p = (pv )v∈V , ε > 0, K ∈ N) t ← 1 while t < K and maxv∈V kFv (t)k > ε do foreach v ∈ V do P P Fv (t) ← u:uv∈/E frep(pu, pv ) + u:uv∈E fspring(pu, pv ) foreach v ∈ V do pv ← pv + δ · Fv (t) t ← t + 1 final layout return p
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Evaluation
Advantages
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Evaluation
Advantages + very simple + quite good for small graphs
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Evaluation
Advantages Disadvantages + very simple + quite good for small graphs
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Evaluation
Advantages Disadvantages + very simple – possibly ends instable + quite good for small graphs – possibly gets stuck early on in some unfavorable state (that is, drawing)
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Evaluation
Advantages Disadvantages + very simple – possibly ends instable + quite good for small graphs – possibly gets stuck early on in some unfavorable state (that is, drawing) Computational complexity Each iteration takes, for computing all values of – frep O( ) time – fspring O( ) time
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Evaluation
Advantages Disadvantages + very simple – possibly ends instable + quite good for small graphs – possibly gets stuck early on in some unfavorable state (that is, drawing) Computational complexity Each iteration takes, for computing all values of 2 – frep O(V ) time – fspring O( ) time
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Evaluation
Advantages Disadvantages + very simple – possibly ends instable + quite good for small graphs – possibly gets stuck early on in some unfavorable state (that is, drawing) Computational complexity Each iteration takes, for computing all values of 2 – frep O(V ) time – fspring O(E ) time
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Evaluation
Advantages Disadvantages + very simple – possibly ends instable + quite good for small graphs – possibly gets stuck early on in some unfavorable state (that is, drawing) Computational complexity Each iteration takes, for computing all values of 2 – frep O(V ) time – fspring O(E ) time
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Evaluation
Advantages Disadvantages + very simple – possibly ends instable + quite good for small graphs – possibly gets stuck early on in some unfavorable state (that is, drawing) Computational complexity Each iteration takes, for computing all values of 2 – frep O(V ) time – fspring O(E ) time 2 – Fv and pv : O(V ) time
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Force Diagram for “Spring Embedder” of Eades (1984) force fspring kp − p k f (p , p ) = c log v u · p−−→p spring u v spring l v u distance l
crep −−→ frep(pu, pv ) = · pupv kpv − puk
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Force Diagram for “Spring Embedder” of Eades (1984) force fspring kp − p k f (p , p ) = c log v u · p−−→p spring u v spring l v u distance l
crep −−→ frep(pu, pv ) = · pupv kpv − puk
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Force Diagram for “Spring Embedder” of Eades (1984) force fspring kp − p k f (p , p ) = c log v u · p−−→p spring u v spring l v u distance l
crep −−→ frep(pu, pv ) = · pupv kpv − puk unit vector going from pv towards pu
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Force Diagram for “Spring Embedder” of Eades (1984) force fspring kp − p k f (p , p ) = c log v u · p−−→p spring u v spring l v u distance l
crep −−→ frep(pu, pv ) = · pupv kpv − puk unit vector going from pv towards pu
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Force Diagram for “Spring Embedder” of Eades (1984) force spring constant (e.g., 2.0) fspring kp − p k f (p , p ) = c log v u · p−−→p spring u v spring l v u distance l
crep −−→ frep(pu, pv ) = · pupv kpv − puk unit vector going from pv towards pu
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Force Diagram for “Spring Embedder” of Eades (1984) force spring constant (e.g., 2.0) fspring kp − p k f (p , p ) = c log v u · p−−→p spring u v spring l v u distance l
crep −−→ frep(pu, pv ) = · pupv kpv − puk unit vector going from pv towards pu
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Force Diagram for “Spring Embedder” of Eades (1984) force spring constant (e.g., 2.0) fspring kp − p k f (p , p ) = c log v u · p−−→p spring u v spring l v u “natural” spring length distance l
crep −−→ frep(pu, pv ) = · pupv kpv − puk unit vector going from pv towards pu
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Force Diagram for “Spring Embedder” of Eades (1984) force spring constant (e.g., 2.0) fspring kp − p k f (p , p ) = c log v u · p−−→p spring u v spring l v u “natural” spring length distance l
crep −−→ frep(pu, pv ) = · pupv kpv − puk unit vector going from pv towards pu
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Force Diagram for “Spring Embedder” of Eades (1984) force spring constant (e.g., 2.0) fspring kp − p k f (p , p ) = c log v u · p−−→p spring u v spring l v u “natural” spring length distance l repulsion constant (e.g., 1.0)
crep −−→ frep(pu, pv ) = · pupv kpv − puk unit vector going from pv towards pu
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Force Diagram for “Spring Embedder” of Eades (1984) force spring constant (e.g., 2.0) fspring kp − p k f (p , p ) = c log v u · p−−→p spring u v spring l v u “natural” spring length distance l repulsion constant (e.g., 1.0)
crep −−→ frep(pu, pv ) = · pupv kpv − puk unit vector going from pv towards pu
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Force Diagram of Fruchterman/Reingold (1991)
force
fattr(pu, pv ) = fspring = frep + fattr kp − p k2 u v · p−−→p l v u distance l 2 l −−→ frep(pu, pv ) = · pupv kpu − pv k
Alexander Wolff · Lehrstuhl fr Informatik I · Universitt Wrzburg Force Direction Meets B´ezier
– A Spring Embedder for Drawing Curvy Metro Maps –
Part IIb: Orthogonal Graph Drawing Combinatorial Optimization via Flow Methods
Alexander Wolff Universit¨at Wurzburg¨
(based on slides of Martin N¨ollenburg and Robert G¨orke, KIT)
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Examples for Problems in Planar Graph Drawing
orthogonal drawings upward drawings of directed acyclic graphs angular resolution in straight-line drawings
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Examples for Problems in Planar Graph Drawing
orthogonal drawings upward drawings of directed acyclic graphs angular resolution in straight-line drawings
→ modeled by flow networks
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ An Example
[Graph Drawing Contest 2008]
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Planarity
Definition A graph G = (V , E) is planar if there is a drawing Γ of G in the plane such that the drawings of no two edges intersect. Such a drawing is called plane (or planar).
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Planarity
Definition A graph G = (V , E) is planar if there is a drawing Γ of G in the plane such that the drawings of no two edges intersect. Such a drawing is called plane (or planar).
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Planarity
Definition A graph G = (V , E) is planar if there is a drawing Γ of G in the plane such that the drawings of no two edges intersect. Such a drawing is called plane (or planar).
How can we define a (combinatorial) embedding?!
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Planarity
Definition A graph G = (V , E) is planar if there is a drawing Γ of G in the plane such that the drawings of no two edges intersect. Such a drawing is called plane (or planar).
How can we define a (combinatorial) embedding?! What is the connection between n = |V |, m = |E|, |faces|?
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Our Tool: Flow Networks
Definition A flow network is a triplet (G;(s, t); c) with directed graph G = (V , E) edge capacities c : E → R>0 source s ∈ V , sink t ∈ V
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Our Tool: Flow Networks
Definition A flow network is a triplet (G;(s, t); c) with directed graph G = (V , E) edge capacities c : E → R>0 source s ∈ V , sink t ∈ V
A map f : E → R≥0 is called s-t flow if: for each e ∈ E : f (e) ≤ c(e) X X for each v ∈ V \{s, t}: f (vw) − f (uv) = 0 vw∈E uv∈E
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Our Tool: Flow Networks
Definition A flow network is a triplet (G;(s, t); c) with directed graph G = (V , E) edge capacities c : E → R>0 source s ∈ V , sink t ∈ V
A map f : E → R≥0 is called s-t flow if: for each e ∈ E : f (e) ≤ c(e) X X for each v ∈ V \{s, t}: f (vw) − f (uv) = 0 vw∈E uv∈E | {z } outflowf (v)
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Our Tool: Flow Networks
Definition A flow network is a triplet (G;(s, t); c) with directed graph G = (V , E) edge capacities c : E → R>0 source s ∈ V , sink t ∈ V
A map f : E → R≥0 is called s-t flow if: for each e ∈ E : f (e) ≤ c(e) X X for each v ∈ V \{s, t}: f (vw) − f (uv) = 0 vw∈E uv∈E | {z } | {z } outflowf (v) inflowf (v)
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Our Tool: Flow Networks
Definition A flow network is a triplet (G;(s, t); c) with directed graph G = (V , E) edge capacities c : E → R>0 source s ∈ V , sink t ∈ V
A map f : E → R≥0 is called s-t flow if: for each e ∈ E : f (e) ≤ c(e) X X for each v ∈ V \{s, t}: f (vw) − f (uv) = 0 vw∈E uv∈E | {z } | {z } excessf (v) := outflowf (v) − inflowf (v)
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ General Flow Network
Definition A (general) flow network is a quadruplet (G; l; u; b) with directed graph G = (V , E) lower edge capacities l : E → R≥0 upper edge capacities u : E → R>0 P a vertex valuation b : V → R with v∈V b(v) = 0
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ General Flow Network
Definition A (general) flow network is a quadruplet (G; l; u; b) with directed graph G = (V , E) lower edge capacities l : E → R≥0 upper edge capacities u : E → R>0 P a vertex valuation b : V → R with v∈V b(v) = 0
A map X : E → R≥0 is a (general) flow if: for each e ∈ E : l(e) ≤ X (e) ≤ u(e) X X for each v ∈ V : X (vw) − X (uv) = b(v) vw∈E uv∈E
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ General Flow Network
Definition A (general) flow network is a quadruplet (G; l; u; b) with directed graph G = (V , E) lower edge capacities l : E → R≥0 upper edge capacities u : E → R>0 P a vertex valuation b : V → R with v∈V b(v) = 0
A map X : E → R≥0 is a (general) flow if: for each e ∈ E : l(e) ≤ X (e) ≤ u(e) X X for each v ∈ V : X (vw) − X (uv) = b(v) vw∈E uv∈E | {z } excessf (v) Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Optimizing Flow
Feasible flow Find feasible flow X : E → R≥0, i.e., edge valuation that respects capacity bound: l ≤ X ≤ c, and has excess b(v) in each vertex v
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Optimizing Flow
Feasible flow Find feasible flow X : E → R≥0, i.e., edge valuation that respects capacity bound: l ≤ X ≤ c, and has excess b(v) in each vertex v
Additionally given: edge cost function cost: E → R≥0 P Def. cost(X ) := e∈E cost(e) · X (e)
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Optimizing Flow
Feasible flow Find feasible flow X : E → R≥0, i.e., edge valuation that respects capacity bound: l ≤ X ≤ c, and has excess b(v) in each vertex v
Additionally given: edge cost function cost: E → R≥0 P Def. cost(X ) := e∈E cost(e) · X (e) Min cost flow problem Find a feasible flow X : E → R≥0 that minimizes cost(X ) (among all feasible flows)
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Optimizing Flow
Feasible flow Find feasible flow X : E → R≥0, i.e., edge valuation that respects capacity bound: l ≤ X ≤ c, and has excess b(v) in each vertex v
Additionally given: edge cost function cost: E → R≥0 P Def. cost(X ) := e∈E cost(e) · X (e) Min cost flow problem Find a feasible flow X : E → R≥0 that minimizes cost(X ) (among all feasible flows)
General networks: O(n2 log n) time Sparse networks: O(n7/4 log n) time
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ (Planar) Orthogonal Drawings
3-phase approach: Topology – Shape – Metrics [Tamassia ’87]
V = {v1, v2, v3, v4} E = {{v1, v2}, {v1, v3}, {v1, v4}, {v2, v3}, {v2, v4}}
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ (Planar) Orthogonal Drawings
3-phase approach: Topology – Shape – Metrics [Tamassia ’87]
V = {v1, v2, v3, v4} E = {{v1, v2}, {v1, v3}, {v1, v4}, {v2, v3}, {v2, v4}}
combinatorial embedding 4 3
2 crossing minimization1
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ (Planar) Orthogonal Drawings
3-phase approach: Topology – Shape – Metrics [Tamassia ’87]
V = {v1, v2, v3, v4} E = {{v1, v2}, {v1, v3}, {v1, v4}, {v2, v3}, {v2, v4}}
combinatorial embedding 4 4 3 bend minimization 1 3 2 orthogonal crossing minimization1 representation 2
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ (Planar) Orthogonal Drawings
3-phase approach: Topology – Shape – Metrics [Tamassia ’87]
V = {v1, v2, v3, v4} 4 E = {{v1, v2}, {v1, v3}, {v1, v4}, {v2, v3}, {v2, v4}} 3 1 2 combinatorial embedding planar area 4 embedding minimization 4 3 bend minimization 1 3 2 orthogonal crossing minimization1 representation 2
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ (Planar) Orthogonal Drawings
3-phase approach: Topology – Shape – Metrics [Tamassia ’87]
V = {v1, v2, v3, v4} 4 E = {{v1, v2}, {v1, v3}, {v1, v4}, {v2, v3}, {v2, v4}} 3 1 2 combinatorial embedding planar area 4 embedding minimization 4 3 bend minimization 1 3 2 orthogonal crossing minimization1 representation 2
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ The Problem
Problem 2: Bend minimization with fixed embedding Given: Graph G = (V , E) with max-degree ∆ ≤ 4, combinatorial embedding F, and exterior face f0, find: orthogonal grid drawing that – maintains embedding (F, f0) and – (among all those) has the minimum number of bend.
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ The Problem
Problem 2’: Bend-minimal orthogonal representation Given: Graph G = (V , E) with max-degree ∆ ≤ 4, combinatorial embedding F, and exterior face f0, find: orthogonal representation that – maintains embedding (F, f0) and – (among all those) has the minimum number of bend.
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Orthogonal Representation
Input: G = (V , E) planar, F, f0 Output: orthogonal representation R = {R(f ) | f ∈ F}
graph GG e3 f0 e2
f1 f2 e4 e6 e1 e5
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Orthogonal Representation
Input: G = (V , E) planar, F, f0 Output: orthogonal representation R = {R(f ) | f ∈ F}
Face representation RR(ff ): sequence, ordered clockwise, of edge representations (e, δ, α): e lies on the boundary of f δ is 0–1 string (0 = right bend, 1 = left bend) π 0 α is an angle ∈ 2 ·{1, 2, 3, 4} between e and its successor e graph GG e e3 representation RR f0 2 3π π f1 f2 e4 R(f ) = ((e , 00, ), (e , ∅, ), (e , 00, π)) e6 1 1 2 2 2 6 e π π π 1 e5 R(f2) = ((e5, 000, 2 ), (e6, 11, 2 ), (e3, ∅, π), (e4, ∅, 2 )) π 3π π R(f0) = ((e1, 11, 2 ), (e5, 111, 2 ), (e4, ∅, π), (e3, ∅, π), (e2, ∅, 2 ))
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
Task: Find an orthogonal drawing of G according to orthogonal representation R!
graph GG e e3 rep. RR f0 2 3π π f1 f2 e4 R(f ) = ((e , 00, ), (e , ∅, ), (e , 00, π)) e6 1 1 2 2 2 6 e π π π 1 e5 R(f2) = ((e5, 000, 2 ), (e6, 11, 2 ), (e3, ∅, π), (e4, ∅, 2 )) π 3π π R(f0) = ((e1, 11, 2 ), (e5, 111, 2 ), (e4, ∅, π), (e3, ∅, π), (e2, ∅, 2 ))
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
Task: Find an orthogonal drawing of G according to orthogonal representation R! Solution: 1 e1 1 f0 0 0 1 e2 e3 e4 0 0 f1 0 f 1 e6 1 2 graph GG 0 0 e 1 e5 1 e 3 rep. RR f0 2 3π π f1 f2 e4 R(f ) = ((e , 00, ), (e , ∅, ), (e , 00, π)) e6 1 1 2 2 2 6 e π π π 1 e5 R(f2) = ((e5, 000, 2 ), (e6, 11, 2 ), (e3, ∅, π), (e4, ∅, 2 )) π 3π π R(f0) = ((e1, 11, 2 ), (e5, 111, 2 ), (e4, ∅, π), (e3, ∅, π), (e2, ∅, 2 ))
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
Task: Find an orthogonal drawing of G according to orthogonal representation R! Solution: 1 e1 1 f0 0 0 π π e2 π e3 π e4 3π 1 2 π 3π 2 π π π π π 2 0 2 2 2 2 2 0 f1 0 f 1 e6 1 2 graph GG 0 0 e 1 e5 1 e 3 rep. RR f0 2 3π π f1 f2 e4 R(f ) = ((e , 00, ), (e , ∅, ), (e , 00, π)) e6 1 1 2 2 2 6 e π π π 1 e5 R(f2) = ((e5, 000, 2 ), (e6, 11, 2 ), (e3, ∅, π), (e4, ∅, 2 )) π 3π π R(f0) = ((e1, 11, 2 ), (e5, 111, 2 ), (e4, ∅, π), (e3, ∅, π), (e2, ∅, 2 ))
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Reminder
Problem 2’: Bend-minimal orthogonal representation Given: Graph G = (V , E) with max-degree ∆ ≤ 4, combinatorial embedding F, and exterior face f0, find: orthogonal representation that – maintains embedding (F, f0) and – (among all those) has the minimum number of bends.
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Reminder
Problem 2’: Bend-minimal orthogonal representation Given: Graph G = (V , E) with max-degree ∆ ≤ 4, combinatorial embedding F, and exterior face f0, find: orthogonal representation that – maintains embedding (F, f0) and – (among all those) has the minimum number of bends. Approach: Build flow network! π “currency” = ] 2
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Reminder
Problem 2’: Bend-minimal orthogonal representation Given: Graph G = (V , E) with max-degree ∆ ≤ 4, combinatorial embedding F, and exterior face f0, find: orthogonal representation that – maintains embedding (F, f0) and – (among all those) has the minimum number of bends. Approach: Build flow network! π “currency” = ] 2 vertex −→] faces (size of angle at face)
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Reminder
Problem 2’: Bend-minimal orthogonal representation Given: Graph G = (V , E) with max-degree ∆ ≤ 4, combinatorial embedding F, and exterior face f0, find: orthogonal representation that – maintains embedding (F, f0) and – (among all those) has the minimum number of bends. Approach: Build flow network! π “currency” = ] 2 vertex −→] faces (size of angle at face) face −→] adjacent faces (# bends towards neighbor)
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
f0 v2 e3 v3
e2 f1 f2 v1 e4
e6 e1
v5 e5 v4
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
f0 v2 e3 v3
e2 f1 f2 v1 e4
e6 e1
v5 e5 v4 V F
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
f0 v2 e3 v3
e2 f1 f2 v1 e4 `/u/cost 1/4/0 e6 e1
v5 e5 v4 V F
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
f0 v2 e3 v3
e2 f1 f2 v1 e4 `/u/cost 1/4/0 e6 e1 0/∞/1 v5 e5 v4 V F
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
b-values: b(v) = 4 f0 −14 v 2 4 e3 v3 b(f ) = 4 −2 #vtc ±4
e2 f1 f2 v1 −2 −4 e4 `/u/cost 4 1/4/0 e6 e1 4 0/∞/1 v 4 v5 e5 4 V F
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
b-values: b(v) = 4 f0 −14 v 2 4 e3 v3 b(f ) = 4 −2 #vtc ±4 e2 3 flow f1 f2 v1 −2 −4 e4 `/u/cost 4 1/4/0 e6 e1 4 0/∞/1 v 4 v5 e5 4 V F
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
b-values: b(v) = 4 f0 −14 v 2 4 e3 v3 b(f ) = 4 −2 #vtc ±4 1 1 e2 3 flow f1 f2 v1 −2 −4 e4 `/u/cost 4 1/4/0 e6 e1 1 1 4 0/∞/1 v 4 v5 e5 4 V F
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
b-values: 3 b(v) = 4 f0 −14 v 2 4 e3 v3 b(f ) = 4 −2 #vtc ±4 1 1 e2 3 flow f1 f2 v1 −2 −4 e4 `/u/cost 4 1/4/0 e6 e1 1 1 4 0/∞/1 v 4 v5 e5 4 3 V F
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
b-values: 3 b(v) = 4 f0 −14 v 2 4 e3 v3 b(f ) = 4 −2 #vtc ±4 1 1 e2 3 flow f1 1 f2 1 v1 −2 −4 e4 `/u/cost 4 1/4/0 e6 e1 1 1 1 4 0/∞/1 v 4 v5 e5 4 3 V F
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
b-values: 3 b(v) = 4 f0 −14 v 2 2 4 e3 v3 b(f ) = 4 −2 #vtc ±4 1 1 3 e2 3 flow f1 1 f2 1 v1 −2 −4 e4 `/u/cost 4 1/4/0 e6 e1 1 1 1 4 0/∞/1 v e5 v4 2 4 5 3 V F
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
b-values: 3 b(v) = 4 f0 −14 v 2 2 4 e3 v3 b(f ) = 4 −2 #vtc ±4 1 1 1 3 e2 3 flow f1 1 f2 1 v1 −2 −4 e4 `/u/cost 4 1/4/0 e6 e1 1 1 1 4 0/∞/1 v e5 v4 2 4 5 3 V F
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Example
b-values: 3 b(v) = 4 f0 −14 v 2 2 4 e3 v3 b(f ) = 4 −2 #vtc ±4 1 1 3 e2 3 flow f1 1 f2 1 v1 −2 −4 e4 `/u/cost 4 1/4/0 e6 1 e1 1 1 1 4 0/∞/1 v 4 v5 e5 4 cost = 1 2 3 V ⇒ 1 bend! F (outwards)
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Main Theorem
Theorem: [Tamassia, SIAM J. Comput.”87]
A planar embedded graph (G, F, f0) has a feasible orthogonal representation R with k bends. ⇔ Flow network N(G) has flow X of cost k.
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Main Theorem
Theorem: [Tamassia, SIAM J. Comput.”87]
A planar embedded graph (G, F, f0) has a feasible orthogonal representation R with k bends. ⇔ Flow network N(G) has flow X of cost k.
Corollary: [Tamassia, SIAM J. Comput.’87] A bend-minimal orthogonal representation can be computed in O(n7/4 log n) time.
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Main Theorem
Theorem: [Tamassia, SIAM J. Comput.”87]
A planar embedded graph (G, F, f0) has a feasible orthogonal representation R with k bends. ⇔ Flow network N(G) has flow X of cost k.
Corollary: [Tamassia, SIAM J. Comput.’87] A bend-minimal orthogonal representation can be computed in O(n7/4 log n) time.
Theorem: [Cornelsen & Karrenbauer, JGAA’12] A bend-minimal orthogonal representation can be computed in O(n3/2) time.
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Compaction
Problem: Orthogonal drawing from orthogonal representation Given: – planar graph G = (V , E) with ∆ ≤ 4 and – orthogonal representation R. Find: orthogonal drawing of G that realizes R.
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Compaction
Problem: Orthogonal drawing from orthogonal representation Given: – planar graph G = (V , E) with ∆ ≤ 4 and – orthogonal representation R. Find: orthogonal drawing of G that realizes R.
Special case: all faces are rectangles ⇒ allows us to guarantee: minimum total edge length minimum areas
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Compaction
Problem: Orthogonal drawing from orthogonal representation Given: – planar graph G = (V , E) with ∆ ≤ 4 and – orthogonal representation R. Find: orthogonal drawing of G that realizes R.
Special case: all faces are rectangles ⇒ allows us to guarantee: minimum total edge length minimum areas
Tool: Network flow – twice!
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Optimality for Rectangles
Theorem:
Min-Cost flows for Nhor and Nver yield: 1. X feasible flow ⇔ edge lengths induce orthogonal drawing 2. |X (Nhor)| = height, |X (Nver)| = width 3. cost(X (Nhor)) + cost(X (Nver)) = total edge length
Nhor Nver
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Summary Bend Minimization
Bend minimization given a fixed embedding via network flow. Optimal compaction for rectangular faces. Extension to general case not always optimal. Compaction is NP-hard. [Patrignani GD’05]
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Summary Bend Minimization
Bend minimization given a fixed embedding via network flow. Optimal compaction for rectangular faces. Extension to general case not always optimal. Compaction is NP-hard. [Patrignani GD’05]
Possible extensions: max-degree > 4: “Kandinsky drawing style” – NP-hard [Bl¨asius et al., ESA’14] non-planar graphs
Alexander Wolff · Lehrstuhl fur¨ Informatik I · Universit¨at Wurzburg¨ Part III: Graph Drawing – Recent Stuff
Alexander Wolff Lehrstuhl fur¨ Informatik I Universit¨at Wurzburg¨ Table of Contents
Crossings at Large Angles & Vertices at Specified Positions
Partial Edge Drawings Drawing Graphs with Vertices at Specified Positions and Crossings at Large Angles
Joint work with Martin Fink, Jan Haunert, Tamara Mchedlidze, and Joachim Spoerhase
WALCOM 2011 Vertices at Specified Positions
Gritzmann, Mohar, Pach, Pollack 1991: graph Vertices at Specified Positions
Gritzmann, Mohar, Pach, Pollack 1991: graph point set point-set embeddability Vertices at Specified Positions
Gritzmann, Mohar, Pach, Pollack 1991: graph point set point-set embeddability Vertices at Specified Positions
Gritzmann, Mohar, Pach, Pollack 1991: graph point set point-set embeddability Vertices at Specified Positions
Gritzmann, Mohar, Pach, Pollack 1991: graph point set point-set embeddability
any outerplanar graph (can be drawn s.t. every vertex lies at the outer face) Vertices at Specified Positions
Gritzmann, Mohar, Pach, Pollack 1991: graph point set point-set embeddability
any outerplanar graph any pt set in general position (can be drawn s.t. every (no three pts on a straight line) vertex lies at the outer face) Vertices at Specified Positions
Gritzmann, Mohar, Pach, Pollack 1991: graph point set point-set embeddability
any outerplanar graph any pt set in general position (can be drawn s.t. every (no three pts on a straight line) vertex lies at the outer face) Note: Largest class of graphs with this property! Vertices at Specified Positions
Gritzmann, Mohar, Pach, Pollack 1991: graph point set point-set embeddability
any outerplanar graph any pt set in general position (can be drawn s.t. every (no three pts on a straight line) vertex lies at the outer face) Note: Largest class of graphs with this property! Vertices at Specified Positions
Gritzmann, Mohar, Pach, Pollack 1991: graph point set point-set embeddability
any outerplanar graph any pt set in general position (can be drawn s.t. every (no three pts on a straight line) vertex lies at the outer face) Note: Largest class of graphs with this property! Vertices at Specified Positions
Gritzmann, Mohar, Pach, Pollack 1991: graph point set point-set embeddability
any outerplanar graph any pt set in general position (can be drawn s.t. every (no three pts on a straight line) vertex lies at the outer face) Note: Largest class of graphs with this property! Vertices at Specified Positions
Gritzmann, Mohar, Pach, Pollack 1991: graph point set point-set embeddability
any outerplanar graph any pt set in general position (can be drawn s.t. every (no three pts on a straight line) vertex lies at the outer face) Note: Largest class of graphs with this property! Vertices at Specified Positions
Gritzmann, Mohar, Pach, Pollack 1991: graph point set point-set embeddability
any outerplanar graph any pt set in general position (can be drawn s.t. every (no three pts on a straight line) vertex lies at the outer face) Note: Largest class of graphs with this property! Cabello, 2006: NP-hard for general graphs. Few Bends Suffice
Kaufmann & Wiese 2002: Allow 2 bends per edge! Then. . . Few Bends Suffice
Kaufmann & Wiese 2002: Allow 2 bends per edge! Then. . . any planar graph any point set Few Bends Suffice
Kaufmann & Wiese 2002: Allow 2 bends per edge! Then. . . any planar graph any point set Few Bends Suffice
Kaufmann & Wiese 2002: Allow 2 bends per edge! Then. . . any planar graph any point set Few Bends Suffice
Kaufmann & Wiese 2002: Allow 2 bends per edge! Then. . . any planar graph any point set Few Bends Suffice
Kaufmann & Wiese 2002: Allow 2 bends per edge! Then. . . any planar graph any point set Few Bends Suffice
Kaufmann & Wiese 2002: Allow 2 bends per edge! Then. . . any planar graph any point set
G Few Bends Suffice
Kaufmann & Wiese 2002: Allow 2 bends per edge! Then. . . any planar graph any point set
P
G Few Bends Suffice
Kaufmann & Wiese 2002: Allow 2 bends per edge! Then. . . any planar graph any point set
P
G Any drawing of G on P has an edge with at least 2 bends! The Bad News Is. . .
Pach & Wenger 2001: a path a pt set in convex position The Bad News Is. . .
Pach & Wenger 2001: a path a pt set in convex position
“with mapping” The Bad News Is. . .
Pach & Wenger 2001: a path a pt set in convex position 4 “with mapping” 6 8 2 4 6 8 1 2
1 3 5 7 7 5 3 The Bad News Is. . .
Pach & Wenger 2001: a path a pt set in convex position 4 “with mapping” 6 8 2 4 6 8 1 2
1 3 5 7 7 5 3 The Bad News Is. . .
Pach & Wenger 2001: a path a pt set in convex position 4 “with mapping” 6 8 2 4 6 8 1 2
1 3 5 7 7 5 3 The Bad News Is. . .
Pach & Wenger 2001: a path a pt set in convex position 4 “with mapping” 6 8 2 4 6 8 1 2
1 3 5 7 7 5 3 The Bad News Is. . .
Pach & Wenger 2001: a path a pt set in convex position 4 “with mapping” 6 8 2 4 6 8 1 2
1 3 5 7 7 5 3 The Bad News Is. . .
Pach & Wenger 2001: a path a pt set in convex position 4 “with mapping” 6 8 2 4 6 8 1 2
1 3 5 7 7 5 3 The Bad News Is. . .
Pach & Wenger 2001: a path a pt set in convex position 4 “with mapping” 6 8 2 4 6 8 1 2
1 3 5 7 7 5 3 The Bad News Is. . .
Pach & Wenger 2001: a path a pt set in convex position 4 “with mapping” 6 8 2 4 6 8 1 2
1 3 5 7 7 5 3 The Bad News Is. . .
Pach & Wenger 2001: a path a pt set in convex position 4 “with mapping” 6 8 2 4 6 8 1 2
1 3 5 7 7 5 3
Thm. For embedding an n-vertex graph on n pts with mapping, Θ(n) bends per edge always suffice – The Bad News Is. . .
Pach & Wenger 2001: a path a pt set in convex position 4 “with mapping” 6 8 2 4 6 8 1 2
1 3 5 7 7 5 3
Thm. For embedding an n-vertex graph on n pts with mapping, Θ(n) bends per edge always suffice – and are sometimes necessary! A New Trick!
Huang, Hong, Eades 2008: Forget planarity! A New Trick!
Huang, Hong, Eades 2008: Forget planarity! Allow (some kinds of ) crossings: A New Trick!
Huang, Hong, Eades 2008: Forget planarity! Allow (some kinds of ) crossings: A New Trick!
Huang, Hong, Eades 2008: Forget planarity! Allow (some kinds of ) crossings: A New Trick!
Huang, Hong, Eades 2008: Forget planarity! Allow (some kinds of ) crossings: X user studies A New Trick!
Huang, Hong, Eades 2008: Forget planarity! Allow (some kinds of ) crossings: X user studies
Didimo, Eades, Liotta 2009: 90◦ crossings & 3 bends per edge A New Trick!
Huang, Hong, Eades 2008: Forget planarity! Allow (some kinds of ) crossings: X user studies
RAC3 drawings z }| { Didimo, Eades, Liotta 2009: 90◦ crossings & 3 bends per edge A New Trick!
Huang, Hong, Eades 2008: Forget planarity! Allow (some kinds of ) crossings: X user studies
RAC3 drawings z }| { Didimo, Eades, Liotta 2009: 90◦ crossings & 3 bends per edge 1. any planar graph RAC3 grid of size O(m) × O(m) A New Trick!
Huang, Hong, Eades 2008: Forget planarity! Allow (some kinds of ) crossings: X user studies
RAC3 drawings z }| { Didimo, Eades, Liotta 2009: 90◦ crossings & 3 bends per edge 1. any planar graph RAC3 grid of size O(m) × O(m) bends on grid points! A New Trick!
Huang, Hong, Eades 2008: Forget planarity! Allow (some kinds of ) crossings: X user studies
RAC3 drawings z }| { Didimo, Eades, Liotta 2009: 90◦ crossings & 3 bends per edge 1. any planar graph RAC3 grid of size O(m) × O(m) 2 2. some graphs need grid size Ω(n ) for RAC3 drawings A New Trick!
Huang, Hong, Eades 2008: Forget planarity! Allow (some kinds of ) crossings: X user studies
RAC3 drawings z }| { Didimo, Eades, Liotta 2009: 90◦ crossings & 3 bends per edge 1. any planar graph RAC3 grid of size O(m) × O(m) 2 2. some graphs need grid size Ω(n ) for RAC3 drawings
3. only graphs with O(n) edges can be drawn RAC2 ... Our Contribution
Combine point-set embeddability& RAC. Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line. Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid ≈ 4 m
≈ 2m Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid ≈ 4 m
≈ 2m Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid ≈ 4 m
≈ 2m Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid ≈ 4 m
≈ 2m Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid ≈ 4 m
≈ 2m Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid ≈ 4 m
≈ 2m Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid ≈ 4 m
≈ 2m Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid ≈ 4 m
≈ 2m Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid ≈ 4 m
≈ 2m Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid ≈ 4 m
≈ 2m Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid ≈ 4 m
≈ 2m Our Contribution
Combine point-set embeddability& RAC. our general position: We assume that our n input points lie on an n × n grid and that no two points lie on the same horizontal or vertical line.
A first result:
RAC3 any graph O(m) × O(m) grid ≈
even with given mapping 4 m
≈ 2m Overview: Restricted RAC PSE
Additional restriction: keep edges on grid lines! Overview: Restricted RAC PSE
Additional restriction: keep edges on grid lines!
RAC1 1. cycle Cn n × n grid point set Overview: Restricted RAC PSE
Additional restriction: keep edges on grid lines!
RAC1 1. cycle Cn n × n grid point set
RAC1 2. graph with mapping ? n × n grid point set check in O(n) time Overview: Restricted RAC PSE
Additional restriction: keep edges on grid lines!
RAC1 1. cycle Cn n × n grid point set
RAC1 2. graph with mapping ? n × n grid point set check in O(n) time
RAC 3. any binary tree 1 n × n grid point set Overview: Restricted RAC PSE
Additional restriction: keep edges on grid lines!
RAC1 1. cycle Cn n × n grid point set
RAC1 2. graph with mapping ? n × n grid point set check in O(n) time
RAC 3. any binary tree 1 n × n grid point set
RAC 4. any maxdeg-3 graph 2 O(n) × O(n) grid Overview: Restricted RAC PSE
Additional restriction: keep edges on grid lines!
RAC1 1. cycle Cn n × n grid point set with mapping
RAC1 2. graph with mapping ? n × n grid point set check in O(n) time
RAC 3. any binary tree 1 n × n grid point set
RAC 4. any maxdeg-3 graph 2 O(n) × O(n) grid with mapping 1. RAC1 PSE of Cycles 1. RAC1 PSE of Cycles 1. RAC1 PSE of Cycles 1. RAC1 PSE of Cycles
two possibilities per edge 1. RAC1 PSE of Cycles t two possibilities per edge b 1. RAC1 PSE of Cycles t two possibilities per edge b
1
2
5
4 3 1. RAC1 PSE of Cycles t two possibilities per edge b
1
2
5
4 3 1. RAC1 PSE of Cycles t two possibilities per edge b
1
2
5
4 3 1. RAC1 PSE of Cycles t two possibilities per edge b
1
2
5
4 3 1. RAC1 PSE of Cycles t two possibilities per edge b
1
2
5
4 3 1. RAC1 PSE of Cycles t two possibilities per edge b
1
2
5
4 3 1. RAC1 PSE of Cycles t two possibilities per edge b
1 – leave vertices vertically 2
5
4 3 1. RAC1 PSE of Cycles t two possibilities per edge b
1 – leave vertices vertically 2 – enter vertices horizontally
5
4 3 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping
¬(et ∧ ft )
e X f 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping
¬(eb ∧ fb)
e X f 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping
¬(eb ∧ ft )
e
f 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping
¬(eb ∧ ft )
e
f 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping
¬(eb ∧ ft )
e ≡ (¬eb ∨ ¬ft )
f 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping
¬(eb ∧ ft )
e ≡ (¬eb ∨ ¬ft ) ≡ (et ∨ ¬ft )
et ⇔ ¬eb f 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping
¬(eb ∧ ft )
e ≡ (¬eb ∨ ¬ft ) ≡ (et ∨ ¬ft ) local conditions are sufficient!
f 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping
¬(eb ∧ ft )
e ≡ (¬eb ∨ ¬ft ) ≡ (et ∨ ¬ft ) local conditions are sufficient! conjunction (V) −→ 2-SAT formula f 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping
¬(eb ∧ ft )
e ≡ (¬eb ∨ ¬ft ) ≡ (et ∨ ¬ft ) local conditions are sufficient! conjunction (V) −→ 2-SAT formula f 4 In total ≤ n · 2 · 2 = O(n) clauses. 2. RAC1 PSE with Mapping t two possibilities per edge b Embeddability testing with mapping in linear time
¬(eb ∧ ft )
e ≡ (¬eb ∨ ¬ft ) ≡ (et ∨ ¬ft ) local conditions are sufficient! conjunction (V) −→ 2-SAT formula f 4 In total ≤ n · 2 · 2 = O(n) clauses. 3. RAC1 PSE of Binary Trees
? 3. RAC1 PSE of Binary Trees
? 3. RAC1 PSE of Binary Trees
? 3. RAC1 PSE of Binary Trees
?
does not work with every mapping 3. RAC1 PSE of Binary Trees
?
does not work with every mapping we choose the mapping 3. RAC1 PSE of Binary Trees 3. RAC1 PSE of Binary Trees 3. RAC1 PSE of Binary Trees 3. RAC1 PSE of Binary Trees 3. RAC1 PSE of Binary Trees 3. RAC1 PSE of Binary Trees 3. RAC1 PSE of Binary Trees 3. RAC1 PSE of Binary Trees 3. RAC1 PSE of Binary Trees 3. RAC1 PSE of Binary Trees
Independentely observed by Di Giacomo et al. [GD’11] 3. RAC1 PSE of Binary Trees
Independentely observed by Di Giacomo et al. [GD’11] Our improvement: can replace tree nodes by cycles 3. RAC1 PSE of Binary Trees
Independentely observed by Di Giacomo et al. [GD’11] Our improvement: can replace tree nodes by cycles What about larger classes of graphs? 3. RAC1 PSE of Binary Trees
Independentely observed by Di Giacomo et al. [GD’11] Our improvement: can replace tree nodes by cycles What about larger classes of graphs? What about the planar case? 3. RAC1 PSE of Binary Trees
Independentely observed by Di Giacomo et al. [GD’11] Our improvement: can replace tree nodes by cycles What about larger classes of graphs? What about the planar case? 3. RAC1 PSE of Binary Trees
Independentely observed by Di Giacomo et al. [GD’11] Our improvement: can replace tree nodes by cycles What about larger classes of graphs? What about the planar case? 3. RAC1 PSE of Binary Trees
Independentely observed by Di Giacomo et al. [GD’11] Our improvement: can replace tree nodes by cycles What about larger classes of graphs? What about the planar case? 3. RAC1 PSE of Binary Trees
Independentely observed by Di Giacomo et al. [GD’11] Our improvement: can replace tree nodes by cycles What about larger classes of graphs? What about the planar case? 3. RAC1 PSE of Binary Trees
Independentely observed by Di Giacomo et al. [GD’11] Our improvement: can replace tree nodes by cycles What about larger classes of graphs? What about the planar case? 3. RAC1 PSE of Binary Trees
Independentely observed by Di Giacomo et al. [GD’11] Our improvement: can replace tree nodes by cycles What about larger classes of graphs? What about the planar case? 3. RAC1 PSE of Binary Trees
Independentely observed by Di Giacomo et al. [GD’11] Our improvement: can replace tree nodes by cycles What about larger classes of graphs? What about the planar case? 4. RAC2 PSE of Maxdeg-3 Graphs
RAC any maxdeg-3 graph 2 O(n) × O(n) grid (with mapping)
3
1 1
2 4 3 4
2 4. RAC2 PSE of Maxdeg-3 Graphs
RAC any maxdeg-3 graph 2 O(n) × O(n) grid (with mapping)
3 4-color edges 1 1
2 4 3 4
2 4. RAC2 PSE of Maxdeg-3 Graphs
RAC any maxdeg-3 graph 2 O(n) × O(n) grid (with mapping)
3 4-color edges 1 1 1
2 4 3 2 4 3 4
Vizing 1964: 2 maxdeg ∆ ⇒ (∆ + 1)-edge-colorable 4. RAC2 PSE of Maxdeg-3 Graphs
RAC any maxdeg-3 graph 2 O(n) × O(n) grid (with mapping)
3 4-color edges 1 1 1
2 4 3 2 4 3 4
Vizing 1964: 2 maxdeg ∆ ⇒ (∆ + 1)-edge-colorable 4. RAC2 PSE of Maxdeg-3 Graphs
RAC any maxdeg-3 graph 2 O(n) × O(n) grid (with mapping)
3 4-color edges 1 1 1
2 4 3 2 4 3 4
Vizing 1964: 2 maxdeg ∆ ⇒ (∆ + 1)-edge-colorable – What about maxdeg-4 graphs? 4. RAC2 PSE of Maxdeg-3 Graphs
RAC any maxdeg-3 graph 2 O(n) × O(n) grid (with mapping)
3 4-color edges 1 1 1
2 4 3 2 4 3 4
Vizing 1964: 2 maxdeg ∆ ⇒ (∆ + 1)-edge-colorable – What about maxdeg-4 graphs? – Can we minimize the area? Open Problems
RAC 1. We know: any maxdeg-3 graph 2 O(n) × O(n) grid Open Problems
RAC 1. We know: any maxdeg-3 graph 2 O(n) × O(n) grid Can we minimize the area? Open Problems
RAC 1. We know: any maxdeg-3 graph 2 O(n) × O(n) grid Can we minimize the area? We conjecture: NP-hard :-( Open Problems
RAC 1. We know: any maxdeg-3 graph 2 O(n) × O(n) grid Can we minimize the area? We conjecture: NP-hard :-( What about maxdeg-4 graphs? Open Problems
RAC 1. We know: any maxdeg-3 graph 2 O(n) × O(n) grid Can we minimize the area? We conjecture: NP-hard :-( What about maxdeg-4 graphs?
RAC1 2. We know: any binary tree n × n grid
– What about larger classes of graphs? E.g., outerplanar? – What about the planar case? Partial Edge Drawings
Sabine Cornelsen, Emilio Di Giacomo, Carsten Gutwenger, Michael Kaufmann, Fabrizio Montecchiani, Martin N¨ollenburg, Antonios Symvonis, and Alexander Wolff
[GD’12] A User Study. . .
Evaluating Partially Drawn Links for Directed Graph Edges [Burch et al., GD’11] tampered
100% 90% 75% 50% 25% 12.5%
traditional Questionnaire Results – Error Rates
Is it possible to go from the green node to the red node via exactly one other node? (42 participants, 2 repetitions, avg. age 24.0 yrs.) %
link length Results – Error Rates
Is it possible to go from the Which node has the highest green node to the red node number of outgoing edges? via exactly one other node? (42 participants, 2 repetitions, avg. age 24.0 yrs.) % %
link length link length A Classification and Some Theory
PED = Partial Edge Drawing A Classification and Some Theory
PED = Partial Edge Drawing
Stub = remaining edge part. Stubs may not intersect. A Classification and Some Theory
PED = Partial Edge Drawing can be (non-) symmetric and (non-) homogeneous Stub = remaining edge part. Stubs may not intersect.
Mad at edge crossings? Break the edges! [Bruckdorfer and Kaufmann, FUN’12] A Classification and Some Theory
PED = Partial Edge Drawing can be (non-) symmetric and (non-) homogeneous Stub = remaining edge part. Stubs may not intersect.
1/4 -SHPED
Mad at edge crossings? Break the edges! [Bruckdorfer and Kaufmann, FUN’12] A Classification and Some Theory
PED = Partial Edge Drawing can be (non-) symmetric and (non-) homogeneous Stub = remaining edge part. Stubs may not intersect.
1/4 -SHPED SnHPED
Mad at edge crossings? Break the edges! [Bruckdorfer and Kaufmann, FUN’12] A Classification and Some Theory
PED = Partial Edge Drawing can be (non-) symmetric and (non-) homogeneous Stub = remaining edge part. Stubs may not intersect.
1/4 -SHPED SnHPED nSHPED
Mad at edge crossings? Break the edges! [Bruckdorfer and Kaufmann, FUN’12] A Classification and Some Theory
PED = Partial Edge Drawing can be (non-) symmetric and (non-) homogeneous Stub = remaining edge part. Stubs may not intersect.
1/4 -SHPED SnHPED nSHPED nSnHPED
Mad at edge crossings? Break the edges! [Bruckdorfer and Kaufmann, FUN’12] A Classification and Some Theory
PED = Partial Edge Drawing can be (non-) symmetric and (non-) homogeneous Stub = remaining edge part. Stubs may not intersect.
1/4 -SHPED SnHPED nSHPED nSnHPED
Mad at edge crossings? Break the edges! [Bruckdorfer and Kaufmann, FUN’12] Combining Spring Embedder and SHPED
Randomly generated graph with 20 vertices and 100 edges. Force-directed layout
413 crossings Combining Spring Embedder and SHPED
Randomly generated graph with 20 vertices and 100 edges. Force-directed layout Postprocessed to 1/4 -SHPED
413 crossings Combining Spring Embedder and SHPED
Randomly generated graph with 20 vertices and 100 edges. Force-directed layout Postprocessed to 1/4 -SHPED
413 crossings 23 crossings Combining Spring Embedder and SHPED
Randomly generated graph with 20 vertices and 100 edges. Force-directed layout Postprocessed to 1/4 -SHPED
413 crossings 23 crossings Combining Spring Embedder and SHPED
Randomly generated graph with 20 vertices and 100 edges. Force-directed layout Postprocessed to 1/4 -SHPED
413 crossings 23 crossings Combining Spring Embedder and SHPED
Randomly generated graph with 20 vertices and 100 edges. Force-directed layout Postprocessed to 1/4 -SHPED
413 crossings 23 crossings Combining Spring Embedder and SHPED
Randomly generated graph with 20 vertices and 100 edges. Force-directed layout Postprocessed to 1/4 -SHPED
413 crossings 23 crossings Thm. Let G be a subgraph of Kn. Then G has an δ-SHPED for any δ ≤ √ 1 . 4n/π
Construction for δ = 1/4.
Idea of the construction. Output of algorithm. Thm. Let G be a subgraph of Kn. Then G has an δ-SHPED for any δ ≤ √ 1 . 4n/π
Construction for δ = 1/4.
Drawn with a PED editor. Output of algorithm. How far can you go?
δ = 1 admits a drawing of K4, but not of K5. How far can you go?
δ = 1 admits a drawing of K4, but not of K5.
δ = 1/4 allows to draw K17, but not . . .? How far can you go?
δ = 1 admits a drawing of K4, but not of K5.
δ = 1/4 allows to draw K17, but not . . .?
δ = 1/8 allows to draw K47, but not . . .? How far can you go?
δ = 1 admits a drawing of K4, but not of K5.
δ = 1/4 allows to draw K17, but not . . .? ≈ K423 δ = 1/8 allows to draw K47, but not . . .? ≈ K4≈46 How far can you go?
δ = 1 admits a drawing of K4, but not of K5.
δ = 1/4 allows to draw K17, but not . . .? ≈ K423 δ = 1/8 allows to draw K47, but not . . .? ≈ K4≈46 Tool:
In other words: In every set of n pts, there are Ω(log n) pts in convex position. How far can you go?
δ = 1 admits a drawing of K4, but not of K5.
δ = 1/4 allows to draw K17, but not . . .? ≈ K423 δ = 1/8 allows to draw K47, but not . . .? ≈ K4≈46 Tool: Every set of 2N − 5 4N f (N) = + 1 ∈ O √ N − 2 N points has at least N points in convex position. [Valtr, T´oth,2005]
In other words: In every set of n pts, there are Ω(log n) pts in convex position. pl pr pl pr pl pr pl pr pl pr
# points ≤ 12 pl pr
# points ≤ 12 1 4
1
pl pr
1 4
# points ≤ 12 1 4
1
pl pr
1 4
# points ≤ 12 1 4
1
pl pr
1 4
# points ≤ 12 1 4
1
pl pr
1 4
# points ≤ 12 1 4
1
pl pr
1 4
# points ≤ 12 1 4
1
pl pr
1 4
# points ≤ 12 1 4
3 1 ≥ 16
p p l 3 r ≥ 16
1 4
# points ≤ 12 1 4
3 1 ≥ 16 1 ≤ 8 p p l 3 r ≥ 16
1 4
# points ≤ 12 1 4
3 1 ≥ 16 1 ≤ 8 p p l 3 r ≥ 16
1 4
# points ≤ 12 1 4
3 1 ≥ 16 1 ≤ 8 p p l 3 r ≥ 16
1 4
# points ≤ 12 1 4
3 1 ≥ 16 1 ≤ 8 p p l 3 r ≥ 16
1 4
# points ≤ 5 # points ≤ 12 1 4
3 1 ≥ 16 1 ≤ 8 p p l 3 r ≥ 16
1 4
# points ≤ 5 # points ≤ 12 # points ≤ 5 Improvements
Can improve slightly by using “caps” instead of general convex pt sets. Improvements
Can improve slightly by using “caps” instead of general convex pt sets. Still, it should be easy to improve this bound. Try! Improvements
Can improve slightly by using “caps” instead of general convex pt sets. Still, it should be easy to improve this bound. Try! Currently, we know that for n > 196, Kn has no 1/4-SHPED. Conclusions
Graph Drawing is a young and interesting research area between theory and practice. Conclusions
Graph Drawing is a young and interesting research area between theory and practice. What have you seen? – Some real-world examples – General-purpose techniques: Force-directed! – A main theorem: • Tamassia’s flow network for orthogonal graph drawing – Some recent stuff: • point-set embeddability & right-angle crossings • partial edge drawings Conclusions
Graph Drawing is a young and interesting research area between theory and practice. What have you seen? – Some real-world examples – General-purpose techniques: Force-directed! – A main theorem: • Tamassia’s flow network for orthogonal graph drawing – Some recent stuff: • point-set embeddability & right-angle crossings • partial edge drawings Teaching: Nice topic for bachelor and master theses. Conclusions
Graph Drawing is a young and interesting research area between theory and practice. What have you seen? – Some real-world examples – General-purpose techniques: Force-directed! – A main theorem: • Tamassia’s flow network for orthogonal graph drawing – Some recent stuff: • point-set embeddability & right-angle crossings • partial edge drawings Teaching: Nice topic for bachelor and master theses. In September, come to Los Angeles for GD 2015!