Given a finite set of points in $\mathbb{R}^n$, all at finite distances from each other I would like to remove a certain proportion of points, in such a way as to penalise clustering. For example for $n=1$, given points $\{1, 2, 10, 20\}$ I would want to remove $2$ because that would maximize the distances between the remaining points.
Is there an efficient algorithm/implementation that does this already? My approach would be to:
- Work out distances between all points
- Sum these distances, and normalize by the number of points squared (since the number of distances grows as the square of the number of points)
- Select one point that increases the metric by the greatest amount
- repeat
The aim here is to reduce the number of alternatives, whilst trying to preserve diversity. e.g. each point could be a set of instructions on how to run an experiment, but if only a finite number of experiments can be tried, I would like to cover the widest range of options possible.