In this paper, we consider two extensions of the Maximum Bichromatic Separating Rectangle (MBSR) problem.
The MBSR problem, introduced in  (see also ), is stated as follows. Given a set of red points and a set of blue points in the plane, with , compute the axis-aligned rectangle having the following properties:
(1) contains all points in ,
(2) contains the fewest points in among all rectangles satisfying (1),
(3) has the largest area of all rectangles satisfying (1) and (2).
We call such rectangle a maximum bichromatic separating rectangle (MBSR) or simply largest separating rectangle.
Let be the smallest axis-aligned rectangle enclosing and discard the blue points inside , as they cannot be avoided.
The first extension of MBSR, called MBSR with outliers (MBSR-O) or simply outliers version, was introduced in , and asks for the largest axis-aligned rectangle containing all red points and up to blue points outside , where is given as part of the input. That is, MBSR with outliers is a relaxation of condition (2) of the original MBSR problem.
In this paper, we introduce another extension of MBSR, called MBSR among circles (MBSR-C) or simply circles version, where blue points are replaced by blue unit circles, and the goal is to find the largest rectangle containing all red points and no point of any blue circle outside . Here we may also discard blue circles intersecting from consideration, as they cannot be avoided.
For both extensions, we assume that all points are in general position and that an optimal bounded solution exists, that is, there are no unbounded solutions.
The circles version is motivated by problems involving ”imprecise” data, such as tumor extraction with large or imprecise cells as red or blue points, or machine learning applications with probabilistic, rather than deterministic training data.
The outliers version can have applications in various domains. For instance, in VLSI or circuit design, the goal is to place a hardware component (e.g., cooler) on a board with minor fabrication defects (blue points), where up to defects are acceptable to be covered by the component. Here the red points may denote ”hot spots” that must be covered or isolated from the rest of the board.
Other applications of MBSR extensions can be in machine learning, data science, or spatial databases.
1.1 Related Work
Geometric separability of point sets, which deals with finding a geometric locus that separates two or more point sets whilst achieving a specific optimum criterion, is an important topic in computational geometry. Various approaches deal with finding a specifc type of separator (e.g., hyperplane) when the points are guaranteed to be separable. However, this is not always the case, and there is related work on weak separability, i.e., either allowing a fixed number of misclassifications or minimizing them.
Bitner and Daescu et. al  study the problem of finding the smallest circle that separates red and blue points (i.e., contains all red points and the fewest blue points). They provide two algorithms. The first of them runs in time and the second runs in time. Both algorithms enumerate all optimal solutions. Later, Armaselu and Daescu  addressed the dynamic version of the problem, in which blue points may be inserted or removed dynamically, and provided three data structures. The first one supports insertion and deletion queries in time, and can be updated in time. The other two are insertion-specific (resp., deletion-specific) and allow poly-logarithmic query time, at the expense of update time.
The problem of computing an MBSR was considered by Armaselu and Daescu. For the case when the target rectangle has to be axis-aligned, the algorithm runs in time [2, 4]. When the target rectangle is allowed to be arbitrarily oriented, an time algorithm is given, and they also provide an algorithm to find the largest separating box in 3D in time .
Separability of imprecise points, where points are asscoiated with an imprecision region, has also been considered. Note that, for the problem addressed in this paper, the blue circles can be thought of as imprecision regions. When the imprecision regions are axis-aligned rectangles, de Berg et. al 
come up with algorithms to find certain separators (with probability 1) and possible separators. For certain separators, their algorithm runs in linear time, while for possible separators, the running time is.
Armaselu, Daescu, Fan, and Raichel considered extensions of the MBSR problem. Specifically, they give an approach to find a largest rectangle separating red points from blue axis aligned rectangles in time, as well as an approach for the largest rectangle separaing red points from blue points with outliers in time .
A very popular related problem is the one of computing the largest empty (axis-aligned) rectangle problem. Given a set of planar points , the goal is to compute the largest -empty (axis-aligned) rectangle that has a point on each of its sides. For the axis-aligned version, the best currently known bound for computing one optimal solution is time by Aggarwal et. al . Mukhopadhyay et. al  solve the version where the rectangle can be arbitrarily oriented. They provide an time algorithm that lists all optimal solutions. Chaudhuri et. al  prove that there can be optimal solutions in the worst case.
Nandy et. al considered the problem of finding the maximal empty axis-aligned rectangle among a given set of rectangles isothetic to a given bounding rectangle . They show how to solve the problem in time, where is the number of rectangles. Later, they solved the version where obstacles have arbitrary orientation using an algorithm that takes .
1.2 Our Results
We first improve the result in  for the outlier version. Specifically, we first give a slight improvement that runs in time for outliers, and then a further improvement to time (which works when ). We also solve the circles version and provide an algorithm that runs in time.
The rest of the paper is structured as follows. In Section 2, we describe our improvements to MBSR-O, then in Section 3 we describe our algorithm for MBSR-C. Finally, in Section 4 we draw the conclusions and list the future directions.
2 Finding the Largest Separating Rectangle with Outliers
Given an integer , the goal is to find the largest axis-aligned rectangle enclosing that contains at most blue points in . We call this the maximum bichromatic separating rectangle with outliers (MBSR-O).
The approach in  is, in a nutshell, as follows. First, compute the smallest -enclosing rectangle in time. The lines defining partiton the plane into 8 regions outside . Namely, the four ”side” regions and the four corner regions (quadrants) . For each region , denote by the set of blue points inside .
 A point dominates another point , if and .
 For each and for any such that , the -th level staircase of is the rectilinear polygon formed by the blue points in that dominate exactly blue points in .
Note that an optimal solution contains points from if and only if it is sbounded by the -th level staircase of . See figure 1 for an illustration of a staircase.
For each partition of the number into 8 smaller integers (each corresponding to a region) , do the following.
1. consider the -th closest to blue point from each side region . These points support a rectangle which has to contain the target rectangle.
2. compute the -level staircase of each quadrant in time.
3. Solve a ”staircase” problem, i.e., find the largest rectangle containing , included in and being supported by points of the staircases. This is done in time.
There are such partitions of , so the running time of follows.
2.1 A Slight Improvement on the Running Time
To reduce the running time, we first prove the following lemma.
The -level staircases can be computed in time for all and for all quadrants .
We show how to compute for all with a sweep line algorithm, as for other quadrants the approach is similar. For simplicity, denote as , that is, without specifying the quadrant. Sort and label the points in by increasing x-coordinate, and denote the resulting sequence as . Sweep a vertical line from to . For any given position of , let be the set of blue points to the left of . We maintain a balanced binary search tree over , indexed by the y-coordinates of its elements. The intersection of with is a single point , which is the highest point on that lies above at most points of . That is, is the -th smallest indexed entry in , which we record. As we move from left to right, can only change when intersects a point . When we cross the point (called event point), we insert it into and, for each , we have two cases.
1. If is higher than , then does not change height.
2. If is lower than , for some , then is set to (which is done in time), and moves to the height of this entry. This update is repeated by setting to and so on downto . Finally, is set to .
If changes when sweeping over , we also record a point whose x-coordinate is that of and whose y-coordinate is that of the updated . Let be the set of all such points recorded during this process for all . It is not hard to argue that . Moreover, holds, as a point is added to only when the sweep line crosses a point of . Finally, note that we encountered event points . For each of them, we spend time to insert them into and time for pointer updates. Thus, the running time bound follows.
Rather than computing the ’s for each partition of , we compute them all in time before considering such partitions. Then, for each of the partitions, we need only solve a staircase problem in time. This gives us the following result.
Given two sets , with , the largest rectangle enclosing and containing at most points in can be found in time.
2.2 A Closer Look at the Number of Candidate Partitions of
In the previous section, we reduced the running time by a factor of . However, it seems hard to further improve this bound given the high number of partitions of . In this subsection, we show how to reduce the running time by reducing the number of candidate partitions of .
To do that, we first compute all the -level staircases as described in the previous section. We then consider the blue points in 4 pairs of adjacent regions, e.g., and . That is, we suppose the total number of outliers coming from , denoted , is fixed. Similarly, we supose are fixed. Let , for any quadrant . From now on, we focus on the and regions and, for simplicity, we denote as simply and as simply .
We notice that, even though any points of any -th level staircase, , may be a corner for a candidate rectangle, most of these rectangles can be discarded as they are guaranteed to be smaller than the optimal rectangle.
For every pair of regions and every integer , denote by the set of pairs that may define an optimal solution, with as top support and with right support, among all rectangles containing blue points from . From now on, whenever understood, we are going to remove the superscript and simply write , e.g., instead of . For every , we store as an array.
We extend the above definition to points for other quadrants , by flipping inequalities accordingly.
The goal is to compute . Suppose we have already computed all . Sweep with a horizontal line going upwards, starting at the -th lowest blue point in , as shown in Figure 3. For every blue point encountered as top support, let be the highest point in below , and be the lowest point in above . For every , let be the leftmost point in to the right of and below . Let be the blue point count below from . Also let be the number of points dominated by from .
First, assume and let be the number of points dominated by from , i.e., . When sweeping the next blue point, say , we do the following.
Case 1. If is to the right of , then is below but dominates , the points domiated by , and the points in (Figure 4). If , then we add to , where .
Case 2. If and is to the left of , then is below but dominates the points dominated by , except the ones in . For each , if , then we add to , where is the index of in in decreasing order of X coordinates. Finally, if , then we add to .
Case 3. If then, for each such that , we add to , where is the index of in in decreasing order of X coordinates. Finally, if , then we add to .
Now assume and let be the largest such that all points in any are below . Let be the leftmost point of below . When sweeping the next blue point, say , we do the following.
Case 4. If is to the right of then, if , we add to . For each such that , we also add to .
Case 5. If and is to the left of , then, if , we add to for every .
Case 6. If , then, if , we add to for every .
The following lemma puts an upper bound on the storage required by .
In case 1, we only one pair to . In case 2, even though we consider points, we only add the pair such that . Similarly, in cases 3 and 4 we only add the pair , even though we consider (resp., ) points. In case 5, we add at most pairs if . However, note that for the subsequent point swept, we would have a larger number of blue points in dominated by . Thus, we only add at most pairs once. Similarly, in case 6 we only add pairs once.
This lemma bounds the running time of the aforementioned sweeping approach.
For any , the horizontal line sweeping desccribed above takes time.
We store the blue points in in two balanced binrary search trees , indexed by X (resp., Y) coordinates. Thus, for each blue point swept, we require time. We require an extra time to compute , and . In case 1, note that we can compute by finding the position of in the X-sorted order of , and thus the number of blue points , in time, since is maintained as a binary search tree. Thus, we only require an extra time to handle case 1. In cases 2 and 4, note that we only need to add to if , so we query for in using time. Similarly, in case 3 we only add to if , so we query for in time. Now in cases 5 and 6 we spend time to traverse , since we store as an array for any , but they only occur once, so this gives us total time. In every case, since is an array, adding a pair to takes time. Since we sweep blue points, the result follows.
Corollary. We compute in time for all . This holds for any quadrant.
We reduce the number of candidate partitions of from to as follows. By writing , we can deduce for every combination of . Therefore, there are such combinations.
Initially, we compute for every quadrant and . Then, for each combination , we set and solve the staircase problem in  with the pairs as pairs of supports. Each staircase problem takes time to solve, so we require time for all candidate partitions of . Putting this together with the result in Lemma 2.1, we get the following result.
We obtain the following result.
Given two sets , with , the largest rectangle enclosing and containing at most points in can be found in time.
3 Finding the Largest Axis Aligned Rectangle Enclosing and avoiding Unit Circles
In this version, called the circles version (MBSR-C), consists of unit circles that do not intersect , and the goal is to find the largest axis-aligned rectangle enclosing that avoids all circles.
Note that the reduction in  for finding the largest separating rectangle among rectangles does not work. To see why this is the case, let be circles in the regions . If one picks any point on the quadrant of that is the closest to , and adds it to (and does the same for ), then, if the maximum rectangle separating and is top-bounded or right-bounded by , it intersects (as shown in Figure 5).
A candidate separating rectangle (CSR) is a rectangle that encloses and cannot be extended in any direction without intersecting some circle. Notice that a CSR may touch a circle either at an edge or at a corner. If it is bounded at an edge, then that edge is fixed in terms of X or Y coordinate and the arc it touches at each endpoint of the edge is uniquely determined (Figure 6). On the other hand, if it is bounded at a corner, then the corner can be slided along the appropriate arc of the circle (Figure 7). Each position of the corner determines the X or Y coordinates of its two adjacent edges, and thus the arcs pinning the two adjacent corners, if any.
We say that an edge of a CSR is pinned by a circle , if touches the interior of .
A horizontal (resp., vertical) edge is said to be fixed by two circles in terms of Y (resp., X) coordinate, if:
(1) the ends of are on and , respectively, and
(2) changing its Y (resp., X) coordinate would result in either intersecting or or failing to touch both and .
3.1 A description of all cases in which a CSR can be found
Based on the number of edges of a CSR pinning by circles, we consider the following cases.
Case 1. Three edges pinned by circles (Figures 8). In this case, we extend the the fourth edge outward from until it touches a circle. Thus, the CSR is uniquely determined.
Case 2. Two edges are pinned by two circles . Here we distinguish the following subcases.
Case 2.1. Two adjacent edges are pinned by . Note that their common corner is fixed. We extend one of the edges by moving its other end away from , until it touches a circle , and then extend the third edge until it touches a circle at a point (Figure 9). The resulting CSR is unique.
Case 2.2. Two adjacent edges are pinned by . We extend one of the edges by moving its other end away from , until the orthogonal line through touches a circle at a point . While moving , the point can slide along one or more circles in the same quadrant, giving an infinite number of CSRs.
Case 2.3. Two opposite edges are pinned by . We slide the other two edges outward from until each of them touches some circle. This gives us a unique CSR.
Case 3. One edge is pinned by a circle . We have the following subcases.
Case 3.1. When is extended in both directions, it touches two circles (Figure 10). We then slide the fourth edge outward from until it touches a circle and we have a unique CSR.
Case 3.2. When is extended in both directions, the orthogonal line through one of the ends touches a circle at point . While moving , can slide along one or more circles in the same quadrant, yielding an infinite number of CSRs. After establishing the position of , we slide the fourth edge away from until it touches a circle .
Case 4. No edge is pinned by any circle. In this case, all corners can slide along circles until one of the edges becomes pinned by some circle, giving an infinite number of CSRs. Suppose the position of a corner along a circle is known. We consider the following subcases.
Case 4.1. While extending the CSR in the two directions away from , the CSR touches a circle in or at some point before touching any circle in (Figure 11). The other two corners are determined by sliding the edge opposite to outwards until it touches a circle at some point . In this case, the CSR is uniquely defined.
Case 4.2. While extending the CSR in the two directions away from , the first circle that CSR touches, at a point , is located in . This gives us an infinite number of CSRs.
3.2 Dominating envelopes
For each quadrant , the dominating envelope of is a curve with the following properties:
1) lies inside ;
2) for any point , the rectangle cornered at and the closest corner of from is empty;
3) extending away from violates property (2).
Note that is a sequence of circle arcs, horizontal, and vertical segments, plus a horizontal and a vertical infinite ray (see Figure 12). Its use will be revealed later on.
The dominating envelope changes direction at breakpoints, which can be between two consecutive arcs, segments, or infinite ray. Every two consecutive breakpoints define a range of motion for a CSR corner.
A breakpoint is said to be a corner breakpoint, if a CSR cornred at cannot be extended away from in all directions without crossing some circle, even if its other corners are not located on any envelope.
To compute the dominating envelope of , we do the following. First, sort the circles by X coordinate of their centers. Let be the current breakpoint (initially, the first breakpoint is the left endpoint of the left-most circle, with a vertical infinite ray upwards from ). For each two adjacent circles , depending on the relative positions of , we do the following.
Case A. . In this case, we add the lower intersection between and as a new corner breakpoint , along with the arc of .
Case B. and . We add a breakpoint at the bottom of , the arc of , a corner breakpoint at the intersection between the horizontal through and , and the line segment .
Case C. and . We add a breakpoint at the left endpoint of , a corner breakpoint at the intersection between the vertical through and , the line segment , and the arc of .
Case D. and . We add the breakpoints at the bottom of , at the left end of , the corner breakpoint at the intersection between the horizontal through and the vertical through , the arc of , and the segments and . Figure 13 illustrates this process.
Note that deciding the case a circle belongs to can be done in time per circle.
3.3 Finding an optimal solution in each case
To find an optimal solution in each case, we do the following.
First, slide the edges of outward until each of them touches a circle. If this is not possible, then the solution is unbounded, so we will assume that each edge will eventually hit a circle. Denote the resulting rectangle by and discard the portions outside from the dominating envelopes of all quadrants. The endpoints of the resulting envelopes are also counted as breakpoints.
For each case described in Section 3.1, we give a different algorithm to compute the largest separating rectangle. Before considering any case, we sort the blue circles by the X coordinate and then (to break ties) by the Y coordinate of their centers.
We consider all corner breakpoints that are defined by pairs of adjacent circles in Case D, and add them to a set . We also consider all arcs of circles that are part of pairs in Case D ( to the west of ), the vertical line through and the horizontal line through , and add to . We then find the largest rectangle enclosing and containing the fewest points in using the algorithm in  in time. It is easy to check that is an optimal solution for Case 1, since any circle containing points in intersects a circle in . Thus, Case 1 can be done in time.
Assume wlog that two circles pin the north and the west edges of a CSR. The cases where the two circles define a different pair of adjacent edges of a CSR can be handled in a similar fashion.
If we are in Case 2.1, we consider all corner breakpoints defined by pairs of adjacent circles in Case D, as well as intersection between the south horizontal tangent to the eastmost circle in and the east vertical tangent to the northmost circle in south of . For every such point, the north and west edges are fixed, and we either find the south edge by extending the west edge southwards until it hits a blue circle, or the east edge by extending the north edge eastwards until it hits a blue circle. In both approaches, the fourth edge is uniquely determined. For each circle in , we store pointers to the northmost circle in south of and to the eastmost circle in west of , as well as similar pointers for the other quadrants and directions, Thus, once the first two edges are fixed, we can find the third and fouth edges in time. Since there are circles in Case 2.1 and they all can be found in time, Case 2.1 can be solved in time.
For Case 2.2, we consider all points as in Case 2.1. Having selected such point defined by two circles and , we consider the dominating envelope of starting from the east tangent to or the east edge of , whichever is eastmost, and ending at the south tangent to or the south edge of , whichever is southmost. This gives us a range of motion for the corner of the CSR spanning circle arcs. For each such arc, we find the optimal CSR in time as we shall prove in the next section. Since there are choices of , we therefore handle Case 2.2 in time.
As for Case 2.3, note that the pairs of circles defining the and the corners, respectively, must belong to a dominating envelope. We scan the dominating envelope of for pairs of circles in Cases B and C and, for each such pair, we scan the dominating envelope of for pairs of circles in Cases B and C, starting from the east tangent to or the east edge of , whichever is eastmost, and ending at the south tangent to or the south edge of , whichever is southmost. Once these pairs are established, the CSR is determined. Since scanning each dominating envelope takes time, we handle Case 2.3 in time.
Assume wlog that a circle pins the east edge of the CSR. The cases where the circle define a different edge of the CSR can be handled in a similar fashion.
For Case 3.1, we scan the dominating envelope of (similarly, ) for pairs of circles in cases C and D, ( is the rightmost circle of the pair). For every such pair of circles in , we consider all circles that are intersected by the west vertical tangent to . It is possible that some of these circles were already considered for a previous pair of circles in , so we may have to consider triplets of circles . We also traverse the circles in in increasing X order of their centers. Denote by the current circle. We consider the sequences of circles and that are intersected by the west tangent to . Since these sequences may include circles already considered for a previous circle in , we may need to spend to find all such triplets for which there exists a vertical line intersecting both . Once a triplet is established, the west, north, and south egdes are established, and the west edge can be determined in time by extending the north or the south edge until it hits a circle. Thus, Case 3.1 requires time.
For Case 3.2, we scan the dominating envelope of (similarly, ) for pairs of circles in cases C and D ( is the rightmost circle of the pair). We also traverse the circles in increasing X order, and consider the sequences of circles that are intersected by the west tangent to . For each pair , the east and south edges of the CSR are defined. This provides a range of eligible circles from the dominating envelope of such that the and corners of the CSR are not supported by any circle, and the corner slides along some circle arc. There are pairs and each of them gives circles from . Hence, Case 3.2 takes time.
Consider all arcs defined by pairs of adjacent circles in one of the cases A, B, C, or D. Consider all arcs defined by pairs of adjacent circles. Each such arc establishes the range of motion for the appropriate corner of a CSR, say in X order. Suppose belongs to a circle in , which establishes the range of motion of the NE corner of the CSR. This gives us a range of sliding motion for the north and the east edges of the CSR, which are supported by two rays shooting from to the west and south, respectively. Since only the SW corner may also slide along a circle, the west edge can be neither to the west of the first intersection between and a circle, nor to the west of the easternmost point in of a circle. Similarly, the south edge can be neither be to the south of the first intersection between and a circle, nor to the south of the northernmost point in of a circle. This gives a range of motion for , which may span multiple arcs of circle with X coordinates within the range = , , , . In fact, there are arcs in the worst case, yielding pairs of arcs for all possible pairs . By computing the pointers , and for every , from the dominating envelope, we can find each pair of arcs in time, as we take them in X order. That is, we consider all arcs defined by pairs of adjacent circles in X order and, for each such arc, we compute the points , , , and , and then consider the arcs in with X coordinates within .
In the next subsection, we also show how to handle each pair of arcs in Case 4 in time, in order to find the optimal solution in time.
3.4 Finding the CSR once the arcs pinning its corners are selected
We show how to find a maximum separating rectangle once the arcs pinning the corners are selected.
For each quadrant , let be angular position of the corner within the arc belonging to , say . Let denote the area of the CSR with the corners defined in terms of as above. Our goal is to find the maximum of over the feasible set of arguments, along with its arguments. First, assume are fixed, with the left and bottom supports denoted as (Figure 14). We refer to as simply (that is, refer to as simply ).
We have the following lemma.
has at most 3 maxima.
where and . For simplicity, assume that all circles are fully contained in some quadrant, so . Also,
Letting , we get
so s, which solves to
(we ignore negative roots since ). Since , it follows that are extrema for . This means there are at most three maxima for .
By a similar argument, there are at most three maxima for . Note that the position of two opposite corners of a CSR, say and , determine the position of the other two corners. This gives us at most maxima for , as there are only two variables. We compute the maxima of and choose the one that gives the largest CSR.
Thus, we have proved the following result.
Given a set of red points with , and a set of blue unit circles with , the largest rectangle enclosing and avoiding all circles in can be found in time.
The author would like to thank Drs. Benjamin Raichel, Chenglin Fan, and Ovidiu Daescu for the useful discussions.
4 Conclusions and Future Work
We consider the outlier version of the largest axis-aligned separating rectangle (MBSR-O), for which we give an time algorithm. We also study the problem of finding the largest axis-aligned separating rectangle among unit circles (MBSR-C) and give an time algorithm.
We leave for future consideration finding the largest, as well as the smallest enclosing circle avoiding all blue circles. A ”combined” version such as MBSR-C with outliers, i.e., finding the largest rectangle enclosing all red points while containing at most circles, would also be of interest. Finally, it would be interesting to either further improve the time bounds for the MBSR-O and MBSR-C, prove lower bounds, or come up with approximation algorithms.
-  A. Agarwal and S. Suri, Fast algorithms for computing the largest empty rectangle, SoCG’1987: 278-290
-  B. Armaselu and O. Daescu, Maximum Area Rectangle Separating Red and Blue Points, CCCG’2016: 244-251
-  B. Armaselu and O. Daescu, C. Fan, and B. Raichel, Largest Red Blue Separating Rectangles Revisited, FWCG’2016
-  B. Armaselu and O. Daescu, Maximum Area Rectangle Separating Red and Blue Points, arXiv:1706.03268 (2017)
-  B. Armaselu and O. Daescu, Dynamic Minimum Bichromatic Separating Circle, Theoretical Computer Science 774: 133-142 (2019), Available online 30 Nov. 2016, http://dx.doi.org/10.1016/j.tcs.2016.11.036
-  S. Bitner, Y. Cheung and O. Daescu, Minimum Separating Circle for Bichromatic Points in the Plane, ISVD’2010: 50-55
-  J. Chaudhuri, S. C. Nandy and S. Das, Largest empty rectangle among a point set, Journal of Algorithms 46(1): 54-78 (2003)
-  A. Mukhopadhyay and S.V. Rao, Computing a Largest Empty Arbitrary Oriented Rectangle. Theory and Implementation, International Journal of Computational Geometry and Applications 13(3): 257-271 (2003)
-  S. C Nandy, B. B Bhattacharya, and S. Ray, Efficient algorithms for identifying all maximal isothetic empty rectangles in VLSI layout design, FSTTCS’1990: 255-269
-  S. C Nandy, B. B Bhattacharya, and A. Sinha, Location of the largest empty rectangle among arbitrary obstacles, FSTTCS’1994: 159-170
-  F. Sheikhi, A. Mohades, M. de Berg, and A. D. Mehrabi, Separability of imprecise points, Computational Geometry 61: 24-37 (2017)