Sublinear Explicit Incremental Planar Voronoi Diagrams
Elena Arseneva, John Iacono, Grigorios Koumoutsos, Stefan Langerman, Boris Zolotov
SSublinear Explicit Incremental Planar Voronoi Diagrams
Elena Arseneva ∗ John Iacono † Grigorios Koumoutsos ‡ Stefan Langerman ‡ Boris Zolotov ∗ Abstract
A data structure is presented that explicitly maintains the graph of a Voronoi dia-gram of N point sites in the plane or the dual graph of a convex hull of points in threedimensions while allowing insertions of new sites/points. Our structure supports inser-tions in ˜ O p N { q expected amortized time, where ˜ O suppresses polylogarithmic terms.This is the first result to achieve sublinear time insertions; previously it was shown byAllen et al. that Θ p? N q amortized combinatorial changes per insertion could occur inthe Voronoi diagram but a sublinear-time algorithm was only presented for the specialcase of points in convex position. Voronoi diagrams and convex hulls are two keystone geometric structures of central impor-tance to computational geometry. We focus the description here on planar Voronoi diagramsof points; the results can be extended to the dual graph of 3D-convex hulls using a standardlifting trick. Several algorithms, based on various different techniques, have been devel-oped over the years that compute the Voronoi diagram of a set of N points in optimal time O p N log N q [4]. Surprisingly however, the problem of maintaining dynamically a Voronoidiagram subject to insertions/deletions of points is not well understood. Incremental Voronoi Diagrams.
In this paper we focus on the problem of maintainingthe Voronoi diagram under insertion of new sites. In Allen et al. [1] it was observed thatwhile there could be a linear number of changes to the embedded Voronoi diagram witheach site insertion, this is not equivalent to the number of combinatorial changes (i.e., edgeinsertions and deletions) to the graph of the Voronoi diagram. What is more, it was provedthat the maximum number of combinatorial changes per site insertion is Θ p? N q amortized.This opened the possibility to maintain the Voronoi diagram graph under insertions withsublinear update time. Allen et al. [1] achieved this for the restricted case where the sitesare in convex position, where they designed a data structure with O p? N log N q amortizedinsertion time. This result relies crucially on the fact that the Voronoi diagram of a set ofpoints in convex position is a tree. Other more restricted special cases have been studiedwhere the number of combinatorial changes is Θ p log N q [2, 10]. Our Result.
In this work, we provide a data structure that explicitly maintains the graphof a Voronoi diagram of arbitrary point sites in R while allowing insertions of new sites in ˜ O p N { q amortized time, where ˜ O suppresses polylogarithmic terms. This is the first datastructure supporting insertions in sublinear time for this problem. ∗ Saint Petersburg State University † Université libre de Bruxelles; New York University ‡ Université libre de Bruxelles a r X i v : . [ c s . C G ] J u l e crucially note that we are interested in maintaining explicitly the Voronoi diagram.In particular, we store the diagram as a graph in adjacency list format on which primitiveoperations, including links and cuts, are performed. This is different than just maintaininga data structure that answers nearest neighbor queries. This case can be solved dynamicallyin polylogarithmic time by Dynamic Nearest Neighbor (DNN) structures [5, 6, 9]; this reliesheavily on the fact that nearest neighbor is a decomposable search problem, whereas main-taining the Voronoi diagram is clearly not. In fact, here we use those DNN structures assubroutines for solving our problem.We remark that maintaining the Voronoi diagram in sublinear time in the fully dynamicsetting (i.e., with both insertions and deletions) is hopeless as the Θ ` ? N ˘ amortized boundof combinatorial changes for insertions becomes Θ p N q . We now give a high-level overview of our approach and the organization of the rest of thepaper.We store the Voronoi diagram as a combinatorial graph, which allows to quickly retrieveany geometric information if needed.Suppose we wish to insert a new site s N into the diagram, and let f be the cell ofthe diagram that contains s N . This cell can be found in polylogarithmic time using DNNstructures. It is known [1] that the affected cells that need to be updated, i.e. that undergo combinatorial changes , form a connected region including cell f . To update the diagram, wediscover all the affected cells by a variation of the breadth-first search starting from f . Small and big cells.
The main high-level idea is to divide the cells of the Voronoi diagraminto small and big : small are the ones that have at most N { vertices and big are the onesthat have more. For a Voronoi cell f , by the paws of f we denote the Voronoi verticesconnected to the boundary of f by one edge. What we do to process small and big cells isdifferent, but is based on the following fact. Given an affected cell f the neighboring cells of f that change can be identified by finding all the paws of f whose Voronoi circles contain thenewly inserted site s N .A small cell is small enough to be processed by simply checking all O p N { q Voronoicircles of its paws in a brute force way. This takes O p N { polylog p N qq “ ˜ O p N { q time persmall cell. Since the amortized number of cells changing is O p? N q , it takes ˜ O p? N ¨ N { q “ ˜ O p N { q amortized time to perform all updates involving small cells.For each big cell with b i neighbors, we store a circular linked list of Θ p b i { N { q datastructures, each associated with the consecutive range of O p N { q of its paws. Each structurestores the Voronoi circles for those paws that are relevant. These Dynamic Circle-Reportingstructures (DCRs) are known variants of the DNN structure that support insertion and dele-tion of circles in polylogarithmic time, and given a query point, report all k circles containingthe point in time ˜ O p k q . Overall, operations involving a big cell require polylogarithmic timein the number of affected neighbors. Since there are at most O p N { q big cells, the total timeto process them is O p N { polylog p N qq “ ˜ O p N { q .Overall, we need ˜ O p N { q amortized time for updating both small and big cells, thusthe main result follows. Note on previous work.
In a preliminary version of this paper [3] we presented the sameresult using a randomized data structure and providing bounds on the expected running time;the randomization came solely from the shallow cuttings used in the DNN structure [5]. Since2he initial development of this work, Chan presented DNN structures that use shallow cuttingsdeterministically [6] (implicit in [7]); using this structure all DNN and DCR structures usedin this paper can be implemented deterministically. As a result, our overall structure isdeterministic.
Organization.
The rest of the paper is organized as follows. In Section 2.1 we characterizeaffected cells that undergo combinatorial changes. In Section 3 we give a detailed descriptionof our data structure. In Section 5 we present the procedure to find all the affected cells, andin Sections 6 and 7 we describe the procedure to implement the combinatorial changes andupdate the data structure accordingly.
We begin with standard definitions related to Voronoi diagrams and their basic properties.Let S : “ t s , s , . . . , s N u be a set of N distinct points in R ; these points are called sites .Let dist p¨ , ¨q denote the Euclidean distance between two points in R . We assume that thesites in S are in general position , that is, no four sites lie on a common circle. Definition 1.
The
Voronoi diagram of S is the subdivision of R into N cells, called Voronoicells , one cell for each site in S , such that a point q lies in the Voronoi cell of a site s i if andonly if dist p q, s i q ă dist p q, s j q for each s j P S with j ‰ i .Let f i denote the Voronoi cell of a site s i . Edges of the Voronoi diagram, called Voronoiedges, are portions of bisectors between two sites which are the common boundary of thecorresponding Voronoi cells.
Voronoi vertices are points where at least three Voronoi cellsmeet. The
Voronoi circle of a Voronoi vertex v is the circle passing through the sites whosecells are incident to v , see Figure 1a. Vertex v is the center of its Voronoi circle. v (a) b v (b) Figure 1: A Voronoi diagram and (a) a Voronoi circle of vertex v and (b) paw v of Voronoi cell f .Since the sites are in general position, each Voronoi vertex has degree three. EachVoronoi edge is either a segment or a ray and the graph of the Voronoi diagram formed byits edges and vertices is planar and connected.The next three definitions are specific to our data structure.3 efinition 2. The size of a Voronoi cell is the number of Voronoi edges constituting itsboundary. We denote the size of cell f by | f | . Definition 3.
A Voronoi cell of a Voronoi diagram with N sites is called a big cell if it hassize more than N . Otherwise it is called small . Definition 4.
The paws of Voronoi cell f are the Voronoi vertices that are connected to theboundary of f by an edge and are not themselves on the boundary of f , see Figure 1b. Apaw is called relevant if it is not incident to a big cell. We now overview the definitions and results from Allen et al. [1] that we need to presentour approach. In order to prove the Θ p N q bound on the number of combinatorial changescaused by insertion of a site, a graph operation called flarb is introduced.Let G be a planar 3-regular graph embedded in R without edge crossings (edges arenot necessarily straight-line). Let C be a simple closed Jordan curve in R . Definition 5.
Curve C is called flarbable for G if: • the graph induced by vertices inside the interior of C is connected, • C intersects each edge of G either at a single point or not at all, • C passes through no vertex of G , and • the intersection of C with each face of G is path-connected.For example, curve C on Figure 2a is not flarbable since the intersection between itsinterior (shaded green) and the highlighted face (red) consists of two disconnected parts. InFigure 2b curve C is flarbable. fC (a) f gC' (b) (c) Figure 2: Examples of (a) not flarbable curve (b) flarbable curve; (c) result ofapplying the flarb operation for curve C .Given a graph G and a curve C flarbable for G , the flarb operation is, informally, re-moving part of G that is inside C and replacing it with C . Formally, the flarb operation for G and C is defined as follows (see Figure 2b, 2c): • For each edge e i P G that intersects C let u i be its vertex lying inside C and v i its vertexoutside C . Create a new vertex w i “ C X e i and connect it to v i along e i . • Connect consecutive vertices w i along C . • Delete all the vertices and edges inside C .Let G p G, C q denote the graph obtained by applying the flarb operation to graph G andcurve C . 4 roposition 1. The following holds for graph G p G, C q : (a) G p G, C q has at most two morevertices than G does; (b) G p G, C q is a 3-regular planar graph; (c) G p G, C q has at most onemore face than G does.Proof. Items (a) and (b) are proved in [1], Lemma 2.2. To prove (c) note that there is onenew face bounded by the cycle added along C while performing the flarb. All the other facesof G are either deleted, left intact, or cropped by C ; these operations obviously do not increasethe number of faces. Theorem 2 ([1]) . Let G be a graph of the Voronoi diagram of a set of N ´ sites s . . . s N ´ .For any new site s N there exists a flarbable curve C such that the graph of the Voronoi diagramof sites s . . . s N is G p G, C q . Cost of the flarb.
We want to analyze the number of structural changes that a graph un-dergoes when we apply the flarb operation to it. There are two basic combinatorial operationson graphs: • Link is the addition of an edge between two non-adjacent vertices. • Cut is the removal of an existing edge.Other combinatorial operations, for example insertion of vertex of degree 2, are assumedto have no cost.
Definition 6. cost p G, C q is the minimum number of links and cuts needed to transform G into G p G, C q .Note that sometimes there are less combinatorial changes needed than the number ofedges intersected by C . Consider edges e , e of G crossed consecutively by C and edge n adjacent to them that reappears in G p G, C q as a part n ˚ of C . Then n ˚ can be obtainedwithout any links or cuts by lifting n along e and e until it coincides with n ˚ or (which isthe same) shrinking e and e until their endpoints coincide with their intersections with C (see Figure 3). We will call it preserving operation .Figure 3: Edges n ˚ and n ˚ can be obtained without any links or cuts. Theorem 3 ([1]) . For a flarbable curve C , it holds that cost p G, C q ď | S p G, C q| ` | B p G, C q| ` O p q . Where • | B p G, C q| is the number of faces of G wholly contained inside C ( g is such a face onFigure 2b). • | S p G, C q| is the number of shrinking faces—i.e. the faces whose number of edges de-creases when flarb operation is applied (face f is shrinking on Figures 2b–2c). Theorem 4 ([1]) . Consider one insertion of a new site to a Voronoi diagram V . • The number of cells of V undergoing combinatorial changes is O p N q amortized in asequence of insertions; • There are a constant number of combinatorial changes per cell; • The cells of V with combinatorial changes form a connected region. Further in this paper by a change in cell we always mean a combinatorial change, thatis a link or a cut . Our data structure consists of the following parts. • The graph G N of the Voronoi diagram represented by its adjacency list: for each Voronoivertex v we store the list of all Voronoi vertices connected to v . Since the sites are ingeneral position, each list has length 3, therefore we can find and replace its elementsin constant time. Thus any link or cut can be performed in constant time as well asinsertion or deletion of a vertex of degree 2. • For each vertex v its data D v is stored. It is a list of the three sites that define theVoronoi circle of v , that is, the sites whose cells are incident to v . • A dynamic nearest neighbor structure (DNN) [6] for the sites which supports insertionand deletion of sites and nearest neighbor queries in ˜ O p q amortized time. • The graph Γ N of big cells which is simply the dual graph to the subgraph of G N formedby big cells. Vertices of Γ N are big cells themselves and edges connect vertices corre-sponding to pairs of big cells that are adjacent. Graph Γ N has O p N q edges, since it isa planar graph of at most N vertices. For each pair of adjacent big cells b , b we alsostore two Voronoi vertices they share. We store graph Γ N as an adjacency list, wherefor each vertex, its edges are stored in a binary search tree ordered counterclockwisearound the corresponding big cell. The vertices of Γ N are stored in a binary searchtree. This allows us to access any edge of Γ N in ˜ O p q time. • For each big cell b i store a circular linked list of Θ p| b i | { N q data structures eachassociated with a consecutive range of O p N q paws of B i , see Figure 4. Each structurestores the Voronoi circles of the relevant paws of b i (recall that a paw is relevant if it isnot incident to a big cell, see Definition 4).The collections of circles are stored using dynamic circle-reporting structures (DCRs) that are variants of the DNN structure constructed in [1]. DCRs support insertion anddeletion of circles in time ˜ O p q , and given a query point, report all k circles containingthe point in time ˜ O p k q . • For each big cell b i a yard tree T b i supporting the following operations in ˜ O p q time: – for a specified continuous range v . . . v m of vertices of b i updating D v . . . D v m ,changing s i to a given site s j . – removing a continuous range of vertices from b i and create a new cell with thesevertices preserving their order (split) , – merging the trees that correspond to big cells b i and b j (when two cells are mergedtheir common edge is deleted), so that the same operations can apply to the6igure 4: b is a big cell; each of data structures S . . . S is associated with aconsecutive range of its paws and stores Voronoi circles of the relevant ones.resulting tree.One can use link-cut trees [11] or a collection of red-black trees with two-way pointersfor this purpose, see Cormen et al. [8] for details. • For each cell f i we need to store its size | f i | . We aim to implement the update of graph G N ´ to become G N when a new site s N isadded to the Voronoi diagram. Our goal is to quickly locate the affected cells that needcombinatorial changes, and to avoid processing the other cells. When the cells that needchanges are located, we implement these changes using the techniques of [1].Let the cell of the new site s N be called f N . We denote the boundary of f N by C N .According to Theorem 2, what we are about to perform is the flarb operation on graph G N ´ of the current Voronoi diagram and curve C N .We first use the DNN structure to locate one Voronoi cell, call it f dnn , that mustchange—the one whose site is the closest to newly added s N . We then add s N to the DNN.Finally we create the queue with all big cells of G N ´ and cell f dnn . This whole proceduretakes ˜ O p q time as the list of all big cells is already stored.We then remove each cell f from the queue, process it, and add into the queue the smallcells neighboring f with unprocessed changes. We do not have to add big cells neighboring f as all of them were already in the initial queue and thus will be processed. Figure 5 showsa pseudocode of this procedure. Let f be a cell with combinatorial changes. We can identify the neighboring cells of f thatchange using the following theorem: Theorem 5 ([1]) . Let g be a cell adjacent to f . Let v , v be the vertices of g that are pawsof f . Cell g needs to undergo combinatorial changes if and only if the Voronoi circle of v or v encloses s N . See Figure 6a for an example. Cell f is a cell with changes, n and n are its paws. TheVoronoi circle of n encloses the new site s N and the one of n does not. Therefore cells f and f need combinatorial changes as they are incident to vertex n , and cell f does notneed any changes. 7 : Q : “ queue of all big cells Changed : “ empty array of cells Q .append p f dnn q DNN.insert p s N q while not Q .empty do f : “ Q . dequeue Changed . append p f q if f is big then add f ’s small neighbors that need changesto Q using Section 5.1 else ˚ f is small add f ’s neighbors that need changesto Q using Section 5.2 end if end while implement changes in cells in Changed as described in Section 6
Some small cells have become big and some big have become small,fix corresponding data structures as described in Section 7Figure 5: Pseudocode describing insertion of new site s N We now consider separately the case when cell f is a big cell (Section 5.1) and the casewhen it is a small cell (Section 5.2). f is big We use DCRs of cell f : they return all the relevant paws of f whose Voronoi circles enclose s N . Small cells that are incident to these paws and are adjacent to f need combinatorialchanges and thus have to be added to queue Q .Two cells are to be considered separately: those that are neighboring f through an edgethat is crossed by C N . Denote them by f Left and f Right , see Figure 6b. If they are small, wecheck whether the Voronoi circles of at most four paws of f incident to them (call these paws p . . . p ) enclose s N , and, if yes, add the corresponding cell to the queue. To find Voronoicircles of these paws we get the data D p . . . D p from the structures T b i associated with bigcells adjacent to f Left and f Right , which requires ˜ O p q time. f is small We can look at every paw n i of f and identify those, whose Voronoi circle encloses s N . Thisrequires ˜ O p N q time in total. We add to Q small cells adjacent to f that are incident to thesepaws as they need changes according to Theorem 5. In this section we describe how to implement combinatorial changes in a cell f which liesin Changed . We again consider separately the case when f is big (Section 6.1) and the casewhen f is small (Section 6.2). 8 N fn n f f f (a) (b) Figure 6: Identifying Voronoi cells that need changes. (a) Voronoi circle ofvertex n encloses s N , and the circle of n does not. (b) v is a paw of bigcell f returned by a DCR. Highlighted are the cells that are to be added tothe queue. Processing a big cell f consists of the following four steps: Updating the vertices.
We update a continuous range of f ’s vertices v . . . v k —we needto change their data D v . . . D v k to indicate that these vertices are now incident to the cell of s N and not the cell of s . This can be done in ˜ O p q time using the yard tree T f . Updating the graph of the Voronoi diagram.
First thing to do is a link along C N creating two vertices: vertex v incident to f , f N , f Left , and vertex v incident to f , f N , f Right (see Figure 6b). After this link the part of f inside C N becomes a part of the new cell f N —luckily, all vertices of this part are already updated during the previous step.There may be some big cells adjacent to f that are already processed, creating otherparts of the new cell. We have to join these parts together by cutting edges of f that haveportions inside C N and are incident to already processed big cells. Finding these edges in astraightforward way could be slow as f can have a really large number of edges inside C N and we do not have enough time to look at each of them individually. Luckily, graph Γ N ´ contains the information about edges shared by big cells. Thus we can in ˜ O p q time find anddelete edges incident to both f and already processed big cells inside C N . The edges sharedby f and other big cells inside C N will be deleted when these other big cells will be processed. Updating the graph of big cells.
Two operations we just carried out—split of f by thenew edge v v and joining of some cells that are parts of f N —can change the set of big cellsand add or cut some connections between them. However, Γ N ´ can be updated accordinglyin ˜ O p q time when such an operation is executed. It can be done as follows:While undergoing a split, vertex f falls apart into two vertices: f and f p f q N (the latterrepresents a part of the new cell). They share newly created edge v v of the Voronoi diagram.Note that the cells adjacent to f p f q N form a continuous range of cells that were adjacent to f .Thus we need ˜ O p q time to cut a continuous range from the binary search tree of cellsadjacent to f , ˜ O p q time to add a new edge between f and f p f q N to their binary search trees9nd ˜ O p q time to re-balance the binary search tree of all big cells.Joining can be also done in ˜ O p q time. When two cells f , f are joined we remove anode corresponding to f from binary search tree of f and vice versa, this takes ˜ O p q time.We then join the trees of f and f also in ˜ O p q time since cells that were adjacent to f forma continuous range of cells adjacent to the new one. Fixing data structures.
There are two data structures associated with f that have to beconsidered: • T f can be updated in ˜ O p q time the same way we did with the graph of big cells. • DCRs of relevant paws: when big cells are joined or split, most of DCR-s stay intact.The only DCRs that need to be rebuilt are those whose range contains the endpointsof the edge that is either cut or added. Rebuilding of a DCR takes ˜ O p N q time sinceat most p N q circles are stored there. A small cell is different from a big cell in that we can consider every edge of it, and it willtake us ˜ O p N q time. We will implement the combinatorial changes in f , and after this weupdate the DCRs of neighboring big cells.We can in time ˜ O p N q distinguish whether f has one, two, or more vertices inside thenew cell (if they exist). Below we describe these three cases separately. One vertex inside the new cell. (See Figure 7a.) Let f i , f k be the cells adjacent to f that share an edge with f inside C N . Let those edges be called e i , e k respectively.It is certain that neither f i nor f k have been processed yet: if f i is processed then therewould be a vertex v “ C N X e i . Then we have to create the face in the graph that is separatedfrom f , f i , f k , bounded by C N , and is a part of the new cell f N . (a) (b) Figure 7: Processing a cell with one vertex inside the new cellTo do so, we perform a link operation inside f along C N : we create new vertices v on e i , v on e k and add an edge v v to G N ´ , see Figure 7b. v is incident to the cells of sites s , s i and s N ; v is incident to the cells of s , s j and s N . Two vertices inside the new cell.
We check whether cells adjacent to f that share anedge with it inside C N has been already processed. If not (see Figure 8a), we perform a link operation inside f similarly to the previous paragraph, see Figure 8b.Otherwise let us denote three faces sharing an edge with cell f inside curve C N by f , f , f , see Figure 9a. 10 a) (b) Figure 8: Processing a cell with two vertices inside the new cell when nosurrounding cells are yet processed
Lemma 6.
It is only f that can have been already processed.Proof. Suppose f is processed. It must then have an edge along C N . It implies that thereis a vertex where C N meets the common edge of f and f . This vertex becomes the thirdvertex of f inside C N . However, f has only two such vertices, which is a contradiction. (a) (b) Figure 9: Processing a cell with two vertices inside the new cell when there isa processed neighboring cells—no structural changes are neededIf f is processed and is part of f N then the data D v , D v of its vertices was updatedwhen we were processing it. Therefore f does not need to undergo any combinatorial changes,the common edge of f and f N can be obtained by preserving operation which was described inSection 2.1, see Figure 3. Thus no links and cuts are required, see Figure 9b. This completesimplementing changes in f . More vertices inside the new cell.
Again we check whether any of the cells adjacentto f has been processed already. If not, it is enough to perform one link creating two newvertices v , v and to update the data D v j of all the vertices of cell f between v and v : nowthey are incident to the cell of s N , see Figure 10a.If some cells sharing an edge with f inside C N are already processed and represent apart of new cell, then for each processed cell f adjacent to f we also perform a cut removingtheir common edge e and then remove vertices incident to this edge that now have degree 2,see Figure 10b. Updating the DCRs of big neighbors of f . The last step is that for every vertex v of f whose list of adjacent cells has changed during update of G N ´ we find all big cells for which v is a paw (there are at most three such cells, since v has degree 3), recalculate the Voronoicircle of v , and update Voronoi circle of v in DCRs of those cells which takes ˜ O p q time.11 a) (b) Figure 10: Processing a cell with three or more vertices inside the new cell.(a) No adjacent faces have been processed yet(b) Adjacent face f has been processed When a size of a cell crosses the threshold of N , it can be easily identified since we storeall the sizes. If a big cell b is split into a number of cells and one of them is small, or if N becomes greater than | b | , we delete all the structures associated with it, including DCRsand the structure T f . We also remove from Γ N ´ the vertex corresponding to b .Other way around, a new big cell can appear in the diagram when: • the new cell f N intersects many of old cells and has more than N vertices, or • a cell f k with N ´ vertices has one vertex inside f N and gets one additional vertexwhile being processed, see Figure 7.New cell f N inherits the portion of its DCRs from its parts that previously were partsof big cells. The number of circles of paws of previously small cells that need to be addedto DCRs can be bounded from above by the size of a small cell times number of cells thatundergo changes — that is, N ¨ N “ N . The structure T f N is inherited in part by f N from big cells that intersect curve C N . Thenumber of vertices that have to be added to T f N after that is bounded from above by thenumber of combinatorial changes in current insertion.The cell f k still has size | f k | ď N , so yard tree T f k can be built in ˜ O p N q : it onlytakes time polylogarithmic in the size of the cell to add each vertex. Theorem 7.
Inserting a new site s N to our data structure and updating it requires ˜ O p N q amortized time.Proof. Let s be the number of small cells that change, and b , b , . . . , b | B | be the big cells.Let (cid:96) i be the number of circles returned by the DCR structures of b i .All the operations on a small cell take ˜ O p N q time. For all the big cells together theoperations on updating the graph structure and the graph of big cells require ˜ O p N q totaltime. The number of DCR-s that have to be rebuilt is bounded from above by the numberof changes in the graph. 12inally, the amortized time complexity is ˜ O ¨˝ sN ` | B | ÿ i “ ˆR | b i | N V ` (cid:96) i ˙ ` N ` sN ˛‚ . Since s is O p N q amortized [1], ř | B | i “ | b i | ď N , | B | ď N , and ř | B | i “ (cid:96) i ď sN , this issimply ˜ O p N q amortized. The problem of maintaining the convex hull of a set of points in R subject to point insertioncan also be solved using our data structure. Namely, consider the dual problem of maintainingthe intersection of a set of halfspaces. The two blocks of our data structure that are specificfor Voronoi diagrams, translate in this setting as follows. To find the first face affected bythe insertion (or report that it does not exist) we need to find the vertex extreme in thedirection normal to the plane being inserted; if it is affected, then all the three incident facesare affected. We check whether a vertex is affected by determinimg the above/below relationbetween this vertex and the plane baing inserted. Thus Chan’s structure [6] is again enoughfor our needs.There remains a gap between the ˜ O p N { q expected amortized runtime of our structureand the Θ ` ? N ˘ amortized number of combinatorial changes to the Voronoi diagram. Also,it would be interesting to get output-sensitive bounds, where the update time depends on thenumber of combinatorial changes. This was achieved by Allen et. al. [1] for points in convexposition, where their update time is O p K log N q , where K the number of combinatorialchanges. We are unable to show this using our technique, due to the fact that we need toprocess all Θ p N { q big cells, no matter how many of them undergo combinatorial changes.
10 Acknowledgments
This work was completed during the Second Trans-Siberian Workshop on Geometric DataStructures. We thank the organizers and staff of Russian Railways ( ) for creating anideal research environment.S. L. is the Directeur de recherches du F.R.S-FNRS. J. I. and G. K. are supported by theFonds de la Recherche Scientifique-FNRS under Grant no. MISU F 6001 1. E. A. and B. Z.are partially supported by the Foundation for the Advancement of Theoretical Physics andMathematics “BASIS” and by “Native towns”, a social investment program of PJSC “GazpromNeft”. J. I. is supported by NSF grant CCF-1533564.
References [1] S. R. Allen, L. Barba, J. Iacono, and S. Langerman. Incremental voronoi diagrams.
Discrete & Computational Geometry , 58(4):822–848, 2017.[2] B. Aronov, P. Bose, E. D. Demaine, J. Gudmundsson, J. Iacono, S. Langerman, andM. H. M. Smid. Data structures for halfplane proximity queries and incremental voronoidiagrams.
Algorithmica , 80(11):3316–3334, 2018.[3] E. Arseneva, J. Iacono, G. Koumoutsos, S. Langerman, and B. Zolotov. Sublinear explicitincremental planar voronoi diagrams (extended abstract).
Japan Conference on Discreteand Computational Geometry, Graphs, and Games (JCDCG3) , 2019.134] F. Aurenhammer and R. Klein. Voronoi diagrams. In J. Sack and J. Urrutia, editors,
Handbook of Computational Geometry , pages 201–290. North Holland / Elsevier, 2000.[5] T. M. Chan. A dynamic data structure for 3-d convex hulls and 2-d nearest neighborqueries.
J. ACM , 57(3):16:1–16:15, 2010.[6] T. M. Chan. Dynamic geometric data structures via shallow cuttings. In , pages 24:1–24:13, 2019.[7] T. M. Chan and K. Tsakalidis. Optimal deterministic algorithms for 2-d and 3-d shallowcuttings.
Discrete & Computational Geometry , 56(4):866–881, 2016.[8] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein.
Introduction to Algorithms .Massachusetts Institute of Technology, third edition, 2009.[9] H. Kaplan, W. Mulzer, L. Roditty, P. Seiferth, and M. Sharir. Dynamic planar voronoidiagrams for general distance functions and their algorithmic applications. In
Proceedingsof the Twenty-Eighth Annual ACM-SIAM Symposium on Discrete Algorithms, SODA2017 , pages 2495–2504, 2017.[10] S. Pettie. Applications of forbidden 0-1 matrices to search tree and path compression-based data structures. In
Proceedings of the Twenty-First Annual ACM-SIAM Sympo-sium on Discrete Algorithms, SODA 2010 , pages 1457–1467, 2010.[11] D. D. Sleator and R. E. Tarjan. A data structure for dynamic trees.