Download - Algorithms for Planar Graphs
Algorithms for Planar Graphs
Jeff Erickson University of Illinois, Urbana-Champaign
CIMAT, Guanajuato, Mexico September 10, 2018
!"#$%#&$%'&()#%*+,-%.
Planar Graphs
‣ A graph is planar if it can be drawn in the plane without edge crossings
▹ Vertices = points
▹ Edges = simple disjoint curves
2. PLANAR GRAPHS
planar embeddingplanar graphplane graphstereographic
projectionface!of a planar
embeddingouter face
2.2 Planar Graphs 1
Embeddings 2
A planar embedding of a graph G is a continuous injective function from the topological 3
graph G> to the plane. More explicitly, a planar embedding maps the vertices of G to 4
distinct points in the plane and maps the edges of G to simple paths in the plane between 5
the images of their endpoints, such that the paths do not intersect except at common 6
endpoints. A planar graph is an abstract graph that has at least one planar embedding. 7
Somewhat confusingly, a planar embedding of a planar graph is also called a plane 8
graph. 9
w
z
x
v
u
y
w
z
x
y
v
u
A planar graph G. A planar embedding of G.
For many proofs, it is actually more natural to consider graph embeddings on the 10
sphere S2 = {(x , y, z) | x2 + y2 + z2 = 1} instead of the plane. Consider the standard 11
stereographic projection map st: S2\(0, 0, 1)! R2, where st(x , y, z) :=� x
1�z , y1�z
�. The 12
projection st(p) of any point p 2 S2 \ (0,0,1) is the intersection of the line through p 13
and the “north pole” (0, 0, 1) with the x y-plane. Given any spherical embedding, if we 14
rotate the sphere so that the embedding avoids (0,0, 1), stereographic projection gives 15
us a planar embedding; conversely, given any planar embedding, inverse stereographic 16
projection immediately gives us a spherical embedding. Thus, a graph is planar if and 17
only if it has an embedding on the sphere. 18
Stereographic projection.
The components of the complement of the image of a planar or spherical embedding 19
are called the faces of the embedding. The Jordan curve theorem implies that every 20
face of a spherical embedding of a connected graph is homeomorphic to an open disk. A 21
planar embedding of a connected graph has a single unbounded outer face, which is 22
6
!"#$%"&'($)*+,(-*"+"&./0)&12!&3)4&12! 5)4&12!&/6)4&12! 7*%%(-&/889:
!"#$%"&'($)*+,(-*"+"&./0)&12!&3)4&12! 5)4&12!&/6)4&12! 7*%%(-&/889:
!"#$%"&'($)*+,(-*"+"&./0)&12!&3)4&12! 5)4&12!&/6)4&12! 7*%%(-&/889:
.;"00*+*&/9<<:
.;"00*+*&/9<<:
.=">*(0&?@/3:
p na vr
c
(a) (b) (c) (d) (e)
Figure 1: Main stages of our method for mesh reconstruction from scattered data.
Figure 2: The Stanford Lucy model is reconstructed as a mesh frompoint scattered data. Left: a triangle mesh approximating the Lucystatue. Right: zoomed parts of the Lucy mesh (the head and and afoot) are shown in order to demonstrate a high quality of the mesh.
Figure 3: Left: ten range scans of the Stanford bunny model arerendered as a cloud of points. Middle: a zoomed part of bunny' sear, noise is visible. Right: the same part on the mesh reconstructedby our method, noise is eliminated, small features are accuratelyreconstructed, and the mesh triangles have good aspect ratios.
Often scattered points are assigned with a certain con� dence mea-sure [Turk and Levoy 1994; Curless and Levoy 1996]. If ci ∈ [0; 1]
Figure 4: Meshing of noisy point data sampled from a model withsharp features. The model (octa-� ower implicit surface) was poly-gonized with by the marching cubes algorithm and then corruptedby random noise. Left: a triangle mesh connecting the originalpoints accurately. Right: our method reconstructs the sharp edgesand corners of the model using a much smaller number of verticesthan the original marching cubes mesh has.
indicates the con� dence of pi ∈ P , we assign the weight
wi = ci ai (2)
to point pi, i = 1; : : : ; N. We set ci = 1 if no con� dence measure isattributed to point pi.To approximate P by a mesh we need to estimate unit normalsN = f n1 ; ¢ ¢ ¢ ; nN g at the points of P . Often scattered points arealready equipped with unit normals which are directly estimatedfrom range scans. If normals N are not provided, we estimatethem using a standard covariance-based technique [Gumhold et al.2001]. In our approach, the normals need not to be consistent withthe surface orientations.
3 Adaptive Spherical Cover and Mesh Gen-eration
In this section, we explain the core part of our method: creating anadaptive spherical cover ofP and generating a meshM approxi-mating scattered pointsP .
3.1 Control for Overlapping
To build an adaptive spherical cover ofP we use a simpli� ed ver-sion of the approach proposed Wu and Kobbelt [Wu and Kobbelt2004] for generating an approximately minimal set of splats cover-ing the whole surface. Our spherical cover consists of spheres cen-tered at f c1 ; : : : ; cM g ⊂ P and the radii of the spheres f r1 ; : : : ; rM gare chosen adaptively.
Step 1. Set all points inP as uncovered.
62
.A4)"B(C&D(%E"(>C&F(*G(%&?@@3:
Planar embedding
‣ Vertices = points
‣ Edges = simple interior-disjoint curves
w
z
x
v
u
y
w
z
x
y
v
u w
z
x
y
v
u
Incidence list
‣ Each edge represented by two directed edges or darts
‣ Each vertex v stores the list of darts into v
‣ Each dart stores successor, reversal, and tail vertex
w
z
x
v
u
y
v yz w
x u
u z x z
v y w
z u x
u z wyw z
u
v
w
x
y
z
wz
x
y
v
u w
z
x
y
v
u
Rotation system
‣ Counterclockwise order of edges incident to each vertex
‣ Specifies the embedding of G on the sphere, up to (ambient) isotopy
[Hamilton 1856] [Kirkman 1856] [Cayley 1857] [Heffter 1891] [Brückner 1900]....
wz
x
y
v
u w
z
x
y
v
u
Rotation system
‣ Counterclockwise order of edges incident to each vertex
‣ Specifies the embedding of G on the sphere, up to (ambient) isotopy
[Hamilton 1856] [Kirkman 1856] [Cayley 1857] [Heffter 1891] [Brückner 1900]....
Ordered incidence list
‣ Record the rotation system in the incidence list
w yz v
u x
u x z z
v y w
x u z
z y wwu z
u
v
w
x
y
z
wz
x
y
v
u w
z
x
y
v
u
:;."&'8
%."&0$:25,"$;&5:8$*$85*$5$,5/@&52$&C#"$:25,"$;&5:8$*DP! ."&/'("*$+#$*D$K$#5("*$+#$*! "H;"*$+#$*D$K$"H;"*$+#$*! #5("*$+#$*D$K$."&/'("*$+#$*
u*
v*
f* g*f g
u
v
:;."&'8
%."&0$:25,"$;&5:8$*$85*$5$,5/@&52$&C#"$:25,"$;&5:8$*DP! ."&/'("*$+#$*D$K$#5("*$+#$*! "H;"*$+#$*D$K$"H;"*$+#$*! #5("*$+#$*D$K$."&/'("*$+#$*
u*
v*
f* g* f g
u
v
! >8"$*59"$+&H"&"H$',('H",("$2'*/$",(+H"*$E/'F0*05,H0*DQ
<$+/2=+4.'.+*'%;6';%2
(C@@RM&N$K$%:)M(C@@M&NN
head(d)
d
succ(d)
d
right(d)
succ⇤ (d)
d
succ⇤(d)head⇤(d)
>$/'%.6'&$/+⇔+:2"2'&$/
! G:":'.$H$5,$"H;"$9"&;"*$/8"$<#@:($+,$4+/8$(.&:(
! 8/$'%#@'.$H$5,$"H;"$9"&;"*$/8"$):%'.@:($5/$4+/8$:$&(
>$/'%.6'&$/+⇔+:2"2'&$/
! G:":'.$H$5,$"H;"$9"&;"*$/8"$<#@:($+,$4+/8$(.&:(
! 8/$'%#@'.$H$5,$"H;"$9"&;"*$/8"$):%'.@:($5/$4+/8$:$&(
>86"2*+⇔+>;'*
! =$@C'$*":5&5/"*$/8"$):%'.@:($+,$+,"$*'H"$#&+9$/8"$+/8"&$
! =$@9@":$*":5&5/"*$/8"$<#@:($+,$+,"$*'H"$#&+9$/8"$+/8"&$" S40$/8"$!+&H5,$(@&."$/8"+&"9
s*t*
st
+IF.'$:901=JK5
?%22@6$'%22+426$)1$*&'&$/
! T"/$L$4"$5,$5&4'/&5&0$*:5,,',;$/&""$+#$*Q$
! >8",$8R K$M*0U$LNR$'*$5$*:5,,',;$/&""$+#$*RQ$" L$'*$(+,,"(/"H$! 8R$'*$5(0(2'($
" L$'*$5(0(2'($! 8R$'*$(+,,"(/"H
+M/$0N'#C&'012O;5
?%22@6$'%22+426$)1$*&'&$/
! T"/$8R$4"$5,$5&4'/&5&0$*:5,,',;$/&""$+#$*RQ$
! >8",$L$K$M*R U$8RNR$'*$5$*:5,,',;$/&""$+#$*Q$" 8R$'*$(+,,"(/"H$! L0'*$5(0(2'($
" 8R$'*$5(0(2'($! L0'*$(+,,"(/"H
+M/$0N'#C&'012O;5
A;"2%B*+C$%);".
! V+&$"."&0$:25,5&$;&5:8$I'/8$M$."&/'("*3$P$"H;"*3$5,H$Q$#5("*PV+&$"."&0$:25,5&$;&5:8$I'/8$M$."&/'("*3$M$."&/'("*3$M P$"H;"*3$5,H$P$"H;"*3$5,H$P
&&/&!&0&"&1&# $%%
A;"2%B*+C$%);".
! V+&$"."&0$:25,5&$;&5:8$I'/8$M$."&/'("*3$P$"H;"*3$5,H$Q$#5("*PV+&$"."&0$:25,5&$;&5:8$I'/8$M$."&/'("*3$M$."&/'("*3$M P$"H;"*3$5,H$P$"H;"*3$5,H$P
&&/&!&0&"&1&# $%%
-%$$,D
! V'B$5$/&""6(+/&""$H"(+9:+*'/'+,$ML3$8NQ$
! L 85* MWD$"H;"*Q$! 8R$85*$QWD$"H;"*Q$! >8@*3$P$K$MMWDN$X$MQWDNQ
+M/$0N'#C&'012O;5
Easy Consequences
‣ For any planar triangulation, E = 3V–6 and F = 2V–4 ▹ Every face has exactly three sides
‣ For any simple planar graph, E ≤ 3V–6 and F ≤ 2V–4 ▹ No loops or parallel edges ▹ Subgraph of a triangulation
‣ Every simple planar graph has a vertex of degree ≤ 5 ▹ ... at least 4 vertices of degree ≤ 5 ▹ ... either a vertex of degree ≤ 3 or a face of degree ≤ 3
!"#$%#&$%'&()#%*+,-%.
G&/&);)+*1.//&/#+'%22*
Tarjan’s red-blue rule
‣ For each cycle in G, color the heaviest edge red.
‣ For each cut in G, color the lightest edge blue.
‣ Every edge of G is either red or blue but not both.
‣ The blue edges define the minimum spanning tree of G.
[Tarjan 1983]
Tarjan’s red-blue algorithm
‣While G has at least one edge, either delete any red edge or contract any blue edge.
‣ Contracted edges = minimum spanning tree of G.
[Tarjan 1983]
Textbook MST algorithms
‣ Borůvka: Contract lightest edge incident to each vertex, delete heavy parallel edges, and (if any edges left) recurse.
‣ Jarník/Prim: Fix a vertex v. Contract lightest edge incident to v, delete heavy parallel edges, and (if edges left) recurse.
‣ Kruskal: For all edges in increasing weight order: If the current edge is a loop, delete it; otherwise, contract it.
[Tarjan 1983]
...in planar graphs
‣ For each cycle in G, color the heaviest edge red.
‣ For each cut in G, color the lightest edge blue.
‣ The blue edges define the minimum spanning tree of G.
‣ For each cut in G*, the heaviest edge is red.
‣ For each cycle in G*, the lightest edge is blue.
‣ The red edges define the maximum spanning tree of G*.
Tarjan’s red-blue algorithm
‣While G has at least one edge, either delete any red edge or contract any blue edge.
‣ Contracted edges = minimum spanning tree of G.
‣ Deleted edges = maximum spanning tree of G*.
Borůvka’s algorithm
‣While G has at least one edge ▹ For each vertex v
• Contract the lightest edge incident to v (which must be blue) ▹ Delete any heavy parallel edges (which must be red)
‣ All contractions in the first iteration take O(E) = O(V) time
‣ All deletions in the first iteration take O(E) = O(V) time
‣ Each iteration removes at least half the vertices.
‣ So overall running time is O(V)
[Borůvka 1928]
G.%2PB*+."#$%&'()
!`8'2"$?$85*$5/$2"5*/$+,"$"H;"$" d'()$5,0$."&/"B$)0I'/8$H";&""$5/$9+*/$_$" 8/$'%#@'$/8"$2';8/"*/$"H;"$',('H",/$/+$)$MI8'(8$9@*/$4"$E"C:N$" G:":':$5,0$8"5.0$:5&522"2$"H;"*$MI8'(8$9@*/$4"$%:&N$
! %5(8$'/"&5/'+,$/5)"*$cMDN$/'9"3$*+$/+/52$&@,,',;$/'9"$'*$cMMNQ
I'/8$H";&""$5/$9+*/$_$
=,0$(+,*/5,/$I'22$I+&)$8"&"
+U#%:V0KAA45
Matsui’s algorithm
‣While G has at least one edge
▹ If G has a vertex v of degree at most 3 • If v is incident to a loop, delete the loop • Else contract the lightest edge incident to v
▹ If G has a face f with degree at most 3 • If f is incident to a bridge, contract the bridge • Else delete the heaviest edge incident to f
‣ Each iteration takes O(1) time, so total running time is O(V).
[Matsui 1995]
!"#$%#&$%'&()#%*+,-%.
Straight-line embedding
‣ Every planar embedding of a simple planar graph G is equivalent to an embedding where every edge is a straight line segment.[Steinitz 1916, Wagner 1936, Fáry 1948, Stein 1951, Stojaković 1959]
Straight-line embedding
‣ Suppose G is a triangulation.
‣ Delete any vertex of degree ≤ 5 and retriangulate the hole
‣ Recursively embed the remaining graph ▹ Base case: Embed 3-cycle as a triangle
‣ Reinsert vertex in resulting polygonal hole
Straight-line embedding
‣ Suppose G is a triangulation.
‣ Delete any vertex of degree ≤ 5 and retriangulate the hole
‣ Recursively embed the remaining graph ▹ Base case: Embed 3-cycle as a triangle
‣ Reinsert vertex in resulting polygonal hole
Straight-line embedding
‣ Suppose G is a triangulation.
‣ Delete any vertex of degree ≤ 5 and retriangulate the hole
‣ Recursively embed the remaining graph ▹ Base case: Embed 3-cycle as a triangle
‣ Reinsert vertex in resulting polygonal hole
Straight-line embedding
‣ Suppose G is a triangulation.
‣ Delete any vertex of degree ≤ 5 and retriangulate the hole
‣ Recursively embed the remaining graph ▹ Base case: Embed 3-cycle as a triangle
‣ Reinsert vertex in resulting polygonal hole
Schnyder wood
‣WLOG suppose G is a triangulation
‣ Color the outer vertices red, green, and blue
‣ Direct and color the interior edges as follows:
1
4 9
11
7
2
8
6
10
5
3
[Schnyder 1990]
Schnyder wood
‣ Recursive construction:
[Schnyder 1990]
Schnyder wood
‣ The edges of each color induce a directed spanning tree of the interior vertices, rooted at the outer vertex of that color.
1
4 9
11
7
2
8
6
10
5
3
[Schnyder 1990]
Schnyder wood
‣ The edges of each color induce a directed spanning tree of the interior vertices, rooted at the outer vertex of that color.
▹ Each tree has V–2 vertices and V–3 edges
▹ So G has 3(V–3) + 3 = 3V–6 edges
▹ We just proved Euler’s formula again! 1
4 9
11
7
2
8
6
10
5
3
[Schnyder 1990]
K6(/842%+6$$%4&/.'2*
! f'&"(/"H$:5/8*$#&+9$"5(8$."&/"B$:5&/'/'+,$/8"$#5("*$+#$?
QRS+TUS+VW
+N@F$9&:%01==A5
! 1,/"&:&"/',;$#5("$(+@,/*$5*$45&0(",/&'($(++&H',5/"*$;'."*$@*$5$*/&5';8/62',"$"94"HH',;$+#$*$+,$5$MF$W\NhMF$W\N$;&'HQ
0%&4+2)3244&/#
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
2221
2019
1817
1615
1413
1211
109
87
65
43
21
22212019181716151413121110987654321
1110
1
4
97
2
8
6
5
3
+N@F$9&:%01==A5
! -*',;$5$*'9'25&$:5&/'/'+,',;$+#$/8"$."&/'("*3$I"$(5,$"94"H$*+,$5,$M$WDNhM$WDN$;&'HQ
0%&4+2)3244&/#
121110987654321
1211
109
87
65
43
21
12
11
10
9
8
7
6
5
4
3
2
111
10
1
4
9
7
2
8
6
5
3
+N@F$9&:%01==A5
!"#$%#&$%'&()#%*+,-%.
Separators
‣ A separator of an n-vertex graph G is a subset S of vertices where each component of G\S has at most 2n/3 vertices.
‣ Used in lots of divide-and-conquer algorithms
T(n) ≤ T(n/3) + T(2n/3) + f(n)
⟹ T(n) =O(n) if f(n) = O(n1−ε)O(n log n) if f(n) = Θ(n)O( f(n)) if f(n) = Ω(n1+ε)
Easy separators
‣ Paths: One vertex
Easy separators
‣ Paths: One vertex
‣ Cycles: Two vertices
Easy separators
‣ Paths: One vertex
‣ Cycles: Two vertices
‣ Trees: One vertex [Jordan 1869]
Easy separators
‣ Paths: One vertex
‣ Cycles: Two vertices
‣ Trees: One vertex [Jordan 1869]
‣ Outer-planar graphs: Two vertices
Easy separators
‣ Paths: One vertex
‣ Cycles: Two vertices
‣ Trees: One vertex [Jordan 1869]
‣ Outer-planar graphs: Two vertices
‣ √n×√n grid: √n vertices
Easy separators
‣ Paths: One vertex
‣ Cycles: Two vertices
‣ Trees: One vertex [Jordan 1869]
‣ Outer-planar graphs: Two vertices
‣ √n×√n grid: √n vertices
G24&./+MCK+"2O2"
! T"/$L$4"$5$4&"5H/86L&*/$*"5&(8$/&""$&++/"H$5/$5,0$."&/"BQ$! T"/$M&$4"$/8"$*"/$+#$."&/'("*$I'/8$H":/8$&Q$! T"/$Mk&$4"$/8"$*"/$+#$."&/'("*$I'/8$H":/8$2"**$/85,$&Q$
! T"/$&$4"$/8"$25&;"*/$',/";"&$*@(8$/85/$lMk&l$k01iFQ$
! >8",$M&$'*$5$*":5&5/+&Q$
! -,#+&/@,5/"203$M&$950$4"$."&0$25&;"Qk$iF
k$iF
&
Fundamental cycle separator
‣ Suppose G is a planar triangulation.
Fundamental cycle separator
‣ Suppose G is a planar triangulation.
‣ Let (T, C) be an arbitrary tree-cotree decomposition.
Fundamental cycle separator
‣ Suppose G is a planar triangulation.
‣ Let (T, C) be an arbitrary tree-cotree decomposition.
‣ Each vertex in C* has degree ≤ 3.
Fundamental cycle separator
‣ Suppose G is a planar triangulation.
‣ Let (T, C) be an arbitrary tree-cotree decomposition.
‣ Each vertex in C* has degree ≤ 3.
Fundamental cycle separator
‣ Suppose G is a planar triangulation.
‣ Let (T, C) be an arbitrary tree-cotree decomposition.
‣ Each vertex in C* has degree ≤ 3.
‣ There is an edge e such that each component of C*\e* has at most 2F/3 dual vertices.
Fundamental cycle separator
‣ Suppose G is a planar triangulation.
‣ Let (T, C) be an arbitrary tree-cotree decomposition.
‣ Each vertex in C* has degree ≤ 3.
‣ There is an edge e such that each component of C*\e* has at most 2F/3 dual vertices.
‣ Then cycle(T,e) is a (dual) separator of size ≤ 2 depth(T) + 1.
Fundamental cycle separator
‣ Suppose G is a planar triangulation.
‣ Let (T, C) be an arbitrary tree-cotree decomposition.
‣ Each vertex in C* has degree ≤ 3.
‣ There is an edge e such that each component of C*\e* has at most 2F/3 dual vertices.
‣ Then cycle(T,e) is a (dual) separator of size ≤ 2 depth(T) + 1.
Fundamental cycle separator
‣ Suppose G is a planar triangulation.
‣ Let (T, C) be an arbitrary tree-cotree decomposition.
‣ Each vertex in C* has degree ≤ 3.
‣ There is an edge e such that each component of C*\e* has at most 2F/3 dual vertices.
‣ Then cycle(T,e) is a (dual) separator of size ≤ 2 depth(T) + 1.
-"./.%+*21.%.'$%*
! C@::+*"$*$'*$5$:25,5&$/&'5,;@25/'+,a$2"/$L$4"$5$gVC$/&""Q$
! V',H$9"H'5,$2"."2$RQ
R
k$iF
]$iF
+^.!'/$0L#%R#$0_;;5
^Fj$
-"./.%+*21.%.'$%*
! C@::+*"$*$'*$5$:25,5&$/&'5,;@25/'+,a$2"/$L$4"$5$gVC$/&""Q$
! V',H$9"H'5,$2"."2$RQ$
! V',H$2"."2*$M.$5,H$M7$I'/8$^j$$,+H"*$I8"&"$RWj$0^$.0k$R0k$70^$RXj$Q
k$iF
]$iF
R
.
7
^j$
^j$
+^.!'/$0L#%R#$0_;;5
^Fj$
-"./.%+*21.%.'$%*
! C@::+*"$*$'*$5$:25,5&$/&'5,;@25/'+,a$2"/$L$4"$5$gVC$/&""Q$
! V',H$9"H'5,$2"."2$RQ
! V',H$2"."2*$M.$5,H$M7$I'/8$^j$$,+H"*$I8"&"$RWj$0^$.0k$R0k$70^$RXj$Q$
! 8/$'%#@'$2"."2*$k.$5,H$&:":':$2"."2*$n7$/+$+4/5',$*M.3$7oQ$
! N$K$#@,HQ$(0(2"$*":5&5/+&$+#$*M.3$7oQ$
! N!M.!M7$'*$5$*":5&5/+&$+#$*'m"$cMj$NQ
+^.!'/$0L#%R#$0_;;5
-"./.%+*21.%.'$%*
! C@::+*"$*$'*$5$:25,5&$/&'5,;@25/'+,a$2"/$L$4"$5$gVC$/&""Q$
! V',H$9"H'5,$2"."2$RQ
! V',H$2"."2*$M.$5,H$M7$I'/8$^j$$,+H"*$I8"&"$RWj$0^$.0k$R0k$70^$RXj$Q$
! 8/$'%#@'$2"."2*$k.$5,H$&:":':$2"."2*$n7$/+$+4/5',$*M.3$7oQ$
! N$K$#@,HQ$(0(2"$*":5&5/+&$+#$*M.3$7oQ$
! N!M.!M7$'*$5$*":5&5/+&$+#$*'m"$cMj$NQ
^Fj$
^j$
^j$
+^.!'/$0L#%R#$0_;;5
Extensions
‣ Planar triangulations have cycle separators of size O(√n).[Miller ’84 ’86]
Extensions
‣ Planar triangulations have cycle separators of size O(√n).[Miller ’84 ’86]
‣ Separator hierarchy: Recursively separate both components
Extensions
‣ Planar triangulations have cycle separators of size O(√n).[Miller ’84 ’86]
‣ Separator hierarchy: Recursively separate both components
▹ Cutting across the hierarchy gives us an r-division: n/r pieces, each with O(r) vertices and adjacent to O(√r) shallower separator vertices[Frederickson ’87]
Extensions
‣ Planar triangulations have cycle separators of size O(√n).[Miller ’84 ’86]
‣ Separator hierarchy: Recursively separate both components
▹ Cutting across the hierarchy gives us an r-division: n/r pieces, each with O(r) vertices and adjacent to O(√r) shallower separator vertices[Frederickson ’87]
▹ For cycle separator hierarchies: Each piece is a disk with O(1) holes.[Klein Subramanian ’08]
Extensions
‣ Planar triangulations have cycle separators of size O(√n).[Miller ’84 ’86]
‣ Separator hierarchy: Recursively separate both components
▹ Cutting across the hierarchy gives us an r-division: n/r pieces, each with O(r) vertices and adjacent to O(√r) shallower separator vertices[Frederickson ’87]
▹ For cycle separator hierarchies: Each piece is a disk with O(1) holes.[Klein Subramanian ’08]
▹ The entire hierarchy can be computed in O(n) time.[Klein Mozes Sommer ’13]
!"#$%#&$%'&()#%*+,-%.
K($%'2*'+1.'(*+=&'(+.%3&'%.%8+=2&#('*
! 1#$5,0$"H;"*$85."$,";5/'."$I"';8/3$f'A)*/&5p*$52;+&'/89$,+$2+,;"&$I+&)*$M5/$2"5*/$,+/$e@'()20N$
! g@/$>:""-#$`Q/%&$52I50*$I+&)*$',$cMMPN$/'9"P
2+,;"&$I+&)*$M5/$2"5*/$,+/$e@'()20N$
>:""-#$`Q/%&$52I50*$I+&)*$',$cM>:""-#$`Q/%&$52I50*$I+&)*$',$cM>:""-#$`Q/%& MPN$/'9"PMPN$/'9"PMP
H'*/M*N$" E$#+&$522$."&/'("*$.$q$*$
H'*/M.N$" r$
&":"5/$J$/'9"*$#+&$"5(8$"H;"$@#.$
'#$H'*/M.N$n$H'*/M@N$X$IM@#.N$H'*/M.N$" H'*/M@N$X$IM@#.N$$
+NF.-E:"0_3OX0Q/%&0_34X0U//%:0_3;X0I//&EC%90G#$'W.H0_3;X0>:""-#$0_32X0U.$'90_325
K($%'2*'+1.'(*+=&'(+/2#.'&O2+24#2*
! C@::+*"$I"$I5,/$/+$(+9:@/"$&.('*M/3*N$K$H'*/5,("*$',$*#&+9$."&/"B$/$/+$522$."&/'("*$',$*Q
Go
+U:F"F/%$0N@F-.&'0_2J5
K($%'2*'+1.'(*+=&'(+/2#.'&O2+24#2*
! C@::+*"$I"$I5,/$/+$(+9:@/"$&.('*M/3*N$K$H'*/5,("*$',$*#&+9$."&/"B$/$/+$522$."&/'("*$',$*Q
! V',H$5$*":5&5/+&$NX0*:2'//',;$* ',/+ ^ 5,H aQ$$d'()$,"I$*+@&("$."&/"B$($',$NQ
S
Go
+U:F"F/%$0N@F-.&'0_2J5
K($%'2*'+1.'(*+=&'(+/2#.'&O2+24#2*
! C@::+*"$I"$I5,/$/+$(+9:@/"$&.('*M/3*N$K$H'*/5,("*$',$*#&+9$."&/"B$/$/+$522$."&/'("*$',$*Q
! V',H$5$*":5&5/+&$NX0*:2'//',;$* ',/+ ^ 5,H aQ$$d'()$,"I$*+@&("$."&/"B$($',$NQ
S S
L Rs s
o
+U:F"F/%$0N@F-.&'0_2J5
S S
L Rs s
o
K($%'2*'+1.'(*+=&'(+/2#.'&O2+24#2*
! O"(@&*'."20$(+9:@/" &.('^M(3^N$5,H$&.('aM(3aNQ
+U:F"F/%$0N@F-.&'0_2J5
K($%'2*'+1.'(*+=&'(+/2#.'&O2+24#2*
! O"(@&*'."20$(+9:@/" &.('^M(3^N$5,H$&.('aM(3aNQ
! O"I"';8/$^$5,H$a$*+$"H;"*$5&"$,+,6,";5/'."3$5,H$(+9:@/"$&.('^MN3^N$5,H$&.('aMN3aN$.'5$f'A)*/&5Q$! cM$ZiF$2+;$$N$/'9"
S S
L Rs s
o
+U:F"F/%$0N@F-.&'0_2J5
K($%'2*'+1.'(*+=&'(+/2#.'&O2+24#2*
! 7+9:@/"$&.('*M(3NN$#&+9$&.('^MN3NN$5,H$&.('aMN3NN$.'5$g"2295,6V+&HQ$
" 7+9:2"/"$;&5:8$+,$cMj$N$."&/'("*$! cM$ZiFN$/'9"
S
Gs
o
GGGGGGGGGGGGGGS
s
+U:F"F/%$0N@F-.&'0_2J5
S
Gs
o
v
K($%'2*'+1.'(*+=&'(+/2#.'&O2+24#2*
! 7+9:@/"$&.('*M(3*N$40$4&@/"$#+&(" ! cM$ZiFN$/'9"$" 1#$)"^3$/8",$&.('*M(3)N$K$9','"N &.('*M(3'N$X$&.('^M'3)NQ$
" 1#$)"a3$/8",$&.('*M(3)N$K$9','"N &.('*M(3'N$X$&.('aM'3)NQ
+U:F"F/%$0N@F-.&'0_2J5
Gs
o
K($%'2*'+1.'(*+=&'(+/2#.'&O2+24#2*
! 7+9:@/"$&.('*M(3*N$40$4&@/"$#+&(" ! cM$ZiFN$/'9"$" 1#$)"^3$/8",$&.('*M(3)N$K$9','"N &.('*M(3'N$X$&.('^M'3)NQ$
" 1#$)"a3$/8",$&.('*M(3)N$K$9','"N &.('*M(3'N$X$&.('aM'3)NQ
+U:F"F/%$0N@F-.&'0_2J5
Gs
o
K($%'2*'+1.'(*+=&'(+/2#.'&O2+24#2*
! V',52203$&"I"';8/$*$*+$"H;"*$5&"$,+,6,";5/'."3$5,H$(+9:@/"$&.('*M/3*N$.'5$f'A)*/&5Q
+U:F"F/%$0N@F-.&'0_2J5
K($%'2*'+1.'(*+=&'(+/2#.'&O2+24#2*
! V',52203$&"I"';8/$*$*+$"H;"*$5&"$,+,6,";5/'."3$5,H$(+9:@/"$&.('*M/3*N$.'5$f'A)*/&5Q
Go
+U:F"F/%$0N@F-.&'0_2J5
K($%'2*'+1.'(*+=&'(+/2#.'&O2+24#2*
! V',52203$&"I"';8/$*$*+$"H;"*$5&"$,+,6,";5/'."3$5,H$(+9:@/"$&.('*M/3*N$.'5$f'A)*/&5Q
Go
! ?$'."D LM$N$^$LM$iZN$X$LMF$iZN$X$cM$ZiF$2+;$$N$K$;<-=>$%2.7%-?
+U:F"F/%$0N@F-.&'0_2J5
Further tricks
‣Multiple-source shortest paths: We can (implicitly) compute distL(S,L) and distR(S,R) in only O(n log n) time.
▹ Yes, even though there are O(n3/2) distances to compute!
▹ More details tomorrow!
[Klein ’05]
C;%'(2%+'%&6J*
!<@2/':2"6*+@&("$*8+&/"*/$:5/8*P$`"$(5,$M'9:2'('/20N$(+9:@/"$&.('^MN3^N$5,H$&.('aMN3aN$',$+,20$cM$02+;$$N$/'9"Q$
" s"*3$".",$/8+@;8$/8"&"$5&"$cM$ZiFN$H'*/5,("*$/+$(+9:@/"t$
" <+&"$H"/5'2*$/+9+&&+It
S S
L Rs s
o
+6":.$0_A35
C;%'(2%+'%&6J*
!U/$H:$:&+:"&/0P$g+@,H5&06/+64+@,H5&0$:5/8*$',$:25,5&$;&5:8*$5&"$*8+&/"&$I8",$/8"0$H+,p/$(&+**Q$
!`"$(5,$@*"$/8'*$:&+:"&/0$/+$*:""H$@:$g"2295,6V+&H$*/5;"$#&+9$cM$ZiFN$/'9"$/+$cM$$2+;$$N$/'9"
+Q#7@F#%/:$!F/"0a#/0_A45
S
Gs
o
+U/$H:01;215 +NUbI60_2;50
D.6. The SMAWK algorithm
If M[t, S[t]] < M[t, k], then M[t, k] and everything above it is dead, so we cansafely push column k onto the stack (unless we already have t = n, in which case everyentry in column k is dead) and then increment k.
S[1]S[2]S[3] S[4]S[5] S[6] S[7] k
⇤ ⇤
On the other hand, if M[t,S[t]]> M[t, k], then we know that M[t, S[t]] and everythingbelow it is dead. But by the inductive hypothesis, every entry above M[t,S[t]] is alreadydead. Thus, the entire column S[t] is dead, so we can safely pop it o� the stack.
S[1]S[2]S[3] S[4]S[5] k
⇤ > ⇤
In both cases, all invariants are maintained.Immediately after every comparison M[t, S[t]]� M[t, k]? in the R����� algorithm,
we either increment the column index k or declare a column to be dead; each of theseevents can happen at most once per column. It follows that R����� performs at most 2n
comparisons and thus runs in O(n) time overall.Moreover, when R����� ends, every column whose index is not on the stack is
completely dead. Thus, to compute the leftmost minimum element in every row of M , itsu�ces to examine only the t < m columns with indices in the output array S[1 .. t].
Finally, the main SMAWK algorithm first R�����s the input array (if it has fewerrows than columns), then recursively computes the leftmost row minima in every other,and finally fills in the rest of the row minima in O(m+ n) additional time. The argument
��
Shortest paths with negative edges
‣ Using several more advanced tricks, we can compute shortest paths in planar graphs with arbitrary edge weights in O(n log2 n / log log n) time.[Klein Mozes Weimann ’10, Mozes Wulff-Nilsen ’10]
▹ Multiple-source shortest paths [Klein ’05]
▹ Structured r-divisions instead of single separators[Klein Mozes Sommer ’13]
▹ Exploit Monge property in Bellman-Ford [Fakcharoenphol Rao ’06]
▹ Careful parameter balancing (r = n·α(n)/log n)
!"#$%#&$%'&()#%*+,-%.
?(./J+8$;X++K22+8$;+'$)$%%$=X