presentation 7-02-13 graph drawing
Post on 13-Apr-2015
72 Views
Preview:
DESCRIPTION
TRANSCRIPT
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Graph DrawingComputational Geometry
Malte Skambath
Universitat zu LubeckInstitute for Theoretical Computer Science
February 7, 2012
1 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Outline
Introduction
Force-directed approach
Crossing Minimization
Orthogonal Bend Minimization
Summary
2 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
IntroductionWhat is Graph Drawing?
How to draw nice graphs?
3 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
ChallengesWhat is a nice graph?
I Visualization of the graph should have nice lookI No precisely definition.I Criteria on nice drawings
I SymmetriesI Less crossing as possibleI Less bends as possible
I Drawing should represents special propertiesI Topological sorting
4 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Types of drawings
(a) (b) (c) (d)
Figure : Types of drawings: a polyline (a), straight-line (b) and(c) an orthogonal drawing of K3,3; (d) upward drawing
5 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
MotivationIs it useful for me?
I state-machinesI UML class diagramsI electrical circuits / chip-designI traffic-nets (e. g. bus map)
Graph
Edge
Node
FacesPlanarGraphKernzone
6000
LÜBECKHBF
5
11
21
7
(17)9 10
312
15 1 2 6 7 9 16 (17)
4
5
5
10
4
4
1
12123
1
3
3
2
11
11
39
30
30
2111
10
3139
4
32
32
32 15
15
15
40
40 31
8720 5 15
ZOB/ Hauptbahnhof
enen
Lutherkirche
Hansering
Zeißstr
Walkmühlen-weg Bei der
Gasanstalt
VerwaltungszentrumMühlentor
Theodor-Heuss-St
Welsbachstr.keine Bedienung
Linien 15 u. 32Umleitung wegen
NeubauPossehlbrücke
bis 2014/15
Moltke-platz
Moltkestr. AmBertramshofHüxtertorallee
Stresemannstr.
PensebuschStadthalleTürk
Luisenstr.Adolf-
str. Burgtor-friedhof
Torneiweg Bunwe
Z
HanseReside
Gustav-Adolf-S
Ehren-friedhof
Geschw.-S
Katharineum
Koberg
An derFalkenwiese
Roeck-str. Heinrichstr.
LauerhoDräger- park
Krähen-str.
Wahmstr.Percevalstr.
Blanckstr.
Kaufhof
Marli-ring
Goeben-str.
H
Fleischhauer-str.
GroßeBurgstr.
Meesen-ring
Schenk
Gneisenaustr.
Falkendamm
Breite Str./Stadt-theater
Schulstr.
Wieland-str.
Wisbystr.
Töpferwegche
Lachswehr-allee
Dräger-werk
Fegefeuer
Wickedestr.
Friedenstr.
Drögestr.
FackenburgerAllee
Holstentor- platz
Schüssel-buden
Stadt-werke
Mozartstr.
Meierstr.
Beckergrube
LindenArcaden
rd-Wagner-Str.
rtlenburger Str.
Adler-str.
ibis HotelAn derStadt-
freiheit
Unter-trave
Gustav- Radbruch-
Platz
e
er Kohlmarkt
Sandstr.
Königstr.
31 393040 8720 R1
R2
6 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Force-directed approach
I Used for straight line drawingsI Model the graph-vertices and edges as physical
objects with forcesI Distance of adjacent vertices (v ,w) should be nearly
the same distance d(v ,w)
I No overlapping vertices
7 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Force-directed approach
1. Generate random representation of G with randompositions ~p(v) for v ∈ V
2. Calculate forces between each pair of vertices vi , vj :~f (vi , vj)
3. Calculate resulting force ~f (v) for each node v ∈ V :~f (v)
∑w∈V\{v}
~f (v ,w)
4. Update positions ~p(v) = ~p(v) + ∆~f (v)
8 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Spring Embedder
Remember:we want a unit distance d(v ,w) if v ,w are adjacent⇒ Model edges as springs with a unit length
unit length no force
I attracting force (adjacent vertices): fa = ca log d
I repelling force (non-adjacent vertices): fr =cr
d2
I stepwise simulatable
~f (v) =∑
w∈V\{v}(~p(w)−~p(v))
{fa(v ,w), (v ,w) ∈ E−fr (v ,w), (v ,w) 6∈ E
~p(v) := ~p(v) + ∆~f (v)
9 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Spring EmbedderSample
10 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Advantages & Disadvantages
I easy implementableI usefull for interactive implementationI time-complexity: O(n|V |2)
I slow with huge graphsI non-predictable result
11 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Simulated Annealing
I Goal: optimize drawing σ to selected criteriasI No forces, but physical modelI Inspired by cool-down process in liquidsI Define an energy-function E : σ → RI Low value E(σ)↔ σ fits many criteriaI High temperature T ↔ high propabilty P finding a
better configuration σI Low energy value E(σ)↔ low propability P finding a
better configuration σ
12 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Simulated Annealing
Algorithm 1: Simulated Annealing Graph Drawinginput : A graph G = (V ,E), an initial temperature Toutput: A straight-line drawing of G
beginCreate initial drawing/configuration σ with randompos. for each vertex v ∈ V ;while do
Choose a new configuration σ′ from theneighborhood of σ;Let E and E ′ be the energy values of σ and σ′;if E ′ < E or with a probability of e−(E
′−E)/T thenσ ← σ′;
Decrease T
13 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Energy function
I should depend on the criteriaI low time complexityI Example (by R. Davidson and D. Harel.):
f = λ1 ·∑i 6=j
1d(ni ,nj)
distribution
+ λ2 ·∑n∈V
dbord(n) border dist.
+ λ3 ·∑e∈E
d(e) edge length
+ λ4 · crossings edge crossings
+ λ5 ·∑
e∈E ,n∈V
d(n,e) edge-distance
14 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Neighborhood & energy function
How can we define the neighborhood?⇒ change the position of a single node in σ
15 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Simulated annealingexample
R. Davidson, D. Harel Drawing Graphs Nicely Using Simulated Annealing, 1996 16 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Crossing Minimization
I Goal: reduce number of crossings in a drawing of anon-planar graph G
I We know: planar graphs can be drawn withoutcrossings
⇒ Approximate Graph as a planar graphI Idea: convert non-planar graphs into planar graphs
and replace non-removable crossings as virtualvertices
I Planarizataion approach: create a planar embeddingof the new graph
17 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Planarization Approach
1. Find maximum planar subgraph and embedding,without crossing
2. Create embedding of the graph3. Insert the non-planar edges with a minimum number
of crossing, use crossings as virtual vertices
ProblemFinding a maximum-planar subgraph is NP-hard .
trade off
find a maximal planar subgraph
18 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Planarization Approach
1. Find maximum planar subgraph and embedding,without crossing
2. Create embedding of the graph3. Insert the non-planar edges with a minimum number
of crossing, use crossings as virtual vertices
ProblemFinding a maximum-planar subgraph is NP-hard .
trade off
find a maximal planar subgraph
18 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Maximal planar subgraph
Algorithm 2: Maximal planar subgraphinput : a graph G = (V ,E)output: a maximal planar subgraph G′ = (V ,E ′) of G
beginE ′ = ∅;while there is an edge e ∈ E \ E ′ thatG = (V ,E ′ ∪ {e}) is planar do
E ′ ← E ′ ∪ {e};return G′;
19 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Definition
A dual graph DG = (F ,E) of a planar graph G = (V ,E) isa (multi-)graph where F represents the faces in a planarembedding of G. Each pair f1, f2 ∈ F of adjacent faces issplitted by an edge in G. ⇒ E(F) ≡ E(G)
20 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Insert non-planar edge with min.crossings
Insert non-planar edge e = (v ,w) ∈ E1. Find shortest path p in the dual-graph DG2. Insert e over path p generate new virtual nodes and
split faces
21 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Insert non-planar edge with min.crossings
22 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Insert non-planar edge with min.crossings
23 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Shortest Path in the Dual Graph
k
k+1
ek
k+1
e
24 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Improve with parallel substructures
I Problem: for some edges the graph can easily bemodified to reduce number of crossings
I if the 2 vertices of the edge are in different blocks ofa parallel substructure
⇒ switch the order to decrease number of crossings
25 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
SPQR-tree
s
t
e
(a) trivial case
e
(b) parallel case
e
(c) series case
e
(d) rigid case
Figure : the four different types of nodes in a SPQR-tree
26 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
SPQR-tree
ab
c
de
f
h
g
i
j
kl
m
n
op
27 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
SPQR-tree
ab
cd
e
fh
g
i
jk
lm
n
o p
a
bcd
ed
ed
ef
h e
h e
h
j
nh
jh
jm
lk
h
m
e
n
e
n
g
n
jn
jp
o
hj
i
28 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
SPQR-trees
a
bcd
ed
edef
h e
h e
hj
n
h
jh
jm
lk
h
m
e
n
e
n
g
n
jn
jp
o
hj
i
R
P
S
P
S P S
P
R
P
S
SR
29 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
SPQR-trees
ab
c
de
fh
g
i
jk
lm
n
op
R
P
S
P
S P S
P
R
P
S
SR
30 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
SPQR-trees
ab c d
e
fh
g
i
jk
lm
n
op
R
P
S
P
S P S
P
R
P
S
SR
31 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Orthogonal Drawing
I Γ(E) for each edge e ∈ E is a set of orthogonal linesI Γ(v) for each vertex v ∈ V is a point in R2
Definition
We call Γ an orthogonal planar drawing of G if1. ∀v ,w ∈ V : Γ(v) = Γ(w ∈ V )⇔ w = v (invective)2. ∀e = (v ,w) ∈ E : Γ(v), Γ(w) are endpoints of Γ(e)
3. ∀e1,e2 ∈ E : e1 6= e2 ⇒ Γ(e1), Γ(e2) only intersect ata point Γ(v) of a common vertex v (if exists)
32 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Orthogonal Drawing
two different planar orthogonal representations Γ, Γ′ of thesame Graph G, but with a different number of edges andthe same faces
33 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Bend Minimization asMinCostFlow-Problem
If we have a planar representation Γ of a planar Graph,keeping the the same faces we can minimize the numberof bends with solving a minimum cost flow problem.
34 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Bend Minimization asMinCostFlow-Problem
Definition
A min-cost flow network N = (D,u, l ,b, c) consists ofI directed (multi-)graph D = (W ,A)
I capacities u : A→ N0 ∪ {∞}, l : A→ ZI node demands b : W → ZI costs c : A→ N0.
f : A→ N0 is a flow on N ifl(a) ≤ f (a) ≤ u(a)∧b(v) =
∑(v ,w)∈A f (v ,w)−
∑(w ,v)∈A f (w , v)(∑
v∈W (b(v) = 0))
⇒ f is a min-cost-flow if∑
a∈A c(a)f (a) is minimal.
35 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Define the flow network for the problemnode demands & capacities
v1 v2 v3
v4 v5
τ(v3, v5) = 2; τ(v5, v3) = 1;
α(v3, v5) = 1
α(v5, v3) = 2
define labels α(v ,w), τ(v ,w) for each edge (v ,w) in G:τ : (v ,w) ∈ E 7→ #of L-bends in Γ((v ,w))α : (v ,wi) ∈ E 7→ ^ betw. Γ((v ,wi))andΓ((v ,wi+1))
36 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Define the flow network for the problemnode demands & capacities
Remember:We want to minimize the total number of bends on edgesin the drawing Γ(G).
The total number is∑
(v ,w)∈E τ(v ,w) + τ(w , v).⇒So the goal is: minimize
∑(v ,w)∈E τ(v ,w) + τ(w , v)
2
1
1
1
2 1
11
1
1
37 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Theorem
The sum of angles(at vertices or bends) around aninner/outer face f ∈ F is:
π · (deg(f ) + #bends∓ 2)
This implies:∑(v ,w)∈E(f )
(α(v ,w) + τ(w , v)− τ(v ,w)) = 2 deg(f )∓ 4
38 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
∑(v ,w)∈E(f )
(α(v ,w) + τ(w , v)− τ(v ,w)) = 2 deg(f )∓ 4
1
2 1
1
1
1
1
Let the face-to-face edges (producers of bends on anedge) get edges in the flow networks with costs 1
39 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Define the flow network for the problemThe directed (multi-) Graph DG
DG = (W ,A) with W = V ∪ F consists DF as theface-induced subgraph of F by Γ(G)
demands in the flow-network N :
b(x) =
{−2 deg(x)± 4 , x ∈ F (inner / outer face)4 , x ∈ V
:
capacities:e ∈ A : u(e) =∞; e ∈ AF : l(e) = 0; e 6∈ AF : l(e) = 1costs: eF ∈ AF : c(eF ) = 1; e 6∈ AF : c(e) = 0
40 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Assign flow
Given a flow f : E → NI f (v , fv ,w ): angle(α) at node v in face fv ,w left of (v ,w)
I f((f1, f2)e
): #LeftBends (τ ) on the edge (f1, f2)e
between the faces f1 and f2A flow f is a valid model for a valid drawing if:
I for all nodes v : b(v) =∑
(v ,w)∈E f (v ,w) = 4
X
I for all faces f :∑(v ,w)∈E(f )
(α (v ,w) + τ(w , v)− τ(v ,w)) = 2 deg(f )∓ 4
X
I inflow←→ outflow
A valid flow implies a valid graph representation Γ⇒ A cost-minimal flow implies a bend-minimal graphrepresentation Γ
41 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Assign flow
Given a flow f : E → NI f (v , fv ,w ): angle(α) at node v in face fv ,w left of (v ,w)
I f((f1, f2)e
): #LeftBends (τ ) on the edge (f1, f2)e
between the faces f1 and f2A flow f is a valid model for a valid drawing if:
I for all nodes v : b(v) =∑
(v ,w)∈E f (v ,w) = 4XI for all faces f :∑
(v ,w)∈E(f )(α (v ,w) + τ(w , v)− τ(v ,w)) = 2 deg(f )∓ 4
X
I inflow←→ outflow
A valid flow implies a valid graph representation Γ⇒ A cost-minimal flow implies a bend-minimal graphrepresentation Γ
41 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Assign flow
Given a flow f : E → NI f (v , fv ,w ): angle(α) at node v in face fv ,w left of (v ,w)
I f((f1, f2)e
): #LeftBends (τ ) on the edge (f1, f2)e
between the faces f1 and f2A flow f is a valid model for a valid drawing if:
I for all nodes v : b(v) =∑
(v ,w)∈E f (v ,w) = 4XI for all faces f :∑
(v ,w)∈E(f )(α (v ,w) + τ(w , v)− τ(v ,w)) = 2 deg(f )∓ 4X
I inflow←→ outflow
A valid flow implies a valid graph representation Γ⇒ A cost-minimal flow implies a bend-minimal graphrepresentation Γ
41 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Existence of a valid flow: Inflow=Outflow
to proof:∑
v∈W b(v)!
= 0∑v∈W
b(v) =∑v∈V
b(v) +∑f∈F
b(f )
= |V |4 +∑
f∈F\{fo}
(−2 deg f + 4)− 2 deg fo − 4
= |V |4 + (|F| − 2)4− 2∑f∈F
(deg f )
= |V |4 + (|F| − 2)4− 4|E |= 4(|V |+ |F| − |E | − 2) = 0
42 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Bend Minimizationexample
-4-2
-14
213
2
332
-4 -2
-14
13
2
332
43 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
Summary
I graph drawing is a wide area with many problemsI most problems are NP hardI problems depend on the type of drawings and the
slected criteriasI good approximation is possible for many problemsI combination of algorithms may be possibleI there exists many tools for graph drawing
1. yEd2. GraphViz3. Gephi4. Tulip
44 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
GraphVizexample
circo-layout:
twopi-layout:
1graph G{2 node[label=""];3 a1 -- a2; a1 -- a3;4 a1 -- a4;5 a1 -- a5; a1 -- a6;6 a2 -- a3; a2 -- a4;7 a2 -- a5; a2 -- a6;8 a3 -- a4; a3 -- a5;9 a3 -- a6;
10 a4 -- a5; a4 -- a6;11 a5 -- a6;12}
45 / 46
Graph Drawing
Malte Skambath
IntroductionChallenges
Types of drawings
Force-directedapproachSpring Embedder
Simulated Annealing
CrossingMinimizationPlanarization Approach
Dual graph
SPQR-tree
Orthogonal BendMinimizationOrthogonal Drawing
MinCostFlow-Problem
Summary
yEd
46 / 46
top related