This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Largest and Smallest Area Triangles on Imprecise Points111A preliminary version of this paper was presented at EuroCG2017.

Vahideh Keikha va.keikha@aut.ac.ir Maarten Löffler m.loffler@uu.nl Ali Mohades mohades@aut.ac.ir Department of Mathematics and Computer Science, Amirkabir University of Technology, Tehran, Iran Department of Information and Computing Sciences, Utrecht University, Utrecht, The Netherlands
Abstract

Assume we are given a set of parallel line segments in the plane, and we wish to place a point on each line segment such that the resulting point set maximizes or minimizes the area of the largest or smallest triangle in the set. We analyze the complexity of the four resulting computational problems, and we show that three of them admit polynomial-time algorithms, while the fourth is NP-hard. Specifically, we show that maximizing the largest triangle can be done in O(n2)O(n^{2}) time (or in O(nlogn)O(n\log n) time for unit segments); minimizing the largest triangle can be done in O(n2logn)O(n^{2}\log n) time; maximizing the smallest triangle is NP-hard; but minimizing the smallest triangle can be done in O(n2)O(n^{2}) time. We also discuss to what extent our results can be generalized to polygons with k>3k>3 sides.

keywords:
Computational Geometry; Imprecise points; Maximum area triangle; Minimum area triangle, kk-gon.
journal: Theoretical Computer Science

1 Introduction

In this paper we study two classical problems in computational geometry in an imprecise context. Given a set PP of nn points in the plane, let the largest-area triangle Tmax(P)T_{max}(P) and the smallest-area triangle Tmin(P)T_{min}(P) be defined by three points of PP that form the triangle with the largest or smallest area, respectively. When PP is uncertain, the areas of TmaxT_{max} and TminT_{min} are also uncertain. Our aim is to compute tight bounds on these areas given bounds on the locations of the points in PP. As a natural extension, we also study all the above questions for kk-gons instead of triangles.

Motivation

Data uncertainty is paramount in present-day geometric computation. Many different ways to model locational uncertainty have been introduced over the past decades, and can be mainly categorized by whether the uncertainty is discrete or continuous [26], and whether we assume the uncertainty is governed by an underlying probability distribution or not [45, 1]. In this paper, we assume the uncertainty in each point is captured by a continuous set of possible locations; we call such a set an imprecise point. This model can be traced back to early attempts to create robust geometric algorithms in the 80s [42], and has attracted considerable attention since [4, 27, 31, 32, 37, 44]. Nagai and Tokura [38] first introduced the idea of analyzing the computational complexity of computing tight error bounds on an output value based on a set of imprecise points, and Löffler and van Kreveld formalized this notion to calculate bounds on the area of the convex hull [33].

The special case of using vertical line segments as uncertainty regions has received special attention in the literature. First, it is a natural first step towards general 2- or 3-dimensional uncertainty regions. Many geometric problems where first studied on segments and later generalized to squares or disks, and this is also true for imprecision [11, 12, 33]. However, 1-dimensional uncertainty already occurs naturally in several application areas. For instance laser scanners output points on a known line but the distance between the scanner and the scanned object has an error; this is especially significant when the distance is large, such as in LIDAR (Light Detection and Ranging) data [46] leading to distinct geometric challenges [24].

The same geometric problems also show up in, and are sometimes studied from the point of view of, different applications. In imaging, the problem of whether a set of vertical (or horizontal) scan lines are stabbed by a geometric object has been studied extensively several decades ago. When the object is to test whether the set of segments may be stabbed by a convex polygon [23], this is equivalent to asking whether a set of imprecise points, modeled as vertical segments, could possibly be in convex position [5, 30]. Computing the largest inscribed/inscribing polygons plays an important role in heuristic motion planning [22]; robots increasingly operate in uncertain environments.

Related work

There is a large body of research on the existence and computation of empty kk-gons in a set of points [7, 39]; the best known time for finding such a kk-gon for arbitrary kk is O(T(n))O(T(n)), where T(n)T(n) is the number of empty triangles in the set of points—we know this value can vary from Ω(n2)\Omega(n^{2}) to O(n3)O(n^{3}) [14].

There has been some work which focuses on constant values of kk. The special case k=2k=2 is the classical problem of finding the diameter of a given set of points. Shamos presented an algorithm for the diameter problem which can find the diameter in linear time, if the convex hull of the points is given [43].

Dobkin and Snyder [15] claimed a linear-time algorithm for finding the largest-area triangle inscribed in a convex polygon. Their claim has recently been shown to be incorrect by Keikha et al. [29]; see also [25, 28]. There exists, however, another linear-time algorithm for this problem [9], originally intended to solve the parallel version of the problem.

Boyce et al. [8] presented a dynamic programming algorithm for the problem of finding the largest possible area and perimeter convex kk-gon on a given set PP of nn points in O(knlogn+nlog2n)O(kn\log n+n\log^{2}n) time and linear space, that Aggarwal et al. [3] improved to O(kn+nlogn)O(kn+n\log n) by using a matrix search method. Both algorithms still rely on the correctness of the Dobkin and Snyder algorithm for triangles [15], and hence, also fail by the analysis in [29]. There is also an Ω(nlogn)\Omega(n\log n) time lower bound for finding the maximum possible area and perimeter inscribed kk-gon [16].

The problem of finding the smallest possible area and perimeter kk-gon has received considerable attention as well. Dobkin et al. presented an O(k2nlogn+k5n)O(k^{2}n\log n+k^{5}n) time algorithm [13] for finding minimum perimeter kk-gons. Their algorithm was improved upon by Aggarwal et al. to O(nlogn+k4n)O(n\log n+k^{4}n) time [2]. Eppstein et al. [40] studied three problems: finding the smallest possible kk-gon, finding the smallest empty kk-gon, and finding the smallest possible convex polygon on exactly kk points, where the smallest means the smallest possible area or perimeter. They presented a dynamic programming approach for these problems in O(kn3)O(kn^{3}) time and O(kn2)O(kn^{2}) space, that can also solve the maximization version of the problem as well as some other related problems. Afterwards, Eppstein [21] presented an algorithm that runs in O(n2logn)O(n^{2}\log n) time and O(nlogn)O(n\log n) space for constant values of kk.

Finally, we mention a large body of related research, such as stabbing problems or convex transversal problems, and proximity problems. In the two first aforementioned areas, the general problem is that we are given a set of geometric input objects and we want to find another object which intersects with all or most of the given input objects, such that some measure on that object is optimized [5, 6, 12, 23, 30, 33]. Also the input of such problems can be considered as a set of colored points, e.g., Daescu et al. [10] studied the following related problem: we are given a set of nn points with k<nk<n colors, and we want to find the convex polygon with the smallest possible perimeter such that the polygon covers at least one of the given colors. They presented an 2\sqrt{2}- approximation algorithm with O(n2)O(n^{2}) time for this problem, and proved that this problem is NP-hard if kk is a part of the input.

Similarly, there are many studies in proximity problems, where the general question is the following: given a set of nn points in the plane P={p1,,pn}P=\{p_{1},...,p_{n}\}, for each point pip_{i} find a pair pj,pkp_{j},p_{k}, where ijki\neq j\neq k, such that a defined measure α\alpha on the triplet pi,pj,pkp_{i},p_{j},p_{k} is maximized or minimized. In  [35] the authors studied the problem of computing the maximum value of α\alpha, where α\alpha defined by the distance of each point piPp_{i}\in P from a segment pjpkp_{j}p_{k}, where the distance from a point pip_{i} to a segment is the minimum distance from pip_{i} to this segment. Their algorithm runs in O(nh+nlogn)O(nh+n\log n), where hh is the number of vertices on the convex hull of PP. Their running time improved to O(nlogn)O(n\log n)  [17]. Recently the problem of computing all the largest/smallest area/perimeter triangles with a vertex at piPp_{i}\in P for i=1,,ni=1,...,n was studied in [36] (see also the references there), where the presented running times for the largest/smallest area triangle problems were quadratic in the worst case (we also achieve similar running times with uncertain input).

It is natural to ask how uncertainty of data affects the solutions of those problems. Motivated by this, we are interested in computing some lower bound and upper bound on the area of the smallest and largest kk-gons with vertices on a given set of imprecise points modeled as parallel line segments.

In the imprecise context, Löffler and van Kreveld studied the diameter problem (k=2k=2) on a given set of imprecise points modeled as squares or as disks, where the problem is choosing a point in each square or disk such that the diameter of the resulting point set is as large or as small as possible. They presented an O(nlogn)O(n\log n) time algorithm for finding the maximum/minimum possible diameter on a given set of squares, and presented an O(nlogn)O(n\log n) time algorithm for the largest possible diameter, and an approximation scheme with O(n3πε)O(n^{\frac{3\pi}{\sqrt{\varepsilon}}}) time for the smallest possible diameter on a given set of disks.

These authors also computed some lower and upper bounds on the smallest/largest area/perimeter convex hull, smallest/largest area bounding box, smallest/largest smallest enclosing circle, smallest/largest width and closest pair, where the input was imprecise, and modeled by convex regions which include line segments, squares or disks [33, 34]. The running times of the presented algorithms on the convex hull problem vary from O(nlogn)O(n\log n) to O(n13)O(n^{13}). Their results on computing some bounds on the maximum area convex hull were later improved upon by Ju et al. [27].

Refer to caption
Figure 1: Problem definition and optimal solutions. (a) MaxMaxArea: the largest possible area triangle. (b) MinMinArea: the smallest possible area triangle, here degenerate. (c) MaxMinArea: the largest smallest-area triangle, here determined by three triangles simultaneously. (d) MinMaxArea: the smallest largest-area triangle, here determined by two triangles simultaneously.
Contribution

In this paper, we consider the problems of computing the largest-area triangle and smallest-area triangle under data imprecision. We are given a set L={l1,l2,,ln}L=\{l_{1},l_{2},\ldots,l_{n}\} of imprecise points modeled as disjoint parallel line segments, that is, every segment lil_{i} contains exactly one point pilip_{i}\in l_{i}. This gives a point set P={p1,p2,,pn}P=\{p_{1},p_{2},\ldots,p_{n}\}, and we want to find the largest-area triangle or smallest-area triangle in PP, TmaxT_{max} and TminT_{min}. But because LL is a set of imprecise points, we do not know where PP is, and the areas of these triangles could have different possible values for each instance PP. We are interested in computing a tight lower and upper bound on these values. Hence, the problem becomes to place a point on each line segment such that the resulting point set maximizes or minimizes the size of the largest or smallest possible area triangle. Therefore four different problems need to be considered (refer to Figure 1).

  • MaxMaxArea  What is the largest possible area of TmaxT_{max}?

  • MinMinArea  What is the smallest possible area of TminT_{min}?

  • MaxMinArea  What is the largest possible area of TminT_{min}?

  • MinMaxArea  What is the smallest possible area of TmaxT_{max}?

Results

We obtain the following results for triangles.

  • For a given set of equal length parallel line segments, MaxMaxArea can be solved in O(nlogn)O(n\log n) time222In a preliminary version of this paper, we claimed a faster method, which relied on the correctness of the Dobkin and Snyder algorithm for finding the largest-area inscribed triangle [15]. That paper has since been shown incorrect [29], and our present results reflect this. (Section 2.1).

  • For arbitrary length parallel line segments, MaxMaxArea can be solved in O(n2)O(n^{2}) time (Section 2.2).

  • MinMinArea can be solved in O(n2)O(n^{2}) time (Section 3).

  • MaxMinArea is NP-hard (Section 4).

  • For arbitrary length parallel line segments with fixed points as the leftmost and rightmost segments, MinMaxArea can be solved in O(nlogn)O(n\log n) time (Section 5.2).

  • For arbitrary length parallel line segments MinMaxArea can be solved in O(n2logn)O(n^{2}\log n) time (Section 5.3).

We also discuss to what extent our results can be generalized to polygons with k>3k>3 sides.333As said before, for the case k=2k=2, the problem becomes computing the smallest/largest diameter of LL which is studied in [34]. As we discuss in Section 6, not all problems are well-posed anymore, but we can ask for the possible sizes of the largest convex shape with at most kk vertices. We obtain the following results.

  • MaxMaxArea for at most kk points can be solved in O(kn3)O(kn^{3}) time (Section 6.1).

  • MinMaxArea for at most kk points can be solved in O(kn8logn)O(kn^{8}\log n) time (Section 6.2).

Refer to caption
Figure 2: C0C_{0} and C1C_{1} on a given set of line segments.
Definitions

Without loss of generality, assume the parallel segments in LL are vertical. Let Z={l1,l1+,l2,l2+,,ln,ln+}Z=\{l_{1}^{-},l_{1}^{+},l_{2}^{-},l_{2}^{+},\ldots,l_{n}^{-},l_{n}^{+}\} be the set of all endpoints of LL, where li+l_{i}^{+} denotes the upper endpoint of lil_{i}, and lil_{i}^{-} denotes the lower endpoint of lil_{i}. Let CH(Z)CH(Z) and CH(Z)\partial CH(Z) denote the convex hull and the boundary of the convex hull of ZZ, respectively. We define C0=CH(Z)C_{0}=CH(Z) as the convex hull of ZZ, and C1=CH(ZCH(C0))C_{1}=CH(Z\setminus\partial CH(C_{0})), that is C0C_{0} and C1C_{1} are the first two layers of the onion decomposition of ZZ, as shown in Figure 2. A true object is an object such that all its vertices lie on distinct line segments in LL. In particular we use the terms true triangle, true convex hull, true chord and true edge throughout the paper. Note that an optimal solution to any of our problems is always a true object.

Boyce et al. [15] defined a rooted triangle (or more generally, a rooted polygon) as a triangle with one of its vertices fixed at a given point (in a context where the rest of the vertices are to be chosen from a fixed set of candidates). Here, we define a root as a given point on a specific line segment in LL. In this case we throw out the remainder of the root’s region and try to find the other two vertices in the remaining n1n-1 regions. For a given point aa on some line segment, we denote this segment by lal_{a}. Also lll_{l} and lrl_{r} denote the leftmost and rightmost line segments, respectively.

Refer to caption
Figure 3: Three examples. In (a,b) the largest-area triangle is shown in red. The dashed polygon in (a) is the convex hull of the line segments; the dotted polygon in (b) is the largest-area convex hull possible by selecting a single point on each segment. (a) The largest-area true triangle selects its vertices from the endpoints of the line segments, but not necessarily from those on the convex hull. (b) The largest-area true convex hull (abdeabde) does not contain the maximum-area true triangle (aceace). (c) A set of one imprecise point and three fixed points, and the resulting largest-area strictly convex 4-gon. The inner angle at aa approaches π\pi. Note that any convex 4-gon must include the fixed points, so the largest area occurs as the point on the segment approaches bb.

2 MaxMaxArea problem

In this section, we will consider the following problem: given a set L={l1,,ln}L=\{l_{1},...,l_{n}\} of parallel line segments, choose a set P={p1,,pn}P=\{p_{1},...,p_{n}\} of points, where pilip_{i}\in l_{i}, such that the size of the largest-area triangle with corners at PP is as large as possible among all possible choices of PP (see Figure 1(a)). Observe that this is, in fact, equivalent to finding three points on three different elements of LL that maximize the area of the resulting triangle.444Note that a similar statement will be true for MinMinArea, but not for MaxMinArea and MinMaxArea. First we review several related previous results, then we discuss some difficulties that occur when dealing with imprecise points.

Boyce et al. [15] consider the problem of computing the largest-area kk-gon whose vertices are restricted to a given set of nn points in the plane, and prove that the optimal solution only uses points on the convex hull of the given point set (if there exist at least kk points on the convex hull). Löffler and van Kreveld [33] proved that the maximum-area convex polygon on a given set of imprecise points (modeled as line segments) always selects its vertices from the convex hull of the input set. As a result, one might lead to conjecture that the maximum-area triangle selects its vertices from the endpoints of regions on the convex hull. This is not the case, as can be seen in Figure 3(a) (notice that the number of vertices of the convex hull is not fixed). Also, unlike in the precise context, the largest-area triangle is not inscribed in the largest possible convex hull of the given set of imprecise points, as illustrated in Figure 3(b). This problem is further complicated for larger values of kk, as illustrated in Figure 3(c); even for kk=4, we cannot find the area of the maximum strictly convex kk-gon, as the angle at aa approaches π\pi and we can enlarge the area of the convex 4-gon arbitrarily. We elaborate in Section 6.

Observation 1.

Let LL be a given set of imprecise points modeled as arbitrary length parallel line segments, and let ZZ be its set of endpoints. If the largest-area triangle on ZZ is not a true triangle in LL, then the segment lLl\in L that contributes two vertices to the largest-area triangle on ZZ, does not necessarily contribute a vertex to the largest-area true triangle on LL.

Proof.

The proof is done through providing a counter-example. Consider a set of one imprecise point bdbd and three points aa, cc and ee, as illustrated in Figure 4(a). The largest-area triangle is abdabd, but the largest-area true triangle is aceace, where ee (resp. cc) is located within the (gray) apex of the wedge which is constructed by emanating two rays at dd (resp. bb) parallel to acac and abab (resp. adad and aeae). ∎

Observation 2.

Let LL be a given set of imprecise points modeled as parallel line segments. There is an optimal solution to the MaxMaxArea problem, such that all the vertices are chosen at endpoints of the line segments.

Proof.

Suppose there exist three points pp, qq and rr that form a true triangle, which has maximal area, and suppose that pp is not at an endpoint of lpl_{p}. If pp is not at an endpoint of its segment, we can consider a line \ell through pp and parallel to qr{qr}. If we sweep \ell away from qr{qr}, it will intersect lpl_{p} until it leaves lpl_{p} in a point pp^{\prime}. Clearly the triangle pqrp^{\prime}qr has larger area than pqrpqr, and pp^{\prime} can be substituted for pp to give us a larger area true triangle, and thus pqrpqr cannot be the largest-area true triangle (if \ell and lpl_{p} are parallel, we can choose either endpoints and the area is the same). ∎

Observation 3.

If at most two distinct line segments appear on C0C_{0}, there is an optimal solution to the MaxMaxArea problem, such that the two segments which appear on C0C_{0} always appear on the largest-area true triangle.

Proof.

From the previous observation we know that the largest-area true triangle selects its vertices from the endpoints of the line segments. Now we will prove that if at most two distinct segments appear on C0C_{0}, these segments always contribute to the largest-area true triangle. Suppose this is not true. Then there are two cases. First, suppose that there exist three points pp, qq and rr at the endpoints of three different segments, such that pqrpqr has maximal area, and (w.l.o.g) pp and rr, respectively, have the lowest and highest xx-coordinates among the vertices of pqrpqr, and none of the vertices of pqrpqr are selected from the vertices of C0C_{0}, as illustrated in Figure 4(b). We consider a line \ell through rr and parallel to pq{pq}. If we sweep \ell away from pq{pq}, it will intersect C0C_{0} until \ell leaves C0C_{0} at a point rr^{\prime}, such that rr^{\prime} should belong to one of the two segments that currently appeared on C0C_{0}. We also consider a line \ell^{\prime} through pp and parallel to qr{qr}. If we sweep \ell^{\prime} away from qr{qr}, it will intersect C0C_{0} until \ell^{\prime} leaves C0C_{0} at a point pp^{\prime}, and thus pp^{\prime} and rr^{\prime} can be substituted for pp and rr to give us a larger area true triangle, a contradiction.

Second suppose there exist three points pp, qq and rr that form a true triangle, has maximal area, and selects only one of its vertices, e.g., pp, from C0C_{0}. Then pp either is the leftmost or the rightmost vertex of the triangle pqrpqr. We will show that one of the other vertices of pqrpqr should also be on C0C_{0}. We consider a line \ell through rr and parallel to pq{pq}. If we sweep \ell away from pq{pq}, it will intersect C0C_{0} until \ell leaves C0C_{0} at a point rr^{\prime}, that belongs to the other segment that currently appears on C0C_{0}, and thus rr^{\prime} can be substituted for rr to give us a larger area true triangle. Contradiction. ∎

From now on, we assume more than two distinct segments appear on C0C_{0}. Because otherwise we can easily solve the problem in O(n)O(n) time; two distinct endpoints of the line segments appearing on C0C_{0} determine the base of the largest-area true triangle.

Refer to caption
Figure 4: (a) If the largest-area triangle is not a true triangle, then the segment that contributes two vertices to the largest-area triangle, does not necessarily contribute a vertex to the largest-area true triangle. (b) If at most two distinct line segments appear on C0C_{0}, the two regions which appear on C0C_{0}, always appear on the largest-area true triangle.

2.1 Equal-length parallel line segments

We show that for a set of equal-length parallel line segments, the largest-area triangle selects its vertices from the vertices on C0C_{0} and is almost always a true triangle. The only possible configuration of the line segments that makes the largest-area triangle a non-true triangle is collinearity of all the upper (or lower) endpoints, in which case the largest-area true triangle will always select one vertex at the leftmost segment and one vertex at the rightmost one. Clearly, we can test whether this is the case in O(n)O(n) time. In the following we show that if the upper endpoints are not collinear, we can directly apply any existing algorithm for computing the largest-area triangle on a point set.

Lemma 1.

Let LL be a set of equal-length parallel line segments (not all the upper endpoints collinear). The largest-area true triangle selects its vertices from the vertices on C0C_{0}.

Proof.

In observation 2 we have proved that the vertices of largest-area true triangle are selected from the endpoints of their segments.

Now we prove that the vertices of largest-area true triangle are selected from the vertices on C0C_{0}. Suppose this is false. Let abcabc be the largest possible area true triangle, such that at least one of its vertices, e.g., aa, is not located on C0C_{0}, as illustrated in Figure 5(a). Then aa would be at the endpoint of lal_{a}, but it is not on the convex hull. Also lal_{a} cannot be the leftmost or the rightmost line segment, because otherwise at least one of the endpoints must appear on C0C_{0}. First suppose aa does not have the lowest or highest xx-coordinate among the vertices of abcabc. But then either lal_{a} is located completely inside C0C_{0}, or it has an endpoint a′′a^{\prime\prime} on C0C_{0} (see Figure 5(a,b)).

We consider a line \ell through aa and parallel to bcbc. If we sweep \ell away from bcbc, \ell will intersect C0C_{0} until it leaves C0C_{0} in a vertex qq. If q{lb,lc}q\notin\{l_{b},l_{c}\}, qq can be substituted for aa to give us a larger area true triangle, a contradiction.

Now suppose q{lb,lc}q\in\{l_{b},l_{c}\}, as illustrated in Figure 5(a,b). Let bb^{\prime} and cc^{\prime} denote the other endpoints of lbl_{b} and lcl_{c}, respectively. But then there always exists another segment lpl_{p} which shares a vertex pp on C0C_{0}. Note that since the segments have equal length, lp{lb,lc}l_{p}\notin\{l_{b},l_{c}\}, (but lpl_{p} can coincide with lal_{a}). Thus pp can be substituted for aa, bb^{\prime} can be substituted for bb and cc^{\prime} can be substituted for cc to give us a larger area true triangle, a contradiction.

Now suppose (w.l.o.g) aa has the lowest xx-coordinate, as illustrated in Figure 5(c). Consider the supporting line of lal_{a}, \ell. This crosses the upper and lower hull boundary at a′′a^{\prime\prime} and aa^{\prime}, respectively. Then abcabc is interior to one half plane on \ell. Because of a convexity argument, and because aa is strictly interior to the C0C_{0}, there will be a point pp that lies in the opposite half plane from the one which contains bb and cc, such that either aa lies in the strip defined by bcbc and a line through pp parallel to bcbc, in which case pbc>abcpbc>abc, or aa does not lie in that strip and a′′bc>abca^{\prime\prime}bc>abc. Both give a contradiction.

Note that relations between triangles refer to their areas.

Lemma 2.

Let LL be a set of equal-length parallel line segments. Unless the upper (and lower) endpoints of LL are collinear, the largest-area triangle is always a true triangle.

Proof.

Suppose the lemma is false. Let lllrll+l_{l}^{-}l_{r}^{-}l_{l}^{+} be the largest-area triangle on a given set LL of imprecise points modeled as equal-length parallel line segments, and let ll{l_{l}} and lr{l_{r}} be the line segments that have the largest-area triangle constructed on them, as illustrated in Figure 5(d). There cannot be any other line segments to the left of ll{l_{l}} and to the right of lr{l_{r}}, because otherwise we can construct a larger area triangle by using one of those line segments. Thus, all the other line segments must be located between ll{l_{l}} and lr{l_{r}}. Suppose lp{l_{p}} be one of them. It is easy to observe that ll+lplr+l_{l}^{+}l_{p}^{-}l_{r}^{+} (or lllp+lrl_{l}^{-}l_{p}^{+}l_{r}^{-}) will have a larger area than lllrll+l_{l}^{-}l_{r}^{-}l_{l}^{+}, because with a fixed base length lllrl_{l}^{-}l_{r}^{-}, ll+lplr+l_{l}^{+}l_{p}^{-}l_{r}^{+} has a height longer than the length of the given input line segments, but lllrll+l_{l}^{-}l_{r}^{-}l_{l}^{+} has a height smaller than the length of the input line segments. Contradiction. ∎

Refer to caption
Figure 5: (a,b,c) The largest-area true triangle on a given set of equal-length parallel line segments selects its vertices from the vertices on C0C_{0}. (d) In a given set of equal-length parallel line segments, the largest possible area triangle almost is always a true triangle.

Recall that a rooted polygon is a polygon with one of its vertices fixed at a given point in a specific line segment.

Theorem 1.

Let LL be a set of nn imprecise points modeled as a set of disjoint parallel line segments with equal length. The solution of the problem MaxMaxArea can be found in O(nlogn)O(n\log n) time.

Proof.

We first compute C0C_{0}. From Lemma 2 we know the largest-area triangle for a given set of equal-length parallel line segments is always a true triangle. Then, we can apply the existing linear time algorithm to compute the largest-area inscribed triangle [9]. ∎

2.2 Arbitrary length parallel line segments

In this section, we consider the MaxMaxArea problem for a given set of arbitrary length parallel line segments. For simplicity we assume no two vertical line segments have the same xx-coordinates.

Refer to caption
Figure 6: (a) The largest-area true triangle selects at least two vertices from the vertices of C0C_{0}: if not, we can improve the area. (b,c) The largest-area true triangle cannot have a vertex inside C1C_{1}.
Lemma 3.

At least two vertices of the largest-area true triangle are located on C0C_{0}, and at most one of its vertices is located on C1C_{1}, and all three are on C0C1C_{0}\cup C_{1}.

Proof.

First we will prove that at least two vertices of the largest area true triangle are located on C0C_{0}. Suppose this is not true, so the largest-area true triangle can have fewer vertices on C0C_{0}.

In the beginning, we prove that it is not possible that none of the vertices of the largest-area true triangle are located on C0C_{0}. Let abcabc be the largest-area true triangle that does not select any of its vertices from C0C_{0}, and let bb and cc have the lowest and highest xx-coordinates, respectively, as illustrated in Figure 6(a). We consider a line \ell through cc (resp. bb) and parallel to ab{ab} (resp. acac). If we sweep \ell away from ab{ab} (resp. acac), it will intersect C0C_{0}, until it leaves C0C_{0} in a point cc^{\prime} (resp. bb^{\prime}), and bb^{\prime} and cc^{\prime} can be substituted for bb and cc, respectively, to give us a larger area true triangle. Contradiction.

Again let abcabc be the largest-area true triangle that selects only one of its vertices, e.g., aa, on C0C_{0}. We will show that at least one of the other vertices of abcabc must also be located on C0C_{0}. Suppose the xx-coordinate of aa is between the xx-coordinates of bb and cc (since otherwise with the same argument we had above, at least another vertex will also be located on C0C_{0}). We consider a line \ell through cc and parallel to ab{ab}. If we sweep \ell away from ab{ab}, it will intersect C0C_{0} until it leaves C0C_{0} in a point cc^{\prime}, that does not belong to the regions of lal_{a} and lbl_{b}. We can also do the same procedure for the point bb and find another point bb^{\prime}, and thus, bb^{\prime} and cc^{\prime} can be substituted for bb and cc, respectively, to give us a larger area true triangle. Contradiction. Thus, at least two vertices of the largest-area true triangle should be located on C0C_{0}.

Second we will prove that if the third vertex of the largest-area true triangle is not located on C0C_{0}, it must be located on C1C_{1}. Suppose this is false.

Let abcabc be the largest-area true triangle, and (w.l.o.g) let aa be the vertex that is not located on C0C_{0}. Suppose this is not true, that aa cannot be located interior to C1C_{1}. Notice that bb and cc must be located on C0C_{0}. We consider a line \ell through aa and parallel to bc{bc}. If we sweep \ell away from bc{bc}, it will intersect C1C_{1} until it leaves C1C_{1} in a point aa^{\prime}. If this point does not belong to lbl_{b} or lcl_{c}, we are done. Suppose alb,lca^{\prime}\in{l_{b},l_{c}}. We continue sweeping \ell until it leaves C0C_{0} in a vertex a′′a^{\prime\prime}. Suppose again that it belongs to one of lbl_{b} or lcl_{c} (since otherwise we have found a larger area true triangle and we are done). Note that we also did not find any other vertex during the sweeping \ell away from bcbc.

Suppose that a′′qa^{\prime\prime}q and cpcp are the perpendicular segments to the supporting line of abab from a′′a^{\prime\prime} and cc, respectively, as illustrated in Figure 6(b). First suppose both of the lbl_{b} and lcl_{c} are located to the left (or right) of lal_{a}. Since cc and a′′a^{\prime\prime} belong to the same segment, and from the slope of the supporting line of ba{ba} we understand that the intersection of the supporting lines of a′′ca^{\prime\prime}c and ba{ba} would be to the right of the supporting line of cb\overrightarrow{cb}. It follows that the triangle aa′′b>abcaa^{\prime\prime}b>abc, since with a fixed base ab{ab}, the height a′′q{a^{\prime\prime}q} is longer than cp{cp}. Contradiction.

Now suppose only one of the line segments lbl_{b} or lcl_{c} is located to the left (or right) of lal_{a}. Without loss of generality, suppose lcl_{c} is located to the left of lal_{a}, as illustrated in Figure 6(c). Let dd be the next vertex of a′′a^{\prime\prime} on the cyclic ordering of C0C_{0} (note that dd always exists since C0C_{0} and C1C_{1} are disjoint). Obviously a′′dba^{\prime\prime}db is always a true triangle. Since aa′′b=acba^{\prime}a^{\prime\prime}b=a^{\prime}cb, acb>acba^{\prime}cb>acb and a′′bd>a′′baa^{\prime\prime}bd>a^{\prime\prime}ba^{\prime}, we would have a′′db>abca^{\prime\prime}db>abc. Contradiction. ∎

Corollary 1.1.

Let C0={p1,,pm}C_{0}=\{p_{1},\ldots,p_{m}\} be a convex polygon, constructed at the endpoints of a set of arbitrary-length parallel line segments. There exists an ii (1im1\leq i\leq m) such that the largest-area true triangle rooted at pip_{i} is the largest-area true triangle inscribed in C0C_{0}.

We start solving the MaxMaxArea problem by considering the case where all the vertices of the largest-area true triangle are the vertices on C0C_{0}. The case where one of the vertices of the optimal solution is located on C1C_{1} will be considered later.

2.2.1 Algorithm: Largest-area true triangle inscribed in C0C_{0}

We first compute C0={p1,,pm}C_{0}=\{p_{1},...,p_{m}\}, in a representation where vertices are ordered along its boundary in counterclockwise (ccw) direction. The idea is to find the largest-area true triangle with base on all the chords of C0C_{0}. We start our algorithm from an arbitrary vertex p1p_{1} as the root. We check which of the possible true chords p1pip_{1}p_{i}, where i=2,,mi=2,...,m, will form a larger-area true triangle. Let pjp_{j} be the furthest vertex (in vertical distance) from true chord p1pip_{1}p_{i}, then either pjp_{j}, or one of the two previous or next neighbors of pjp_{j} will construct the largest-area true triangle in the base p1pip_{1}p_{i}. If p1pipjp_{1}p_{i}p_{j} is not true, at most four triangles p1pipj1p_{1}p_{i}p_{j-1}, p1pipj+1p_{1}p_{i}p_{j+1}, p1pipj2p_{1}p_{i}p_{j-2} and p1pipj+2p_{1}p_{i}p_{j+2} are candidates of constructing the largest-area true triangle on the base p1pip_{1}p_{i}. Note that a chord always divides a convex polygon into two convex polygons. We look for the largest-area true triangle on the base p1pip_{1}p_{i} on both halfs of C0C_{0} simultaneously.

In the next step of the algorithm, we start looking for the furthest vertex of p1pi+1p_{1}p_{i+1} (if it is a true chord) linearly from pjp_{j} and in counterclockwise direction. We stop looking on p1p_{1} when we reach to the chord p1pmp_{1}p_{m}.

We repeat the above procedure in counterclockwise order, where in each step, we consider one vertex of C0C_{0} as the root. We stop the algorithm when we return to p1p_{1}, and report the largest-area true triangle we have found. This algorithm is outlined in Algorithm 1 and illustrated in Figure 8. It is easy to observe that Algorithm 1 takes O(n2)O(n^{2}) time.

Now we give a lower bound for computing the largest-area triangle rooted at a given vertex rr.

Refer to caption
Figure 7: Illustration of the reduction from set disjointness problem.
Theorem 2.

There exists a lower bound Ω(nlogn)\Omega(n\log n) for computing the largest-area true triangle rooted at a given vertex rr.

Proof.

Our reduction follows the set disjointness problem which has an Ω(nlogn)\Omega(n\log n) lower bound in the algebraic decision tree model [41]: Given two sets A={a1,a2,,an}A=\{a_{1},a_{2},...,a_{n}\}, B={b1,b2,,bn}B=\{b_{1},b_{2},...,b_{n}\}, determine whether or not AB=A\cap B=\emptyset.

We map each aia_{i} to the line y=aixy=a_{i}x. Also each bib_{i} is mapped to the line y=1/bixy=-1/b_{i}x. Consider the set of 2n2n intersection points of these lines with the first and second quadrants of the unit circle, centered at the origin rr of the coordinate system, as illustrated in Figure 7. Clearly, the maximum size of the largest-area triangle rooted at rr can be 1/21/2. But a triangle of this size appears if and only if there exists two elements aiAa_{i}\in A and bjBb_{j}\in B, where ai=bja_{i}=b_{j}.555We assume w.l.o.g that AA and BB do not include 0. Thus there exist two elements aiAa_{i}\in A and bjBb_{j}\in B, where ai=bja_{i}=b_{j}, if and only if either the size of the largest-area triangle rooted at rr equals 1/21/2. ∎

Note that our algorithm runs in O(n2)O(n^{2}) time, while O(n)O(n) points are considered as root rr.666Reducing this running time is an interesting open problem, even when the input is a set of points (see, e.g., [36]) . Also notice that this lower bound is only for the case where we do not know the sorted order of the points on C0C_{0}, and the line segments are very short.

Legend Operation next means the next vertex in ccw order
Procedure Largest-Inscribed-Triangle(C0C_{0})
Input C0=p1,,pmC_{0}={p_{1},\ldots,p_{m}}: convex polygon of the segments, p1p_{1}: a vertex of C0C_{0}
Output TmaxT_{max}: Largest-area true triangle
aa = p1p_{1}
maxmax = 0
while true do
 bb = next(aa)
 if b la\in l_{a} then
    bb = next(bb)
    
   end if
 cl,crc_{l},c_{r} = farthest vertices from abab (in vertical distance and on both halfs of C0C_{0})
 while clac_{l}\neq a do
    if clc_{l} (resp. crc_{r}) {la,lb}\in\{l_{a},l_{b}\}  then
         update clc_{l} (resp. crc_{r}) with another vertex with farthest distance from abab (among two previous or next neighbors of clc_{l}), such that abclabc_{l} (resp. abcrabc_{r}) is true.
      end if
    
    max{max} = max(abc,abcl,abcr)max(abc,abc_{l},abc_{r})
    bb = next(bb)
    if b la\in l_{a} then
       bb = next(bb)
       
      end if
    while clc_{l} (resp. crc_{r} ) is not the farthest vertex from abab do
       clc_{l} = next(clc_{l}) (resp. crc_{r} = next(crc_{r}))
       
      end while
    
   end while
 aa = next(aa)
 if aa=p1p_{1} then
    return max{max}
    
   end if
 
end while
Algorithm 1 Largest-area true triangle inscribed in C0C_{0}
Refer to caption
Figure 8: The first step of Algorithm 1
Lemma 4.

Algorithm 1 finds the largest-area true triangle inscribed in C0C_{0}.

Proof.

From Lemma 3 and Corollary 1.1 we know the largest-area true triangle inscribed on C0C_{0} will be constructed on a true chord of C0C_{0}. In Algorithm 1 we consider all the vertices of C0C_{0} as the root, and we compute the largest-area true triangle on each true chord of C0C_{0}. Thus the algorithm works correctly. ∎

Corollary 2.1.

Let LL be a set of imprecise points modeled as a set of nn parallel line segments with arbitrary length. The largest-area true triangle which selects its vertices from the vertices on C0C_{0} can be found in O(n2)O(n^{2}) time.

2.2.2 Algorithm: Largest-area true triangle

From Lemma 3 we know the combinatorial structure of the largest-area true triangle: it can be the largest-area true triangle inscribed in C0C_{0}, or the largest-area true triangle that selects two neighboring vertices on C0C_{0} and one vertex on C1C_{1}, or the one that selects two non-neighboring vertices on C0C_{0} and one vertex on C1C_{1}. The largest-area true triangle is the largest-area triangle among them.

In the first case, from Corollary 2.1 the largest-area true triangle can be found in O(n2)O(n^{2}) time.

In the second case, we consider all the true edges of C0C_{0} as the base of a triangle. The third vertex of each triangle can be found by a binary search on the boundary of C1C_{1}. Let bcbc be a true edge of C0C_{0}. If a triangle abcabc on the base bcbc is not true, one of the next or previous neighbors of aa on the cyclic ordering of C1C_{1} may construct the largest-area true triangle on bcbc (see Figure 9(a,b)). In fact if the next or previous neighbor of aa also belongs to lbl_{b} or lcl_{c}, then there always exists a vertex aa^{\prime} on C0C_{0} that makes a larger true triangle on bcbc, as illustrated in Figure 9(b). Thus, in this case again, the largest-area true triangle can be computed in O(nlogn)O(n\log n) time.

In the third case, there are O(n2)O(n^{2}) chords to be considered as the base of the largest-area true triangle. Since a chord of C0C_{0} may decompose C1C_{1} into two convex polygons, we should do a binary search on each half of C1C_{1}, separately. This method costs O(n2logn)O(n^{2}\log n) time totally. But we can still do better.

Let rr be any vertex on C1C_{1}; we will search for the largest-area rooted triangle on rr. An axis system centered on rr will partition C0C_{0} into four convex chains, so that the largest-area true triangle should be rooted at rr and two points on the other quadrants, as illustrated in Figure 9(c).

From Corollary 2.1 we know if one quadrant, or two consecutive quadrants include the other vertices of the largest-area true triangle, we can find the largest-area true triangle in O(n2)O(n^{2}) time, since it will be constructed on the vertices of the boundary of a convex polygon.

Suppose two other vertices belong to two diagonal quadrants, e.g., quadrant one and quadrant three, as illustrated in Figure 9(d). Let the cyclic ordering of C0C_{0} be counterclockwise, and let v1v_{1} and v2v_{2} be the first and second vertices of the third quadrant in the cyclic ordering of C0C_{0}. Then we can find f1(v1)f_{1}(v_{1}) and f2(v1)f_{2}(v_{1}) on quadrant one, so that v1v_{1}, rr and each of f1(v1)f_{1}(v_{1}) and f2(v1)f_{2}(v_{1}) construct the largest-area true triangle on the base v1r{v_{1}r}, as we can see in Figure 9(d). We named f1(v1)f_{1}(v_{1}) and f2(v1)f_{2}(v_{1}) the starting points. The starting points determine the starting position of looking (in ccw direction) for f1(v2)f_{1}(v_{2}) and f2(v2)f_{2}(v_{2}), so that v2v_{2}, rr and each of f1(v2)f_{1}(v_{2}) and f2(v2)f_{2}(v_{2}) construct the largest-area true triangle on the base v2r{v_{2}r}, etc.

Thus, for any fixed rC1r\in C_{1} and any vertex viC0v_{i}\in C_{0} on the third quadrant, we start looking for f1(vi)f_{1}(v_{i}) and f2(vi)f_{2}(v_{i}) from f1(vi1)f_{1}(v_{i-1}) and f2(vi2)f_{2}(v_{i-2}) (in ccw direction) on the first quadrant, respectively.

Refer to caption
Figure 9: (a,b) Possible cases of observing a non-true triangle abcabc during a binary search on the boundary of C1C_{1}. (b) If the next or previous neighbor of aa belongs to lbl_{b} or lcl_{c}, there always exists a vertex aC0a^{\prime}\in C_{0} which makes a larger true triangle on the base bcbc. (c) Selection of point rr on C1C_{1} as the origin. (d) In the diagonal quadrants, for a vertex v2v_{2} in the third quadrant, we only need to look for the third vertex of the largest-area true triangle (on the base v2rv_{2}r) in the first quadrant from f1(v1)f_{1}(v_{1}) and f2(v1)f_{2}(v_{1}).

Note that for any vertex rr on C1C_{1}, the rooted triangle at rr can also be a non-true triangle. Suppose we are looking for f1(v1)f_{1}(v_{1}) and f2(v1)f_{2}(v_{1}) of vertex v1v_{1} in quadrant three. If rr belongs to lv1l_{v_{1}}, we discard v1v_{1}. Let rlf1(v1)r\in l_{f_{1}(v_{1})} (or rlf2(v1)r\in l_{f_{2}(v_{1})}). Then one of the next or previous neighbors of f1(v1)f_{1}(v_{1}) should be the area-maximizing vertex on the base v1rv_{1}r, and this point cannot belong to lv1l_{v_{1}} or lrl_{r}.

Therefore, in the case where we are looking on diagonal quadrants, e.g., quadrant one and quadrant three, for any vertex rC1r\in C_{1}, we first find the starting points for the first vertex in quadrant three in O(logn)O(\log n) time, and then we only wrap around C0C_{0} in at most one direction and never come back. Thus, for any rC1r\in C_{1}, the largest-area true triangle can be found in O(n)O(n) time, and the largest-area true triangle can be found in O(n2)O(n^{2}) time totally. The whole procedure of computing the largest-area true triangle is outlined in Algorithm 2.

Observation 4.

Let LL be a set of nn imprecise points modeled as parallel line segments with arbitrary length. The largest-area rooted true triangle can be found in O(nlogn)O(n\log n) time.

Proof.

Let rr be the root. In Corollary 1.1 we considered the case where rr is a vertex on the boundary of C0C_{0}. If rr is a point inside C0C_{0}, we set rr as the origin and compute the four possible quadrants of C0C_{0}. It is easy to observe that the largest-area true triangle rooted at rr can be found in O(nlogn)O(n\log n) time.

Legend Operation next means the next vertex in counterclockwise order
Input L={l1,,ln}L=\{l_{1},\ldots,l_{n}\}
Output : largest-area true triangle
ZZ= the set of all the endpoints of elements of LL
C0C_{0}= CH(Z)CH(Z)
C1C_{1}= CH(ZCH(C0))CH(Z\setminus\partial CH(C_{0}))
TC0T_{C_{0}}= Largest-Inscribed-Triangle(C0C_{0})
while there is an unprocessed vertex rr on C1C_{1} do
 Q1,Q2,Q3,Q4Q_{1},Q_{2},Q_{3},Q_{4}=Partitionioning C0C_{0} into four convex chains (in ccw direction) by considering an axis system centered on rr.
 TC0,C1T_{C_{0},C_{1}}=Max(Largest-Inscribed-Triangle(Q1Q2{r}Q_{1}\cup Q_{2}\cup\{r\}), Largest-Inscribed-Triangle(Q2Q3{r}Q_{2}\cup Q_{3}\cup\{r\}), Largest-Inscribed-Triangle(Q3Q4{r}Q_{3}\cup Q_{4}\cup\{r\}), Largest-Inscribed-Triangle(Q4Q1{r}Q_{4}\cup Q_{1}\cup\{r\}))
 vv= the first vertex of Q3Q_{3}
 while there is an unprocessed vertex vv \in Q3Q_{3} do
    if v lr\in l_{r} then
         v = next(v)
       
      end if
    f1(v),f2(v)f_{1}(v),f_{2}(v)= the farthest vertices from vrvr on Q1Q_{1}
    
    if f1(v)f_{1}(v) or f2(v)f_{2}(v) {lr,lv}\in\{l_{r},l_{v}\} then
         update f1(v)f_{1}(v) or f2(v)f_{2}(v) with its next or previous neighbor which has the farthest vertical distance from vrvr
       
      end if
    TC0,C1T_{C_{0},C_{1}}=Max(vrf1(v)vrf_{1}(v),vrf2(v)vrf_{2}(v), TC0,C1T_{C_{0},C_{1}})
    vv=next(vv)
    
   end while
  repeat above while loop for Q2Q_{2} and Q4Q_{4}
 rr= next(rr)
end while
return Max(TC0T_{C_{0}},TC0,C1T_{C_{0},C_{1}})
Algorithm 2 MaxMaxArea
Refer to caption
Figure 10: (a) The smallest-area true triangle selects its vertices at the endpoints of line segments. (b,c) The smallest-area true triangle on a set consists of one imprecise and three single points, and the optimal solution in the dual space. (d) We need to continue the movements in the up and down direction, when we encounter a line which is parallel to the ones intersecting at vv.
Theorem 3.

Let LL be a set of nn imprecise points modeled as a set of parallel line segments with arbitrary length. The solution of the problem MaxMaxArea can be found in O(n2)O(n^{2}) time.

3 MinMinArea problem

In this section, we will consider the following problem: given a set L={l1,,ln}L=\{l_{1},...,l_{n}\} of parallel line segments, choose a set P={p1,,pn}P=\{p_{1},...,p_{n}\} of points, where pilip_{i}\in l_{i}, such that the size of the smallest-area triangle with corners at PP is as small as possible among all possible choices of PP (see Figure 1(b)). As in the case of MaxMaxArea, this problem is equivalent to finding three points on distinct elements of LL that minimize the area of the resulting triangle.

The problem of finding the smallest-area triangle in a set of nn precise points is 3SUM-hard777The class of problems which is unknown to be solvable in O(n2ϵ)O(n^{2-\epsilon}) time for some ϵ>0\epsilon>0., as it requires testing whether any triple of points is collinear. In our case, if we find three collinear points on three distinct segments, the smallest-area true triangle would have zero area.

Observation 5.

Let LL be a set of nn vertical line segments. Deciding whether there are three collinear points on three distinct line segments can be done in O(n2)O(n^{2}) time.

Proof.

The idea is look at the vertical segments in the dual space, where each vertical segment is transformed to a strip. Then, if there exists a common point in the strips corresponding to three distinct line segments, this point denotes a line passing through those segments in the primal space. This can easily be checked by a topological sweep of the arrangement of strips in which a curve ll sweeps over the intersection points, e.g., from left to right in the dual space, while ll keeps track of the required information about the intersected strips by ll. Since a topological sweep of an arrangement can be done in O(n2)O(n^{2}) time [19], we can test whether there are three collinear points on three distinct segments in O(n2)O(n^{2}) time. ∎

In the following we will show that when the smallest-area true triangle has non-zero area, it selects its vertices on the endpoints of the line segments.

Lemma 5.

Let LL be a set of imprecise points modeled as a set of parallel line segments. Suppose there is no zero-area triangle in LL. The smallest-area true triangle selects its vertices on the endpoints of the line segments.

Proof.

Suppose the lemma is false. Let abcabc be the smallest-area true triangle, and suppose at least one of its vertices e.g., aa, is not located at the endpoints of lal_{a} (see Figure 10(a)). Consider a line \ell through aa and parallel to bcbc. If we sweep \ell towards bcbc, it will intersect lal_{a} until it leaves lal_{a} at a point aa^{\prime}. Thus aa^{\prime} can be substituted for aa to give us a smaller area true triangle, a contradiction. ∎

We now introduce some notation. Let LL be a set of imprecise points modeled as parallel line segments, and let ZZ be the set of all endpoints of LL. For a given point p=(px,py)p=(p_{x},p_{y}), we consider T(p)=pxxpyT(p)=p_{x}x-p_{y} as a transformation of pp to a dual space, and A(Z)A(Z) as the arrangement of the lines that are the transformation of ZZ in dual space, as Edelsbrunner et al[20] defined for a given set of points in the plane. Let T(la+)T(l_{a}^{+}) (resp. T(la)T(l_{a}^{-})) denote the transformation of the upper (resp. lower) endpoint of lal_{a} in the dual space. A(Z)A(Z) partitions the plane into a set of convex regions, and A(Z)A(Z) has total complexity of O(n2)O(n^{2}).

Refer to caption
Figure 11: Some observations on the MaxMinArea and the MinMaxArea problems. (a) The solution of the largest smallest-area triangle on a set consisting of one imprecise point and three single points, where it must be located at the endpoints. (b) The largest smallest-area triangle of (a). (c) The solution of smallest largest-area triangle on a set consisting of two imprecise points and two fixed points selects the interior points of the line segments. (d) The smallest largest-area triangle on a set consisting of two imprecise points and three fixed points.

3.1 Algorithm

From Lemma 5 we know that we only need to consider the endpoints of the line segments. For a given set LL of imprecise points with the endpoints in ZZ, we first construct A(Z)A(Z). Let abcabc be the smallest-area triangle in the primal space. Each vertex v={T(la+,)T(lb+,)}v=\{T(l_{a}^{+,-})\bigcap T(l_{b}^{+,-})\} in a face FF in A(Z)A(Z) belongs to two different segments, since the endpoints of a line segment are mapped to two parallel lines in the dual space, (see Figure 10(c)). For vFv\in F, we first consider the true edges of FF (which belong to distinct segments in the primal space). If edge eT(lc+,)e\subset T(l_{c}^{+,-}) is the first candidate for constructing the smallest-area triangle on vv, it should be immediately located above or below vv among all the lines, as our duality preserves the vertical distances. If ee does not determine a distinct segment in the primal space, we should continue our movement in both up and down directions until we reach a line in dual space which determines a distinct line segment in primal space. In this situation, we may need to cross among two neighboring faces of FF, as illustrated in Figure 10(d). Note that since we can use our procedure to determine if 3 points of nn distinct line segments in the primal space are collinear, this problem is also 3SUM-hard.

Thus we can compute the smallest-area true triangle that can be constructed on each vertex vA(Z)v\in A(Z). If it is smaller than previously computed optimal solution, TminT_{min}, we remember it. If we store A(Z)A(Z) in a reasonable data structure (e.g. doubly connected edge list), the time required to find the answer is O(n2)O(n^{2}) [20, Corollary 2.5].

Lemma 6.

Let LL be a set of imprecise points modeled as parallel line segments, and let A(Z)A(Z) be the arrangement of the transformation of ZZ (which consists of the endpoints of LL). There exists a face FF in A(Z)A(Z) such that the smallest-area true triangle uses one of its vertices.

Proof.

The correctness proof of this lemma comes from these facts: all the vertices of A(Z)A(Z) belong to distinct segments in primal space, our duality preserves the vertical distances and it is order preserving, and we will find the smallest-area true triangle on each vertex of A(Z)A(Z), even when we encounter to non-distinct segments. ∎

Theorem 4.

Let LL be a set of nn imprecise points modeled as parallel line segments. The solution of the problem MinMinArea can be found in O(n2)O(n^{2}) time.

Refer to caption
Figure 12: (a) A clause gadget. (b) The structure of a common variable xx between two clauses CiC_{i} and CjC_{j}. (c) Three clause gadgets in a SAT instance.

4 MaxMinArea problem

The problem we study in this section is the following: given a set L={l1,,ln}L=\{l_{1},...,l_{n}\} of parallel line segments, choose a set P={p1,,pn}P=\{p_{1},...,p_{n}\} of points, where pilip_{i}\in l_{i}, such that the size of the smallest-area triangle with corners at PP is as large as possible among all possible choices of PP (see Figure 1(c)). As we can see in Figure 11(a,b), the solution does not necessarily select its vertices on the endpoints of the line segments. We show this problem is hard.

4.1 MaxMinArea problem is NP-hard

We reduce from SAT. Given a SAT instance, we choose a value α\alpha and create a set of line segments such that if the SAT instance is satisfiable, there exists a point placement with a smallest-area triangle of area α\alpha, but if the SAT instance is not satisfiable, every possible point placement will admit a triangle of area smaller than α\alpha.

We define a variable gadget for each of the variables in a clause, and a clause gadget, that includes all of its variable gadgets. A variable gadget for a variable xx in a clause CiC_{i} consists of a segment sx,is_{x,i} and two fixed points (degenerate line segments) on the bisector and close to the center of sx,is_{x,i} (see Figure 12).888For ease of construction, we draw the segments diagonal and the clauses horizontal, a simple rotation yields a construction for vertical segments. These fixed points determine two small triangles (the green and purple triangles) of area α\alpha, and one of them must be part of any point placement. We choose α\alpha small enough such that in the remainder of the construction, every other possible triangle either has an area larger than α\alpha, or a zero area.

Let sx,i+s^{+}_{x,i} represent the value True and sx,is^{-}_{x,i} represent the value False, where sx,i+s^{+}_{x,i} and sx,is^{-}_{x,i} are endpoints of sx,is_{x,i}. We place these endpoints in such a way that if a clause is not satisfied, the corresponding endpoints will form a triangle with zero area. For example, if the clause CiC_{i} is (¬xy¬z)(\neg x\vee y\vee\neg z), the endpoints sx,i+s^{+}_{x,i}, sy,is^{-}_{y,i} and sz,i+s^{+}_{z,i} will be collinear. So, setting xx and zz to True and yy to False will result in a zero area triangle, as we can see in Figure 12(a). In order to ensure segments representing the same variable will be assigned the same value, we place a fixed point on every line through the True end of one and the False end of another such segment. For instance, if variable xx occurs in CiC_{i} and CjC_{j}, we place a fixed point on the segments connecting sx,i+s^{+}_{x,i} to sx,j{s^{-}_{x,j}}, and one on the segment connecting sx,is^{-}_{x,i} to sx,j+{s^{+}_{x,j}} (see Figure 12(b)). If xx selects both of the values of True and False simultaneously, it will construct a zero area triangle. We will construct such structures for all the common variables of the clauses, see Figure 12(c).

We must take care when placing all the endpoints of the line segments in the variable gadgets and the fixed points, that there are no three collinear points other than those that are collinear by design. We must also make sure to not place any fixed points or endpoints of segments in the perpendicular strips which are determined by each line segment in the variable gadgets (see Figure 12(b)), as such a point would form a triangle of area less than α\alpha with the two fixed points in the corresponding variable segment. After placing all the line segments and fixed points, the area of the smallest possible triangle will determine the value α\alpha.

Let LL be the set of imprecise points including all the fixed points and all the segments in the variable gadgets. Now an assignment to the variables to satisfy the SAT instance can be made if and only if a solution for maximizing the area of the minimum possible area triangle of LL of area α\alpha exists. In the following we show how to ensure that all coordinates in LL are polynomial, and we prove that the reduction takes polynomial time.

4.2 Correctness of polynomial-time reduction

We use an incremental construction method, such that when inserting a new fixed point or the endpoints of a line segment, we do the placement in such a way that the new point is not collinear with two other previously inserted fixed points or the endpoints of two other line segments. Also each new precise point or the endpoints of a new line segment should not be located in the strips which are determined by the endpoints of previously inserted line segments.

Suppose we have nn variables and mm clauses in the SAT instance. Since each variable can occur at most one time in each clause, we need to place O(nm)O(nm) fixed points on the lines connecting the common variables in the clause gadgets. Also we need to place O(nm)O(nm) other fixed points close to the center of the segments in the variable gadgets. Therefore we observe that a value for α\alpha of O(1nm2)O(\frac{1}{nm^{2}}) suffices.

It is easy to observe that for a given set of k1k-1 points in the plane, we can insert the kkth point in O(k2)O(k^{2}) time, such that no zero-area triangle exists in the resulting set, and the new point is not placed in any of the O(k)O(k) strips (of the variable gadgets). We conclude that our reduction can be performed in O(m6n6)O(m^{6}n^{6}) time in total.

Theorem 5.

Given a set of nn parallel line segments, the problem of choosing a point on each line segment such that the area of the smallest possible triangle of the resulting point set is as large as possible is NP-hard.

5 MinMaxArea problem

In this section, we will consider the following problem: given a set L={l1,,ln}L=\{l_{1},...,l_{n}\} of parallel line segments, choose a set P={p1,,pn}P=\{p_{1},...,p_{n}\} of points, where pilip_{i}\in l_{i}, such that the size of the largest-area triangle with corners at PP is as small as possible among all possible choices of PP (see Figure 1(d)).

In the following we first give some definitions, then we state our results. Let the top chain denote the lowest convex chain connecting the lower endpoint of the leftmost line segment to the lower endpoint of the rightmost line segment, and which passes over or through the lower endpoints of the other line segments. In other words, it is the top half of the convex hull of the lower endpoints of the segments. Similarly, we define the bottom chain as the highest convex chain connecting the upper endpoint of the leftmost line segment to the upper endpoint of the rightmost line segment, and which passes under or through the upper endpoints of the other line segments. These two convex chains can either be disjoint or intersect and enclose a convex body region (see Figure 13(a)). The convex body region can be found in O(nlogn)O(n\log n) time. If this region is empty, a single line segment will pass through all the segments, and the smallest largest-area triangle will have zero area by placing all points collinear. This case can be distinguished in linear time [18]. From now on, we assume the convex body region has non-zero area. Note that one of the top chain or bottom chain can also be a single line segment. By extreme line segments we mean the leftmost and rightmost line segments.

Refer to caption
Figure 13: (a) Top chain and bottom chain. (b) For any line segment in LLL\setminus L^{\prime} (gray line segment), any arbitrary point interior to the convex hull is chosen as the candidate point.

We first make some observations in Section 5.1. Then in Section  5.2 we solve the special case where the extreme segments are single points. Finally we extend the solution to the general case in Section 5.3.

5.1 General Observations

We start with some observations. Suppose we have a set of line segments and we know what is the candidate point999For each lil_{i}, the point pilip_{i}\in l_{i} in set PP is the candidate point of lil_{i}. on each segment. It is easy to observe that if we add more line segments, the changes on the size of the area of the smallest largest triangle is non-decreasing.

Lemma 7.

Suppose we are given a set LL of line segments and we know the set PP which consists of the candidate points on LL to make the largest-area triangle as small as possible. Then we insert another line segment ll, such that ll has a point xx which is located on a line segment passing through two points of PP. Then, xx will be chosen as the candidate point of ll and this selection will not increase the area of the smallest largest-area triangle.

Proof.

Suppose the lemma is false. Then xx is increased the size of the smallest largest-area triangle. It follows that xx is a vertex of the smallest largest-area triangle (Also notice that the largest-area triangle selects all its vertices on the convex hull; no matter we want to minimize its area). Suppose bb and cc are the other vertices of the smallest largest-area triangle. Since xx is located on a line segment passing through two points of PP, it is located on a chord on an edge of CH(P)CH(P). First suppose xx is located on a chord of CH(P)CH(P). We consider a line \ell through xx and parallel to bcbc. If we sweep \ell away from bcbc, it will intersect the convex body region until it leaves it at a vertex xx^{\prime}. But then xx^{\prime} can be substituted for xx to give us a larger smallest largest-area triangle. Contradiction with the previous selection of the smallest largest-area triangle.

Now suppose xx is located on the boundary of CH(P)CH(P). Again consider the line \ell through aa and parallel to bcbc. If we sweep \ell away from bcbc, it will intersect the convex body region until it leaves it at a vertex xx^{\prime}. But then again xx^{\prime} can be substituted for xx to give us a triangle which its area is either greater-than or equals to the area of xbcxbc. It is again a contradiction with the previous selection of the smallest largest-area triangle. Thus xx cannot increase the size of the smallest largest-area triangle.

We will observe later that the smallest largest-area triangle is always a true triangle.

Corollary 5.1.

Suppose we are given a set LL of line segments and we know the set PP which consists of the candidate points on LL to make the largest-area triangle as small as possible. If a new line segment ll intersects the convex hull of PP without sharing a vertex on it, then ll does not have a role in the construction of the smallest largest-area triangle.

5.2 Points as the extreme regions

In the case where the leftmost and rightmost line segments are fixed points, these fixed points always appear on the convex hull of PP. Also, for some line segments that intersect the convex hull of PP 101010Note that CH(P)CH(P) consists of interior and boundary. without sharing a vertex on it, they share their candidate points somewhere on or within the convex hull (see Figure 13(b)). Let LLL^{\prime}\subseteq L be the set of line segments from LL that share a vertex on the convex body region. In the following, we will prove that the smallest largest-area triangle of LL^{\prime} equals the smallest largest-area triangle of LL.

Observation 6.

Any liLLl_{i}\in L\setminus L^{\prime} intersects the convex body region.

Proof.

Suppose this is not the case. First suppose the convex body region has non-zero area. Then there exists a segment lil_{i} that does not intersect the convex body region. The segment lil_{i} has to be located completely above (or below) the convex body region. But then lil_{i} has to share a vertex on the top chain (or the bottom chain), contradiction.

As an immediate consequence, we can throw away all the regions in LLL^{\prime}\subseteq L. In the following, we show that the largest-area triangle which is inscribed in the convex body region is the smallest largest-area triangle of LL. In other words, we will prove that in the case where the leftmost and rightmost line segments are fixed points, the convex body region is the convex hull of the candidate points.

Lemma 8.

Suppose the leftmost and rightmost line segments are points (degenerate segments), and the convex body region has non-zero area. Only the upper endpoints on the bottom chain or the lower endpoints on the top chain are candidates for including the vertices of the smallest largest-area triangle of LL^{\prime}.

Proof.

Suppose the lemma is false. Let abcabc be the smallest largest-area triangle of LL^{\prime}, that selects one of its vertices, aa, at a point on one of the line segments of LL^{\prime}, so that aa is not a lower endpoint on the top chain, or an upper endpoint on the bottom chain, or a fixed point. W.l.o.g, assume lal_{a} shares a vertex on top chain. Let aa^{\prime} be the lower endpoint of lal_{a} (see Figure 13(b)). We will prove that we can substitute aa^{\prime} for aa without increasing the size of the smallest largest-area triangle.

We consider a line \ell through aa and parallel to bcbc. If we sweep \ell toward bcbc, it will intersect the top chain. Let qq be the first vertex that \ell visits on the top chain. Suppose qaq\neq a^{\prime}, because otherwise we are done. Suppose q{lb,lc}q\notin\{l_{b},l_{c}\}. Now we will prove that if we substituted aa^{\prime} for aa, the area of no other triangles with a vertex at aa would be increased.

If exactly one of bb or cc belongs to the bottom chain and the other one belongs to the top chain, or both bb and cc belong to bottom chain, obviously moving aa to aa^{\prime} will reduce the area of abcabc, and qbcqbc is smaller than abcabc, which contradicts the optimality of abcabc.

Now let both of bb and cc belong to the top chain, then the largest-area triangle that we want to minimize its area will never select its third vertex aa on top chain, unless one of aa, bb or cc is an intersection point of the top chain and bottom chain. Note that point aa cannot be a fixed point, because otherwise we have a contradiction. It follows that abcabca^{\prime}bc\leq abc, and also qbcabcqbc\leq abc, which contradicts the optimality of abcabc. Note that the smallest largest-area triangle has to be a true triangle (we will discuss it later).

Now suppose q{lb,lc}q\in\{l_{b},l_{c}\}. Since aa is located above the convex body region, qq is the first visited point during sweeping \ell toward bcbc. Thus lal_{a} must intersected an edge of the convex body, contradicting the fact that lal_{a} shares a vertex on the convex body. ∎

Corollary 5.2.

Suppose the leftmost and rightmost line segments are fixed points and the convex body region has non-zero area. Only the fixed points, the lower endpoints on top chain and the upper endpoints on bottom chain are candidates for including the smallest largest-area triangle’s vertices.

Lemma 9.

The smallest largest-area triangle of LL^{\prime} is equal to the smallest largest-area triangle of LL.

Proof.

From Lemma 8 and Observation 5.2 we know the smallest largest-area triangle selects its vertices from the endpoints of LL^{\prime}, and the convex body region is the convex hull of the candidate points on LL to minimize the size of the largest-area triangle. As we saw in Observation 6, the line segments in LLL\setminus L^{\prime} always intersect the convex body region and they do not have a role in the construction of the smallest largest-area triangle. Thus, from Lemma 7 and Corollary 5.1 we can throw away the set of line segments in LLL\setminus L^{\prime}. If the convex body region has non-zero area, obviously we cannot reduce the size of the largest-area triangle that is inscribed in it. Also from [8, Theorem 1.1] we know the largest-area triangle will select its vertices on the convex hull, and it does not the matter that we want to minimize its area. Consequently the smallest largest-area triangle of LL equals to the smallest largest-area triangle of LL^{\prime}.

As an immediate consequence of Lemma 9, since all the vertices of LL^{\prime} are selected from distinct segments, the smallest largest-area triangle is always a true triangle.

5.2.1 Algorithm

Suppose we are given set LL of line segments. After sorting LL, we can compute the top and bottom chains in linear time. Also, we can compute LLL^{\prime}\subseteq L, the convex body region and also its vertices, PP^{\prime}, in linear time. For each liLLl_{i}\in L\setminus L^{\prime}, we can choose pilip_{i}\in l_{i} to be an arbitrary point within the convex body region (or on its boundary). Obviously all such points can be found in linear time. Then we can apply any existing algorithm to compute the largest-area inscribed triangle of CH(P)CH(P^{\prime}). This procedure is outlined in Algorithm 6.

Input L={l1,,ln}L=\{l_{1},\ldots,l_{n}\}: a set of vertical segments
Output MinMaxMinMax:smallest largest-area true triangle
II=convex body of LL
PP^{\prime}=vertices of II
return Largest-Triangle(PP^{\prime})
Algorithm 3 MinMaxArea where the extreme line segments are single points

The procedure Largest-Triangle(pp^{\prime}) is the algorithm presented in [9] which can compute the largest inscribed triangle in linear-time.

Theorem 6.

Let LL be a set of nn parallel line segments with two fixed points as the leftmost and rightmost line segments. The solution of MinMaxArea problem on LL can be found in O(nlogn)O(n\log n) time.

5.3 Line segments as the extreme regions

In this section we study the case where the leftmost and rightmost line segments are not fixed points. Note that the extreme line segments do not necessarily share a vertex at the endpoints or even on the optimal solution (see Figure 11(c,d)).

Two polygons that are constructed by the leftmost and rightmost line segments and the parts of the top chain and bottom chain which do not contribute to the boundary of the convex body region (hatched regions in Figure 14(a)) are called the tail regions. In this case, LL^{\prime} also includes the line segments which share vertices on the tail regions. In a similar fashion, LLL\setminus L^{\prime} consists of the line segments that have two intersection points with the tail regions without sharing a vertex on it, and also the line segments that are intersected by the convex body region without sharing a vertex on it.

Lemma 10.

Let LL be a given set of imprecise points. Let PP be the set of points that minimizes the size of the largest-area triangle. Then CH(P)CH(P) always intersects the line segments in LLL\setminus L^{\prime}.

Proof.

Suppose the lemma is false. Then there exists a line segment lpLLl_{p}\in L\setminus L^{\prime}, such that lpl_{p} is not intersected by CH(P)CH(P). First notice that CH(P)CH(P) includes the convex body, and consequently it is intersected by all the line segments which are intersecting by the convex body without sharing a vertex on it. Thus lpl_{p} must be a line segment which is intersecting a tail region, say the right tail, while it does not share any vertex on it. Notice that CH(P)CH(P) selects also some vertices on the leftmost and rightmost line segments. Two cases can happen. First, suppose CH(P)CH(P) selects an endpoint of lrl_{r}. W.l.o.g., suppose it is selected the upper endpoint of lrl_{r}, but then it must also includes all the vertices of the upper concave chain of the right tail (we discuss it in next lemma), and in which case it must intersect lpl_{p} which gives a contradiction.

Now consider the case where CH(P)CH(P) selects a point somewhere on the middle of lrl_{r}. In this case again it has to be intersected by lpl_{p}. Contradiction. ∎

Consequently, with the same argument we had in Section 5.2 the candidate point of any line segment with two intersection points with a tail region (without sharing any vertex on it) can be chosen to be any point within or on the boundary of the convex hull of candidate points. For this, it suffices to find the candidate points of the leftmost and rightmost segments. Notice that with the same argument that we have proven in Lemma 8, all the vertices of the convex body and tail regions should be involved in the convex hull of the candidate points. In Lemma 11 we will prove that for the line segments in L{ll,lr}L^{\prime}\setminus\{l_{l},l_{r}\} which share some vertex on the tail regions, there is no other interesting point to be candidate for a vertex of the smallest largest-area triangle.

Refer to caption
Figure 14: (a) Hatched regions illustrate the tail regions. (b) For any segment in LL^{\prime}, only the shared vertices are the candidates of including the vertices of the smallest largest-area triangle.
Lemma 11.

Suppose the convex body region has non-zero area. For any line segment in L{ll,lr}L^{\prime}\setminus\{l_{l},l_{r}\} only the shared vertices are candidates for the vertices of the smallest largest-area triangle.

Proof.

Suppose the lemma is false, then the smallest largest-area triangle abcabc selects a vertex aa on lal_{a}, such that lal_{a} shares some vertex on e.g., the right tail region. First suppose aa is located interior to the right tail region. W.l.o.g, suppose lal_{a} shares some vertex lal_{a}^{-} on the bottom chain. Let la+l_{a}^{+} be the upper endpoint of lal_{a} and let aa be any point of lal_{a} with a lower yy-coordinate than la+l_{a}^{+} and interior to the right tail region (as illustrated in Figure 14(b)). We know that the convex hull of the candidate points has a vertex rr on lrl_{r}, and abcabc is the largest-area true triangle among other possible triangles. Consider a line \ell through aa and parallel to bcbc. If we sweep \ell toward bcbc we will visit rr. It is easy to observe that removing vertices from the convex hull of a set of points may only decrease the area of the largest-area triangle that is inscribed in the convex hull (notice that the smallest largest-area triangle is the largest triangle which is inscribed in the convex hull of the candidate points). By the optimality of the area of abcabc we know that all the other triangles which are rooted at aa are not larger than abcabc. Thus we just omit the vertex aa of the convex hull, while the convex hull is still intersected by lal_{a} and by all the other segments which were intersected by the removed ear of the hull, since the removed ear is completely located within the right tail region. Thus abcabc could not be the smallest largest-area triangle. Contradiction.

Now suppose aa is located outside the tail region and w.l.o.g above it. Suppose lal_{a} shares a vertex lal_{a}^{-} on the bottom chain (obviously if it also shares la+l_{a}^{+}, la+l_{a}^{+} is a better choice with respect to aa and we are done). In which case again lal_{a} is intersected by the convex hull of the candidate points. Once again by removing the vertex aa of the convex hull, the convex hull is still intersected by lal_{a} and by all the other segments which were intersected by the removed ear of the hull. Thus again abcabc could not be the smallest largest-area triangle. Contradiction. ∎

Refer to caption
Figure 15: (a) The smallest largest-area triangle which is inscribed in the convex hull (dashed polygon) of the top and bottom chain excluding ll,lr{l_{l},l_{r}}. (b) Triangle abcabc is the solution of MinMaxArea which selects one vertex on the rightmost segment.

5.3.1 Algorithm

Suppose we are given a set LL of line segments. After sorting LL we can compute the top and bottom chain in linear time. Also, we can compute the set LL^{\prime}, the convex body region, the tail regions and also their vertices PP^{\prime} in linear time. In the following, we consider the procedure of finding the solution to the MinMaxArea problem of LL^{\prime} in several possible configurations.

We proceed by parameterizing the problem in the location of the points on the leftmost and rightmost line segment. The area of each potential triangle is linear in these parameters, yielding a set of planes in a 33-dimensional space. We are looking for the lowest point on the upper envelope of these planes; see Figure 16(b). In the case where only one of the leftmost or rightmost line segments share a vertex on the optimal solution, O(n2)O(n^{2}) triangles may have a common third vertex on the leftmost or rightmost line segments; see Figure 16(a). Since the lowest vertex of the upper envelope can be found in O(n2logn)O(n^{2}\log n) time, the solution of the MinMaxArea problem in this case can be computed in O(n2logn)O(n^{2}\log n) time.

From Lemma 11 we know that for each line segment lil_{i} \in L{L}L\setminus\{L^{\prime}\}, we can choose an arbitrary point pilip_{i}\in l_{i} within the convex hull of the convex body and the determined candidate points of the extreme segments.

If the smallest largest-area triangle does not use the leftmost and rightmost line segments, by the same argument as in Lemma 9, the smallest largest-area triangle is inscribed in the convex hull of the top and bottom chain excluding the extreme segments (as illustrated in Figure 15). But since here the convex hull of the candidate points is not necessarily a true convex hull (see Figure 15(a)), we apply Algorithm 1. This procedure is outlined in Algorithm 6.

Procedure One-ExtrSeg(lel_{e})
Input L={l1,,ln}L=\{l_{1},\ldots,l_{n}\}: A set of vertical segments
Output : smallest largest-area true triangle with one vertex at lel_{e}
II=convex body of LL
Tl,TrT_{l},T_{r}=tails of LL
PP^{\prime}=vertices of CH(ITlTr{{ll,lr}le})CH(I\cup T_{l}\cup T_{r}\setminus\{\{l_{l},l_{r}\}\setminus l_{e}\})
for each pair x,yPx,y\in P^{\prime}
    compute the area function f(x,y)f(x,y) with third vertex at lel_{e}
    add f(x,y)f(x,y) to an arrangement AA
end
vv= the lowest vertex of the lower envelop of AA
Area(v)Area(v)=the determined area on the arrangement AA by vv
return Area(v)Area(v)
Algorithm 4 MinMaxArea with one vertex at extreme segments
Procedure Two-ExtrSeg(ll,lrl_{l},l_{r})
Input L={l1,,ln}L=\{l_{1},\ldots,l_{n}\}: a set of vertical segments
Output : smallest largest-area true triangle with two vertices at lll_{l} and lrl_{r}
II=convex body region of LL
PP^{\prime}=vertices of CH(I)CH(I)
for each xPx\in P^{\prime}
    compute the area function f(x)f(x) with two vertices at ll,lrl_{l},l_{r}
    add f(x)f(x) to an arrangement AA
end
vv=lowest vertex of the lower envelop of AA
Area(v)Area(v)=the determined area on the arrangement AA by vv
return Area(v)Area(v)
Algorithm 5 MinMaxArea with two vertices at extreme segments
Input L={l1,,ln}L=\{l_{1},\ldots,l_{n}\}: a set of vertical segments
Output : smallest largest-area true triangle
UU=top chain of LL
LL=bottom chain of LL
II=convex body of UU and LL
Tl,TrT_{l},T_{r}=tails of LL
PP^{\prime}=vertices of CH(ITlTr{ll,lr}CH(I\cup T_{l}\cup T_{r}\setminus\{l_{l},l_{r}\})
return Max(Largest-Inscribed-Triangle(PP^{\prime}), One-ExtrSeg(lll_{l}), One-ExtrSeg(lrl_{r}), Two-ExtrSeg(ll,lrl_{l},l_{r}))
Algorithm 6 MinMaxArea where the extreme line segments are not single points

5.4 Correctness Proof

The correctness of the algorithm comes from the correctness of Lemma 11, which states that we can find the optimal position of the candidate points on the line segments which are located between the leftmost and rightmost line segments, and on the leftmost and the rightmost line segments as well.

If the smallest largest-area triangle does not use the leftmost and rightmost line segments, changing the position of its vertices on their segments may only increase its area. If the smallest largest-area triangle does use the leftmost and/or rightmost line segments, as it is the largest possible triangle among all the other possible triangles, its area determines the optimal position of the vertices on the leftmost and/or rightmost line segments. Thus, changing the position of its vertices on the leftmost and/or rightmost segments can just increase its area. Such points are in balance between the area of at least two triangles, they could move in one direction to decrease the area of one triangle but only by increasing the area of another triangle. Thus, the algorithm finds the optimal solution.

Refer to caption
Figure 16: (a) Image of vv on lel_{e} determines the point that minimizes the area of all possible triangles with one vertex on lel_{e}, where le{ll,lr}l_{e}\in\{l_{l},l_{r}\}. (b) A vertex on the upper envelope of the half planes determines the point that minimizes the area of all possible triangles with two vertices on lll_{l} and lrl_{r}.
Theorem 7.

Let LL be a set of nn imprecise points modeled as parallel line segments. The solution of the problem MinMinArea can be found in O(n2logn)O(n^{2}\log n) time.

6 Extension to k>3k>3

It is natural to ask the same questions posed in Section 1 for polygons with k>3k>3 sides, in which case we look for tight lower bounds and upper bounds on the area of the smallest or largest convex kk-gon with corners at distinct line segments.

Refer to caption
Figure 17: (a) A set PP of n=3kn=3k points, in which there is no convex kk-gon determined by a subset of PP with any value of k5k\geq 5. (b) An example of a set of parallel line segments, in which at most k=4k=4 points can be selected at the endpoints to make a convex kk-gon. Note that the blue short line segments at the middle of the long line segments are rescaled copies of the long segments. This configuration can be repeated arbitrarily. (c) The close-up of upper endpoints of long line segments. In any configuration of the same color four line segments, at most two endpoints at the lower or upper endpoints can contribute to the boundary of a convex kk-gon.

Note that even in the precise version of finding an optimal area kk-gon, not every point set will contain a convex kk-gon for all values of kk, as illustrated in Figure 17(a). Clearly, the same is true for the imprecise version, since the points in Figure 17(a) can be a set of very short line segments.

In addition, note that by insisting on using exactly kk vertices in our convex polygon, we may introduce unexpected behavior, forcing some vertices to lie in the interiors of their segments just to ensure there are sufficiently many vertices in convex position, as illustrated in Figure 17(b).

The question of whether are there kk points in convex position or not is studied in [30], where the question was “given a set L={l1,,ln}L=\{l_{1},...,l_{n}\} of parallel line segments, decide whether or not there exist kk points on distinct segments, such that all the points are in convex position”. Similarly, this problem is also studied for many other geometric planar objects in the same paper. The authors showed that for a set of parallel line segments, the above decision question can be answered in polynomial time, but for general regions, the problem becomes NP-hard.

As an immediate consequence of our present results, e.g., Section 2.2, the above decision question for some small values of kk, (for example k=3k=3) can be answered in polynomial time; however, in general, the problem appears to quickly become difficult.

Nonetheless, we take the apparent difficulty of the problem and its unexpected results as motivation to relax the problem definition; in Sections 6.1 and 6.2 we study the largest convex polygon with at most kk vertices. Note that asking for the smallest convex polygon on at most kk vertices is not a sensible question; for any point set, the smallest mm-gon (m<km<k) has area 0, since we chose m=2m=2. So the maximum over all possible sets is still 0.

6.1 MaxMaxArea problem for polygons with k>3k>3 sides

In this section we study the following problem.

MaxMaxArea: given a set L={l1,,ln}L=\{l_{1},...,l_{n}\} of parallel line segments, and an integer kk (knk\leq n), choose a set P={p1,,pn}P=\{p_{1},...,p_{n}\} of points, where pilip_{i}\in l_{i}, such that the size of the largest-area polygon QQ with corners at PP is as large as possible among all choices of PP. See Figure 18 for an example.

Lemma 12.

There is an optimal solution to MaxMaxArea for a convex polygon with at most kk vertices, such that all vertices are chosen at the endpoints of line segments.

Proof.

Suppose the lemma is false. Then there exists an mm-gon (mkm\leq k) QQ with maximum possible area, and a minimal number of vertices that are not at the endpoint of their line segments. Any vertex pp of QQ which is not located at an endpoint of its segment can be moved to one of its endpoints and increase the area of QQ. It is possible that QQ is no longer convex or some vertices of QQ lie no longer on the boundary of QQ. But correcting these by removing these points from QQ can only increase the area of QQ, contradicting the choice of QQ. ∎

Refer to caption
Figure 18: For k=4k=4, la+blcldl_{a}^{+}bl_{c}^{-}l_{d}^{-} is the largest-area kk-gon, where the inner angle at la+l_{a}^{+} approaches π\pi, and Q=lb+lcldQ=l_{b}^{+}l_{c}^{-}l_{d}^{-} is the largest-area convex polygon with at most kk vertices. Note that there are some kk-gons which can be constructed at the endpoints (e.g., lb+lc+lald+l_{b}^{+}l_{c}^{+}l_{a}^{-}l_{d}^{+}), but they were not reported since they are smaller than QQ.

6.1.1 Algorithm

In the following, we provide a dynamic programming algorithm for MaxMaxArea. For pqp\neq q, we define an array A[lp,lq+,m]A[l_{p}^{-},l_{q}^{+},m] which denotes the area of the largest true mm-gon with the bottommost vertex lpl_{p}^{-}, such that lq+l_{q}^{+} is the next vertex of lpl_{p}^{-} on the counterclockwise ordering of the boundary of mm-gon (see Figure 19). This mm-gon is constructed on the largest-area m1m-1-gon A[lp,lr+,m1]A[l_{p}^{-},l_{r}^{+},m-1] with the bottommost vertex lpl_{p}^{-}, where the the triangle lplq+lr+l_{p}^{-}l_{q}^{+}l_{r}^{+} is the largest-area triangle among all possible choices for lql_{q}.

For finding the optimal solution, we should compute all such mm-gons, where mkm\leq k, and the largest-area polygon for some value of mm will determine the largest-area convex polygon with at most kk vertices.

Note that our dynamic programming can also report whether there exists a convex polygon with exactly kk vertices to be constructed at the endpoints of the line segments 111111If there is no candidate for lql_{q} to increase the area of the current mm-gons for some values of m<km<k, then there is no larger m+1m+1-gon to be constructed at the endpoints. . As said above, in the original setting of our dynamic programming, we will report the largest convex polygon with at most kk vertices.

Let Hlp,lq+H_{l_{p}^{-},l_{q}^{+}} be the half plane to the left of supporting line of lplq+\overrightarrow{l_{p}^{-}l_{q}^{+}}. We sort for each point lr+l_{r}^{+}, all the other endpoints in clockwise order around lr+l_{r}^{+} and store these orderings. Computing the clockwise order of all points around any point in a set can be done in quadratic time totally [20]. For any lpl_{p}^{-} and lr+l_{r}^{+} we consider all the line segments lql_{q} which have an endpoint that is sorted clockwise around the point lr+l_{r}^{+}. If lr+l_{r}^{+} is located to the right of the supporting line of lplq+\overrightarrow{l_{p}^{-}l_{q}^{+}}, then no new point can be used. The decision about the candidate endpoint of lql_{q} will be made according to the direction of the edge lplr+l_{p}^{-}l_{r}^{+} (see Figure 19).

Note that A[lp,lr,m]A[l_{p}^{-},l_{r}^{-},m] is also considered. We suppose (w.l.o.g) the optimal mm-gon selects the endpoint lr+l_{r}^{+}. We will start by initializing all the values of the array by zero, as the area for any m=2m=2 is zero. Then we have

A[lp,lq+,m]=maxlr+Hlp,lq+(A[lp,lr+,m1]+area(lplq+lr+))A[l_{p}^{-},l_{q}^{+},m]=max_{l_{r}^{+}\in H_{l_{p}^{-},l_{q}^{+}}}(A[l_{p}^{-},l_{r}^{+},m-1]+area(l_{p}^{-}l_{q}^{+}l_{r}^{+}))

Moreover, for any computation A[lp,lq+,m]A[l_{p}^{-},l_{q}^{+},m] for m>3m>3, we check for convexity, that may reduce the value of mm. Note that if there exists a non-convex at most mm-gon with area AA, then there also exists a convex polygon with area more than AA and still at most mm vertices.

It is obvious that the above recursion can be evaluated in linear time for each value of lpl_{p}^{-}, lq+l_{q}^{+} and lr+l_{r}^{+}. Thus it will cost O(kn3)O(kn^{3}) time and O(n2)O(n^{2}) space totally.

Theorem 8.

Let LL be a set of nn imprecise points modeled as parallel line segments. The solution to the MaxMaxArea problem for a convex polygon with at most kk vertices can be found in O(kn3)O(kn^{3}) time.

Refer to caption
Figure 19: The directed segment lplr+{l_{p}^{-}l_{r}^{+}} indicates which of the upper or lower endpoints of lql_{q} should be selected.

6.2 MinMaxArea problem for polygons with k>3k>3 sides

In this section we study the following problem:

MinMaxArea: given a set L={l1,,ln}L=\{l_{1},...,l_{n}\} of parallel line segments, and an integer kk (knk\leq n), choose a set P={p1,,pn}P=\{p_{1},...,p_{n}\} of points, where pilip_{i}\in l_{i}, such that the size of the largest-area polygon QQ with corners at PP is as small as possible among all choices of PP, and we extend the approach from Section 5. Again, we first solve the problem for the special case where lll_{l} and lrl_{r} are single points. Then in Section 6.2.2 we extend the solution to the general case.

6.2.1 Single points as the extreme regions

For the MinMaxArea problem, when the leftmost and rightmost line segments are fixed points, the solution of MinMaxArea with at most kk vertices cannot have an area smaller than the area of the largest at most kk-gon which is inscribed in the convex body region, since moving the vertices of the solution among their line segments can only increase the area.

Similar to the case k=3k=3, in this case also the solution is always a true convex polygon.121212Note that a zero area solution can only occur when the convex body region has zero area. As said before, this case can be distinguished in linear time [18]..

Thus, the algorithm presented by Boyce et al. [8] can be applied to find the largest inscribed kk-gon in the convex body region. This algorithm runs in O(kn+nlogn)O(kn+n\log n) time. If the convex body region has m<km<k vertices, clearly it is not possible to minimize the size of this mm-gon any more, and thus the convex body region is the smallest largest-area polygon with at most kk vertices.

Theorem 9.

Let LL be a set of nn imprecise points modeled as parallel line segments, where the leftmost and rightmost line segments are points. The solution of the problem MinMaxArea for a convex polygon with at most kk vertices can be found in O(kn+nlogn)O(kn+n\log n) time.

6.2.2 Line segments as the extreme regions

As we saw in Figure 15(a), if the leftmost and rightmost line segments are not single points, then the convex hull of the top chain and bottom chain (without using the endpoints of the extreme line segments) is not necessarily a true convex hull. We called this convex polygon δ\delta. Assume the convex body region has non-zero area. First suppose the optimal solution is inscribed in δ\delta. If there are no kk different vertices on δ\delta, then the largest-area true convex hull which is constructed on all the vertices is the smallest largest convex polygon with at most kk vertices, as we cannot shrink its area anymore. In this case, the dynamic program algorithm which is presented in Section 6.1.1 will find the optimal solution in O(kn3)O(kn^{3}) time.

Now we consider the case where the extreme line segments can share a vertex on the optimal solution. It is easy to observe that the method presented for the case k=3k=3 costs O(nk1logn)O(n^{k-1}\log n) time for general values of kk. We design a dynamic programming algorithm that can solve the problem in O(n8logn)O(n^{8}\log n) time.

We start the description of the algorithm by a definition. We say a convex chain CC is a supporting chain of a convex polygon PP, where CC is an ordered subset of the vertices of PP in counterclockwise direction, and the line passes through the endpoints of CC supporting the polygon PCP\setminus C on the convex side of CC (see Figure 20).

Refer to caption
Figure 20: Chain C=pipjpkC=p_{i}p_{j}p_{k} supports polygon P=p1,p2,,pnP=p_{1},p_{2},...,p_{n}, where the line pipkp_{i}p_{k} supports the convex polygon p1,,pi1pipkpl,,pnp_{1},...,p_{i-1}p_{i}p_{k}p_{l},...,p_{n} on the convex side of CC.

First suppose the optimal solution selects only one vertex at an extreme line segment, e.g., the rightmost line segment; the other case is similar. Then it suffices to find the largest triangle to the right of a clockwise convex chain CC consisting of three line segments, such that CC supports the largest-area convex polygon with at most k1k-1 vertices at the convex side of CC (see Figure 20).

Indeed for any kk we look for a counterclockwise chain CC with three line segments 131313In our dynamic program, we also consider the case where only one or two line segments exist on the convex chain, since the solution might includes only one triangle. which supports the largest-area polygon with at most k1k-1 vertices to the left of CC. For each chain CC, the optimal position of the at most kk-th vertex of the optimal convex polygon which is supported by CC should be computed. Thus we write our dynamic programming according to this observation. Let pj{p_{j}} be the optimal position of the candidate point at the rightmost line segment. For a counterclockwise ordered set of vertices pi1,pi,pkp_{i-1},p_{i},p_{k} and plp_{l}, where pi1plp_{i-1}\neq p_{l} we define the array A[pi1,pi,pk,pl,m1]A[p_{i-1},p_{i},p_{k},p_{l},m-1] which denotes the largest-area convex polygon with at most m1m-1 vertices, which is supported by the convex chain pi1pipkplp_{i-1}p_{i}p_{k}p_{l}, where pkp_{k} is the rightmost vertex of the chain.

A[pi1,pi,pj,pk,m]=max(A[pi1,pi,pk,pl,m1]+area(pipjpk),area(pi1pjpl))A[p_{i-1},p_{i},p_{j},p_{k},m^{\prime}]=max(A[p_{i-1},p_{i},p_{k},p_{l},m-1]+area(p_{i}p_{j}p_{k}),area(p_{i-1}p_{j}p_{l}))

Note that for any pi1,pi,pkp_{i-1},p_{i},p_{k} and plp_{l} we know that they are at the lower endpoints or upper endpoint of their corresponding line segments, since they are the vertices of the top and bottom chain. When the convex body region has non-zero area, the above equation considers the correct solution which consists of at least a triangle.

Obviously the above equation can be evaluated in O(mn4)O(mn^{4}) time. The vertex pjp_{j} can be computed in constant time for fixed pip_{i} and pkp_{k}. The triangle pi1pjplp_{i-1}p_{j}p_{l} should also be evaluated separately while the triangle pi1pjplp_{i-1}p_{j}p_{l} may cover the convex chain. In this case m=3m^{\prime}=3, otherwise m=mm^{\prime}=m.

Refer to caption
Figure 21: (a) The smallest largest-area at most kk-gon is located below the line segment connecting the extreme segments. The quadrilateral papdprplp_{a}p_{d}p_{r}p_{l} has a common edge papdp_{a}p_{d} with convex chain pcpdpapbp_{c}p_{d}p_{a}p_{b}. (b) Two convex chains pcpdphpgp_{c}p_{d}p_{h}p_{g} and pfpepapbp_{f}p_{e}p_{a}p_{b} are supporting the smallest largest-area convex polygon with at most k2k-2 vertices.

In the case where the optimal solution can select its vertices at both of the leftmost and the rightmost line segments, two different cases should be considered:

  • The case where the candidate points of the leftmost and the rightmost line segments are directly connected together via a line segment s1s_{1}, in which case the optimal solution is located above or below s1s_{1}. An example is illustrated in Figure 21(a). Consider a quadrilateral QQ with edge s1s_{1}. Let s2s_{2} be the opposite side of s1s_{1}. In this case, we should consider all the convex chains which support a largest-area convex polygon with at most k2k-2 vertices, and have an edge coinciding with s2s_{2}. We selected two vertices of QQ on the leftmost and rightmost line segments so that we minimize the area of all possible quadrilaterals QQ on different convex chains.

  • The case where the candidate points at the leftmost and rightmost line segment are not directly connected together. Thus we should consider two convex chains which are supporting a largest-area convex polygon with at most k2k-2 vertices from two sides top and bottom, and find the two other vertices at the leftmost and rightmost line segments so that this selection minimizes the area of the convex polygon with at most kk vertices. An example is illustrated in Figure 21(b).

We handle these cases separately. First suppose the optimal solution is located below the line segment plprp_{l}p_{r} which is connecting the leftmost and the rightmost line segment, as illustrated in Figure 21(a). Note that the optimal position of the vertices at the extreme line segments should be computed by considering all the largest-area at most k2k-2-gons that might be constructed on both sides of plprp_{l}p_{r}.

We start by computing a set of surfaces, such that each surface is constructed on a line segment pdpap_{d}p_{a}, which determines by connecting the endpoints of the convex chain papbpcpdp_{a}p_{b}...p_{c}p_{d}, which supports the smallest largest-area polygon with at most k2k-2 vertices, as illustrated in Figure 21(a). This convex chain starts at the line segments papbp_{a}p_{b} and ends at another line segment pcpdp_{c}p_{d} in counterclockwise direction. After computing all such surfaces, we draw all of them as an area function of the positions of the vertices of plp_{l} and prp_{r} (leftmost and rightmost vertices, respectively), such that the lowest vertex in the lower envelope of the surfaces will determine the optimal position of the vertices on the leftmost and the rightmost line segments.

As said above, we also consider all the possible surfaces which can be constructed on some convex chains above plprp_{l}p_{r}, e.g., phpgpfpep_{h}p_{g}...p_{f}p_{e}. In this case, the lowest vertex of the upper envelope can be computed in O(n4logn)O(n^{4}\log n) time. It is easy to observe that the computed solution is always true, since all the considered vertices below the line segment plprp_{l}p_{r} are located at distinct line segments.

In the case where the extreme line segments are not connected directly, the optimal position of the vertices at the extreme line segments can be determined by computing all surfaces corresponding to convex polygons with at most k2k-2 vertices, which are supported by two convex chains from left and right, as illustrated in Figure 21(b). It is easy to observe that in this case the lowest vertex of the upper envelope of the surfaces can be computed in O(kn8logn)O(kn^{8}\log n) time. Note that in the extra O(k)O(k) time cost we check whether the vertices of any potential solution are located at different line segments, and thus the computed solution is always a true convex polygon.

Theorem 10.

Let LL be a set of nn imprecise points modeled as parallel line segments. The solution to the problem MinMaxArea for a convex polygon with at most kk vertices can be found in O(kn8logn)O(kn^{8}\log n) time.

7 Conclusions and open problems

In this paper we studied smallest and largest triangles on a set of points, a classical problem in computational geometry, in the presence of uncertainty. Many open problems still remain, even aside from the obvious question of whether our algorithms have optimal running times. The choice of parallel line segments as the imprecision regions already leads to a rich theory which will serve as a first step towards solving the problem for more general models of uncertainty. It is unclear to what extent our results generalize; It is conceivable that some technique (e.g. based on convex hulls) do while others (e.g. based on dynamic programming) do not. One intriguing open question concerns the MaxMinArea problem, where the question is to find kk points on distinct regions, such that the selected vertices maximizes the size of the area of the kk-gon. We conjecture that this problem is NP-hard even in a discrete model of imprecision (in which each region is a finite set of points).

Acknowledgments

This work was partially supported by the Netherlands Organization for Scientific Research (NWO) under project no. 614.001.504.

References

  • [1] P. K. Agarwal, S. Har-Peled, S. Suri, H. Yıldız, and W. Zhang. Convex hulls under uncertainty. In European Symposium on Algorithms, pages 37–48. Springer, 2014.
  • [2] A. Aggarwal, H. Imai, N. Katoh, and S. Suri. Finding kk points with minimum diameter and related problems. J. of algorithms, 12(1):38–56, 1991.
  • [3] A. Aggarwal, M. Klawe, S. Moran, P. Shor, and R. Wilber. Geometric applications of a matrix searching algorithm. In 2th Annual Symposium on Computational Geometry, pages 285–292. ACM, 1986.
  • [4] H.-K. Ahn, S.-S. Kim, C. Knauer, L. Schlipf, C.-S. Shin, and A. Vigneron. Covering and piercing disks with two centers. Computational Geometry, 46(3):253 – 262, 2013.
  • [5] E. M. Arkin, C. Dieckmann, C. Knauer, J. S. Mitchell, V. Polishchuk, L. Schlipf, and S. Yang. Convex transversals. In Workshop on Algorithms and Data Structures, pages 49–60. Springer, 2011.
  • [6] M. Atallah and C. Bajaj. Efficient algorithms for common transversals. Information Processing Letters, 25(2):87–91, 1987.
  • [7] D. Avis and D. Rappaport. Computing the largest empty convex subset of a set of points. In 1th annual symposium on Computational geometry, pages 161–167. ACM, 1985.
  • [8] J. E. Boyce, D. P. Dobkin, R. L. S. Drysdale, and L. J. Guibas. Finding extremal polygons. SIAM J. on Computing, 14(1):134–147, 1985.
  • [9] S. Chandran and D. M. Mount. A parallel algorithm for enclosed and enclosing triangles. International J. of Computational Geometry & Applications, 02(02):191–214, 1992.
  • [10] O. Daescu, W. Ju, and J. Luo. Np-completeness of spreading colored points. Combinatorial Optimization and Applications, pages 41–50, 2010.
  • [11] O. Daescu, J. Luo, and D. M. Mount. Proximity problems on line segments spanned by points. Computational Geometry, 33(3):115–129, 2006.
  • [12] J. M. Díaz-Báñez, M. Korman, P. Pérez-Lantero, A. Pilz, C. Seara, and R. I. Silveira. New results on stabbing segments with a polygon. Computational Geometry, 48(1):14–29, 2015.
  • [13] D. P. Dobkin, R. Drysdale, and L. J. Guibas. Finding smallest polygons. Computational Geometry, 1:181–214, 1983.
  • [14] D. P. Dobkin, H. Edelsbrunner, and M. H. Overmars. Searching for empty convex polygons. Algorithmica, 5(1-4):561–571, 1990.
  • [15] D. P. Dobkin and L. Snyder. On a general method for maximizing and minimizing among certain geometric problems. In 20th Annual Symposium on Foundations of Computer Science, 1979.
  • [16] R. L. S. Drysdale and J. W. Jaromczyk. A note on lower bounds for the maximum area and maximum perimeter kk-gon problems. Information Processing Letters, 32(6):301–303, 1989.
  • [17] R. S. Drysdale and A. Mukhopadhyay. An o(nlogn)o(n\log n) algorithm for the all-farthest-segments problem for a planar set of points. Information Processing Letters, 105(2):47–51, 2008.
  • [18] H. Edelsbrunner. Finding transversals for sets of simple geometric figures. Theoretical Computer Science, 35:55–69, 1985.
  • [19] H. Edelsbrunner and L. J. Guibas. Topologically sweeping an arrangement. Journal of Computer and System Sciences, 38(1):165 – 194, 1989.
  • [20] H. Edelsbrunner, J. O’Rourke, and R. Seidel. Constructing arrangements of lines and hyperplanes with applications. SIAM J. on Computing, 15(2):341–363, 1986.
  • [21] D. Eppstein. New algorithms for minimum area k-gons. In Proceedings of the third annual ACM-SIAM symposium on Discrete algorithms, pages 83–88. Society for Industrial and Applied Mathematics, 1992.
  • [22] R. Fleischer, K. Mehlhorn, G. Rote, E. Welzl, and C. Yap. Simultaneous inner and outer approximation of shapes. Algorithmica, 8(1-6):365–389, Dec. 1992.
  • [23] M. T. Goodrich and J. S. Snoeyink. Stabbing parallel segments with a convex polygon. Computer Vision, Graphics, and Image Processing, 49(2):152–170, 1990.
  • [24] C. Gray, M. Löffler, and R. I. Silveira. Smoothing imprecise 1.5d terrains. International Journal of Computational Geometry and Applications, 20(4):381–414, 2010.
  • [25] K. Jin. Maximal Area Triangles in a Convex Polygon. ArXiv e-prints, July 2017.
  • [26] A. Jørgensen, M. Löffler, and J. Phillips. Geometric computations on indecisive points. In 12th Algorithms and Data Structures Symposium, LNCS 6844, pages 536–547, 2011.
  • [27] W. Ju, J. Luo, B. Zhu, and O. Daescu. Largest area convex hull of imprecise data based on axis-aligned squares. J. of Combinatorial Optimization, 26(4):832–859, 2013.
  • [28] Y. Kallus. A linear-time algorithm for the maximum-area inscribed triangle in a convex polygon. ArXiv e-prints, June 2017.
  • [29] V. Keikha, M. Löffler, A. Mohades, J. Urhausen, and I. van der Hoog. Maximum-area triangle in a convex polygon, revisited. CoRR, abs/1705.11035, 2017.
  • [30] V. Keikha, M. van de Kerkhof, M. van Kreveld, I. Kostitsyna, M. Löffler, F. Staals, J. Urhausen, Y. Vermulen, and L. Wiratma. Convex partial transversals of planar regions. ArXiv e-prints., July 2017.
  • [31] H. Kruger and M. Löffler. Geometric measures on imprecise points in higher dimensions. In 25th European Workshop on Computational Geometry, pages 121–124, 2009.
  • [32] M. Löffler. Data imprecision in computational geometry. PhD thesis, Utrecht Univesity, 2009.
  • [33] M. Löffler and M. van Kreveld. Largest and smallest convex hulls for imprecise points. Algorithmica, 56(2):235–269, 2010.
  • [34] M. Löffler and M. van Kreveld. Largest bounding box, smallest diameter, and related problems on imprecise points. Computational Geometry, 43(4):419–433, 2010.
  • [35] A. Mukhopadhyay, S. Chatterjee, and B. Lafreniere. On the all-farthest-segments problem for a planar set of points. Information processing letters, 100(3):120–123, 2006.
  • [36] A. Mukhopadhyay and S. C. Panigrahi. All-maximum and all-minimum problems under some measures. J. of Discrete Algorithms, 21:18–31, 2013.
  • [37] Y. Myers and L. Joskowicz. Uncertain geometry with dependencies. In 14th ACM Symposium on Solid and Physical Modeling, SPM ’10, pages 159–164, 2010.
  • [38] T. Nagai and N. Tokura. Tight error bounds of geometric problems on convex objects with imprecise coordinates. In Japanese Conference on Discrete and Computational Geometry, LNCS 2098, pages 252–263, 2000.
  • [39] M. Overmars. Finding sets of points without empty convex 6-gons. Discrete & Computational Geometry, 29(1):153–158, 2003.
  • [40] M. H. Overmars. Finding minimum area k-gons, volume 89. Unknown Publisher, 1989.
  • [41] F. P. Preparata and M. I. Shamos. Computational geometry: An introduction (monographs in computer science). Springer, 1:2, 1985.
  • [42] D. Salesin, J. Stolfi, and L. Guibas. Epsilon geometry: Building robust algorithms from imprecise computations. In 5th Annual Symposium on Computational Geometry, 1989.
  • [43] M. I. Shamos. Problems in computational geometry. unpublished manuscript, 1975.
  • [44] F. Sheikhi, A. Mohades, M. de Berg, and A. D. Mehrabi. Separability of imprecise points. Computational Geometry, 61:24–37, 2017.
  • [45] S. Suri, K. Verbeek, and H. Yıldız. On the most likely convex hull of uncertain points. In European Symposium on Algorithms, pages 791–802. Springer, 2013.
  • [46] T. Tasdizen and R. Whitaker. Feature preserving variational smoothing of terrain data. In 2th IEEE Workshop on Variational, Geometric and Level Set Methods in Computer, 2003.