Part I: – 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 , 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 /  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 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 . 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!