Touring a Sequence of Orthogonal Polygons
Abstract
We study the problem of computing a shortest tour that visits a sequence of polygons with a total number of vertices. A tour is an oriented curve such that there exist points for all where appears not after . In a seminal paper, Dror, Efrat, Lubiw and Mitchell (STOC 2003) considered the problem under distance, and gave and algorithms for disjoint and intersecting convex polygons, respectively. In this paper, we consider the orthogonal setting (with orthogonal polygons and Manhattan distance) and obtain the following results:
-
a truly subquadratic algorithm when consecutive polygons in the sequence are disjoint;
-
an algorithm for ortho-convex polygons when consecutive polygons are disjoint;
-
an algorithm for axis-aligned rectangles;
-
and algorithms without restrictions.
Our algorithms build on a wide range of techniques, including additively weighted Voronoi diagrams, rectangle decompositions, persistent data structures, and dynamic distance oracles for weighted planar graphs.
Keywords and phrases:
shortest path, subquadratic time, dynamic planar distance oracleCategory:
Track A: Algorithms, Complexity and GamesFunding:
Sándor Kisfaludi-Bak: Supported by the Research Council of Finland, Grant 363444.Copyright and License:
Eunjin Oh, and Yanheng Wang; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Theory of computation Computational geometry ; Theory of computation Dynamic programmingAcknowledgements:
This work was initiated at the 2025 Lorentz Center workshop “Fine-Grained and Parameterized Computational Geometry” in Leiden, the Netherlands.Editors:
Sayan Bhattacharya, Danupon Nanongkai, Michael Benedikt, and Gabriele PuppisSeries and Publisher:
Leibniz International Proceedings in Informatics, Schloss Dagstuhl – Leibniz-Zentrum für Informatik
1 Introduction
Shortest paths between two points in geometric environments can often be computed in near-linear time. However, in settings where the path is constrained to avoid or pass through given regions, polynomial-time algorithms might not exist. For example, computing a shortest path that avoids axis-aligned half-planes in , or one that passes through non-convex regions in are both NP-hard problems [30, 20].
In this paper we study a constrained shortest path problem Polygon Touring: given a sequence of polygons with vertices in total, compute (the length of) a shortest tour that visits the polygons in order. A tour is an oriented open curve, and it visits a sequence of polygons if there exist points for all such that goes through in order. We highlight that the points may coincide; see Figure 1 for an example. One can measure the length of a tour in different metrics, and natural choices include the Manhattan () and Euclidean () metrics.
Polygon Touring has obvious applications in motion planning and logistics in physical environments [21, 25, 27, 32]. It is also used as a subroutine in several geometric optimization problems, such as the watchman route problem [29, 31], the safari and zookeeper problems [35, 5, 22], and even variants of convex hull [28, 36, 19, 1]. The problem can also be understood as the -dimensional offline version of the convex body chasing problem [23, 33, 3, 2, 13, 34].
Dror, Efrat, Lubiw and Mitchell [20] studied Polygon Touring under when the polygons are convex. In their formulation the starting point of the tour is fixed, i.e., degenerates to a single point. They gave an -time algorithm if the given convex polygons are disjoint, and an -time algorithm if they are allowed to overlap. On the other hand, they showed that the problem becomes NP-hard if the polygons are non-convex, or even if each consists of a pair of segments with a shared endpoint.
This raises interesting questions from a fine-grained perspective. For example, is there a truly subquadratic time algorithm (i.e., of running time for some ) that solves Polygon Touring under , assuming convex disjoint polygons of constant size each?
As our take to the question, we consider an interesting variant of touring orthogonal polygons (where every edge is either horizontal or vertical) under . This setting avoids precision issues under and allows us to concentrate on the combinatorial side of the problem. Here obtaining an -time algorithm is in fact an open problem. Dror et al. [20] claimed an -time algorithm but did not present a full proof. A straightforward interpretation of their sketch would lead to an algorithm in cubic time (more precisely, time).
Question 1.
Is there an -time algorithm for touring a sequence of orthogonal polygons under ? What about or even truly-subquadratic time?
Guided by known results in , we can expect that the problem becomes easier when the polygons are disjoint and/or convex. In case of orthogonal polygons the only convex polygons are axis-aligned rectangles. This leads us to the second question:
Question 2.
Is there a faster algorithm for touring a sequence of disjoint orthogonal polygons under ? What about touring a sequence of rectangles under ?
Our contribution
| input restriction | time complexity | refer to |
|---|---|---|
| – | Theorem 1 | |
| – | Theorem 4 | |
| step-disjoint | Theorem 3 | |
| step-disjoint, ortho-convex | Theorem 5 | |
| rectangles | Theorem 2 |
In what follows, we consider Polygon Touring for a sequence of orthogonal polygons with vertices in total and measure all distances in metric. We denote this problem by Orthogonal Polygon Touring. Table 1 summarizes our results. As a baseline, we design an -time algorithm, thereby partially answering Question 1.
Theorem 1.
Orthogonal Polygon Touring is in time .
The proof of Theorem 1 already contains some non-trivial ideas that recur in the other results. First observe that we may restrict our attention to tours whose vertices lie on the the grid, i.e., the intersections of the horizontal and vertical lines through polygon vertices. Since the grid has points, this leads to a naive dynamic program that runs in time . To improve the running time it is helpful to consider the case of step-disjoint polygons, where any two consecutive polygons in the sequence are disjoint. (In Figure 1, is step-disjoint, while is not.) In this case, a shortest tour must enter each polygon at a boundary point which is also on the grid; we call these points portals. Note that the number of portals on is at most times the number of edges in , so the total number of portals over all polygons is . It remains to design an efficient data structure that allows one to query, for each portal on , the shortest tour ending there. Since such tour must pass through a portal on , we can build an additively weighted Voronoi diagrams over the portals on to handle these queries efficiently.
In the general case where consecutive polygons can overlap, a shortest tour may enter a polygon directly at a grid point in its interior; see for example in Figure 1. We handle the situation by “tunneling” through the overlapping polygons with the help of a segment-tree-based data structure.
We do not know how to push this approach to fully address Question 1. Nevertheless, we manage to obtain truly-subquadratic time algorithms under various natural restrictions. In the most restricted case, we consider a sequence of rectangles and answer the second half of Question 2:
Theorem 2.
Orthogonal Polygon Touring for rectangles can be solved in time.
This highly specialized algorithm uses the convexity of rectangles in a strong way, and does not even generalize to polygons with edges each (such as L-shapes). It is also challenging to solve the other extreme: a sequence of polygons with edges each. As our main result, we propose ideas to solve both extremes for step-disjoint sequences, and to interpolate the extremes into a truly subquadratic algorithm. This answers the first half of Question 2.
Theorem 3 (Main theorem).
Orthogonal Polygon Touring for step-disjoint orthogonal polygons can be solved in time.
The global structure of the algorithm is to split the sequence into batches of two types: a dense batch contains few polygons (but each polygon may have many edges), whereas a sparse batch contains polygons with few edges. It uses different strategies to process the two types and chain them together. For simplicity, we expose the ideas on two extreme cases: In the dense case is small (thus all polygons are in one dense batch); and in the sparse case and all polygons have edges (thus all polygons are in one sparse batch).
In the dense case, we start by partitioning the plane into rectangles using a technique of De Berg and Van Kreveld [18]. The partition has the property that, for every polygon and rectangle , the intersection is either a collection of horizontal stripes or a collection of vertical stripes. As a result, the tour inside is rather simple and can be reduced to one-dimensional problems. Our idea is to build a dynamic program on the grid points induced by rectangle boundaries. For each such grid point (called a hub) and each index we want to compute the shortest tour visiting . We need to iterate over index pairs during the computation, and the number of hubs can be bounded by , so this results in an algorithm with running time . Due to the quadratic dependence on this algorithm is not subquadratic for larger values of , so we need a completely different strategy for the sparse case.
In the sparse case, we face a long sequence of polygons with few edges. Importantly, if the tour is visiting a pair of consecutive polygons and and makes a turn (i.e., changes from horizontal to vertical or vice versa) somewhere between their visits, then the turn can only be justified by a local grid point, i.e., on some point that is the intersection of some horizontal and vertical lines through the vertices of and . Since both polygons have few edges, the local grid has very small complexity. Tours making a turn between each consecutive pair can be handled using weighted Voronoi diagrams.
Unfortunately, it is possible that a tour traverses a subsequence of consecutive polygons without making any turns, and hence without snapping to the local grid. Tracking such tours efficiently is far from trivial. In order to compute tours that stay on a given horizontal line , we build an auxiliary planar graph whose nodes are arranged by layers that correspond to the polygon index , and inside each layer by -coordinates that correspond to the -coordinates where the polygons intersect the line . The shortest horizontal tour on visiting the polygons corresponds to a shortest path in this graph that percolates from the first layer to the last layer. We cannot afford building these graphs from scratch for each relevant value of , as this requires quadratic time. However, we observe that as we sweep a horizontal line bottom up, the number of updates to the planar graph is linear in total, and we can apply a multi-source distance oracle for dynamic planar graphs by Charalampopoulos and Karczmarz [16] to beat quadratic time.
Interpolating the dense and sparse cases requires further finesse. In particular, we need to deal with instances that contain both dense and sparse batches. A challenge is to pass information from one batch to the next and bridge the difference in strategies. The bridging is efficient only if the polygon delimiting the two batches has a small number of edges. Fortunately, we show a batching strategy such that all the delimiters have small complexity.
This concludes our overview of the main theorem. As a byproduct of the dense case we also obtain an algorithm for potentially overlapping polygons. The algorithm is truly-subquadratic (hence, faster than Theorem 1) whenever for any .
Theorem 4.
Orthogonal Polygon Touring can be solved in time.
In another result, we consider ortho-convex polygons, which are orthogonal polygons with the property that any horizontal or vertical line intersects them in a segment. If the ortho-convex polygons are step-disjoint, then a vertical edge of cannot have points of both to its left and right. Hence, for each grid point , the shortest tour visiting can be efficiently described by the distance functions on the vertical edges of that are “facing” . The distance functions in turn are piecewise linear and have slopes , or . By handling and updating these functions in a persistent data structure we are able to solve the step-disjoint ortho-convex case in near-linear time, avoiding the reliance on dynamic planar graph algorithms.
Theorem 5.
Orthogonal Polygon Touring can be solved in time for step-disjoint ortho-convex polygons.
While this paper is about fast algorithms for Orthogonal Polygon Touring, the problem is also interesting from the lower bound/fine-grained complexity perspective. In particular, it does not seem to have the same quantifier structure as typical geometric problems studied in the fine-grained literature such as curve and shape similarity problems [6, 10, 11, 8, 12], intersection graph problems [9, 14], clustering [15], and point-line incidence problems [24, 4]. We raise the following natural question.
Question 3.
Is there a super-linear conditional lower bound for touring a sequence of convex polygons under , or for touring orthogonal polygons under ?
Towards this direction we consider the generalized problem in -dimensional space: touring a sequence of orthogonal polytopes of vertices in total. The problem has a straightforward algorithm. We show a conditional lower bound assuming the orthogonal vectors hypothesis (OVH). See [7] for an overview of popular fine-grained conjectures.
Theorem 6.
Assuming OVH, no algorithm can solve Orthogonal Polytope Touring for step-disjoint 3-dimensional polytopes in time , for any .
Organization.
Section 2 introduces the fundamental concepts and structures. Section 3 studies the general case without input restriction. Sections 4 and 5 assume step-disjointness and present truly-subquadratic time algorithms for orthogonal polygons and ortho-convex polygons, respectively. Along the way we also obtain an algorithm that handles (a small number of) overlapping polygons. The remaining results (Theorems 2 and 6) are presented in the full version of this paper. A few lemmas are marked with asterisks: their proofs are straightforward and thus omitted. The reader may find them in the full version as well.
2 Fundamental concepts
We write . A polygon is orthogonal if all its edges are horizontal or vertical. For simplicity of presentation, we assume that all polygons are in general position, i.e., no two edges are collinear. The assumption can be removed by imposing an ordering on collinear edges. For a polygon , let and be the sets of and -coordinates of the vertices of , respectively. Denote . In the Orthogonal Polygon Touring problem, we are given orthogonal polygons with total complexity , and the goal is to compute (the length of) a shortest tour under metric that visits . We say that the input sequence of polygons is step-disjoint if and are disjoint for all .
For each index and point , we define as the length of a shortest tour that visits in sequence. We also define . (If does not exist then let .) These definitions play a central role in our algorithms.
It is sometimes convenient to represent tours as discrete sequences instead of continuous curves. The notion of skeletons serves this purpose.
Definition 7.
A skeleton visiting is a sequence such that and for all . We say that the skeleton has size and length .
So far as the minimum length is concerned, skeletons and tours are equivalent:
Lemma 8 ().
The minimum length of tours visiting is equal to the minimum length of skeletons visiting .
The next lemma provides crucial insights into the structure of minimum length skeletons.
Lemma 9.
Among all minimum length skeletons visiting , there is a skeleton with the four properties listed below. Here we denote .
-
1.
For each , we have .
-
2.
For each , we have .
-
3.
For each , at least one of the following holds:
-
(1)
is a vertex of or an intersection point in ;
-
(2)
are on horizontal edges of respectively, and ;
-
(3)
are on vertical edges of respectively, and ;
-
(1)
-
4.
There exists for which (1) holds.
Proof.
Among all minimum length skeletons , pick those with the minimum size . Among all picked skeletons, further pick those such that is lexicographically maximum. We call these skeletons irreducible.
Claim.
Every irreducible skeleton satisfies property 1 and has .
Proof.
On one hand, because by the definition of skeletons. On the other hand, because otherwise we can replace with in the skeleton, which results in another skeleton with the same length and size but a higher lexicographic rank, a contradiction to irreducibility. This shows .
Next we show . Note that since . In particular, . Suppose to contradiction that , then it must be in the interior of . As , we can move towards while staying inside . The skeleton still visits but the length strictly decreases, which is a contradiction.
In the rest of the proof, we will start from an arbitrary irreducible skeleton and modify it into another irreducible skeleton that is closer to satisfying properties 2 and 3. In more detail, we will move a point to , meaning that we replace with in to obtain . We will make sure that and has the same length as . Once these two conditions are met, it follows that still visits and has the same length, size and lexicographic rank as , so it remains irreducible.
To implement the scheme, we first iterate over . We have because by property 1. In particular, . Since , the shortest path between must cross the boundary . Therefore, we can move to while preserving the length. The resulting skeleton is still irreducible. After all iterations, we obtain an irreducible skeleton with property 2.
Next we iterate over . In step , the goal is to move such that for every either (1), (2) or (3) holds. By property 2, and are on edges and , respectively. Assume that is horizontal; the vertical case is symmetric. We distinguish four cases, illustrated in the four columns of Figure 2.
-
If is horizontal, then we move along towards until it hits a vertex of , or until . This ensures (1) or (2) for .
-
If is vertical and entirely below/above , then we move to the top/bottom endpoint of . Now that is a vertex, (1) holds for ; moreover, must lie on a horizontal edge, so we can apply the previous case to move and ensure (1) or (2) for .
-
If is vertical and entirely to the left/right of , then we move to the left/right endpoint of and ensure (1) for .
-
If is vertical and intersects , then we move to the intersection and ensure (1) for .
In any case the goal is achieved. Furthermore, remain on , respectively, and the length of the skeleton does not change. Therefore, the resulting skeleton is still irreducible and satisfies property 2. After all iterations, we obtain an irreducible skeleton that satisfies both properties 2 and 3.
Finally, suppose that property 4 is not yet fulfilled. Then for all either (2) or (3) holds. Assume by symmetry that is on a horizontal edge of , then it is not on a vertical edge as it is not a vertex. Hence must be on a horizontal edge of and . Propagating the argument, all are on horizontal edges and have the same -coordinate. We move all points to the right by the same distance, until some point becomes a vertex of , which witnesses property 4. Clearly every point remains on a horizontal edge of and has the same -coordinate, and the length of the skeleton does not change. Therefore, irreducibility and properties 2, 3 are also preserved.
Motivated by Lemma 9, we define the grid of a set of orthogonal polygons as
We define the portals of as .
Corollary 10.
Among all minimum length skeletons visiting , there is a skeleton with the four properties in Lemma 9, as well as the property that for all .
Proof.
Take a skeleton given by Lemma 9. By property 4, some of are vertices or intersections. We split the skeleton at these points into pieces. Consider any piece but the first one. The piece starts with a point that is a vertex or an intersection, and no other point is a vertex or an intersection. By property 3, points in this piece either all lie on horizontal edges and have -coordinate , or all lie on vertical edges and have -coordinate . Therefore, every point in the piece is a portal. Moreover, since , we have . For the first piece, we can make the same argument from where it ends.
When the polygon sequence is step-disjoint, we get a significantly simpler structure:
Corollary 11.
Among all shortest tours that visit a sequence of step-disjoint polygons , there is a tour that visits a sequence of points such that for each ,
-
(1)
is a vertex of ; or
-
(2)
are on horizontal edges of respectively, and ; or
-
(3)
are on vertical edges of respectively, and .
Proof.
Take a skeleton given by Corollary 10. Since the polygon sequence is step-disjoint, we have for all by definition, so inductively . Hence the skeleton has form , and for all we have and .
3 Touring overlapping orthogonal polygons
In this section, we study Orthogonal Polygon Touring for the general case. Dror et al. [20] stated that the problem can be solved in time without elaborating on the proof; a straightforward interpretation of their idea actually needs time. We describe here a simple algorithm in time , which essentially closes the gap and also serves as a baseline for our other algorithms.
Theorem 1. [Restated, see original statement.]
Orthogonal Polygon Touring is in time .
Proof.
As a preparation, we construct a binary tree, where each leaf node represents an element (i.e., a singleton interval) of , and each non-leaf node represents the union of the intervals of its two children; this is a discrete variant of a segment tree [17]. We write for the interval represented by node and define . Note that where are the children of , so we can compute for all in a bottom-up fashion. Then we build a point location data structure for each .
It is well-known that the intersection of two orthogonal polygons and can be computed in time , and a point-location data structure on a polygon can be built in time . So the total time spent per level of is . As there are levels, the construction time is .
Next we describe a subroutine that, given an index and a point , computes the value in time . To this end, first compute the canonical decomposition of the interval ; that is, find nodes such that is a disjoint union. Then compute the minimal such that . We descend from node towards the leaves; at each step we go to the left child if , and the right child otherwise. In the end we arrive at a leaf that corresponds to exactly .
Computing the canonical decomposition takes time. Computing needs queries into the point-location data structures. The descent from to the leaf needs queries as well. Since each query is answered in time, the subroutine takes time as claimed. For each and , we call the subroutine to compute and store the values in a look-up table. Since , the table can be computed in time .
With these preparations, the main algorithm is a dynamic program. As the base case, we have for all . We claim the following recursive formula:
Claim.
For all and , we have
Proof.
If then by definition. From now on we assume . The direction is easy: corresponds to a tour visiting , and corresponds to a tour visiting since . Their sum thus corresponds to a tour visiting .
For the direction, let be a minimum length skeleton visiting given by Corollary 10. Note that by definition, thus . Moreover, we have because but .
By the guarantee of Corollary 10, and . Hence there exists such that . For this we clearly also have . Finally, Lemma 8 implies that is exactly the length of this skeleton, which is equal to .
The dynamic program iterates over . In each iteration, we construct the additively weighted Voronoi diagram (under metric) on the point set
where each point has weight . For each , if then we assign , else we assign . The correctness follows from the claim above. After all iterations finish, we return .
In each iteration , constructing the Voronoi diagram takes time [26], and the queries take time. Over all iterations, the time is . Note that
Hence the total time is .
4 Touring step-disjoint orthogonal polygons
We move on to study step-disjoint orthogonal polygons and prove Theorem 3, which breaks the quadratic-time barrier. As a rough outline, the algorithm decomposes the sequence of polygons into batches, where each batch either contains a small number of vertices (sparse batch), or has few polygons (dense batch). The algorithm processes the batches in order. In each round it extends the prefix shortest tours computed so far to visit one more batch. Different strategies are used for sparse and dense batches, and they are driven by different structural insights.
We will make use of two results from the literature. One is a generalized distance oracle for dynamic planar graphs [16, Theorem 18]:
Theorem 12.
Let be a weighted planar digraph on nodes, with a set of facilities. There exists a data structure maintaining under edge insertions, edge deletions and changes of in update time. Given any , it can compute in time. The initialization time is .
The other is a rectangle partition of with low stabbing number [18, Lemma 3.1].
Lemma 13 ().
In time , we can partition into rectangles such that
-
(i)
no rectangle contains a vertex of in its interior;
-
(ii)
every vertical/horizontal line intersects at most rectangles.
4.1 Decomposition into batches
Let be constants to be determined later. (For concreteness, think of and .) We will carefully choose some polygons as delimiters, where . They split the input sequence into batches . We say that a batch is sparse if ; and it is dense if . Note that a batch can be both sparse and dense.
Lemma 14.
In time we can compute a set of at most delimiters, each of complexity at most , such that every batch is either sparse or dense.
Proof.
We color each polygon blue if , and red otherwise. This breaks the input sequence into blue and red blocks. We further differentiate a red block by two types: it is light red if , and dark red otherwise. Clearly there are at most dark red blocks.
Now we fix two consecutive dark red blocks, and consider the sequence of polygons in between. It must start with a blue block, alternate between light red and blue blocks, and end with a blue block. We mark and as delimiters. We then iterate over and keep a running sum . At iteration we let . If and is blue, then we mark as a delimiter and reset to zero. We run the procedure between every pair of consecutive dark red blocks, and return all the marked delimiters. The running time is clearly . Next we argue that the required properties hold.
The number of delimiters is bounded as follows. Between every pair of consecutive dark red blocks, we mark (i) a delimiter in the beginning; (ii) a delimiter in the end; and (iii) one or more delimiters in the middle. Over all consecutive pairs, the total contribution of (i)(ii) is at most twice the number of dark red blocks, that is . The total contribution of (iii) is at most because each time we mark a delimiter this way, the running sum must have exceeded .
By construction every delimiter is blue (i.e., has complexity at most ). Now consider an arbitrary batch . There are only two cases:
-
It consists of a dark red block and two adjacent blue polygons. We have since each red polygon has complexity at least and the total complexity is at most . Hence the batch is dense.
-
It is formed when we scan the sequence between consecutive dark red blocks. The scanning procedure ends the batch as soon as the running sum exceeds and we see a blue polygon. Since each light red block and each blue polygon can contribute at most to the sum, we have . Hence the batch is sparse.
From now on we assume that the decomposition in Lemma 14 is computed. Our algorithm will process the batches in order and pass necessary information from one batch to the next. When we finish processing a batch , we would have computed for all . We employ different strategies to process sparse and dense batches. Let us explain the high-level ideas.
Inside a sparse batch, we define terminals as the local analogue of portals. More precisely, these are the boundary points on the grid induced by the batch. Clearly there are at most terminals. We show that there exists a global shortest tour that traverses this batch in one of three ways: (i) it visits a terminal on each polygon in the batch; (ii) it travels horizontally throughout the batch; or (iii) it travels vertically throughout the batch. To handle (i), we use a simple dynamic program over terminals, which costs only polylogarithmic time per terminal. To handle (ii) or (iii), we build a dynamic planar graph and use a line sweep procedure to extract shortest tours to all portals on the last polygon.
Inside a dense batch, the number of terminals can be quadratic, so (i) can no longer be handled efficiently even though the structural insight remains valid. To overcome this barrier, we partition the plane into rectangles with a low stabbing number, which effectively summarizes the geometry. This way, we obtain only (instead of ) points worth considering in the dynamic program, which we call hubs. Since the number of polygons is small in a dense batch, this already implies a subquadratic-time dynamic program. However, a hub might not lie on the boundary of any polygon, so we have to deal with the intricate problem of converting -values on portals to -values on hubs, and vice versa. We apply two line sweeps based on dynamic planar graphs, one before and one after the dynamic program, to convert between the two worlds.
4.2 Processing sparse batches
Theorem 15.
Let be a sparse batch. Given for all , we can compute for all in time .
We devote the section to proving Theorem 15. Throughout we fix a sparse batch . We define the terminals of as . Note that . Since a sparse batch has complexity , the number of terminals is .
Lemma 16.
Let . Among all shortest tours visiting , there is a tour that satisfies one of the following properties:
-
1.
it visits ;
-
2.
it visits and stays on a horizontal line afterwards until it reaches ;
-
3.
it visits and stays on a vertical line afterwards until it reaches .
Proof.
Let be a shortest tour visiting given by Corollary 11. We claim that is the tour we are looking for.
To this end, define as in Corollary 11. First suppose that none of is a vertex. If is on a horizontal edge (thus not on a vertical edge), then Corollary 11 guarantees that and is on a horizontal edge as well. Propagating the argument in reverse order of time, we conclude that , so satisfies property 3. In the symmetric case that is on a vertical edge, we conclude that satisfies property 2.
Next suppose that some of are vertices. We split the sequence at these vertices into subsequences. Consider any subsequence but the first one. It must start from a vertex, say , and does not contain any other vertex. So either all points in it share the same -coordinate , or all share the same -coordinate . Hence all are terminals. For the first subsequence, we can make the same argument from where it ends. We have thus shown that for all , hence satisfies property 1.
For index and point , let be the minimum length among all tours that visit . Let be the minimum length among all tours that visit and stay horizontal after . Let be defined similarly to but now the tour must stay vertical after . Lemma 16 states that , so we compute the three values separately.
Type-1 tours.
For and , we have the recursive formula
This leads to a straightforward dynamic program: For , build a Voronoi diagram over all using as additive weights, then let for all . (In the last iteration we do so for all .)
Let us analyze the running time of iteration . Building the Voronoi diagram takes time . Querying the Voronoi diagram takes time in total. (For the last iteration querying takes time , which is because the delimiter has complexity .) Recall that by sparsity, the time complexity over all iterations is .
Type-2/3 tours.
These two types are symmetric, so we focus on type 2. We sort in increasing order and cut it into contiguous groups of size each.
Fix an arbitrary group . We sweep a horizontal line bottom up. At each sweep step we aim to compute for all . To this end we build a weighted planar digraph as follows (see Figure 4 for an illustration).
-
The node set consists of multiple layers , where
The nodes in each layer are arranged on a line in the natural order. A node is active if is a portal.
-
For every pair of neighboring nodes in the same layer, we add an edge of weight .
-
For every active node and its copy , we add an edge of weight 0.
-
For every , we add an edge . The weight is if is a portal, and otherwise.
-
Finally, we specify as the facilities.
It is clear from the construction that is planar. Note that , and by sparsity. So the number of nodes is bounded by . Moreover, we have for all . In other words, the -values can be retrieved by querying the corresponding nodes in the graph.
Observe that changes marginally when we sweep for one step: The set of nodes do not change, and at most two inter-layer edges are inserted/removed due to activation/deactivation of nodes. The facilities change completely, but the size is bounded by .
Applying the data structure from Theorem 12, we get the following running time:
-
Initialization takes time ;
-
In each sweep step, it takes time to update the graph, and time to query the distances to portals.
Finally, we sum over all groups . There are groups, thus the same number of initializations. Over all groups there are sweep steps. So the total time of handling type-2 tours in this batch is
Summary.
Having computed , we can compute for all . Correctness is guaranteed by Lemma 16. This completes the proof of Theorem 15.
4.3 Processing dense batches
Theorem 17.
Let be a dense batch. Given for all , we can compute for all in time , where .
We devote the section to proving Theorem 17. Throughout we fix a dense batch , which by definition satisfies . We also fix a rectangle partition from Lemma 13. Property (i) in Lemma 13 implies that for any polygon and rectangle , the intersection is either a collection of vertical stripes, a collection of horizontal stripes, or empty.111Technically, and might intersect only on the boundary of . Nevertheless, this corner case does not affect our arguments. Our algorithm still works by considering the adjacent rectangle for which is indeed either a collection of vertical stripes or a collection of horizontal stripes. If it is non-empty, we say that is vertical or horizontal in , respectively.
A hub is a point that appears on the boundary of some rectangle. Equivalently, every hub is on the intersection of some vertical/horizontal line through the polygon vertices and some rectangle boundary. Since every line may generate at most hubs by property (ii) in Lemma 13, and since there are lines in total, we have the following:
Observation 18.
The number of hubs is .
Before we continue, we introduce a canonical decomposition of a tour into phases. Assume that tour visits in sequence, where is the first point in visited by . Let be the sequence of hubs visited by . A subtour between consecutive hubs is called a progression phase if it contains some point where (generally it may contain a sequence of points ). The subtours sandwiched between progression phases are called teleportation phases. See Figure 5 for an example.
Lemma 19.
Among all shortest tours that visit in sequence, there is a tour such that every progression phase is confined within a rectangle of the decomposition.
Proof.
We take a shortest tour that conforms to Corollary 11. Recall that snaps to , its intersection points with the rectangle boundaries are hubs. Recall that every progression phase of is a subtour between consecutive hubs, so it must be confined within a rectangle.
Zooming into a progression phase, we show that vertical and horizontal movements are in a sense independent.
Lemma 20.
Let be a rectangle from the decomposition. Consider a shortest tour and its subtour inside . Suppose that starts at hub , visits in sequence, and ends at hub . Let be the indices corresponding to horizontal polygons in , and be the indices corresponding to vertical polygons in . Then the vertical movements of , all combined, is a shortest vertical tour that visits in . Similarly, the horizontal movements of , all combined, is a shortest horizontal tour that visits in .
Proof.
We prove the statement for vertical movements; the proof for horizontal movements is symmetric. Assume towards contradiction that there is a shorter vertical tour that visits in . We replace the vertical movement of that reaches a polygon by the movement of that reaches , without changing the order of the movements. The resulting tour starts at hub , visits in sequence, ends at hub and is shorter, contradicting the optimality of .
Our algorithm mirrors the alternation between progression and teleportation phases: In a progression phase we walk inside a rectangle and visit a sequence of new polygon(s), while in a teleportation phase we may jump far in space but do not visit any new polygon. The algorithm can be outlined as follows:
-
We use the known values on portals of to initialize on hubs.
-
We run a dynamic program that iterates over . In each iteration we compute by implementing one alternation of progression and teleportation phases.
-
In the end, all hubs receive the correct values. We project them back to values on portals of , thereby achieving the goal of the batch.
We will now elaborate on the algorithm.
Initialization.
For initialization, we want to derive values on hubs from the already computed values on . We use the same line-sweep procedure as we did for type-2 and 3 tours in sparse batches. Namely, we sweep a global line and maintain a dynamic planar graph . The graph is unchanged, so the time analysis for updating edges/facilities remains valid. On the other hand, the queries are slightly different: For every hub and every index , we initialize , where is the closest portal on to the left of , and is the closest portal on to the right of . Hence, for every sweep step we make queries. Summing over sweep steps, the total query time is .
Altogether, the initialization costs time .
Dynamic program.
For each , rectangle and hub , we define as the minimum length among all tours that visit and whose final leg is a progression phase in . The next two lemmas relate and .
Lemma 21.
Fix . Given for all rectangles and hubs , we can compute for all hubs in time .
Proof.
Recall that is the minimum length of a tour that visits . Note that
The direction is clear since the right hand side always composes a tour that visits in sequence. For the direction, consider a tour defining . If its last leg was a progression phase in some , then by definition . Else, its last leg was a teleportation phase from some hub , prior to which was a progression phase in some . So .
To compute it efficiently, we build a Voronoi diagram on hubs, with each hub additively weighted by . Then for each hub , we compute . Correctness follows directly from the recursion above, so it remains to analyze time complexity. The Voronoi diagram has sites (hubs) by Observation 18. Computing the additive weight of each site takes time , so the construction of the diagram takes time . Every hub gives rise to one query into the diagram, which takes time . So the total query time amounts to .
Lemma 22.
Fix and . Given for all hubs , we can compute for all hubs in time , where is the number of hubs on .
Proof.
Write if and each of intersects . In this case, we can partition based on whether a polygon is vertical or horizontal in . Let be the length of the shortest horizontal tour that visits in ; let be the length of the shortest vertical tour that visits in . We claim that
The direction is clear. For the direction, we consider a shortest tour that defines . Its final leg is a progression phase in that visits a non-empty sequence of polygons where and . This part of the tour may contain horizontal and vertical movements, and by Lemma 20 the two movements have length and , respectively. Before this, the tour must have visited , so it has length by definition.
We will now compute the recursion efficiently. For each edge , we define
Clearly . So it remains to compute for each .
By symmetry we focus on the case that is the left edge. Since is a fixed value for all hubs , we can factor out the horizontal cost and write
From now on we fix . We compute for all by running Dijkstra’s algorithm on a layered graph. Specifically, let be the indices of the vertical polygons in . For each we define a layer . We also introduce a source layer as well as a sink layer that contains the -coordinates of hubs on . The edges are defined as follows:
-
We arrange the nodes in each layer on a real line, and add an edge between every pair of adjacent nodes. The edge weight is the difference of their -coordinates.
-
For and every , we find the smallest index such that does not cover . (We set if no such index exists.) Then we add an edge from to
-
–
the closest node to the left of ; and
-
–
the closest node to the right of .
The edge weights are both .
-
–
By construction, a shortest tour from to in the graph corresponds to a shortest horizontal tour that visits in . So to compute for all hubs , it suffices to run Dijkstra’s algorithm from and read off the distances to all . Note that the number of nodes is bounded by , and the number of edges is linear in the number of nodes. Hence Dijkstra’s algorithm runs in time .
In a similar fashion we compute for all . This time, let collect the indices of the horizontal polygons in . For each we define a layer . We introduce a source node and two more layers . The layer contains the -coordinates of hubs on . The layer contains the -coordinates of all hubs on . The edges are defined as follows:
-
We add an edge from the source to every node with weight .
-
We arrange the nodes in each layer on a real line, and add an edge between every pair of adjacent nodes. The edge weight is the difference of their -coordinates.
-
For and every , we find the smallest index such that does not cover . (We set if no such index exists.) Then we add an edge from to
-
–
the closest node above ; and
-
–
the closest node below .
The edge weights are both .
-
–
Then we run Dijkstra’s algorithm from and read off the distances to all . The running time is again .
After we have computed the two terms, we add them for each . We iterate the procedure for every and thereby obtain , from which we compute . Since there are at most iterations, the total running time is as claimed.
Corollary 23.
Fix . Given for all hubs , we can compute for all rectangles and hubs in time .
Proof.
We apply Corollary 23 for each rectangle . Since each hub appears on at most four rectangles, the sum over all ’s is bounded by four times the number of hubs, which is .
Now we can assemble the dynamic program. For , we apply Corollary 23 to compute from , then we apply Lemma 21 to compute from . Hence, each iteration corresponds to an alternation of progression and teleportation phases. When the last iteration finishes, we obtain for all hubs .
Since the number of iterations is , the time complexity is bounded by .
Projection.
As the final step, we project the computed -values on hubs to -values on portals. Not surprisingly, we apply yet another line sweep, but the details are quite different from initialization.
Let . We sort in increasing order and break it into contiguous groups of size each. Now fix an arbitrary group . We sweep a horizontal line bottom up. Since each hits hubs, there are at most relevant hubs for the group. We collect the -coordinates of these hubs into a set .
For each line , we build a weighted planar digraph as follows:
-
The node set consists of multiple layers , where
The nodes in each layer are arranged on a line in the natural order. A node is active if is a portal.
-
For every pair of neighboring nodes in the same layer, we add an edge of weight .
-
For every active node and its copy , we add an edge of weight 0.
-
For every , we add an edge . The weight is if is a hub, and otherwise.
-
Finally, we specify as the facilities.
See Figure 6 for an illustration. Clearly the graph is planar. Since the complexity of this batch is at most , and , we can bound and .
When we sweep for one step, the graph changes only marginally. The set of nodes do not change, and at most two edges are inserted/removed due to activation/deactivation of nodes. The facilities change completely. To retrieve for every , we simply query the distance from to . The data structure in Theorem 12 takes time at initialization. For each sweep step, it takes time to update the graph and facilities, and time to query the distance to portals.
Finally, we sum over all groups . There are groups, thus the same number of initializations. Over all groups there are sweep steps. So the total time is
Summary.
Theorem 17 follows by chaining the initialization, dynamic program and projection.
4.4 Wrapping up the proofs of Theorems 3 and 4
Having shown our batching strategy and the way both sparse and dense batches are handled, we are now ready to prove our main result.
Theorem 3 (Main theorem). [Restated, see original statement.]
Orthogonal Polygon Touring for step-disjoint orthogonal polygons can be solved in time.
Proof.
We first compute a decomposition into sparse and dense batches by Lemma 14, which takes time . If the first batch is sparse we can set for all portals . Because the batch is sparse there are at most of portals on . If the first batch is dense we alter its initialization procedure slightly: We use a single source node instead of a source layer in the graph , and all edges incident to the source have weight zero; during the line sweep we do not update the facilities. The time bound remains valid. Then we chain Theorems 15 and 17 to process the batches in order. Each batch requires time where
If the last batch is sparse we return the minimum of over all . This gives the shortest tour length by Corollary 11. Since the batch is sparse, the time is bounded by . If the last batch is dense we alter the projection procedure slightly. Instead of making a layer with portals in the graph , we create a sink node and add an edge from each node in the last layer to the sink. The minimum tour length is exactly the distance from the source layer to the sink. The time bound remains valid. If we are interested in reconstructing the actual tour, we can use standard backtracking in the dynamic program.
We choose parameters , thus . Since there are at most batches, the entire algorithm runs in time .
5 Touring step-disjoint ortho-convex polygons
In this section we study step-disjoint ortho-convex polygons. A polygon is ortho-convex if is a (possibly empty) line segment for every horizontal and vertical line . We show the following theorem.
Theorem 5. [Restated, see original statement.]
Orthogonal Polygon Touring can be solved in time for step-disjoint ortho-convex polygons.
Our algorithm iterates over . In iteration , the goal is to compute for every edge the restriction of on . After all iterations, we simply output the minimum of over all edges and portals . The correctness is guaranteed by Corollary 11.
Here is the challenge: In the worst case the total complexity of over all is , so we cannot explicitly compute them all. We bypass the issue by representing them in some (interrelated) data structures which avoid explicit evaluation on too many points.
In Section 5.1, we formalize the interface and guarantee of the data structure. Then in Section 5.2, we explain how to implement the algorithm efficiently by applying the data structure as a blackbox. Finally, the full version of this paper includes an implementation of the data structure itself.
5.1 Dynamic mountain ranges
We call a continuous, piecewise linear function a mountain range if every piece has slope , or . Its complexity is the number of pieces it contains. A dynamic mountain range is a mountain range that is initially zero everywhere and undergoes the following updates:
-
: restrict the domain to .
-
: add to pointwise.
-
: given and , replace by where
-
: denote the domain of by . Given another mountain range over domain such that , replace by where
It also supports the query operation : given any in the domain, report .
Lemma 24 ().
There is a fully-persistent data structure that maintains a dynamic mountain range in amortized time per operation.
As a remark, persistence is needed in our application because we sometimes want to make parallel updates to the same mountain range and keep all the results.
5.2 The algorithm
The notion of (dynamic) mountain ranges is motivated by the following consideration. Corollary 11 implies that for each the function is a mountain range whose pieces meet at portals; moreover, due to ortho-convexity. Note that in the worst case can be , so we cannot afford to represent all of them explicitly. The trick is to break down these long mountain ranges into fragments that are interrelated by the shift/relax operations. In this way, we only need to represent a small subset of fragments by the dynamic mountain range data structure and infer the others when requested.
More specifically, our algorithm initializes a dynamic mountain range for every edge , using Lemma 24. Now focus on iteration . We inductively assume that the previous iteration has computed for all edges . We call a terminal if . Note that a terminal is a portal, but not vice versa. We split every edge of at terminals, resulting in fragments. There are at most terminals (and thus fragments) because each vertical/horizontal line hits the boundary of an ortho-convex polygon at most twice. It is straightforward to obtain for all fragments using restrict. Based on these dynamic mountain ranges, the next two lemmas allow us to compute for all fragments efficiently. Finally, we can piece together for all edges using join, and finish the goal of iteration .
Lemma 25.
Given dynamic mountain ranges for all fragments , we can compute for all terminals in time .
Proof.
We start with a structural observation. Let be a terminal lying on the boundary of . Let be the point in closest to with (if it exists), and let be the point in closest to with (if it exists). Note that they are uniquely defined since is ortho-convex. Let be the set of vertices in . We claim that .
Indeed, note that due to step-disjointness. Since is a portal and share a coordinate with , both points are portals. Now consider a shortest tour that ends at . By Corollary 11, we may assume that the tour visits either a vertex of or or . On the other hand, the concatenation of a tour realizing and the tour visits in order for any point . Therefore, the claim holds.
As preprocessing, we compute for all using evaluate, and then construct the additively weighted Voronoi diagram of where each point has weight . This takes time .
After the preprocessing, we are ready to compute for each terminal . To this end, we query the Voronoi diagram to obtain . We compute the two terminals (as defined before) and using evaluate. Finally, we can compute using the claim above. Since the computation takes time for each terminal by Lemma 24, and there are terminals on , the overall running time is .
Lemma 26.
Given dynamic mountain ranges for all fragments , and for all terminals , we can compute for any fragment in time .
Proof.
We show how to do this for a horizontal fragment of ; the vertical fragments can be handled symmetrically. Let terminals be the left and right ends of . Let be the horizontal fragment in closest to such that . For any point , we claim that
To see this, observe that there are three possibilities of the last visited point to reach by Corollary 11. For the first case that , since is ortho-convex, all points in with -coordinate must appear on the same side of . Hence , or in other words . For the second case that , since are disjoint, . In particular, the tour goes through or . For the third case that is a vertex, by definition of fragments, thus the tour goes through or . Therefore, the claim holds.
To compute , we first compute the closest horizontal fragment with . The first term in the claim can be obtained by . The second term is a linear function in with slope , namely . Similarly, the third term is a linear function in with slope , namely . So the minimum can be computed by calling and then . All the operations cost time by Lemma 24.
Chaining Lemmas 25 and 26, the description of iteration is complete. Since each iteration takes time, overall we need time. In the end, we return , which is correct by Corollary 11. Since by ortho-convexity, we can find the minimum in time. This concludes the proof of Theorem 5.
References
- [1] Antonios Antoniadis, Mark de Berg, Sándor Kisfaludi-Bak, and Antonis Skarlatos. Computing smallest convex intersecting polygons. Journal of Computational Geometry, 16(1):167–202, 2025. doi:10.20382/jocg.v16i1a6.
- [2] Charles Joseph Argue, Anupam Gupta, Ziye Tang, and Guru Guruganesh. Chasing convex bodies with linear competitive ratio. Journal of the ACM, 68(5):32:1–32:10, 2021. doi:10.1145/3450349.
- [3] Nikhil Bansal, Martin Böhm, Marek Eliáš, Grigorios Koumoutsos, and Seeun William Umboh. Nested convex bodies are chaseable. Algorithmica, 82(6):1640–1653, 2020. doi:10.1007/s00453-019-00661-x.
- [4] Luis Barba, Jean Cardinal, John Iacono, Stefan Langerman, Aurélien Ooms, and Noam Solomon. Subquadratic algorithms for algebraic 3SUM. Discrete & Computational Geometry, 61(4):698–734, 2019. doi:10.1007/s00454-018-0040-y.
- [5] Sergei Bespamyatnikh. An algorithm for the zoo-keeper’s problem. Computational Geometry, 24(2):63–74, 2003. doi:10.1016/S0925-7721(02)00092-5.
- [6] Karl Bringmann. Why walking the dog takes time: Fréchet distance has no strongly subquadratic algorithms unless SETH fails. In 2014 IEEE 55th Annual Symposium on Foundations of Computer Science (FOCS), pages 661–670. IEEE Computer Society, 2014. doi:10.1109/FOCS.2014.76.
- [7] Karl Bringmann. Fine-grained complexity theory (tutorial). In Rolf Niedermeier and Christophe Paul, editors, 36th International Symposium on Theoretical Aspects of Computer Science (STACS 2019), volume 126 of LIPIcs, pages 4:1–4:7. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2019. doi:10.4230/LIPIcs.STACS.2019.4.
- [8] Karl Bringmann, Sándor Kisfaludi-Bak, Marvin Künnemann, Dániel Marx, and André Nusser. Dynamic time warping under translation: Approximation guided by space-filling curves. Journal of Computational Geometry, 14(2):83–107, 2023. doi:10.20382/jocg.v14i2a6.
- [9] Karl Bringmann, Sándor Kisfaludi-Bak, Marvin Künnemann, André Nusser, and Zahra Parsaeian. Towards sub-quadratic diameter computation in geometric intersection graphs. In 38th International Symposium on Computational Geometry (SoCG 2022), volume 224 of Leibniz International Proceedings in Informatics (LIPIcs), pages 21:1–21:16. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2022. doi:10.4230/LIPIcs.SoCG.2022.21.
- [10] Karl Bringmann and Marvin Künnemann. Quadratic conditional lower bounds for string problems and dynamic time warping. In 2015 IEEE 56th Annual Symposium on Foundations of Computer Science (FOCS), pages 79–97. IEEE Computer Society, 2015. doi:10.1109/FOCS.2015.15.
- [11] Karl Bringmann and André Nusser. Translating Hausdorff is hard: Fine-grained lower bounds for Hausdorff distance under translation. Journal of Computational Geometry, 13(2):30–50, 2022. doi:10.20382/jocg.v13i2a3.
- [12] Karl Bringmann, Frank Staals, Karol Węgrzycki, and Geert van Wordragen. Fine-grained complexity of Earth Mover’s Distance under translation. In 40th International Symposium on Computational Geometry (SoCG 2024), volume 293 of Leibniz International Proceedings in Informatics (LIPIcs), pages 25:1–25:17. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2024. doi:10.4230/LIPIcs.SoCG.2024.25.
- [13] Sébastien Bubeck, Yin Tat Lee, Yuanzhi Li, and Mark Sellke. Competitively chasing convex bodies. SIAM Journal on Computing, 52(2):STOC19–339–STOC19–353, 2023. doi:10.1137/20M1312332.
- [14] Timothy M. Chan, Hsien-Chih Chang, Jie Gao, Sándor Kisfaludi-Bak, Hung Le, and Da Wei Zheng. Truly subquadratic time algorithms for diameter and related problems in graphs of bounded VC-dimension, 2025. To appear in proceedings of FOCS 2025. doi:10.48550/arXiv.2510.16346.
- [15] Timothy M. Chan, Qizheng He, and Yuancheng Yu. On the fine-grained complexity of small-size geometric set cover and discrete -center for small . In 50th International Colloquium on Automata, Languages, and Programming (ICALP 2023), volume 261 of Leibniz International Proceedings in Informatics (LIPIcs), pages 34:1–34:19. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2023. doi:10.4230/LIPIcs.ICALP.2023.34.
- [16] Panagiotis Charalampopoulos and Adam Karczmarz. Single-source shortest paths and strong connectivity in dynamic planar graphs. Journal of Computer and System Sciences, 124:97–111, 2022. doi:10.1016/J.JCSS.2021.09.008.
- [17] Mark de Berg, Otfried Cheong, Marc J. van Kreveld, and Mark H. Overmars. Computational Geometry: Algorithms and Applications. Springer, 3rd edition, 2008. doi:10.1007/978-3-540-77974-2.
- [18] Mark de Berg and Marc van Kreveld. Rectilinear decompositions with low stabbing number. Information processing letters, 52(4):215–221, 1994. doi:10.1016/0020-0190(94)90129-5.
- [19] José Miguel Díaz-Báñez, Matias Korman, Pablo Pérez-Lantero, Alexander Pilz, Carlos Seara, and Rodrigo I. Silveira. New results on stabbing segments with a polygon. Computational Geometry, 48(1):14–29, 2015. doi:10.1016/j.comgeo.2014.06.002.
- [20] Moshe Dror, Alon Efrat, Anna Lubiw, and Joseph S. B. Mitchell. Touring a sequence of polygons. In Proceedings of the Thirty-Fifth Annual ACM Symposium on Theory of Computing (STOC 2003), STOC ’03, pages 473–482, 2003. doi:10.1145/780542.780612.
- [21] Jan Faigl, Vojtěch Vonásek, and Libor Přeučil. A multi-goal path planning for goal regions in the polygonal domain. In Proceedings of the 5th European Conference on Mobile Robots (ECMR 2011), pages 171–176, 2011. URL: https://comrob.fel.cvut.cz/papers/ecmr11mtp.pdf.
- [22] Jan Faigl, Vojtěch Vonásek, and Libor Přeučil. Visiting convex regions in a polygonal map. Robotics and Autonomous Systems, 61(10):1070–1083, 2013. doi:10.1016/j.robot.2012.08.013.
- [23] Joel Friedman and Nathan Linial. On convex body chasing. Discrete & Computational Geometry, 9(3):293–321, 1993. doi:10.1007/BF02189324.
- [24] Anka Gajentaan and Mark H. Overmars. On a class of problems in computational geometry. Computational Geometry: Theory and Applications, 5(3):165–185, 1995. doi:10.1016/0925-7721(95)00022-2.
- [25] Shu Ishida, Marc Rigter, and Nick Hawes. Robot path planning for multiple target regions. In 2019 European Conference on Mobile Robots (ECMR), pages 1–6. IEEE, 2019. doi:10.1109/ECMR.2019.8870971.
- [26] Rolf Klein. Concrete and abstract Voronoi diagrams. Springer, 1989. doi:10.1007/3-540-52055-4.
- [27] Miroslav Kulich, Jan Vidašič, and Jan Mikula. On the Travelling Salesman Problem with Neighborhoods in a Polygonal World. In José M. Cascalho, Mohammad Osman Tokhi, Manuel F. Silva, Armando Mendes, Khaled Goher, and Matthias Funk, editors, Robotics in Natural Settings, volume 530 of Lecture Notes in Networks and Systems, pages 334–345. Springer, Cham, 2023. doi:10.1007/978-3-031-15226-9_32.
- [28] Maarten Löffler and Marc van Kreveld. Largest and smallest convex hulls for imprecise points. Algorithmica, 56(2):235–269, 2010. doi:10.1007/s00453-008-9174-2.
- [29] Joseph S. B. Mitchell. Approximating watchman routes. In Proceedings of the Twenty-Fourth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2013), pages 844–855. SIAM, 2013. doi:10.1137/1.9781611973105.60.
- [30] Joseph S. B. Mitchell and Micha Sharir. New results on shortest paths in three dimensions. In Proceedings of the Twentieth Annual ACM Symposium on Computational Geometry, SCG ’04, pages 124–133, New York, NY, USA, 2004. Association for Computing Machinery. doi:10.1145/997817.997839.
- [31] Bengt J. Nilsson and Eli Packer. Approximation algorithms for the two-watchman route in a simple polygon. Algorithmica, 86(9):2845–2884, 2024. doi:10.1007/s00453-024-01245-0.
- [32] Justo Puerto and Carlos Valverde. The hampered travelling salesman problem with neighbourhoods. Computers & Industrial Engineering, 188:109889, 2024. doi:10.1016/j.cie.2024.109889.
- [33] Mark Sellke. Chasing convex bodies optimally. In Proceedings of the Thirty-First Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2020), pages 1509–1518. SIAM, 2020. doi:10.1137/1.9781611975994.92.
- [34] Mark Sellke. Chasing convex bodies optimally. In Geometric Aspects of Functional Analysis: Israel Seminar (GAFA) 2020-2022, pages 313–335. Springer, 2023. doi:10.1007/978-3-031-26300-2_12.
- [35] Xuehou Tan and Tomio Hirata. Finding shortest safari routes in simple polygons. Information Processing Letters, 87(4):179–186, 2003. doi:10.1016/S0020-0190(03)00284-9.
- [36] Christophe Weibel and Linqiao Zhang. Minimum perimeter convex hull of imprecise points in convex regions. In Proceedings of the Twenty-Seventh Annual Symposium on Computational Geometry (SoCG 2011), pages 293–294, New York, NY, USA, 2011. Association for Computing Machinery. doi:10.1145/1998196.1998243.
