Approximating the Maximum Overlap of Polygons under Translation111Work on this paper was partially supported by NSF AF awards CCF-0915984 and CCF-1217462.
Let and be two simple polygons in the plane of total complexity , each of which can be decomposed into at most convex parts. We present an -approximation algorithm, for finding the translation of , which maximizes its area of overlap with . Our algorithm runs in time, where is a constant that depends only on and .
This suggest that for polygons that are “close” to being convex, the problem can be solved (approximately), in near linear time.
Shape matching is an important problem in databases, robotics, visualization and many other fields. Given two shapes, we want to find how similar (or dissimilar) they are. Typical problems include matching point sets by the Hausdorff distance metric, or matching polygons by the Hausdorff or Fréchet distance between their boundaries. See the survey by Alt and Guibas [AG00].
The maximum area of overlap is one possible measure for shape matching that is not significantly effected by noise. Mount et al. [MSW96] studied the behavior of the area of overlap function, when one simple polygon is translated over another simple polygon. They showed that the function is continuous and piece-wise polynomial of degree at most two. If the polygons and have complexity and , respectively, the area of overlap function can have complexity of . Known algorithms to find the maximum of the function work by constructing the entire overlap function. It is also known that the problem is 3SUM-Hard [BH01b], that is, it is believed no subquadratic time algorithm is possible for the problem.
Approximating maximum overlap of general polygons.
Cheong et al. [CEH07] gave a -approximation algorithm for maximizing the area of overlap under translation of one simple polygon over the other using random sampling techniques. However, the error associated with the algorithm is additive, and the algorithm runs in near quadratic time. Specifically, the error is an fraction of the area of the smaller of the two polygons. Under rigid motions, the running time deteriorates to being near cubic. More recently, Cheng and Lam [CL13] improved the running times, and can also handle rigid motions, and present a near linear time approximation algorithm if one of the polygons is convex.
Maximum overlap in the convex case under translations.
de Berg et al. [dBCD98] showed that finding maximum overlap translation is relatively easier in case of convex polygons. Specifically, the overlap function in this case is unimodal (as a consequence of the Brunn-Minkowski Theorem). Using this property, they gave a near linear time exact algorithm for computing the translation that maximizes the area of overlap of two convex polygons. The complexity of the graph of the overlap function is only in this case. Alt et al. [AFRW98] gave a constant-factor approximation for the minimum area of the symmetric difference of two convex polygons.
Approximating maximum overlap in the convex case.
As for -approximation, assuming that the two polygons are provided in an appropriate form (i.e., the vertices are in an array in their order along the boundary of the polygon), then one can get a sub-linear time approximation algorithm. Specifically, Ahn et al. [ACP07] show an -approximation algorithm, with running time for the case of translation, and for the case of rigid motions. (For a result using similar ideas in higher dimensions see the work by Chazelle et al. [CLM05].)
Overlap of union of balls.
de Berg et al. [dBCG04] considered the case where and are disjoint unions of and unit disks, with . They computed a approximation for the maximal area of overlap of and under translations in time . Cheong et al. [CEH07] gave an additive error -approximation algorithm for this case, with near linear running time.
Other relevant results.
Avis et al. [ABT96] computes the overlap of a polytope and a translated hyperplane in linear time, if the polytope is represented by a lattice of its faces. Vigneron [Vig14] presented -approximation algorithms for maximum overlap of polyhedra (in constant dimension) that runs in polynomial time. Ahn et al. [ACKY14] approximates the maximum overlap of two convex polytopes in three dimensions under rigid motions. Ahn et al. [ACR13] approximates the maximum overlap of two polytopes in under translation in time.
As the above indicates, there is a big gap between the algorithms known for the convex and non-convex case. Our work aims to bridge this gap, showing that for “close” to convex polygons, under translation, the problem can be solved approximately in near linear time.
Specifically, assume we are given two polygons and of total complexity , such that they can be decomposed into convex parts, we show that one can -approximate the translation of , which maximizes its area of overlap with , in linear time (for and constants). The translation returned has overlap area which is at least , where is the maximum area of overlap of the given polygons.
We break the two polygons into a minimum number of convex parts. We then approximate the overlap function for each pair of pieces (everywhere). This is required as one cannot just approximate the two polygons (as done by Ahn et al. [ACP07]) since the optimal solution does not realize the maximum overlap of each pair of parts separately, and the alignment of each pair of parts might be arbitrary.
To this end, if the two convex parts are of completely different sizes, we approximate the smaller part, and approximate the overlap function by taking slices (i.e., level sets) of the overlap function. In the other case, where the two parts are “large”, which is intuitively easier, we can approximate both convex parts, and then the overlap function has constant complexity. Finally, we overlap all these functions together, argue that the overlap has low complexity, and find the maximum area of overlap.
Why the “naive” solution fails?
The naive solution to our problem is to break the two polygons into convex polygons, and then apply to each pair of them the approximation of Ahn et al. [ACP07]. Now, just treat the input polygon as the union of their respective approximations, and solve problem using brute force approach. This fails miserably as the approximation of Ahn et al. [ACP07] captures only the maximum overlap of the two polygons. It does not, and can not, approximates the overlap if two convex polygons are translated such that their overlap is “far” from the maximum configuration, especially if the two polygons are of different sizes. This issue is demonstrated in more detail in the beginning of Section 4.1. A more detailed counterexample is presented in Appendix B.
We start in Section 2 by defining formally the problem, and review some needed results. In Section 3, we build some necessary tools. Specifically, we start in Section 3.1 by observing that one can get approximation of a convex polygon, where the error is an -fraction of the width of the polygon. In Section 3.2, we show how to compute a level set of the overlap function of two convex polygons efficiently. In Section 3.3, we show that, surprisingly, the polygon formed by the maximum overlap of two convex polygons, contains (up to scaling by a small constant and translation) the intersection of any translation of these two convex polygons. Among other things this implies an easy linear time constant factor approximation for the maximum overlap (which also follows, of course, by the result of Ahn et al. [ACP07]). In Section 4, we present the technical main contribution of this paper, showing how to approximate, by a compact representation that has roughly linear complexity, the area overlap function of two convex polygons. In Section 5 we put everything together and present our approximation algorithm for the non-convex case.
For any vector and a set , let denote the translation of by ; formally, . Also let , which is the area of overlap of sets and . We are interested in the following problem.
We are given two polygons and in the plane, such that each can be decomposed into at most convex polygons. The task is to compute the translation of , which maximizes the area of overlap between and . Specifically our purpose is to approximate the quantity
For a polygon , let denote the number of vertices of . For , the set is contained under translation in , denoted by , if there exists such that .
A function is unimodal, if there is a value , such that is monotonically increasing (formally, non-decreasing) in the range , and is monotonically decreasing (formally, non-increasing) in the interval .
From width to inner radius.
For a convex polygon , the width of , denoted by , is the minimum distance between two parallel lines that enclose .
For a convex shape in the plane, we have that the largest disk enclosed inside , has radius at least .
Convex Decomposition of Simple Polygons.
A vertex of a polygon is a notch if the internal angle at this vertex is reflex (i.e. ). For a non-convex polygon with vertices and notches, Keil and Snoeyink [KS02] solves the minimal convex decomposition problem in time, that is, they compute a decomposition of into minimum number of convex polygons. Observe, that if the number of components in the minimum convex decomposition is , the number of notches is upper bounded by .
Scaling similarity between polygons.
For two convex polygons and , let us define their scaling similarity, denoted by , as the minimum number , such that . Using low-dimensional linear programming, one can compute in linear time. In particular, the work by Sharir and Toledo [ST94] implies the following.
Given two convex polygons and of total complexity , one can compute, in linear time, , and the translation that realizes it.
3 Building blocks
3.1 A better convex approximation in the plane
Let be the minimum volume bounding box of some bounded convex set . We have that [Har11], for some vector and a constant which depends only on the dimension . This approximation can be computed in time [BH01a], where is the number of vertices of the convex-hull of . The more powerful result showing that a convex body can be approximated by an ellipsoid (up to a scaling factor of ), is known as John’s Theorem [Har11].
We need the following variant of the algorithm of Barequet and Har-Peled [BH01a].
Given a convex polygon in the plane, with vertices, one can compute, in linear time, a rectangle and a point , such that .
This is all well known, and we include the details for the sake of completeness. Using rotating caliper [Tou83] compute the two vertices and of realizing its diameter. Let be the vertex of furthest away from , Consider the rectangle having its base on , having half the height of , and contained inside this triangle. Now, let be the center of , and set , see figure on the right. It is now easy to verify that the claim holds with and .
Given two bodies and a non-singular affine transformation , we have .
Given a convex polygon , and a parameter , we can compute, in time, a convex polygon with vertices, such that (i) , and (ii) for any point , its distance from is at most , where is the width of .
3.2 The level set of the area of overlap function
The superlevel set of a function , for a value is the set We will refer to it as the -slice of .
Given two convex polygons and , the slice is convex, and has complexity , where . Furthermore, given a point , the convex body can be computed in time.
Along any line, the function is unimodal [dBCD98]. This directly implies that on any segment joining two points of the boundary of an -slice, the function will have values greater than , and hence, it will lie inside the -slice. Therefore, is convex.
As one translates over , as long as the same pairs of edges intersect, the function governing the overlap function will remain the same quadratic polynomial – the function changes form whenever a vertex is being swept over.
Now, consider an edge of and an edge of . All the translations for which intersects map out a parallelogram , which has edges parallel to and . The edges of these parallelograms correspond to translations, where some vertex of lies on an edge of , or vice versa, and the vertices correspond to those translations where some vertex of coincides with some vertex of .
So, consider the arrangement of all lines passing through the edges of these parallelograms – it is defined by lines, and as such has complexity overall. By convexity, the boundary intersects every line at most twice, and hence the curve visits at most faces of this arrangement (we count a visit to the same face with multiplicity). Thus, can be broken into arcs, each one of them of constant descriptive complexity (i.e., its the boundary of a slice of a quadratic function, between intersection points of this curve with two lines).
As for the algorithm, set , and compute the overlap function value at by sweeping the two polygons, computing their intersection polygon, and then computing the vertical decomposition of this intersection polygon. It is easy to verify, that the overlap function is a quadratic function of , and its the sum of the areas of the vertical trapezoids, each one of them can be decomposed into two triangles, and the coordinates of the vertices of each triangle are affine function of . As such, the area of each triangle is a quadratic function, and adding them up give us the formula for the area of the whole overlap polygon. Now, as moves, every time the vertical decomposition changes as a vertex of one polygon is swept over by the boundary of the other polygon, this corresponds to a local change in the vertical decomposition of the overlap polygon, and the overlap function can be changed in constant time. Thus, starting from , we move up, updating the overlap function as necessary till we reach a point, where the overlap function has value . At that point, we trace out the outer zone of – since this zone is defined by rays, this zone has complexity (note, that the exact bound on the worst case complexity of the faces of the zone inside a convex region is still open, and it is between and , where is the inverse Ackerman function). Specifically, we are walking on the arrangement of starting on a point on a line that is on , go clockwise on the edges of the face till we encounter again, move to the next face at this point, and repeat. To perform this, we need an efficient data-structure for doing a walk in a planar arrangement [Har00] – in this case since this is an arrangement of lines, we can use a data-structure for dynamic maintenance of convex-hull. In particular, Brodal and Jacob presented a data-structure [BJ02] that supports this kind of operations in amortized time per update. As such, computing takes time overall.
3.3 The shape of the polygon realizing the maximum area overlap
In the following, all the ellipses being considered are centered in the origin.
Given two ellipses and , the translation which maximizes their area of overlap is the one in which their centers are the same points.
Translate and such that their centers are at the origin. Consider any unit vector , translate along the direction of , and consider the behavior of the overlap function , where varies from to . The function is unimodal [dBCD98]. By symmetry, we have
as . If the maximum is attained at , we will get another maximum at , which implies, as unimodal, that , as desired.
Consider two ellipses and in the plane, and consider any two vectors and , then there is a vector such that .
For the sake of simplicity of exposition, assume that . Now, consider the intersection , and let be the largest area ellipse contained inside . John’s theorem implies that there is a translation vector , such that , see Figure 3.2.
Observe that , and by the symmetry of and , we have that . This by convexity implies that . A similar argument implies that . As such, .
Thus, we have that , as desired.
Lemma ([Har11, Lemma 22.5]).
Any convex set contained in a unit square, contains a ball of radius
The following lemma is one of our key insights – the maximum area of intersection of two polygons contains any intersection of translated copies of these polygons up to translation and a constant factor scaling.
Let and be two convex polygons, and let be the polygon realizing their maximum area of intersection under translation. Let be any vector in the plane, and consider the polygon , then there exists a vector such that, , for some fixed constant .
Let (resp., ) denote the maximum area ellipse (centered at the origin) contained inside (resp. ). By John’s Theorem, we have and , where are some vector. Let , and let be the maximum area ellipse contained inside . Observe that is symmetric and centered at the origin, and by John’s theorem .
By Lemma 3.3, there are vectors and , such that
Applying a similar argument, we have that , for some vector .
Apply the linear transformation that maps to , where denotes the disk of radius centered at the origin. By Observation 3.1, we can continue our discussion in the transformed coordinates. This implies that (which is contained inside a unit square). By Lemma 3.3, there is a vector , such that .
Observe that . As such, the area of must be smaller than the area of (by the definition of ). We thus have which is a constant bounded away from zero. Therefore,
which implies the claim.
3.3.1 Constant approximation to the maximum overlap
Let and be two convex polygons, and let be the polygon realizing their maximum area intersection under translation. Then, one can compute, in time, a rectangle , such that , where is a constant. That is, one can compute a constant factor approximation to the maximum area overlap in linear time.
Furthermore, for any translation , we have that .
We are going to implement the algorithmic proof of Lemma 3.3. Instead of John’s ellipsoid we use the rectangle of Lemma 3.1. Clearly, the proof of Lemma 3.3 goes through with the constants being somewhat worse. Specifically, we compute, in linear time, vectors , and rectangles , such that and . Again, compute a rectangle , such that . Arguing as in Lemma 3.3, and setting , for some constant , is the desired rectangle.
4 Approximating the overlap function of convex polygons
Given two convex polygons and in the plane, of total complexity , and parameters , , , a function is -approximation of , if the following conditions hold:
, we have
There are convex polygons , each of maximum complexity , such that inside every face of the arrangement , the approximation function is the same quadratic function.
That is, the total descriptive complexity of is the complexity of the arrangement .
4.1 If one polygon is smaller than the other
Assume, without loss of generality, that is smaller than , that is, can be translated so that it is entirely contained inside (i.e., , see Lemma 2). The maximum area of overlap is now equal to . The challenge is, that for any approximation of , we can always have a sufficiently small which can be placed in , as shown in the figure on the right. Therefore for all those translations for which is placed inside , our approximation will show zero overlap, even though the actual overlap is .
To get around this problem, we will first approximate the smaller polygon , using our approximation scheme, to get polygon , then we will compute level sets of the overlap function and use them to approximate it.
Given convex polygons and , such that , and parameter , and let be the approximation to , as computed by Algorithm 4. Then, we have, for all translations , that
Consider the overlap of and . Lemma 3.3.1 implies that any intersection polygon of and can be contained (via translation) in (which is a translation of the square ). Clearly, in this case, and can both be translated to be contained in this square, both contain a disk of constant radius, the maximum distance between and is , and the total area of is , as the perimeter of . Thus, setting to be sufficiently large, implies that , as . This implies that which implies the claims by applying to both sides.
Therefore, is a good approximation for . However, has complexity [dBCD98], in the worst case, which is still too high.
Given two convex polygons and , of total complexity , and a parameter , such that , then one can construct in time, a -approximation to .
There is a translation of such that it is contained completely in . Approximate from the outside by a rectangle , using Lemma 3.1. Next, spread a grid in by partitioning each of its edges into equal length intervals. Let be the set of points of the grid that are in . It is easy to verify, that for any convex body and a translation , we have
Namely, to approximate the overlap area for , we need to count the number of points of that it covers. To this end, for each point , we generate a rotated and translated copy of , denoted by , such that if and only if .
Clearly, the generated set of polygons is the desired -approximation to .
The time to build this approximation is .
We next describe a slightly slower algorithm that generates a slightly better approximation.
Given two convex polygons and , of total complexity , and a parameter , such that , then one can construct in time, a -approximation to .
We compute , as above with approximation parameter . Next, using the algorithm of [dBCD98], we compute in time, where .
We approximate the function by constructing the -slices, where , for , where . To this end, we deploy the algorithm of Lemma 3.2 for each slice, which takes time, where .
Let us denote the th region constructed, by , that is, is a convex figure whose boundary corresponds to all translations such that . Clearly, lies entirely within . Given the description of ’s, for any translation , we define
It is now straightforward to verify this is the desired approximation. Indeed, for , we have by Lemma 4.1, that
as desired. Similarly, if then , and
Clearly, this function is defined by an onion like set of polygons, and the maximum complexity of these polygons is .
The overall running time is dominated by computing the slices, which takes overall time.
4.2 If the two polygons are incomparable
The more interesting case, is when the maximum intersection of and is significantly smaller than both polygons; that is, and . Surprisingly, in this case, we can approximate both polygons simultaneously.
Given convex polygons and , such that and , then the widths of and , as computed by Algorithm 4, are bounded by .
Let and . By Lemma 2, we have that and .
So, assume for the sake of contradiction, that . This implies that contains a disk of radius , which in turn contains the unit square. In particular, let , if , then is contained in a disk of radius , implies that , a contradiction.
Otherwise, if then there is a translation of such that its intersection with has length (indeed, consider the segment realizing the diameter of , and translate it so its middle point is in the center of the disk of radius inside ). But then, this intersection is not contained in under any translation, which contradicts Lemma 3.3.1.
The case is handled in a similar fashion.
Given two convex polygons and , of total complexity , and a parameter , such that and , then one can construct in time, a -approximation to .
Use Algorithm 4 to compute and , both of complexity . We set . [dBCD98] describes how to describe the function as an arrangement of polygons, each of complexity or . Thus, this result in the desired approximation, that has total complexity , and that can be computed in time.
In the following, we use the notation of Algorithm 4: and , , and .
Lemma 3.3.1 implies that any intersection polygon of and can be contained in . The error due to approximation of , is . The part of this error that can contribute to the area of overlap, is bounded by portion of , which can be included inside .
The length of the boundary of , which can be placed inside , is bounded by the perimeter of . Also, our approximation scheme (Lemma 3.1) ensures that the distance between and (along the direction of shortest diameter) is bounded by , where is a chosen parameter. Consider any fixed – for the sake of simplicity of exposition, we assume the intersection as being inside the square (if not, we can translate so this assumption holds). As , and for sufficiently large constant, the error due to the approximation of is bounded by
since . By applying to the above, we get that for any translation , it holds
4.2.1 The result.
Given two convex polygons and , of total complexity , and a parameter , one can construct in time, a -approximation to .
5 Approximating the Maximum Overlap of Polygons
The input is two polygons and in the plane, of total complexity , each of them can be decomposed into at most convex polygons. Our purpose is to find the translation that maximizes the area of overlap.
We decompose the polygons and into minimum number of interior disjoint convex polygons [KS02], in time (some of these convex polygons can be empty). Then, for every pair , , we compute an -approximation to the overlap function of and , using Lemma 4.2.1, where .
Next, as each function is defined by an arrangement defined by polygons, we overlay all these arrangements together, and compute for each face of the arrangement the function . Inside such a face this function is the same, and it is a quadratic function. We then find the global maximum of this function, and return it as the desired approximation.
Analysis – Quality of approximation.
For any translation , we have that
Analysis – Running time.
Computing each of the approximation function, takes time. Each one of them is a -approximation, which means that the final arrangement is the overlay of convex polygons, each of complexity . In particular, any pair of such polygons can have at most intersection points, and thus the overall complexity of the arrangement of these polygons is Computing this arrangement can be done by a standard sweeping algorithm. Observing that every vertical line crosses only segments, imply that the sweeping can be done in time per operation, which implies that the overall running time is
Given two simple polygons and of total complexity , one can compute a translation which -approximates the maximum area of overlap of and . The time required is where , where is the minimum number of convex polygons in the decomposition of and .
More specifically, one gets a data-structure, such that for any query translation , one can compute, in time, an approximation , such that , where is the maximum area of overlap between and .
Note, that our analysis is far from tight. Specifically, for the sake of simplicity of exposition, it is loose in several places as far as the dependency on and .
The authors would like to thank the anonymous referees for their insightful comments. In particular, the improved construction of Lemma 4.1 was suggested by an anonymous referee.
- [ABT96] D. Avis, P. Bose, G. T. Toussaint, T. C. Shermer, B. Zhu, and J. Snoeyink. On the sectional area of convex polytopes. In Proc. 12th Annu. Sympos. Comput. Geom. (SoCG), pages 411–412, 1996.
- [ACKY14] H.-K. Ahn, S.-W. Cheng, H. J. Kweon, and J. Yon. Overlap of convex polytopes under rigid motion. Comput. Geom. Theory Appl., 47(1):15–24, 2014.
- [ACP07] H.-K. Ahn, O. Cheong, C.-D. Park, C.-S. Shin, and A. Vigneron. Maximizing the overlap of two planar convex sets under rigid motions. Comput. Geom. Theory Appl., 37(1):3–15, 2007.
- [ACR13] H.-K. Ahn, S.-W. Cheng, and I. Reinbacher. Maximum overlap of convex polytopes under translation. Comput. Geom. Theory Appl., 46(5):552–565, 2013.
- [AFRW98] H. Alt, U. Fuchs, G. Rote, and G. Weber. Matching convex shapes with respect to the symmetric difference. Algorithmica, 21:89–103, 1998.
- [AG00] H. Alt and L. J. Guibas. Discrete geometric shapes: Matching, interpolation, and approximation. In Jörg-Rüdiger Sack and Jorge Urrutia, editors, Handbook of Computational Geometry, pages 121–153. Elsevier, 2000.
- [BH01a] G. Barequet and S. Har-Peled. Efficiently approximating the minimum-volume bounding box of a point set in three dimensions. J. Algorithms, 38:91–109, 2001.
- [BH01b] G. Barequet and S. Har-Peled. Polygon containment and translational min-hausdorff-distance between segment sets are 3sum-hard. Internat. J. Comput. Geom. Appl., 11(4):465–474, 2001.
- [BJ02] G. S. Brodal and R. Jacob. Dynamic planar convex hull. In Proc. 43th Annu. IEEE Sympos. Found. Comput. Sci. (FOCS), pages 617–626, 2002.
- [CEH07] O. Cheong, A. Efrat, and S. Har-Peled. On finding a guard that sees most and a shop that sells most. Discrete Comput. Geom., 37(4):545–563, 2007.
- [CL13] S.-W. Cheng and C.-K. Lam. Shape matching under rigid motion. Comput. Geom. Theory Appl., 46(6):591–603, 2013.
- [CLM05] B. Chazelle, D. Liu, and A. Magen. Sublinear geometric algorithms. SIAM J. Comput., 35(3):627–646, 2005.
- [dBCD98] M. de Berg, O. Cheong, O. Devillers, M. van Kreveld, and M. Teillaud. Computing the maximum overlap of two convex polygons under translations. Theo. Comp. Sci., 31:613–628, 1998.
- [dBCG04] M. de Berg, S. Cabello, P. Giannopoulos, C. Knauer, R. van Oostrum, and R. C. Veltkamp. Maximizing the area of overlap of two unions of disks under rigid motion. In Scandinavian Workshop on Algorithms, volume 3111 of LNCS, pages 138–149, 2004.
- [GK92] P. Gritzmann and V. Klee. Inner and outer -radii of convex bodies in finite-dimensional normed spaces. Discrete Comput. Geom., 7:255–280, 1992.
- [Har00] S. Har-Peled. Taking a walk in a planar arrangement. SIAM J. Comput., 30(4):1341–1367, 2000.
- [Har11] S. Har-Peled. Geometric Approximation Algorithms, volume 173 of Mathematical Surveys and Monographs. Amer. Math. Soc., 2011.
- [KS02] J. M. Keil and J. Snoeyink. On the time bound for convex decomposition of simple polygons. Internat. J. Comput. Geom. Appl., 12(3):181–192, 2002.
- [MSW96] D. M. Mount, R. Silverman, and A. Y. Wu. On the area of overlap of translated polygons. Computer Vision and Image Understanding: CVIU, 64(1):53–61, 1996.
- [ST94] M. Sharir and S. Toledo. Extremal polygon containment problems. Comput. Geom. Theory Appl., 4:99–118, 1994.
- [Tou83] G. T. Toussaint. Solving geometric problems with the rotating calipers. In Proc. IEEE MELECON ’83, pages A10.02/1–4, 1983.
- [Vig14] A. Vigneron. Geometric optimization and sums of algebraic functions. ACM Trans. Algo., 10(1):4:1–4:20, 2014.
Appendix A Proof of Lemma 3.1
The width of is realized by two parallel lines and at a distance of at most from each other. These two lines can be computed in linear time using rotating caliper [Tou83] (and one of them must pass through an edge of ). Similarly, it is easy to compute the two extreme points of in the direction of . Adding the supporting lines to through these points that are orthogonal to , results in a rectangle, that has five vertices of on its boundary, and we mark these vertices. Next, we slice this rectangle by parallel lines into slices of the same width. We mark all the intersections of these lines with . Next, let be the polygon formed by the convex-hull of all the marked points. It is easy to verify that can be computed in linear time.
Clearly, . For any point , consider the two lines and that is contained between them. Consider the projection of into and , denoted by and respectively. If any of these two projections are inside , then we are done, as this portion of is inside , and the distance of projection is at most . Thus, the only remaining possibility is that both projections are outside . But this implies that ’s extreme point in the parallel direction to (or its reverse) must be in ’s slice. In particular, the segment (that includes ) must intersect , and furthermore, since the aforementioned extreme point is a vertex of , it follows that this segments must intersect , implying the claim.
Appendix B Counter example for some natural approaches
“I have not failed. I’ve just found 10,000 ways that won’t work.” –â Thomas Edison
Here we present a counterexample to the natural for our problem: Decompose the two polygons into their convex parts, approximate the parts, and then find the maximum overlap for the two reconstituted polygons.
But any naive piecewise approximation of by pieces will fail, because it creates cavities that might contain the whole overlap. For example, one possible solution for the approximate polygon and the maximum overlap, is depicted in Figure B.1 (D).
In particular, any placement that makes the approximate polygon cover two of the disks of , would fail to cover the third disk of . so, in this case, the best approximation suggested by the reviewer is (roughly) . This can be made to be arbitrarily bad by enlarging .
Another approach that does not work.
Another natural idea is to pick from each pair of polygons and a set of directions such that if you approximate each pair with these directions than the pair overlap is approximated correctly. Note, however, that if the polygons are of completely different sizes then, inherently, you need unbounded number of directions if the maximum overlap of the original (non-convex polygons) align the pieces far from their piecewise overlap maximum.