Find points as far apart as possible from their nearest neighbor

68 Views Asked by At

Let $B$ be a three dimensional box with dimensions $L,W,H$. Suppose I have a finite set $S$ of points in $B$. I want to find the points $p$ in the box that maximize the distance to the nearest point in $S$.

Below I provide some examples for the analogous two dimensional problem.

2D Examples:

For each example the bounds of the box will be x = [0 -> 10] and y = [0 -> 10]

Les S be the set of points in the box.

  1. S=[(0,0),(0,10)] the point I'm looking for is (10,5)

The distance between (10,5) and (0,0) is sqrt(125) and the distance between (10,5) and (0,10) is also sqrt(125). There doesn't exist any other point on the box that has a distance greater than sqrt(125) therefor the point I'm looking for is (10,5)

  1. S=[(0,0),(0,2),(0,5)] the point I'm looking for is (10,10)

the reason for this is because the distance between (10,10) and (0,5) is sqrt(125). Note: The other points in the calculation aren't used in the final distance calculation because I just need to get the greatest distance from the closest point.

  1. S=[(0,0),(10,0),(0,10),(10,10)] the point I'm looking for (5,5)

  2. S=[(5,0),(5,5),(5,10)] the points I'm looking for are (0,2.5), (0,7.5), (10,2.5) and (10,7.5)

  3. S=[(5,5),(5,10),(10,5),(1,0),(2,3),(1,1),(0,0)] the point I'm looking for is (10,10)

The closest points to (10,10) are (5,10) and (10,5) and the distance between (10,10) and those points is 5. This is the point I'm looking for since there doesn't exist any other points in the box that has a greater distance from its closest "neighbors". (9.9,10) has a distance of 4.9 from (5,10) and (10,9.9) has a distance of 4.9 from (10,5) both of which are less than the distance of 5 calculated from (10,10).

Current potential approach:

Let distance = f(x,y) If S = [(0.5,0.5),(0,1)] then I can extrapolate the following.

Mid point between (0.5,0.5) and (0,1) is (0.25, 0.75).
d = 0 = f(0.5,0.5) = f(0,1)
d = sqrt(0.25^2 + 0.25^2) = f(0.25, 0.75)
0 = f'(0.5,0.5) = f'(0,1)
0 =  f'(0.25,0.75) in the direction of the line between (0.5,0.5) and (0,1)
0 > f''(0.5, 0.5)
0 > f''(0, 1)
0 < f''(0.25, 0.75) in the direction of the line between (0.5,0.5) and (0,1)

I'm thinking about getting this information for every point and its closest neighbor, and using this information I'm hoping to be able to extrapolate a function for the shape of distance over the box.

If this is impossible do to degrees of freedom, how many sample distances would I need to calculate from random points in the box to be able extrapolate such a function?