Find the diameter of the set of n points in d-dimensional space

I am interested in finding the diameter of two sets of points in 128 dimensions. The first has 10,000 points and the second has 1,000,000. For this reason, I would like to do something better than the naive approach that takes O (n²). The algorithm will be able to handle any number of points and sizes, but at present I am very interested in these two specific data sets.

I am very interested in getting speed over accuracy, so based on this , I would find the (approximate) bounding box of the set of points, calculating the min and maximum value for each coordinate, so the time is O (n * d). Then , if I find the diameter of this window, the problem is solved .

In the 3d case, I could find the diameter of one side, since I know two edges, and then I could apply the Pythagorean theorem on the other, vertical in that side. I am not sure about this, but, of course, I don’t see how to generalize it to d-sizes.


An interesting answer can be found here , but it seems specific to 3 dimensions, and I want to use the method for d-measurements.

Interesting article: On calculating the diameter of a point set in multidimensional Euclidean space. Link . However, the implementation of the algorithm seems too much to me at this point.

+4
source share
3 answers

O (nd) - , . .

+3

, ...

, " " . , , . , [-1, 1] ^ d, d. d = 128 .

.

+2

, , , .

, , .

2d- :

sin (a/2) * (1 + tan (a/2)) , , , 90deg 1,42 (sqrt (2))

a/2 a = > 0, .

, .

, .

, . , , , .

- , .

: , , . , , , , , .

O, (, ).

:

  • a = pi/2.
  • . ""
  • , min max .
  • . : sin (a/2) * (1 + tan (a/2)) , .
  • , .
  • exis, , ( ), bruteforce (N ^ 2) , .
  • , , .
  • ( - ) epsilon, .
  • (, ), , . , * sqrt (2). /sqrt (2). (2 * ), . , n > 3- .
  • (3).

, (5) (7).

+1

All Articles