graph separator
if
and
are such that every
path in
contains a vertex or an edge from
, we say that
separates the sets
and
in
. we say that
separates two vertices,
if it separates the sets,
, but
, and that
separates
if
separates some two vertices in
. a separating set of vertices is a separator, we may also call a single vertex
a separator if the set
is a separator.
[cite:;taken from @graph_diestel_2017 chapter 1.4 connectivity]
[cite:;taken from @graph_diestel_2017 chapter 1.4 connectivity]
a vertex
is a separation vertex in an undirected graph
iff there exist two vertices
such that every path between
and
goes through
.
let
be a planar embedding, and let
be a number between 0 and 1. an assignment of nonnegative weights to the faces, vertices, or edges of
is an
-proper assignment if no element is assigned more than
times the total weight. a subpartition of these elements is
-balanced if, for each part, the sum of the weights of the elements of that part is at most
times the total weight.
[cite:;taken from @graph_klein_2024 chapter 5.2 weights and balance]
[cite:;taken from @graph_klein_2024 chapter 5.2 weights and balance]
let
be binary tree, and let
be a
-proper assignment of weights to nodes such that each nonleaf node is assigned at most one-fourth of the weight. there is an edge
such that every tree in
has at most three-fourths of the weight.
[cite:;taken from @graph_klein_2024 lemma 1.3.2 tree edge separator of node weight]
[cite:;taken from @graph_klein_2024 lemma 1.3.2 tree edge separator of node weight]
assume the total weight is 1. for each node
, define
let
be a leafmost 3/4-heavy node with respect to
. let
be the children of
. note that
because its a binary tree. since
but
, we must have
, so
(because nonleaf nodes get at most one-fourth of the weight).
for
, let
be the weight of descendants of
. let
. by choice of
,
. by choice of
,
this shows that choosing
to be the edge
satisfies the balance condition.
[cite:;taken from @graph_klein_2024 lemma 1.3.2]
for
[cite:;taken from @graph_klein_2024 lemma 1.3.2]
let
be a plane graph. a simple cycle
of
defines a subpartition consisting of two parts, the strict interior and the strict exterior of the cycle. if the subpartition is
-balanced, we say that
is an
-balanced cycle separator.
[cite:;taken from @graph_klein_2024 chapter 5.3 fundamental-cycle separators]
[cite:;taken from @graph_klein_2024 chapter 5.3 fundamental-cycle separators]
for any plane graph
,
-proper assignment of weights to faces, and spanning tree
of
such that the boundary of each face of
has at most three nontree edges, there is a nontree edge
such that the fundamental cycle of
with respect to
is a
-balanced cycle separator for
.
[cite:;taken from @graph_klein_2024 lemma 5.3.1]
[cite:;taken from @graph_klein_2024 lemma 5.3.1]
let
be the interdigitating tree, the spanning tree of
consisting of edges not in
. the vertices of
are faces of
, and are therefore assigned weights. the property of
ensures that
has degree at most three. using lem-graph-sep-2, let
be an edge separator in
of vertex weight. by the fundamental-cut and fundamental cycle duality, the fundamental cut of
in
with respect to
is a simple cut in
(each side of which has weight at most three-fourths of the total) so it is, by the simple-cycle/simple-cut theorem, a simple cycle in
that encloses between one-fourth and three-fourths of the weight.
[cite:;taken from @graph_klein_2024 lemma 5.3.1]
[cite:;taken from @graph_klein_2024 lemma 5.3.1]
there is a linear-time algorithm that, given a triangulated plane graph
, a spanning tree
of
, and a
-proper assignment of weights to faces, edges, and vertices, returns a non-tree edge
such that the fundamental cycle of
with respect to
is a
-balanced cycle separator for
.
[cite:;taken from @graph_klein_2024 lemma 5.3.2]
we can give a better balance guarantee if we separating just edge-weight:
[cite:;taken from @graph_klein_2024 lemma 5.3.2]
there is a linear-time algorithm that, given a triangulated plane graph
with a
-proper assignment of weights to edges, and a spanning tree
, returns a nontree edge
such that the fundamental cycle of
with respect to
is a
-balanced cycle separator for
.
[cite:;taken from @graph_klein_2024 lemma 5.3.3]
separators are extremely useful for divide-and-conquer algorithms. in order to ensure that we dont place too much weight on a single subgraph, we need to make sure that the separator we choose is balanced and isnt too big, this motivates the following theorems.
[cite:;taken from @graph_klein_2024 lemma 5.3.3]
there is a linear-time algorithm that, for a plane graph
and
-proper assignment of weights to edges, returns subgraphs
such that
are called the pieces. the set
of vertices common to the two subgraphs is called the vertex separator.
[cite:;taken from @graph_klein_2024 theorem 5.5.1]
-
is a [[blk:def-partition][partition]] of
(but is it really a partition? because
),
- the partition
is
-balanced, and
-
.
[cite:;taken from @graph_klein_2024 theorem 5.5.1]
let
denote the edge-weight assignment. assume for notational simplicity that the sum of edge weights is 1. the basic idea is to find a balanced fundamental-cycle separator, which might be too long, and shortcut it at small BFS levels.
the algorithm adds artificial zero-weight edges to
to triangulate it. then, it performs a breadth-first search of
from some node
. let
be the breadth-first-search tree. let
denote the set of vertices at level
. following lem-graph-sep-3, the algorithm finds a
-balanced fundamental-cycle separator
with respect to
. we partition the edges of
into two sets
and
, so that
contains all edges strictly enclosed by
and
contains all edges not enclosed by
. the edges of
are assigned to
and
in a way that makes the partition
-balanced. such a partition exists because the weight assignment
is
-proper, and can be computed in linear time by assigning the edges of
to
until the total weight of
is at least
.
let
and
denote the minimum and maximum level of a vertex of
, respectively. for an integer
, let
denote
, and let
denote
. let
be the greatest integer satisfying:
. let
be the smallest integer satisfying:
.
since for any level
, the sets of edges corresponding to
and to
are disjoint, at least one of
,
is true. it follows that each of the levels
has greater than
vertices. hence, the total number of vertices among these levels is greater than
, so
.
let
be the set of edges whose endpoints have level at most
if
, and the empty set if
. let
be the set of edges with at least one endpoint at level greater than
if
, and the empty set if
. let
, and let
.
it is immediate to verify that
is a partition of the edges of
. by choice of
and
, for
we have
. since
is a balanced separator, for
we have
.
for
, if
, then the algorithm sets
and
all other edges of
. since
, it follows that
and
.
assume therefore that
for
. let
be the minimum integer such that
. then
and
, so
. the algorithm sets
and
all other edges of
. then
and
.
[cite:;taken from @graph_klein_2024 theorem 5.5.1]
the algorithm adds artificial zero-weight edges to
let
-
,
-
,
-
.
-
,
-
,
-
.
since for any level
let
it is immediate to verify that
for
assume therefore that
[cite:;taken from @graph_klein_2024 theorem 5.5.1]
there is a linear-time algorithm that, for a plane graph
and
-proper assignment of weights to vertices, returns subgraphs
such that
we sometimes may want a simple cycle separator, which the-graph-sep-1 doesnt guarantee (fundamental cycle doesnt guarantee a simple cycle separator, see [[blk:fig-fund-cut-cycle]]), the following theorem addresses this:
-
is a partition of
,
- the subpartition
of
is
-balanced, and
-
.
there is a linear-time algorithm that, for any simple undirected triangulated plane graph and any
-proper assignment of weights to faces, edges, and vertices, returns a
-balanced cycle separator
of size at most
.
[cite:;taken from @graph_klein_2024 theorem 5.8.1]
[cite:;taken from @graph_klein_2024 theorem 5.8.1]