Consider a set of points in an n-dimensional space. Each dimension is bounded in the range [0, 1]
inclusive. Add a new point to the space as far away as possible from its nearest neighbor. Where should that point go?
One-Dimensional Example: You are given the points 0
, 1
, 0.5
, and 0.75
. The solution is 0.25
. Its nearest neighbors are 0
and 0.5
–– tied. The distance to its nearest neighbors is 0.25
. No other point in the range [0, 1]
inclusive is further from its nearest neighbor than 0.25
.
Two-Dimensional Example: You are given the points (0, 0)
, (1, 0)
, and (0.75, 0)
. The solution is (0.375, 1)
. Its nearest neighbors are (0, 0)
, and (0.75, 0)
–– tied. The distance to its nearest neighbors is 1.068
. No other point with both dimensions on the range [0, 1]
inclusive is further from its nearest neighbor than 1.068
.
Multiple Solutions: You are given the points 0.4
, 0.5
, and 0.6
. The solutions are 0
and 1
. The nearest neighbor to 0
is 0.4
, and the nearest neighbor to 1
is 0.6
. For both solutions, the distance to the nearest neighbor is 0.4
. No other point in the range [0, 1]
inclusive is further from its nearest neighbor than 0.4
.
Concrete Example: Consider an island containing cellular phone towers. Some areas of the island have service, and some areas do not have service. You are erecting a new tower. You could erect the new tower right next to an existing tower. This would provide coverage to the same area –– it would not improve the coverage area. Or you could erect the new tower as deep as possible in the largest uncovered area. This would yield the most improvement to the coverage area.
Context: I am doing research in graduate school about case-base maintenance (a sub-field of artificial intelligence). I am applying case-base maintenance to multiple domains. In the current domain, a case is a travel agency package. The package contains multiple features such as destination, number of travelers, and price. Given a query from a user, look up the most similar travel package. When adding a new travel package, try make it different from the existing packages.
Question: What algorithm can I use to solve this? Can you point me to search terms or an academic paper?