Next Article in Journal
Fast Component Density Clustering in Spatial Databases: A Novel Algorithm
Next Article in Special Issue
Automatically Testing Containedness between Geometric Graph Classes defined by Inclusion, Exclusion, and Transfer Axioms under Simple Transformations
Previous Article in Journal
ERP Quality and the Organizational Performance: Technical Characteristics vs. Information and Service
Previous Article in Special Issue
Simple Closed Quasigeodesics on Tetrahedra
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Extensions of the Maximum Bichromatic Separating Rectangle Problem †

Independent Researcher, Flower Mound, TX 75028, USA
This is an extended version of the CCCG’2021 conference paper with the same title.
Information 2022, 13(10), 476; https://doi.org/10.3390/info13100476
Submission received: 1 August 2022 / Revised: 27 September 2022 / Accepted: 28 September 2022 / Published: 2 October 2022
(This article belongs to the Special Issue Advances in Discrete and Computational Geometry)

Abstract

:
An important topic in the field of geometric optimization is finding the largest rectangle separating two different points sets, which has significant applications in circuit design and data science. We consider some extensions of the maximum bichromatic separating rectangle (MBSR) problem. In one of the extensions, the optimal rectangle may include up to k outliers, where k is given as part of the input. This extension and is called MBSR with outliers or MBSR-O. In this paper, we improve the current known time bounds for MBSR-O from O ( k 7 m   log m + n ) to O ( k 3 m + k m   log m + n ) using a clever staircase sweep approach. We also propose another extension, which is named MBSR among circles or MBSR-C and asks for the largest rectangle separating red points from blue unit circles. Our solution to MBSR-C is an O ( m 2 + n ) -time algorithm that involves an optimized scanning of all candidate circle arcs for locations of potential optimal solutions.

1. Introduction

Geometric optimization deals with optimization problems involving large sets of geometric objects. Bichromatic separability of point sets is a well-known topic in the field of geometric optimization. Typically, we are given a set of “red” points and a set of “blue” points in two or three dimensions, and the goal is to separate them using various geometric loci, such as lines, planes, circles, spheres, rectangles, or boxes.
The Maximum Bichromatic Separating Rectangle (MBSR) problem was introduced by Armaselu et al. in [1] (see also [2]) and is stated as follows. Given a red point set R and a blue point set B in the plane, with | R | = n , | B | = m , compute the axis-aligned rectangle S satisfying the following:
(1)
S contains all points in R;
(2)
S contains the fewest points in B among all rectangles satisfying (1);
(3)
S has the largest area of all rectangles satisfying (1) and (2).
Such a rectangle is called maximum bichromatic separating rectangle (MBSR) or simply largest separating rectangle.
Denote the smallest axis-aligned rectangle enclosing R by S m i n .
In this paper, we consider two extensions of the MBSR problem.
The first extension, introduced in [3], is called MBSR with outliers (MBSR-O) or simply outliers version. It seeks to find the largest axis-aligned rectangle containing all red points and up to k blue points outside S m i n , where k is given as part of the input. That is, MBSR-O is a relaxation of condition (2) from the original MBSR problem. The running time of the algorithm in [3] is O ( k 7 m log   m + n ) . However, when the k is large (e.g., k = Θ ( m ) ), this running time bound can be unreasonably high. We will show how to improve this time bound to O ( k 3 m + k m log m + n ) using a more clever sweep line-based approach.
We also introduce another extension of MBSR, called MBSR among circles (MBSR-C) or simply circles version, in which there are red points and blue unit circles, and the goal is to find the largest rectangle containing no point of any blue circle outside S m i n while containing all red points.
For both extensions, we assume no unbounded solution and also that all points are in general positions.
The outliers version can have applications in various domains. For instance, in VLSI or circuit design, one might seek to place a hardware component (e.g., cooler) on a board with minor fabrication defects (blue points), where up to k defects are tolerated for component placement. The red points may indicate “hot spots” that must be covered by the component on the board.
The circles version is motivated by problems involving “imprecise” data, such as probabilistic applications, machine learning applications, and tumor extraction with large or imprecise cells as red or blue points. For instance, the goal is to surgically remove a tumor using a rectangular tool, with tumor cells marked by red points while blue points denote healthy cells and osteoclasts that should not be removed or cut out.
Various other applications of bichromatic separation with imprecise points can be found in spatial databases and data science.

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 specific type of separator (e.g., hyperplane) when the points are guaranteed to be separable. However, this is not always the case, hence the need for results on weak separability, i.e., either minimizing the misclassifications or allowing up to a fixed number of them.
The problem of finding the smallest separating circle among red and blue points (i.e., containing all red points and the fewest blue points), was introduced by Bitner and Daescu et al. [4]. They provide two algorithms that find all optimal solutions: the first one runs in O ( m 1.5 log O ( 1 ) n + n log n ) time and the second one runs in O ( m n log m + n log n ) -time. The dynamic version of the problem, in which blue points may be dynamically inserted and deleted at run time, was later addressed by Armaselu and Daescu [5], who provided three data structures foir this version. The first one is a unified data sdtructure supporting both insertion and deletion queries in O ( n log m ) time, as well as O ( ( m + n ) log m ) time updates. The other two are deletion-specific (resp., insertion-specific) and allow O ( log 2 ( m n ) ) (resp., O ( log ( m n ) ) ) query time, at the expense of O ( m n log ( m n ) ) update time.
Armaselu and Daescu were the first to address the MBSR problem. Their algorithm runs in O ( m log m + n ) time [1,2]. When the axis-alignment restriction on the MBSR is dropped, they have an O ( m 3 + n log n ) time algorithm. They also come up with an O ( m 2 ( m + n ) ) -time algorithm to compute the maximum-volume separating box in three dimensions [2]. Later, this wasr improved to O ( m 2 + n ) time [6].
Separability of imprecise points has also been considered. In such setting, points are asscoiated with an region of imprecision. For instance, blue unit circles (i.e., MBSR-C) can be thought of as imprecision regions, where the imprecise points are their centers. When the imprecisions are axis-aligned rectangles, de Berg et al. [7] come up with a linear-time algorithm to compute certain separators, i.e., that are 100% likely to separate the point sets. They also show how to compute possible separators (>0% likely to separate) in O ( n log n ) time.
It is worth mentioning that all these results on separators deal with blue points. However, there are also results for blue obstacles. In a more recent paper [3], Armaselu, Daescu, Fan, and Raichel give an algorithm to find a largest rectangle separating red points from blue axis-aligned rectangles in O ( m log m + n ) time.
Computing the largest empty (axis-aligned) rectangle problem is a very popular and studied topic. Given a set of planar points P, the goal is to compute the largest axis-aligned rectangle that has a point p P on each of its sides but none inside it. For the axis-aligned version, Agarwal et al. [8] provided the best currently known time bound, O ( n log 2 n ) , for computing one optimal solution, while Hsu et al. [9] got the best-known result for computing all optimal solutions, namely, in O ( n log n + M ) time, where M is the number of maximal empty rectangles. Mukhopadhyay et al. [10] solved the arbitrary orientation version and gave an O ( n 3 ) time algorithm that outputs all optimal solutions. In addition, Chaudhuri et al. [11] proved a lower bound of Ω ( n 3 ) 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 [12]. They show how to solve the problem in O ( n log n + R ) time, where R is the number of rectangles. Later, they solved the version where obstacles have arbitrary orientation using an algorithm that takes O ( n log 2 n ) time [13]. Finally, they consider the problems of locating the largest empty rectangle inside a simple polygon, as well as avoiding a bunch of simple polygons [13].

1.2. Our Results

First, we improve upon the MBSR-O result in [3]. Specifically, we provide a slight improvement of O ( k 7 m + m log m + n ) time for k outliers, which we further improve to O ( k 3 m + k m log m + n ) time. The latter is faster than the former whenever k > ( log m ) 1 4 ). After that, we come up with an O ( m 2 + n ) time algorithm for MBSR-C.
The rest of the paper is structured as follows. In Section 2, we describe our improvements to MBSR-O, in Section 3 we describe our solution to MBSR-C, and finally, in Section 4 we draw the conclusions and suggest some future directions.

2. Finding the Largest Separating Rectangle with k Outliers

The goal is to compute the largest axis-aligned rectangle enclosing R while containing no more than k blue points of B (“outliers”), for a given k 0 . We call this rectangle maximum bichromatic separating rectangle with outliers (MBSR-O).
We first discard the blue points inside S m i n , as they cannot be avoided.
In [3], the given algorithm for MBSR-O operates as follows. We first compute the smallest rectangle S m i n enclosing R in linear time, and then partition the space outside S m i n into 8 regions, using the lines bounding S m i n . Specifically, there are 4 “corner” regions N E , N W , S W , S E . (also known as “quadrants”), and 4 “side” regions E , N , W , S . In each such region Q, we consider the set B Q of blue points inside Q.
Definition 1.
[3] A point p B N E dominates another point q B N E , if x ( p ) > x ( q ) and y ( p ) > y ( q ) . Similarly, a point p B N W dominates another point q B N W , if x ( p ) < x ( q ) and y ( p ) > y ( q ) , a point p B S E dominates another point q B S E , if x ( p ) > x ( q ) and y ( p ) < y ( q ) , and a point p B S W dominates another point q B S W , if x ( p ) < x ( q ) and y ( p ) < y ( q ) .
Definition 2.
[3] For each B Q and for any t such that 0 t k , the t-th level staircase of B Q is the rectilinear polygon formed by the blue points in B Q that dominate exactly t blue points in B Q .
Note that an optimal solution contains t points from B Q if and only if it is bounded by the t-th level staircase of B Q , shown in Figure 1.
For each partition of k into 8 smaller natural numbers k = k E + k N E + + k S E , that is, one natural number for each region, we do the following.
  • Consider the k Q + 1 -th closest to S m i n blue point from each side region Q. Note that, by extending S m i n in each direction until reaching these points, one obtains a rectangle S m a x which definitely contains the target rectangle.
  • For each quadrant Q, compute the k Q -level staircase S T k Q ( Q ) of Q in O ( m log m ) time.
  • Solve a “staircase” problem on S m i n , S m a x , and S T in O ( m ) time. That is, compute the largest rectangle enclosing S m i n , supported by points of the staircases, and contained in S m a x .
Since there are O ( k 7 ) ways of partitioning the integer k into 8 smaller natural numbers, it follows that the running time of this approach is O ( k 7 m log m + n ) .

2.1. A Slight Improvement on the Running Time

We improve the running time bounds for MBSR-O. To do that, instead of computing the t-th level staircase S T t ( Q ) for each quadrant and each natural number t k , we pre-compute all staircases in a more clever fashion that involves sweeping the blue points in each quadrant Q with a line and computing all S T t ( Q ) ’s in a single sweep.
Lemma 1.
The t-level staircases S T t ( Q ) can be computed in O ( m log m + m k ) time for all quadrants Q and integers t k .
Proof. 
We show how to compute S T t ( N E ) for all t k with a sweep line algorithm, as for other quadrants the approach is similar. For simplicity, denote S T t ( N E ) as S T t , that is, without specifying the quadrant. Sort and label the points in B N E by increasing x-coordinate, and denote the resulting sequence as p 1 , , p m . Sweep a vertical line l from x 0 = max { x | ( x , y ) S m i n } to x 1 = . For any given position of l, let P l = { p 1 , , p i } be the set of blue points to the left of l. We maintain a balanced binary search tree T over P l , indexed by the y-coordinates of its elements. The intersection of S T t with l is a single point q i t , which is the highest point on l that lies above at most t points of P l . That is, q i t is the ( t + 1 ) -th smallest indexed entry in T, which we record. As we move l from left to right, q i t can only change when l intersects a point p i B N E . When we cross the point p i + 1 (called event point), we insert it into T and, for each t k , we have two cases.
  • If p i + 1 is higher than q i t , then the height of S T t does not change.
  • If p i + 1 is lower than q i t , q i t 1 , , q i s , for some 0 s t , then q i t is set to q i t 1 (which is done in O ( 1 ) time), and S T t moves to the height of this entry. This update is repeated by setting q i t 1 to q i t 2 and so on down to q i s + 1 . Finally, q i s is set to p i + 1 .
If S T t changes when sweeping over p i + 1 , we also record a point r i t whose x-coordinate is that of p i + 1 and whose y-coordinate is that of the updated q i t . Let B t be the set of all such points q i t , r i t recorded during this process for all t k , i = 1 , , m . It is not hard to argue that t k S T t B t . Moreover, | B t | m holds, as a point is added to Q only when the sweep line crosses a point of B N E . Finally, note that we encountered O ( m ) event points p i . Inserting each of them into T requires O ( log m ) time, and O ( k ) extra time is needed q i t , r i t pointer updates. Hence, the running time bound follows. □
See Figure 2 for an illustration of the proof of Lemma 1.
Instead of computing the S T t ’s for each partition of k, we compute all of them in O ( m log m + m k ) time before considering such partitions. Then we only need to solve a staircase problem in O ( m ) time for each of the O ( k 7 ) partitions, giving us the following result.
Theorem 1.
Given two point sets, R : | R | = n and B : | B | = m , as well as an integer k 0 , the largest rectangle enclosing R and containing up to k points in B can be computed in O ( k 7 m + m log m + n ) time.

2.2. A Closer Look at the Number of Candidate Partitions of k

In the previous section, we reduced the running time by a factor of log m . However, it seems hard to further improve this bound given the high number of partitions of k. Thus, in this subsection, we show how to reduce the number of candidate partitions of k, to further improve the running time bound.
To do that, we first compute all the t-level staircases S T t , 0 t k as described in the previous section. We then consider the blue points in 4 pairs of adjacent regions, e.g., N and N E . That is, we suppose the total number of outliers coming from B N B N E , denoted k N N E = k N + k N E , is fixed. Similarly, we suppose k E S E = k E + k S E , k S S W = k S + k S W , k W N W = k W + k N W are fixed. Let S T ( Q ) = t = 1 k S T t ( Q ) , for any quadrant Q. From now on, we focus on the N and N E regions and, for simplicity, we denote S T ( N E ) as simply S T and S T t ( N E ) as simply S T t .
We notice that even though any points of any t-th level staircase, t k N E , 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.
Definition 3.
For every pair P = ( P 1 , P 2 ) of regions and every integer t : 0 t k , denote by S t P the set of pairs ( p , q ) ( B P 1 B P 2 ) 2 such that p is the top support and q is the right support for an optimal solution, among all rectangles containing t blue points from B P 1 B P 2 .
From now on, for simplicity, we are going to remove the superscript and simply write S t , e.g., S k N N E instead of S k N N E N N E . For every t, we store S t as an array.
The goal is to compute S k N N E . Refer to Figure 3 for an illustration. Suppose we have already computed all S t : t < k N N E . Sweep B N B N E with a horizontal line l H going upwards, starting at the k N N E + 1 -th lowest blue point in B N B N E . For every blue point p encountered as top support, let b e l o w ( p ) be the highest point in B N below p, and a b o v e ( p ) be the lowest point in B N above p. For every p B N E , let r b ( p ) be the leftmost point in B N E to the right of p and below p. Let t N be the blue point count below p from B N . Furthermore, let t be the number of points dominated by p from B N B N E .
First, assume p B N E and let t N E = t t N be the number of points dominated by p from B N E , i.e., p S T t N E . When sweeping the next blue point q, we consider the following cases.
Case 1. If q is to the right of p, then q is below a b o v e ( p ) but dominates p, the points dominated by p, and the points in T ( p , q ) = { s B N E S T t N E | x ( p ) < x ( s ) < x ( q ) } (Figure 4). If t + t p q = k N N E , then we add ( q , r b ( q ) ) to S t + t p q , where t p q = 1 + | T ( p , q ) | .
Case 2. If q B N E and q is to the left of p, then q is below a b o v e ( p ) (otherwise ( p , q ) S k N N E ), but dominates the points dominated by p, except the ones in U ( q , p ) = { s B N E | x ( q ) < x ( s ) < x ( p ) , y ( s ) < y ( p ) } (Figure 5). For each s U ( q , p ) , if t i ( s ) = k N N E , then we add ( q , s ) to S t i ( s ) , where i ( s ) is the index of s in U ( q , p ) in decreasing order of X coordinates. Finally, if t = k N N E , then we add ( q , p ) to S t .
Case 3. If q B N then, for each s U ( p ) = { s B N E | x ( s ) < x ( p ) , y ( s ) < y ( p ) } such that t i ( s ) = k N N E , we add ( q , s ) to S t i ( s ) , where i ( s ) is the index of s in U ( p ) in decreasing order of X coordinates. Finally, if t = k N N E , then we add ( q , p ) to S t (Figure 6).
Now assume p B N and let t N E be the largest t such that all points in any S T t are below p. Let b ( p ) be the leftmost point of S T t N E below p. When sweeping the next blue point q, we consider the following cases.
Case 4. If q is to the right of b ( p ) then, if t = k N N E 1 , we add ( q , r b ( q ) ) to S t + 1 . For each s U ( q ) such that t i ( s ) = k N N E , we also add ( q , s ) to S t i ( s ) (Figure 7).
Case 5. If q B N E and q is to the left of b ( p ) , then, if t = k N N E 1 , we add ( q , s ) to S t + 1 for every ( p , s ) S t (Figure 8).
Case 6. If q B N , then, if t = k N N E 1 , we add ( q , s ) to S t + 1 for every ( p , s ) S t (Figure 9).
The following lemma puts an upper bound on the storage required by S k N N E .
Lemma 2.
| S k N N E | = O ( m ) .
Proof. 
In case 1, we only add one pair to S k N N E . In case 2, even though we consider | U ( q , p ) | points, we only add the pair ( q , s ) such that t i ( s ) = k N N E . Similarly, in cases 3 and 4 we only add the pair ( q , s ) : t i ( s ) = k N N E , even though we consider | U ( p ) | (resp., | U ( q ) | ) points. In case 5, we add at most | S T t N E | pairs if t = k N N E 1 . However, note that for the subsequent point q swept, we would have a larger number t of blue points in B N B N E dominated by q . Thus, we only add at most | S T t N E | = O ( m ) pairs once. Similarly, in case 6 we only add O ( m ) pairs once. □
The following lemma states the running time of the aforementioned sweeping algorithm.
Lemma 3.
For any t : 0 t k , the horizontal line sweeping described above takes O ( m log m ) time.
Proof. 
We store the blue points in B N B N E in two balanced binary search trees X , Y , indexed by X (resp., Y) coordinates. Thus, for each blue point p swept, we require O ( log m ) time. We require an extra O ( log m ) time to compute a b o v e ( p ) , b e l o w ( p ) , and r b ( p ) . In case 1, note that we can compute t p q by finding the position of q in the X-sorted order of S T k N E , and thus the number of blue points s : x ( p ) < x ( s ) < x ( q ) , in O ( log m ) time, since S T k N E is maintained as a binary search tree. Thus, we only require an extra O ( log m ) time to handle case 1. In cases 2 and 4, note that we only need to add ( q , s ) to S k N N E if i ( s ) = t k N N E , so we query for s in X using O ( log m ) time. Similarly, in case 3 we only add ( q , p ) to S k N N E if i ( s ) = t k N N E , so we query X for s in O ( log m ) time. Now in cases 5 and 6 we spend O ( m ) time to traverse S t , since we store S t as an array for any t, but they only occur once, so this gives us O ( m ) total time. In every case, since S t is an array, adding a pair to S t takes O ( 1 ) time. Since we sweep O ( m ) blue points, the result follows. □
Corollary 1.
For any pair of quadrants, we compute S t in O ( k m log m ) time for all t : 0 t k .
We reduce the number of candidate partitions of k from O ( k 7 ) to O ( k 3 ) as follows. By writing k = k N N E + k E S E + k S S W + k W N W , we can deduce k N N E = k k W N W k E S E k S S W for every combination of k W N W , k E S E , k S S W . Therefore, there are O ( k 3 ) such combinations.
Initially, we compute S t Q for every quadrant Q and 0 t k . Then, for each combination ( k 1 , k 2 , k 3 ) , k 1 , k 2 , k 3 = 0 , k , k 1 + k 2 + k 3 k , we set k 4 = k k 1 k 2 k 3 and solve the staircase problem in [2] with the pairs S t 1 W N W S t 2 E S E S t 3 S S W S k 4 N N E as pairs of supports. Each staircase problem takes O ( m ) time to solve, so we require O ( k 3 m ) time for all candidate partitions of k. Putting this together with the result in Lemma 1, we get the following result.
Theorem 2.
Given two point sets, R : | R | = n and B : | B | = m , as well as an integer k 0 , the MBSR-O for R and B with k outliers can be computed in O ( k 3 m + k m log m + n ) time.

3. Finding the Largest Axis Aligned Rectangle Enclosing R and Avoiding Unit Circles

In this extension, B consists of S m i n -disjoint unit circles, and the goal is to find the largest axis-aligned rectangle that avoids all circles while enclosing R. We call such rectangle an MBSR among circles or MBSR-C.
Again, we discard blue circles intersecting S m i n from consideration, as they cannot be avoided.
One may wonder whether the reduction in [3] for finding the largest separating rectangle among axis-aligned rectangles can be tailored to MBSR-C. However, it can be shown that it does not always work. If we let C N W , C S W , C S E , C N E be circles in the regions B N W , B S W , B S E , B N E , pick any point p on the quadrant of C N W that is the closest to S m i n , and add it to B , then any rectangle enclosing R, avoiding B , and top or right-bounded by p will intersect C N W . See Figure 10 for a depiction of why this is the case.
We call a candidate separating rectangle (CSR) a rectangle that encloses R and cannot be extended in any direction without intersecting some circle. Note that a CSR may touch a circle either at a corner or at an edge. 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 11). On the other hand, if it is bounded at a corner, then the corner can be slid along the appropriate arc of the circle (Figure 12). 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 e of a CSR is pinned by a circle C if C touches the interior of e.
A horizontal (resp., vertical) edge e is said to be fixed by two circles C 1 , C 2 in terms of Y (resp., X) coordinate, if:
(1)
the ends of e are on C 1 and C 2 , respectively, and
(2)
changing its Y (resp., X) coordinate would result in either e intersecting C 1 or C 2 or failing to touch both C 1 and C 2 .

3.1. A Description of All Cases in Which a CSR Can Be Found

We consider all the cases in which a CSR can be found, based on the number of edges pinned by circles.
Case 1. Three edges pinned by circles (Figure 13). In this case, we extend the the fourth edge outward from S m i n until it touches a circle. Hence, the CSR is uniquely determined.
Case 2. Two edges are pinned by two circles C 1 , C 2 . In this case, we further distinguish the following subcases.
Case 2.1. Two adjacent edges are pinned by C 1 , C 2 . Note that their common corner q is fixed. We extend one of the edges by moving its other end p away from q until it touches a circle C 3 , and then extend the third edge until it touches a circle C 4 at a point r (Figure 14). The resulting CSR is unique.
Case 2.2. Two adjacent edges are pinned by C 1 , C 2 . We extend one of the edges by moving its other end p away from q, until the orthogonal line through p touches a circle C 3 at a point r (see Figure 15). While moving p, the point r 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 C 1 , C 2 . We slide the other two edges outward from S m i n until each of them touches some circle (see Figure 16). This gives us a unique CSR.
Case 3. One edge e is pinned by a circle C 1 . We have the following subcases.
Case 3.1. When e is extended in both directions, it touches two circles C 2 , C 3 (Figure 17). We then slide the fourth edge outward from S m i n until it touches a circle C 4 and we have a unique CSR.
Case 3.2. When e is extended in both directions, the orthogonal line through one of the ends p touches a circle C 2 at point q (Figure 18). While moving p, q can slide along one or more circles in the same quadrant, yielding an infinite number of CSRs. After establishing the position of q, we slide the fourth edge away from S m i n until it touches a circle C 3 .
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 p along a circle C 1 B N E is known. We consider the following subcases.
Case 4.1, while extending the CSR in the two directions away from p, the CSR touches a circle in B S E or B N W at some point q before touching any circle in B S W (Figure 19). The other two corners are determined by sliding the edge opposite to p q outwards until it touches a circle at some point r. In this case, the CSR is uniquely defined.
Case 4.2, while extending the CSR in the two directions away from p, the first circle that CSR touches, at a point q, is located in B S W (Figure 20). This gives us an infinite number of CSRs.

3.2. Dominating Envelopes

Definition 4.
The dominating envelope of a corner region B i is a curve C satisfying the following:
  • B i fully contains C ,
  • p C , the rectangle cornered at p and the closest corner of S m i n from p is empty, and
  • property (2) no longer holds if one extends C away from S m i n .
Note that C is a sequence of horizontal and vertical segments, circle arcs, as well as a horizontal and a vertical infinite ray (see Figure 21). We shall reveal the use of dominating envelopes later.
The dominating envelope changes direction at breakpoints, which can be between two consecutive arcs, segments, or an infinite ray. Every two consecutive breakpoints define a range of motion for a CSR corner.
A breakpoint p is said to be a corner breakpoint, if a CSR cornered at p cannot be extended away from S m i n in all directions without crossing some circle, even if its other corners are not located on any envelope.
To compute the dominating envelope C of B N E , we do the following. First, sort the circles by X coordinate of their centers. Let p be the current breakpoint (initially, the first breakpoint is the left endpoint l of the left-most circle, with a vertical infinite ray upwards from l). For each two adjacent circles C 1 ( c 1 , 1 ) , C 2 ( c 2 , 1 ) , depending on the relative positions of c 1 , c 2 , we do the following.
Case A. c 2 C 1 . In this case, we add the lower intersection between C 1 and C 2 as a new corner breakpoint q, along with the arc p q of C 1 .
Case B. y ( c 1 ) 1 y ( c 2 ) y ( c 1 ) and x ( c 2 ) > x ( c 1 ) + 1 . We add a breakpoint q at the bottom of C 1 , the arc p q of C 1 , a corner breakpoint r at the intersection between the horizontal through q and C 2 , and the line segment q r .
Case C. x ( c 1 ) + 1 x ( c 2 ) x ( c 1 ) + 1 and y ( c 2 ) < y ( c 1 ) 1 . We add a breakpoint r at the left endpoint of C 2 , a corner breakpoint q at the intersection between the vertical through r and C 1 , the line segment q r , and the arc p q of C 1 .
Case D. x ( c 2 ) > x ( c 1 ) + 1 and y ( c 2 ) < y ( c 1 ) 1 . We add the breakpoints q at the bottom of C 1 , r at the left end of C 2 , the corner breakpoints at the intersection between the horizontal through q and the vertical through r, the arc p q of C 1 , and the segments q s and s r .
We then set p to the rightmost breakpoint added and repeat the process for the next pair of adjacent circles. Finally, for the last circle, we add an arc from p to its bottom b, the breakpoint b, and then a horizontal infinite ray emanating from b to the right. In each case, we say that a pair of circles ( C 1 , C 2 ) defines breakpoints p 1 , , p k , if all of p 1 , , p k are added as breakpoints in the process described above. Similarly, we say ( C 1 , C 2 ) defines arcs a 1 , , a k , if all of a 1 , , a k are added as arcs in the process. See Figure 22 for an illustration of this process.
Note that deciding the case a circle belongs to can be done in constant time.

3.3. Finding an Optimal Solution in Each Case

We first slide the edges of S m i n outward until each of them touches a circle. Since we assumed no unbounded solutions, we are guaranteed that every edge will eventually hit a circle. Denote by S m a x the resulting rectangle and discard the region outside S m a x from the dominating envelopes of all quadrants. The endpoints of the resulting envelopes are also counted as breakpoints. We also sort the blue circles by the X coordinate and then (to break ties) by the Y coordinate of their centers.
Now we give a specific algorithm to compute the MBSR-C in each of the cases listed in Section 3.1.
Case 1. We consider all corner breakpoints that are defined by pairs of adjacent circles in Case D, and add them to a set B . We also consider all arcs p q of circles that are part of pairs in Case D (p to the west of q), the vertical line l p through p and the horizontal line l q through q, and add l p l q to B . We then find the largest rectangle S * enclosing R and containing the fewest points in B using the algorithm in [1] in O ( m + n ) time. It is easy to check that S * is an optimal solution for Case 1, since any circle containing points in B intersects a circle in B. Thus, Case 1 can be done in O ( m + n ) time.
Case 2. 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 q defined by pairs of adjacent circles in Case D, as well as the intersection between the south horizontal tangent t H to the eastmost circle in B N E and the east vertical tangent t V to the northmost circle in B N W south of t H . 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 C B N E , we store pointers to the northmost circle in B N W south of C and to the eastmost circle in B S E west of C, 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 fourth edges in O ( 1 ) time. Since there are O ( m ) circles in Case 2.1 and they all can be found in O ( m ) time, Case 2.1 can be solved in O ( m ) time.
For Case 2.2, we consider all points q as in Case 2.1. Having selected such point q defined by two circles C 1 B N E B N W and C 2 B N W B S W , we consider the dominating envelope of B S E starting from the east tangent to C 1 or the east edge of S m i n , whichever is eastmost, and ending at the south tangent to C 2 or the south edge of S m i n , whichever is southmost. This gives us a range of motion for the S E corner r of the CSR spanning O ( m ) circle arcs. For each such arc, we find the optimal CSR in O ( 1 ) time as we shall prove in the next section. Since there are O ( m ) choices of q, we handle Case 2.2 in O ( m 2 ) time.
As for Case 2.3, note that the pairs of circles defining the N W and the S E corners, respectively, must belong to a dominating envelope. We scan the dominating envelope of B N W for pairs of circles C 1 , C 2 in Cases B and C and, for each such pair, we scan the dominating envelope of B S E for pairs of circles in Cases B and C, starting from the east tangent to C 1 or the east edge of S m i n , whichever is eastmost, and ending at the south tangent to C 2 or the south edge of S m i n , whichever is southmost. Once these pairs are established, the CSR is determined. Since scanning each dominating envelope takes O ( m ) time, we handle Case 2.3 in O ( m 2 ) time.
Case 3. Assume wlog that a circle C 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 B N E (similarly, B S E ) for pairs of circles ( C 1 , C ) in cases C and D, (C is the rightmost circle of the pair). For every such pair of circles in B N E , we consider all circles C 2 B S E that are intersected by the west vertical tangent to C. It is possible that some of these circles were already considered for a previous pair of circles in B N E , so we may have to consider O ( m 2 ) triplets of circles ( C , C 1 , C 2 ) . We also traverse the circles in B E in increasing X order of their centers. Denote by C the current circle. We consider the sequences of circles C N E B N E and C 2 B S E that are intersected by the west tangent to C. Since these sequences may include circles already considered for a previous circle in B E , we may need to spend O ( m 2 ) to find all such triplets ( C , C 1 , C 2 ) for which there exists a vertical line intersecting both C 1 , C 2 . Once a triplet is established, the west, north, and south edges are established, and the west edge can be determined in O ( 1 ) time by extending the north or the south edge until it hits a circle. Thus, Case 3.1 requires O ( m 2 ) time.
For Case 3.2, we scan the dominating envelope of B S E (similarly, B N E ) for pairs of circles ( C 1 , C ) in cases C and D (C is the rightmost circle of the pair). We also traverse the circles C B E in increasing X order and consider the sequences of circles C 1 B S E that are intersected by the west tangent to C. For each pair ( C 1 , C ) , the east and south edges of the CSR are defined. This provides a range of eligible circles from the dominating envelope of B N W such that the S W and N E corners of the CSR are not supported by any circle, and the N W corner slides along some circle arc. There are O ( m )   ( C 1 , C ) pairs and each of them gives O ( m ) circles from B N W . Hence, Case 3.2 takes O ( m 2 ) time.
Case 4. 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 a establishes the range of motion for the appropriate corner p of a CSR, say [ p s t a r t , p e n d ] in X order. Suppose a belongs to a circle in B N E , which establishes the range of motion of the NE corner p 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 r W , r S shooting from p to the west and south, respectively. Since only the SW corner q may also slide along a circle, the west edge can be neither to the west of the first intersection W ( p ) between r W and a circle, nor to the west of the easternmost point in B W of a circle. Similarly, the south edge can be neither be to the south of the first intersection S ( p ) between r S and a circle, nor to the south of the northernmost point in B S of a circle. This gives a range of motion for q, which may span multiple circle arcs with X coordinates within the range a r c s ( p s t a r t , p e n d ) = [ min ( X ( W ( S ( p e n d ) ) ) , X ( S ( W ( p e n d ) ) ) ) , max ( X ( W ( S ( p s t a r t ) ) ) , X ( S ( W ( p s t a r t ) ) ) ) ] . In fact, there are O ( m ) arcs in the worst case, yielding O ( m 2 ) pairs of arcs for all possible pairs ( p , q ) . By computing the pointers w e s t ( p ) , s o u t h ( p ) , e a s t ( p ) , and n o r t h ( p ) for every p, from the dominating envelope, we can find each pair of arcs in O ( 1 ) time, as we take them in X order. That is, we consider all arcs [ p s t a r t , p e n d ] defined by pairs of adjacent circles in X order and, for each such arc, we compute the points W ( S ( p s t a r t ) ) , S ( W ( p s t a r t ) ) , W ( S ( p e n d ) ) , and S ( W ( p e n d ) ) , and then consider the arcs in B S W with X coordinates within a r c s ( p s t a r t , p e n d ) .
Handling each pair of arcs in O ( 1 ) time will be detailed in the next subsection. Thus, computing the optimal solution takes O ( m 2 ) time in Case 4.

3.4. Finding the CSR Once the Arcs Pinning Its Corners Are Selected

For each quadrant Q, let θ Q [ α Q , β Q ] be the angular position of the corner within the arc belonging to Q, say C ( c , 1 ) . Let f ( θ N E , θ N W , θ S W , θ S E ) denote the area of the CSR with the corners defined in terms of θ Q as above. Our goal is to find the maximum of f over the feasible set of arguments, along with its arguments. First, assume θ S E , θ N W , θ S W are fixed, with the left and bottom supports denoted as l , b (Figure 23). We refer to f ( θ N E , θ N W , θ S W , θ S E ) as simply f N E ( θ ) (that is, refer to θ N E as simply θ ).
Lemma 4.
f N E has at most 3 maxima.
Proof. 
We have
f N E ( θ ) = ( w sin θ ) · ( h cos θ ) ,
where w = x ( c ) x ( l ) and h = y ( c ) y ( b ) . For simplicity, assume that all circles are fully contained in some quadrant, so w , h > 1 . Furthermore,
f N E ( θ ) = w sin θ h cos θ + sin 2 θ c o s 2 θ .
Letting x = tan θ , we get
f N E ( x ) = w x h 1 + x 2 + x 2 1 1 + x 2 ,
so f N E ( x ) = 0
( w x h ) 1 + x 2 = 1 x 2
( w x h ) 2 ( 1 + x 2 ) = ( 1 x 2 ) 2
( w 2 1 ) x 4 2 w h x 3 + ( w 2 + h 2 + 2 ) x 2 2 w h x + h 2 1 = 0
( w 2 1 ) x 2 ( x 2 1 ) 2 w h x ( x 2 1 ) + ( h 2 1 ) ( x 2 1 ) = 0
( ( w 2 1 ) x 2 2 w h x + h 2 1 ) ( x 2 1 ) = 0 ,
which solves to
x 1 = 1 ,
x 2 , 3 = w h + 2 ( w 2 + h 2 ) 1 w 2 1
(we ignore negative roots since x 0 ). Since x = tan θ , it follows that θ 1 = π 4 , θ 2 , 3 = arctan x 2 , 3 are extrema for f N E . That is, f N E has no more than 3 maxima. □
Similarly, it follows that f N W , f S W , f S E each have no more than 3 maxima. Note that the position of two opposite corners of a CSR, say N E and S W , determine the position of the other two corners. Since there are only two variables, f has at most 9 maxima we need to consider. We compute all these maxima in O ( 1 ) time and then choose the one that gives the largest CSR.
Thus, we have proved the following result.
Theorem 3.
Given a set of n red points R and a set of m blue unit circles B with | B | = m , the MBSR-C among R and B can be computed in O ( m 2 + n ) time.

4. Conclusions and Future Work

We improve upon the existing result for the maximum bichromatic separating rectangle with outliers problem (MBSR-O) of O ( k 7 m log m + n ) and provide an O ( k 3 m + k m log m + n ) time algorithm. We also consider the problem of finding the maximum bichromatic separating rectangle among unit circles (MBSR-C), for which we give an algorithm that takes O ( m 2 + n ) time [14].
We leave for future consideration proving lower bounds and finding efficient approximation algorithms for MBSR-C and MBSR-O. Other interesting related problems would be finding the smallest and largest circle enclosing red points while avoiding blue circles. Finally, we leave for future work finding the largest rectangle separating red points from blue polygons, as well as solving the weighted version, in which red points have a positive weight, blue points have a negative weight, and the goal is to find the largest rectangle of maximum weight. This weighted version would have promising applications in circuit design, where the board defects may have various severity levels.

Funding

This research received no external funding.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Not applicable.

Acknowledgments

The author would like to thank Benjamin Raichel, Chenglin Fan, and Ovidiu Daescu for the useful discussions.

Conflicts of Interest

The author declares no conflict of interest.

References

  1. Armaselu, B.; Daescu, O. Maximum Area Rectangle Separating Red and Blue Points. arXiv 2017, arXiv:1706.03268. [Google Scholar]
  2. Armaselu, B.; Daescu, O. Maximum Area Rectangle Separating Red and Blue Points. In Proceedings of the Canadian Conference on Computational Geometry, Vancouver, BC, Canada, 3–5 August 2016; pp. 244–251. [Google Scholar]
  3. Armaselu, B.; Daescu, O.; Fan, C.; Raichel, B. Largest Red Blue Separating Rectangles Revisited. In Proceedings of the Fall Worksop on Computational Geometry, New York, NY, USA, 27–28 October 2016. [Google Scholar]
  4. Bitner, S.; Cheung, Y.K.; Daescu, O. Minimum Separating Circle for Bichromatic Points in the Plane. In Proceedings of the International Symposium on Voronoi Diagrams in Science and Engineering, Quebec, QC, Canada, 28–30 June 2010; pp. 50–55. [Google Scholar]
  5. Armaselu, B.; Daescu, O. Dynamic Minimum Bichromatic Separating Circle. Theor. Comput. Sci. 2019, 774, 133–142. [Google Scholar] [CrossRef]
  6. Armaselu, B. Improved Algorithm for Computing the Maximum-volume Bichromatic Separating Box. arXiv 2020, arXiv:2012.128468. [Google Scholar]
  7. Sheikhi, F.; Mohades, A.; de Berg, M.; Mehrabi, A.D. Separability of imprecise points. Comput. Geom. 2017, 61, 24–37. [Google Scholar] [CrossRef]
  8. Agarwal, B.; Suri, S. Fast algorithms for computing the largest empty rectangle. In Proceedings of the Symposium on Computational Geometry, Waterloo, ON, Canada, 8–10 June 1987; pp. 278–290. [Google Scholar]
  9. Namaad, A.; Lee, D.T.; Hsu, W.L. On the maximum empty rectangle problem. Discret. Appl. Math. 1984, 8, 267–277. [Google Scholar] [CrossRef] [Green Version]
  10. Mukhopadhyay, A.; Rao, S.V. Computing a Largest Empty Arbitrary Oriented Rectangle. Theory and Implementation. Int. J. Comput. Geom. Appl. 2003, 13, 257–271. [Google Scholar] [CrossRef]
  11. Chaudhuri, J.; Nandy, S.C.; Das, S. Largest empty rectangle among a point set. J. Algorithms 2003, 46, 54–78. [Google Scholar] [CrossRef]
  12. Nandy, S.C.; Bhattacharya, B.B.; Ray, S. Efficient algorithms for identifying all maximal isothetic empty rectangles in VLSI layout design. In Proceedings of the International Conference onFoundations of Software Technology and Theoretical Computer Science, Bangalore, India, 17–19 December 1990; pp. 255–269. [Google Scholar]
  13. Nandy, S.C.; Bhattacharya, B.B.; Sinha, A. Location of the largest empty rectangle among arbitrary obstacles. In Proceedings of the Foundations of Software Technology and Theoretical Computer Science, Madras, India, 15–17 December 1994; pp. 159–170. [Google Scholar]
  14. Armaselu, B. Extensions of the Maximum Bichromatic Separating Rectangle Problem. In Proceedings of the Canadian Conference on Computational Geometry, Halifax, NS, Canada, 10–12 August 2021; pp. 237–247. [Google Scholar]
Figure 1. The 2nd level staircase of B N E .
Figure 1. The 2nd level staircase of B N E .
Information 13 00476 g001
Figure 2. While sweeping vertical line l over point p i + 1 , the staircase S T t is updated.
Figure 2. While sweeping vertical line l over point p i + 1 , the staircase S T t is updated.
Information 13 00476 g002
Figure 3. B N B N N E is swept with a horizontal line l H sliding upwards from the lowest blue point. The set S k N N E is updated at every blue point p encountered. Staircase points that are not blue points are marked with black dots.
Figure 3. B N B N N E is swept with a horizontal line l H sliding upwards from the lowest blue point. The set S k N N E is updated at every blue point p encountered. Staircase points that are not blue points are marked with black dots.
Information 13 00476 g003
Figure 4. Case 1. p B N E , q to the right of p. The purple empty dots denote T ( p , q ) .
Figure 4. Case 1. p B N E , q to the right of p. The purple empty dots denote T ( p , q ) .
Information 13 00476 g004
Figure 5. Case 2. p B N E , q B N E , and q is to the left of p. The purple empty dots denote U ( q , p ) .
Figure 5. Case 2. p B N E , q B N E , and q is to the left of p. The purple empty dots denote U ( q , p ) .
Information 13 00476 g005
Figure 6. Case 3. p B N E , q B N . The purple empty dots denote U ( p ) .
Figure 6. Case 3. p B N E , q B N . The purple empty dots denote U ( p ) .
Information 13 00476 g006
Figure 7. Case 4. p B N , q is to the right of b ( p ) . The purple empty dots denote U ( q ) .
Figure 7. Case 4. p B N , q is to the right of b ( p ) . The purple empty dots denote U ( q ) .
Information 13 00476 g007
Figure 8. Case 5. p B N , q B N E and q is to the left of b ( p ) .
Figure 8. Case 5. p B N , q B N E and q is to the left of b ( p ) .
Information 13 00476 g008
Figure 9. Case 6. p B N , q B N .
Figure 9. Case 6. p B N , q B N .
Information 13 00476 g009
Figure 10. If the MBSR among R and B were bounded by a point p C , it would intersect C.
Figure 10. If the MBSR among R and B were bounded by a point p C , it would intersect C.
Information 13 00476 g010
Figure 11. A circle bounding a rectangle at an edge makes that edge fixed in terms of either X or Y coordinate.
Figure 11. A circle bounding a rectangle at an edge makes that edge fixed in terms of either X or Y coordinate.
Information 13 00476 g011
Figure 12. A circle bounding the rectangle at a corner allows the corner to slide along the arc. Each position of the corner uniquely determines its two adjacent edges.
Figure 12. A circle bounding the rectangle at a corner allows the corner to slide along the arc. Each position of the corner uniquely determines its two adjacent edges.
Information 13 00476 g012
Figure 13. Case 1: Three circles pin the CSR on edges, which uniquely determines its fourth edge.
Figure 13. Case 1: Three circles pin the CSR on edges, which uniquely determines its fourth edge.
Information 13 00476 g013
Figure 14. Case 2.1: Two circles C 1 , C 2 pin two adjacent edges of the CSR. When extending one of the edges until it touches a circle C 3 , the resulting CSR is unique.
Figure 14. Case 2.1: Two circles C 1 , C 2 pin two adjacent edges of the CSR. When extending one of the edges until it touches a circle C 3 , the resulting CSR is unique.
Information 13 00476 g014
Figure 15. Case 2.2: Two circles C 1 , C 2 pin the CSR on the north and west edges. The SE corner may slide along a circle C 3 .
Figure 15. Case 2.2: Two circles C 1 , C 2 pin the CSR on the north and west edges. The SE corner may slide along a circle C 3 .
Information 13 00476 g015
Figure 16. Case 2.3: Two circles C 1 , C 2 pin the CSR on the east and west edges. The other two edges are uniquely determined.
Figure 16. Case 2.3: Two circles C 1 , C 2 pin the CSR on the east and west edges. The other two edges are uniquely determined.
Information 13 00476 g016
Figure 17. Case 3.1: Circle C 1 supports the CSR on the east edge, which, when extended in both directions, it eventually touches circles C 2 , C 3 .
Figure 17. Case 3.1: Circle C 1 supports the CSR on the east edge, which, when extended in both directions, it eventually touches circles C 2 , C 3 .
Information 13 00476 g017
Figure 18. Case 3.2: The CSR is supported by C 1 on the east edge. One of the adjacent edges is uniquely determined, while the opposite corner may slide along a circle C 2 .
Figure 18. Case 3.2: The CSR is supported by C 1 on the east edge. One of the adjacent edges is uniquely determined, while the opposite corner may slide along a circle C 2 .
Information 13 00476 g018
Figure 19. Case 4.1: No edge is pinned by any circle, and the position of p on C 1 N E is known. While sliding the CSR left-downward from S m i n , we first touch circle C 2 at corner q adjacent to p. The other two corners are uniquely determined.
Figure 19. Case 4.1: No edge is pinned by any circle, and the position of p on C 1 N E is known. While sliding the CSR left-downward from S m i n , we first touch circle C 2 at corner q adjacent to p. The other two corners are uniquely determined.
Information 13 00476 g019
Figure 20. Case 4.2: No edge is pinned by any circle, and the position of p on C 1 N E quadrant is known. While sliding the CSR left-downward from S m i n , we first touch circle C 2 at a corner q opposite to p. There are an infinite number of CSRs in this case.
Figure 20. Case 4.2: No edge is pinned by any circle, and the position of p on C 1 N E quadrant is known. While sliding the CSR left-downward from S m i n , we first touch circle C 2 at a corner q opposite to p. There are an infinite number of CSRs in this case.
Information 13 00476 g020
Figure 21. In each region, the circles define a dominating envelope C , which is a sequence of arcs and horizontal or vertical segments. Two consecutive arcs or segments define a breakpoint on C .
Figure 21. In each region, the circles define a dominating envelope C , which is a sequence of arcs and horizontal or vertical segments. Two consecutive arcs or segments define a breakpoint on C .
Information 13 00476 g021
Figure 22. Each pair of adjacent circles gives a different case.
Figure 22. Each pair of adjacent circles gives a different case.
Information 13 00476 g022
Figure 23. Area of the CSR cornered on circle C ( c , 1 ) as a function f N E ( θ N E ) of that corner’s location.
Figure 23. Area of the CSR cornered on circle C ( c , 1 ) as a function f N E ( θ N E ) of that corner’s location.
Information 13 00476 g023
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Armaselu, B. Extensions of the Maximum Bichromatic Separating Rectangle Problem. Information 2022, 13, 476. https://doi.org/10.3390/info13100476

AMA Style

Armaselu B. Extensions of the Maximum Bichromatic Separating Rectangle Problem. Information. 2022; 13(10):476. https://doi.org/10.3390/info13100476

Chicago/Turabian Style

Armaselu, Bogdan. 2022. "Extensions of the Maximum Bichromatic Separating Rectangle Problem" Information 13, no. 10: 476. https://doi.org/10.3390/info13100476

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop