division into regions
a division of
is a collection of regions such that each edge is in atleast one region. a vertex is a boundary vertex of the division if it is in more than one region. a division is an \(r\)-division if there are
regions, and each region has at most
vertices and
boundary vertices.
[cite:;taken from @graph_klein_2024 definition 5.9.2]
[cite:;taken from @graph_klein_2024 definition 5.9.2]
a natural face of a region
is a face of
that is also a face of
. a hole of
is a face of
that is not natural.
[cite:;taken from @graph_klein_2024 definition 5.9.3]
[cite:;taken from @graph_klein_2024 definition 5.9.3]
an
-division with few holes is an
-division in which
- any edge of two regions is on a hole of each of them, and
- every region has
holes.
a decomposition tree for
is a rooted tree in which each leaf is assigned a region of
such that each edge of
is represented in some region. for each node
of the decomposition tree, the region
corresponding to
is the subgraph of
that is the union of the regions assigned to descendants of
.
[cite:;taken from @graph_klein_2024 definition 5.9.5]
[cite:;taken from @graph_klein_2024 definition 5.9.5]
a decomposition tree
admits an
-division with few holes if there is a set
of nodes of
whose corresponding regions form an
-division of
with few holes.
[cite:;taken from @graph_klein_2024 definition 5.9.6]
[cite:;taken from @graph_klein_2024 definition 5.9.6]
for a constant
, there is an
-time algorithm that, for any triangulated planar embedded graph
, outputs a binary decomposition tree
for
that simultaneously admits an
-division of
with few holes for every
.
[cite:;taken from @graph_klein_2024 theorem 5.10.1]
[cite:;taken from @graph_klein_2024 theorem 5.10.1]
since the input graph
is assumed to be triangulated, it follows that, for every region
of
, every natural face is a triangle. the algorithm is invoked by calling the procedure
, given in [cite:@graph_klein_2024 Algorithm 5.1].
given a connected region
with more than
edges, and given a recursion-depth parameter
,
first triangulates each hole of
by adding an artificial vertex and attaching it via artificial edges to each occurrence of a vertex on the boundary of the hole. let
be the resulting graph. the vertices and edges that are not artificial are natural.
next, the procedure uses the planar-cycle-separator algorithm to find a simple-cycle separator
consisting of at most
natural vertices, where
is a constant and
is the number of vertices of
(which is equivalent to the number of natural vertices of
). depending on the current recursion depth
, the cycle separates
in a balanced way with respect to either vertices, boundary vertices, or holes.
note that the cycle separator algorithm is invoked on
, which has more than
vertices since it also has some artificial vertices. however, its shown in [cite:@graph_klein_2024 lemma 5.10.4] that there are at most twelve artificial vertices, the bound of
still holds for some choice of
(since
). the number of artificial vertices on the separator does not matter in the analysis of
.
the cycle
determines a bipartition of the faces of the triangulated graph
, which in turn induces a bipartition
of the natural faces of
. for
, let
be the region consisting of the edges bounding the faces in
, together with the edges of
that are in
(i.e., omitting the artificial edges added to triangulate the artificial faces).
given a connected region
next, the procedure uses the planar-cycle-separator algorithm to find a simple-cycle separator
note that the cycle separator algorithm is invoked on
the cycle
If
is connected then
is connected and
is connected.
[cite:;taken from @graph_klein_2024 lemma 5.10.2]
[cite:;taken from @graph_klein_2024 lemma 5.10.2]
the procedure calls itself recursively on
and
, obtaining decomposition trees
and
, respectively. the procedure creates a new decomposition tree
by creating a new root corresponding to the region
and assigning as its children the roots of
and
.
[cite:;taken from @graph_klein_2024 lemma 5.10.2]
it is shown in [cite:@graph_klein_2024 chapter 5.10.1 number of holes] how to take care of holes.
[cite:;taken from @graph_klein_2024 lemma 5.10.2]
let
be the number of vertices in the original input graph
. consider the decomposition tree
of
produced by
. each node
corresponds to a region
. we define
, and
to be the number of boundary vertices of
. we will show that for any given
,
admits an
-division of
. the analysis consists of two phases. in the first phase ([cite:@graph_klein_2024 lemma 5.10.8]), we identify a set of
regions for which the number of vertices is at most
, and the average number of boundary vertices is
. however, some of the individual regions in this set might have too many boundary vertices (since the number of vertices and boundary vertices do not necessarily decrease at the same rate). we show that each such region can be replaced with smaller regions in
so that every region has
boundary vertices, and the total number of regions remains
([cite:@graph_klein_2024 lemma 5.10.9]).
[cite:@graph_klein_2024 chapter 5.10.3 number of holes]
[cite:;taken from @graph_klein_2024 chapter 5.10 computing a decomposition tree][cite:@graph_klein_2024 chapter 5.10.3 number of holes]