I have \$10^5\$ to \$10^6\$ points on a sphere, and want to choose some points from them which are as close as uniformly distributed on this sphereas possible. For that reason, I do the following: at each step I add the point in the data which is farthest away from any point which I have already chosen. In order to do this, I find the closest distance from each point in the data to any of the points that are already chosen. Then I pick the point from the data which has the largest minimum distance to any of the points that are already chosen. The algorithm is the following:
But this still has the issue that the pairwise distances are computed each time, and has obvious memory issues for large N. Would loveI would like to hear any suggestions how toI can improve itthe performance of the algorithm.