Farthest-Polygon Voronoi Diagrams
Given a family of disjoint connected polygonal sites in general position and of total complexity , we consider the farthest-site Voronoi diagram of these sites, where the distance to a site is the distance to a closest point on it. We show that the complexity of this diagram is , and give an time algorithm to compute it. We also prove a number of structural properties of this diagram. In particular, a Voronoi region may consist of connected components, but if one component is bounded, then it is equal to the entire region.
Consider a family of geometric objects, called sites, in the plane. The farthest-site Voronoi diagram of subdivides the plane into regions, each region associated with one site , and containing those points for which is the farthest among the sites of .
While closest-site Voronoi diagrams have been studied extensively [ak-vd-00], their farthest-site cousins have received somewhat less attention. For the case of (possibly intersecting) line segment sites, Aurenhammer et al. [adk-flsvd-06] recently presented an time algorithm to compute their farthest-site diagram.
Farthest-site Voronoi diagrams have a number of important applications. Perhaps the most well-known one is the problem of finding a smallest disk that intersects all the sites [ahiklmps-fcvdr-01]. This disk can be computed in linear time once the diagram is known, since its center is a vertex or lies on an edge of the diagram. Another standard application is to build a data structure to quickly report the site farthest from a given query point.
We are here interested in the case of complex sites with non-constant description complexity. This setting was perhaps first considered by Abellanas et al. [ahiklmps-fcvdr-01]: their sites are finite point sets, and so the distance to a site is the distance to the nearest point of that site. Put differently, they consider points colored with different colors, and their farthest-color Voronoi diagram subdivides the plane depending on which color is farthest away. The motivation for this problem is the one mentioned above, namely to find a smallest disk that contains a point of each color—this is a facility location problem where the goal is to find a position that is as close as possible to each of different types of facilities (such as schools, post offices, supermarkets, etc.). In a companion paper [ahiklmps-scso-01] the authors study other color-spanning objects.
The farthest-color Voronoi diagram is easily seen to be the projection of the upper envelope of the Voronoi surfaces corresponding to the color classes. Huttenlocher et al. [hks-uevsi-93] show that this upper envelope has complexity for points, and can be computed in time (see also the book by Sharir and Agarwal [sa-dsstg-95, §8.7].
Van Kreveld and Schlechter [KS05] consider the farthest-site Voronoi diagram for a family of disjoint simple polygons. Again, they are interested in finding the center of the smallest disk intersecting or touching all polygons, which they then apply to the cartographic problem of labeling groups of islands. Their algorithm is based on the claim that this farthest-polygon Voronoi diagram is an instance of the abstract farthest-site Voronoi diagram defined by Mehlhorn et al. [MMR01]—but this claim is false, since the bisector of two disjoint simple polygons can be a closed curve, see Fig. 1(a). In particular, Voronoi regions can be bounded (which is impossible for regions in abstract farthest-site Voronoi diagrams).
Note that the farthest-polygon Voronoi diagram can again be expressed as the upper envelope of Voronoi surfaces—but this does not seem to lead to anything stronger than near-quadratic complexity and time bounds.
We show in this paper that, in fact, the complexity of the farthest-polygon Voronoi diagram of disjoint simple polygons of total complexity is . We also show some structural properties of this diagram. In particular, Voronoi regions can be disconnected, and in fact, the region of a polygon can consist of up to connected components. However, if one connected component is bounded then it is equal to the entire region of ; moreover, the region is simply connected and the convex hull of contains another polygon in its interior. Furthermore, the Voronoi regions consist, in total, of at most connected components, and this bound is tight.
Algorithms for computing closest-site Voronoi diagrams make use of the fact that Voronoi regions surround and are close to their sites. Similarly, algorithms for computing farthest-site Voronoi diagrams make use of the unboundedness of the Voronoi regions, and often build up regions from infinity [adk-flsvd-06]. The difficulty in computing farthest-polygon Voronoi diagrams is that neither of these properties holds: Voronoi regions can be bounded, and finding the location of these bounded regions is the bottleneck in the computation.
We give a divide-and-conquer algorithm with running time to compute the farthest-polygon Voronoi diagram. Our key idea is to build point location data structures for the partial diagrams already computed, and to use parametric search on these data structures to find suitable starting vertices for the merging step. This idea may find applications in the computation of other complicated Voronoi diagrams. Our algorithm implies an algorithm to compute the smallest disk touching or intersecting all the input polygons.
We note that for a family of disjoint convex polygons, finding the smallest disk touching all of them is much easier, and can be solved in time , where is the total complexity of the polygons [JMB96].
In Section 2, we start with some preliminaries and give a definition of farthest-polygon Voronoi diagrams. We prove, in Section 3, some properties on the structure of these diagrams and bound their complexity. In Section 4, we present an algorithm for computing such diagrams and conclude in Section 5.
We consider a family of pairwise-disjoint polygonal sites
of total complexity . Here, a polygonal site of complexity
is the union of line segments, whose relative interiors are pairwise
disjoint, but whose union is connected, see Fig. 2. (In
other words, the corners
A pocket of is a connected component of , where is the convex hull of . A pocket is bounded if it coincides with a bounded connected component of , unbounded otherwise.
The features of a site are its corners and edges. We say that a disk touches a corner if the corner lies on its boundary. A disk touches an edge if the closed edge touches the disk in one point and if its supporting line is tangent to the disk. A disk touches a site if the disk touches some of ’s features and if the disk’s interior does not intersect .
We assume that the family is in general position, that is, no disk touches four features, no line contains three corners, and no two edges are parallel.
Before defining the farthest-polygon Voronoi diagram of a family of polygonal sites, we define the medial axis of a polygonal site.
Medial axes. For a site , we define the function as . The graph of is a Voronoi surface; it is the lower envelope of circular cones for each corner of and of rectangular wedges for each edge of . The orthogonal projection of this surface on the plane induces a subdivision of the plane: each 2D cell of this subdivision corresponds to a feature of , and it is the set of all points such that is or contains the unique closest point on to (here, edges of are considered relatively open, so the cell of a corner is disjoint from the cells of its incident edges). The medial axis of , denoted , consists of the arcs and vertices formed by the boundaries between these cells. By extension, we call the cells of the subdivision the cells of the medial axis.
For a point and a site , let denote the
largest disk centered at whose interior does not intersect
(and which is therefore touching , see Fig. 2). If touches in a
single feature , then lies in the cell of the medial axis subdivision associated with . If
touches in two different features, then lies on an arc of
, and if touches in three different features,
then is a vertex of .
Note that contains some special arcs, called spokes, that separate the
cell of a corner from the cell of an incident edge (see Fig. 1(b)); a spoke arc is the locus of centers
of circles that intersect only at a corner and that are tangent to the line supporting one of its incident edges.
The medial axis restricted to forms a forest. By this definition, the arc endpoints that lie on (at a corner) are not part of the forest; we consider nonetheless these endpoints to be leaves of the forest. It follows that several leaves may coincide at a corner. More precisely, each convex angle around a corner induces a leaf at that corner, and each reflex angle around a corner induces two leaves incident to two spokes at that corner. Spokes are always incident to a leaf at a corner. Notice that the leaves always lie at the corners of or at infinity.
The medial axis consists of exactly one tree for each pocket of , and two isolated spokes (with endpoints at infinity) for each edge of appearing on . The tree of an unbounded pocket contains exactly one infinite arc, all other leaves of are corners of . The leaves of the tree of a bounded pocket are exactly the corners of .
Farthest-polygon Voronoi diagrams. We now consider the function defined as . The graph of is the upper envelope of the surfaces , for . The surface consists of conical and planar patches from the Voronoi surfaces , and the arcs separating such patches are either arcs of a Voronoi surface (we call these medial axis arcs), or intersection curves of two Voronoi surfaces and (we call these pure arcs). These arcs are hyperbolic arcs that lie in vertical planes, parabolic arcs, or straight-line segments. They correspond respectively to the intersection of two cones, a cone and a plane, and two planes. The vertices of are of one of the following three types:
Vertices of one Voronoi surface . We call these medial axis vertices.
Intersections of an arc of with a patch of another surface . We call these mixed vertices.
Intersections of patches of three Voronoi surfaces . We call these pure vertices.
The projection of the graph of onto the plane induces the farthest-polygon Voronoi diagram of . It is a subdivision of the plane into cells, arcs, and vertices. The arcs are either parabolic or straight, since hyperbolic arcs that lie in vertical planes project into line segments. Each cell corresponds to a feature of a site , the feature is the nearest among the features of , but is further away than the nearest feature of any other site. The arcs and vertices of are the orthogonal projections of the arcs and vertices of and they inherit their types (pure, mixed, and medial axis). The farthest-polygon Voronoi diagram is therefore completely analogous to the farthest-color Voronoi diagram [ahiklmps-fcvdr-01].
For a point , let denote the smallest disk centered at that intersects all sites . By definition, there is always at least one site that touches without intersecting its interior, and the radius of is equal to . By our general position assumption, only the following five cases can occur.
If touches one site in only one feature , and all other sites intersect the interior of , then lies in a cell of , and the cell belongs to the feature of .
If touches one site in two or three features, and all other sites intersect the interior of , then lies on a medial axis arc or medial axis vertex of , and is incident to cells belonging to different features of .
If touches one feature of site , one feature of site , and all other sites intersect the interior of , then lies on a pure arc separating cells belonging to features and .
If touches two features of site and one feature of site , and all other sites intersect the interior of , then is a mixed vertex incident to a medial axis arc of .
If touches one feature each of three sites , , and , and all other sites intersect the interior of , then is a pure vertex.
Put differently, vertices of are points where touches three distinct features of sites. If all three features are on the same site, the vertex is a medial axis vertex. If the three features are on three distinct sites, then the vertex is a pure vertex. In the remaining case, if two features are on a site , and the third feature is on a different site , the vertex is a mixed vertex.
Fig. 3 illustrates all different vertex types. Figs. 3(a) and 3(b) show the possible medial axis vertices; they differ in whether the triangle formed by the three features contains the vertex or not. Similarly, Figs. 3(c) and 3(d) show the pure vertex types. The bottom row shows the three possible types of mixed vertices. Again, we have to distinguish whether the three features enclose the vertex or not, and in the latter case we need to distinguish which two features are on the same site.
Consider an arc of . If a point moves continuously along , then —which is the radius of —changes continuously. The local shape of in a neighborhood of a vertex is determined solely by the features defining the vertex. For each type of vertex shown in Fig. 3, we can therefore uniquely determine whether increases or decreases along an arc in a neighborhood of the vertex. We indicate the direction of increasing along an arc by arrows in the figure.
In addition to the seven types of vertices discussed above, we need to consider vertices at infinity, that is, we consider the semi-infinite arcs of to have a degree-one vertex at their end. For a vertex at infinity, the “disk” is a halfplane, and we have two cases:
If touches one site in two features, and all other sites intersect the interior of , then is the “infinite” endpoint of a medial axis arc, and we consider it a medial axis vertex at infinity.
If touches two distinct sites, and all other sites intersect its interior, then is the “infinite” endpoint of a pure edge, and we consider it a pure vertex at infinity.
Finally, we define the Voronoi region of a site . The Voronoi region of is simply the union of all cells, medial axis arcs, and medial axis vertices of belonging to features of . Voronoi regions are not necessarily connected, as we will see in the next section. We call each connected component of a Voronoi region a Voronoi component.
3 Structure and complexity
In this section, we prove some properties on the structure of farthest-polygon Voronoi diagrams of polygonal sites and we bound their complexity. Farthest-polygon Voronoi diagrams contain three different types of vertices, as defined in the previous section. Note first that the number of medial axis vertices is bounded by the total complexity of all medial axes, which is .
Now, we first bound the number of mixed vertices. For that purpose, we show that when a tree of intersects the Voronoi region of , then the intersection is a connected subtree. We start with a preliminary lemma.
Let be a path in , let be another site, and let be the part of that is closer to than to . Then is a connected subset of , that is, a subpath.
We can assume to be a maximal path in , connecting a corner of with another corner or a medial-axis vertex at infinity. Assume for a contradiction that there are points , , on in this order such that , but .
We first consider the case where lies on a spoke of induced by a corner of (and one of its incident edges). The spoke is incident to a leaf of located at and, without loss of generality, lies on this spoke between and . Since , the disk centered at and touching does not intersect . The disk is included in and thus, it does not intersect either, which contradicts our hypothesis.
We now consider the case where does not lie on a spoke of . Let be the connected component of that contains . Since does not lie on a spoke of , the disk touches in distinct points ( by the general position assumption), and thus partitions into connected components: and other components denoted . Since is a polygon, the structure of its medial axis is well understood. In particular, in the neighborhood of , consists of arcs (straight or parabolic), and for every point on any single one of these arcs, intersects one and the same components , and is contained in . Also, since consists of arcs in the neighborhood of , point splits the medial axis tree that contains into subtrees .
Now, we observe that any open disk , that does not intersect , cannot contain points in two distinct components and . Indeed, the boundary of would have to intersect the boundary of in at least four points, implying that the two disk coincide, and thus that intersects neither nor (since is open).
For any , distinct from , is included in but not in . Thus, the interior of intersects but not . Hence, it intersects only one of the . Furthermore, by continuity, the interior of intersects the same for all in . We can thus assume without loss of generality that, for all in , the interior of intersects and none of the other . Since lies in , it also follows that, for all in , lies in .
Now, and belong to two distinct subtrees, say and , respectively. Thus, lies in and lies in . By assumption, both and intersect , thus intersects both and . Hence, since is connected and does not intersect , must intersect , which is a contradiction and concludes the proof. ∎
Let be a tree of . Then is a connected subtree of .
Pick two points , let be the path on from to , and let be any point between and on . We need to show that , which is equivalent to showing that is closer to every site than to . Let be such a site. Since , and are closer to than to . By Lemma 1, this implies that is closer to than to . ∎
The lemma allows us to bound the number of mixed vertices of .
The number of mixed vertices of for a family of disjoint polygonal sites of total complexity is .
Consider a site of complexity . Its medial axis has complexity . By Lemma 2, for each tree of the intersection is a connected subtree. Since the mixed vertices on are exactly the finite leaves of this subtree, this implies that the number of mixed vertices on is . Summing over all then proves that the number of mixed vertices of is . ∎
We next consider the vertices at infinity.
The number of pure vertices at infinity of is at most . The total number of vertices at infinity of is .
For two sites , consider the diagram . A pure vertex at infinity corresponds to an edge of supported by a corner of and a corner of . But can have at most two such edges, since and are disjoint and both are connected, and so has at most two pure vertices at infinity.
Consider now again , and let denote the sequence of sites whose Voronoi regions appear at infinity in circular order, starting and ending at the same region. We claim that is a Davenport-Schinzel sequence of order 2, and has therefore length at most [sa-dsstg-95]. Indeed, has by definition no two consecutive identical symbols. Assume now that there are two sites and such that the subsequence appears in . If we delete all other sites, then would still need to contain the subsequence , and therefore would contain at least three pure vertices at infinity, a contradiction to the observation above.
It now suffices to observe that the pure vertices at infinity are exactly the transitions between consecutive Voronoi regions, and their number is at most .
All remaining vertices at infinity are medial axis vertices. Since the total complexity of all medial axes is , the bound follows ∎
We proved so far that the number of mixed and medial axis vertices is and, furthermore, that there are at most pure vertices at infinity. It remains to bound the other pure vertices, for which we first need to prove a few basic properties.
We start by discussing a monotonicity property of cells of . Let be a cell of belonging to feature of site . For a point , let be the point on closest to . Let be the directed line segment starting at and extending in direction until it reaches (a semi-infinite segment if this does not happen). We call the fiber of . We note that if is an edge, then all fibers of are parallel, and normal to ; if is a corner then all fibers are supported by lines through .
For any , the fiber lies entirely in (and therefore in ).
The disk touches in only, and its interior intersects all other sites. When we move a point from along , the disk centered at through keeps containing , and it therefore still intersects all other sites. This implies that as long as does not intersect in another point. This does not happen until we reach . ∎
An immediate consequence, which we will use for computing Voronoi diagrams (Section 4), is that cells are “monotone”:
The boundary of a cell of belonging to feature consists of two chains monotone with respect to , that is, monotone in the direction of if is an edge, and rotationally monotone around if is a corner. The lower chain is closer to the feature and consists of pure arcs only, the upper chain consists of medial axis arcs only.
Let be the site containing the feature . Consider a half-line with origin on , and normal to if is an edge. Let be the point closest to in . It is straightforward that the entire fiber lies in , and no point on beyond the medial axis can be in since the feature of closest to any such cannot be . Hence, the boundary of consists of two monotone chains with respect to . Moreover, the upper chain consists of medial axis arcs by definition of the fibers . The lower chain consists of pure arcs, because if a point on the lower chain was on the medial axis, then the fiber would be reduced to point , by definition; thus would also be on the upper chain, implying that is an endpoint of the two chains. ∎
We now show (Lemma 8) that if a Voronoi region is bounded, then it is connected (we actually show that it is simply connected, but will not use that fact in this paper). This property is tight in the sense that, as shown in Lemma 10, a single Voronoi region may consist of up to unbounded connected components; we postpone the proof of this property to the end of the section.
If a connected component of the Voronoi region of a site is bounded, then properly contains another site inside one of its pockets.
Let be a bounded connected component of . We first observe that contains some points of the medial axis of . Indeed, let and consider its fiber . By Lemma 5 and since is bounded, does not extend to infinity and, therefore, one of its endpoints lies on .
Let be a point in . If lies in a pocket of that does not share an edge with (that is, the pocket is a hole in ), then this pocket does contain all the other sites in and the lemma is proven. Otherwise, we let move along the medial axis up to infinity. At some point , the point must exit from the bounded region . This means that is tangent to another site and does no longer intersect it properly. It then follows from the fact that lies on the medial axis of that the site lies entirely in the pocket of associated with the tree of containing and . ∎
If a connected component of the Voronoi region of a site is bounded, then is simply connected.
By Lemma 7, contains another site in one of its pockets . Let be the tree of that corresponds to .
Let be any point in . The disk touches in a point , and its interior intersects all other sites, including . Hence, properly intersects the pocket . It follows that when moving a point from in the direction of , the disk centered at through keeps containing , and it therefore keeps intersecting . This implies that, at some finite point , the disk centered at and tangent to at becomes tangent to at some other point, hence lies on . Moreover, lies on the tree because the disk properly intersects .
It remains to show that is simply connected. We have shown that for any , the fiber is a segment contained in , and connecting to . By moving the points of along their fiber, we can design, as follows, a continuous deformation retraction of onto the tree which implies that is simply connected.
More precisely, it easy to check that the map , is continuous. Furthermore, is a (strong) deformation retraction since, for all , and , we have , , and . We have thus exhibited a deformation retraction of onto , which implies that these two point sets have the same fundamental group [hatcher, Proposition 1.17]. Since is a tree, its fundamental group is trivial and so is the fundamental group of . Any pair of points and in can be connected with a path made of their fibers and and a path in , thus is path connected. Together with having a trivial fundamental group, this property makes simply connected [hatcher, p. 28]. ∎
We can now conclude our analysis of the complexity of farthest-polygon Voronoi diagrams.
The farthest-polygon Voronoi diagram of a family of disjoint polygonal sites of total complexity has pure vertices and total complexity . It consists of at most Voronoi components and this bound is tight in the worst case.
The farthest-polygon Voronoi diagram contains three different kinds of vertices. The number of medial axis vertices is clearly only , since the total complexity of all for is only . In Lemma 3, we showed that the number of mixed vertices is also only . It remains to bound the number of pure vertices of .
Let be the number of bounded Voronoi components. By Lemma 8, each of these components corresponds to a different site and only the remaining sites can contribute to form vertices at infinity. By the proof of Lemma 4, there are at most pure vertices at infinity, and therefore at most unbounded Voronoi components. It follows that the total number of Voronoi components is at most . Moreover, the construction of Lemma 10 shows that this bound is tight.
Let us now consider the graph formed by the pure arcs and pure vertices of . Mixed vertices appear as vertices of degree two in (see Fig. 3), medial axis vertices do not appear at all. The faces of are exactly the Voronoi components. Since has at most faces, Euler’s formula implies that has vertices of degree three. ∎
Finally, we prove that, as mentioned above, a single Voronoi region of can have up to connected components.
A single Voronoi region of can have connected components and this bound is tight.
The construction is shown in Fig. 4. It consists of one -regular polygon and polygonal chains . Let denote the edges of in circular order. We inductively construct the polygonal sites as follows. For the supporting line of , let be the closed halfplane containing and be the other. Then, consider the intersection between and the four edges of a square that contains inside. We define as the set of points of whose distance to is larger than some fixed small . has at most four edges. Note that contains completely. Consider a ray from to infinity in which is orthogonal to . Since intersects all sites but , the endpoint at infinity of this ray lies in the region . On the other hand, for a sufficiently small , there is a line passing through (the vertex incident to and ) such that we can define as an open halfplane containing and as the other open halfplane intersecting all the other sites but . The endpoint at infinity of the ray from to infinity in which is orthogonal to lies in a connected component of , which we call .
Therefore at infinity appear in turn. Note that for a point in the region , its fiber is an infinite ray because is convex. For , consider the half-line from a point at infinity to a point closest to . If lies in , then , which is impossible because . Define . We then have , and consists of unbounded connected subsets of the plane. The connected subset bounded by , and contains completely. It follows that when .
It remains to show that the bound of is tight. By Lemma 4, there are at most pure vertices at infinity, and thus at most unbounded Voronoi components. Hence, one single Voronoi region has at most unbounded Voronoi components (since two neighboring components cannot correspond to the same site). This concludes the proof because, by Lemma 8, if a Voronoi region has a bounded component, then the entire region is connected. ∎
The proof of Theorem 9 suggests an algorithm for computing the Voronoi diagram by sweeping the arcs of the graph . This is roughly equivalent to computing the surface by sweeping a horizontal plane downwards, and maintaining the part of above this plane. This is essentially the approach used by Aurenhammer et al. [adk-flsvd-06] for the computation of farthest-segment Voronoi diagrams. However, this does not seem to work for our diagram because of the mixed vertices of type (f) (see Fig. 3), where has a local maximum. We instead offer a divide-and-conquer algorithm.
The farthest-polygon Voronoi diagram of a family of disjoint polygonal sites of total complexity can be computed in time .
Let , and let be the complexity of . If , then is simply the medial axis , which can be computed in time [f-savd-87]. Otherwise, we split into two disjoint families as follows:
If there is a site with complexity , then and .
Otherwise there must be an index such that . We let and .
We recursively compute and . We show in the rest of this section (see Lemma 17) that we can then merge these two diagrams to obtain in time , proving the theorem. ∎
We now discuss the merging step. We are given the farthest-polygon Voronoi diagrams and of two families and of pairwise disjoint polygonal sites, and let .
Consider the diagram to be computed. We color the Voronoi regions of defined by sites in red, and the Voronoi regions defined by sites in blue. A pure arc of is red if it separates two red regions, and blue if it separates two blue regions. The remaining pure arcs, which separate a red and a blue region, are called purple. A vertex of is purple if it is incident to a purple arc. We observe (see Fig. 3) that, by our general position assumption, every purple vertex not at infinity is incident to exactly two purple arcs, and so the purple arcs form a collection of bounded and unbounded chains (see Fig. 5).
As we will see in Lemma 17, merging and can be done in linear time once all purple arcs are known, because the diagram consists of those portions of lying in the red regions of , and those portions of lying in the blue regions of , see Fig. 5.
We show below how the purple chains of can be computed in time . We first show how to compute at least one point on every chain and then how to “trace” a chain from a starting point.
The vertices at infinity of the purple chains can be computed in time .
We show how to compute all the pure vertices at infinity in time . There are such pure vertices (by Lemma 4), and we can easily deduce the purple ones from those in time.
For site and angle , let be the oriented line with direction tangent to and keeping entirely on its left, see Fig. 6. Let be the signed distance from the origin to (positive if the origin lies left of , negative otherwise). If is a polygonal site of complexity , we first compute the convex hull in time , and we deduce a description of the function in time .
We then compute the lower envelope of the functions . The pure vertices at infinity correspond exactly to the breakpoints of this lower envelope, since they correspond to half-planes (or disks with centers at infinity) touching two sites and whose interiors intersect all other sites. Such a half-plane is illustrated in gray in Fig. 6. Moreover, two functions , can intersect at most twice since each intersection corresponds to a pure vertex at infinity of which admits at most two such vertex as argued in the proof of Lemma 4. Hence, the lower envelope can be computed in time [sa-dsstg-95]. ∎
Any bounded purple chain contains a mixed vertex of .
A bounded purple chain is a compact set in the plane, and so the restriction of to such a chain admits a maximum. Such a maximum appears at a vertex, denoted . Indeed, since an arc of is defined by two features (corners or edges), the graph of restricted to is the intersection of the two Voronoi surfaces—which are cones or wedges—induced by the two features; thus cannot have a local maximum in the interior of (it may have a local minimum).
Consider now the arcs of oriented, in a neighborhood of their endpoints, in the direction of increasing . Then, the two purple arcs incident to point toward . Now observe that purple arcs are pure and a vertex incident to at least two pure arcs pointing toward it is of type (e) or (f), which is mixed (see Fig. 3). Hence, is a mixed vertex of , which concludes the proof. ∎
Given the farthest-polygon Voronoi diagrams of two families and of pairwise disjoint polygonal sites, the mixed vertices of can be computed in time .
Computing the mixed vertices in time is the most subtle part of the algorithm and we postpone the proof of this lemma to Section 4.1, after showing how to compute the purple chains from some starting point (Lemma 16). We start with a preliminary lemma which is an important consequence of Lemma 5.
Let be the fiber of point in a cell of or . Then, the relative interior of intersects the purple arcs of in at most one point.
Assume, for a contradiction, that the relative interior of intersects two purple arcs in two distinct points and , where lies on (see Fig. 6). We can assume, without loss of generality that the purple chain and cross at , because, otherwise, there exists another fiber close to (for instance, for some close to ) that intersects transversally the purple chains in two points. Now, let be the site containing the feature associated with . In , the purple arcs bound the cell of belonging to feature . Hence, there is a point on sufficiently close to such that in . Moreover, the fiber is, by definition, a subset of the fiber . Thus, the fiber contains and thus intersects a purple arc, contradicting the fact that lies in in (by Lemma 5). ∎
Given the farthest-polygon Voronoi diagrams and of two families and of pairwise disjoint polygonal sites, the purple chains of can be computed in time .
By Lemmas 12, 13 and 14, we can compute the vertices at infinity of the purple chains, and a superset of size of at least one mixed vertex per bounded component. As we have seen in the proof of Lemma 13, these latter vertices are of type (e) or (f) (see Fig. 3); they thus involve only two sites and we discard all those that involve two sites of or two sites of . We thus obtain a set of purple vertices with at least one such vertex on each purple chain. We consider each such vertex, denoted , in turn, and “trace” (construct) the purple chain that lies on.
If is at infinity, there is only one purple arc incident to it; otherwise, there are two and we consider one of them. The bisector supporting the incident purple arc is that of one red and one blue feature among the features defining . Splitting the bisector at defines two semi-infinite curves incident to and we can determine, using the respective position of the three features defining , which of these two curves supports the considered purple arc; we call this semi-infinite curve a purple half-bisector.
We then trace the purple chain by following its purple arcs from cell to cell: observe that the other endpoint of the considered purple arc incident to is either at infinity or is the first intersection point (starting from ) between the purple half-bisector and the cell boundaries of and . We compute this point as follows.
We first locate in and . This can be done in time, assuming that
we have precomputed a point-location data structure for and
in time (see, for instance, [edelsbrunner86]).
Then, for , we sweep the cell with a line orthogonal to the feature if is an edge and with a line through the feature if is a corner. If is a corner, the sweep is done clockwise or counterclockwise so that the sweep line intersects the half-bisector inside (deciding between clockwise or counterclockwise is a constant size problem); the situation is similar when is an edge.
The two cells and are swept simultaneously. However, since the two sweeps are not a priori performed using the same sweep line, this requires some care. For clarity, we first present each sweep independently.
By Lemma 6, the sweep line always intersects one arc of the upper chain of (or two arcs at their common endpoints) and similarly for the lower chain. We first determine the arcs of the upper and lower chains that are intersected by the sweep line through (or about to be intersected if the sweep line goes through a vertex of the chain). We also determine the intersection, if any, of these two arcs with the purple half-bisector. When the sweep line reaches an endpoint of one of the two arcs that are being swept, we determine the intersection (if any) between the new arc and the purple half-bisector. When the sweep line reaches the first of the computed intersection points between the purple half-bisector and the boundary of the cell, we report this intersection point and terminate the sweep of .
If the two sweeps were performed independently, we could report the first point where the purple half-bisector exits one of the cells or , and continues the tracing in a neighboring cell of either or , along a new purple half-bisector. This however would not yield the claimed complexity because, roughly speaking, if a sequence of purple arcs enter and exit cells while remaining inside a cell of complexity , the cell would be swept many times, possibly leading to a complexity of per arc, and a total of . We thus perform the two sweeps simultaneously, as follows.
Note first that, by Lemma 15, during the sweep of , the point of intersection, in , between the sweep line and the purple half-bisector moves monotonically along the purple half-bisector. We can thus parameterize the sweeps of and by a point moving monotonically on the purple half-bisector away from . The point define two sweep lines (the lines through and through or orthogonal to depending on the nature of ), and the events are those of the sweeps of and . This sweep ends when the purple half-bisector leaves or . Then, the tracing of the purple chain continues in a neighboring cell of either or , along a new purple half-bisector. We stop tracing the purple chain when we reach a vertex at infinity or the vertex we started from.
We then consider a new starting point ; note that we can easily check in time whether it has already been computed (while tracing some purple chains) by maintaining the list of the already computed vertices on the purple chains, ordered lexicographically by their features.
We now analyze the complexity of the algorithm. Consider first the initialization of every sweep, that is the determination of the arcs of and that are intersected by the two sweep lines through . There are such initialization steps to perform, since have size by Theorem 9, and each step can be done using binary search in time, after preprocessing all the cells of and ; the preprocessing (which simply is storing the ordered vertices of the upper and lower chains of each cell in arrays) can be done in time linear in the total size of the cells, which is , by Theorem 9.
We finally analyze the complexity of the rest of the algorithm by applying a simple charging scheme. Note first that intersecting the purple half-bisector with an arc of a cell takes constant time. We charge the cost of computing these intersections to either the purple vertices or to the arcs of , as follows. The intersections with each of the arcs that are swept at the beginning and the end of the sweep are charged to the corresponding endpoint of the purple arc. Every purple vertex is thus charged at most eight times because each of the two incident purple edges is intersected with one arc of each of the lower and upper chains of each of the two cells and . The intersections with each of the other arcs of are charged to the arc in question. Every such arc is charged at most once per cell, and thus at most twice in total; indeed, such an arc of is swept entirely during the sweep of and thus, by Lemma 15, it will not be swept again during another sweep of cell (when treating another purple half-bisector). Since , , and have size (Theorem 9), all the purple arcs can be computed in time, in total, once the set of starting points are known, and thus in time by Lemmas 12 and 14. ∎
Given the farthest-polygon Voronoi diagrams of two families and of pairwise disjoint polygonal sites, the farthest-polygon Voronoi diagrams of can be computed in time .
During the computation of the purple chains (see the proof of Lemma 16), we can split the arcs of and at every new purple vertex that is computed. Then, merging and can trivially be done in linear time since, as we mentioned before, the diagram consists of those portions of lying in the red regions of , and those portions of lying in the blue regions of , see Fig. 5. ∎
4.1 Computing the mixed vertices
We prove here Lemma 14 stating that, given the farthest-polygon Voronoi diagrams of two families and of pairwise disjoint polygonal sites, the mixed vertices of can be computed in time .
We start by computing the randomized point-location data structure of Mulmuley [m-fppa-90] (see also [bkos-cgaa-08, Chapter 6]) for the two given Voronoi diagrams and . (We chose this randomized algorithm for its simplicity; randomization can however be avoided as we explain at the end of this section.) This data structure only needs two primitive operations: (i) for a given point in the plane, determine whether the query point lies left or right of , and (ii) for an -monotone line segment or parabolic arc , determine whether the query point lies above or below . Both cases can be summarized as follows: Given a comparator , determine on which side of the query point lies. The comparator can be either a line or a parabolic arc.
We compute the mixed vertices lying on each tree of each medial axis separately. The intersection is a connected subtree by Lemma 2. We can locate the internal vertices of this subtree easily, by performing a point location operation for each vertex of in and , deducing which site is farthest from and checking if the farthest site from is . Let be the set of vertices of that lie in . We now need to consider two cases.
When is not empty
If is non-empty, then every arc of incident to one vertex in and one vertex not in must contain exactly one mixed vertex by Lemma 2. To locate this vertex , we use parametric search along the arc [m-apcad-83], albeit in a restricted way, as we do not need to use parallel computation: The idea is to execute two point location queries in and using as the query point. Each query executes a sequence of primitive operations, where we compare the (unknown) location of with a comparator (a line or a parabolic arc). This primitive operation can be implemented by intersecting with , resulting in a set of at most four points. In time, we can test for each of these points whether it lies in . This tells us between which of these points the unknown mixed vertex lies, and we can answer the primitive operation.
It follows that we can execute the two point location queries on in time , and we obtain one cell and one arc of and containing (for instance if then lies on an arc of and in a cell of ). The mixed vertex lies at equal distance of the three features to which the arc and cell belong (two of which are features of ).
When is empty
It remains to consider the case where is empty, that is, no vertex of lies in . Nevertheless, the region may intersect a single arc of . In this case, Lemma 2 tells us that there are two mixed vertices on that we need to find. We first need to identify the arcs of where this could happen.
Let and be two points on the same arc of . We define the cylinder of the pair as
where the union is taken over all points on the arc between and . Since and belong to the same arc of , which is induced by either two edges, two vertices, or one edge and one vertex of , cylinders may have only three possible shapes, illustrated in Fig. 7(b, c).
We define a condition as follows: Let be a site farthest from , and let be a feature of closest to . Then is true if or if intersects . Note that could possibly depend on the choice of and when the farthest site or the closest feature is not unique. We will show below that this choice does not matter for the correctness of our algorithm.
We can now prove the following two lemmas:
Let be points on the same arc of , such that neither nor lie in . If intersects between and , then and both hold.
Since the statement is symmetric, we only need to show . Let be a site farthest from , and let be a point between and on that lies in . This implies that intersects . Since does not intersect , we deduce that intersects . If does not lie entirely in then, since the sites and are disjoint, must cross the common boundary of and (see Fig. 7(b, c)). Thus intersects and indeed holds. ∎
Let be points on the same arc of a tree of that admits no vertex in . If neither nor lie in and both and hold, then all points in lie on .
Assume, for a contradiction, that there exists a point on in not between and on ; assume, without loss of generality, that lies on the path joining and in . Since holds, there is a farthest site from such that intersects . Therefore there exists a point between and on such that is closer to than to . Since by assumption, is closer to than to . We have shown that and are closer to than to but the point , which is between and on , is closer to than to . This contradicts Lemma 1, and concludes the proof. ∎
Let us call an arc connecting vertices and of a candidate arc if and both hold. Lemma 19 implies immediately that if there are two candidate arcs, then is empty, and there are no mixed vertices on .
Since we have point-location data structures for and , we can test the condition in time for a given arc in and two points . This allows to identify all candidate arcs in time, where is the complexity of . If there are zero or more than one candidate arcs, we can stop immediately, as there are no mixed vertices on .
It remains to consider the case where there is a single candidate arc in . We again apply parametric search, using an unknown point in as the query point. During the point-location query, we maintain an interval on that must contain (if exists at all). To implement a primitive query, we must determine the location of with respect to a comparator . If the current interval on does not intersect , we can proceed immediately, otherwise we get a sequence of points on , where (since there are at most four intersection points between two curves of degree at most two). We first test if some in time. If so, we abort the process, and use the method discussed above to find the mixed vertices on the arc between and and between and . If no lies in , we test the conditions and for each consecutive pair. If the conditions hold for no pair or for more than one pair, we can stop immediately, as there cannot be a point of on . If there is exactly one pair, we have found the location of with respect to the comparator , and we continue the point location query.
If both point location queries on