What is the way to find the symmetry group of a set of points?

1k Views Asked by At

Given a set of N points in D dimensional space. How would you find the symmetry group of these points? i.e. the group of Euclidean symmetries that map the points to themselves.

To make things harder, perhaps you only know the coordinates of the points to within an accuracy of $\epsilon$.

For example, the points could be corners of a cube in 3D or corners of a hexagon in 2D.

I presume you would start with trying to find all the possible rotations and reflections. (How would you do that systematically) And then seeing how they compose.

I wouldn't need to know the name of the symmetry group perhaps just its size and a way to distinguish it from another symmetry group of the same size.

1

There are 1 best solutions below

0
On

In a C.S. oriented way (I assume that the set of points is not contained in some hyperplane). I don't know the specific numbers of your problem but in my mind it seems to work for reasonable data.

  • compute the convex envelop of your set of points and denote $v_1,\dots, v_M$ the set of vertices of the convexe envelop,

  • compute the isobarycenter $0$ of the points and identify the points to a vector space using $0$. Each point of your set is identified to a vector $v_i$.

  • Make the list of lengths $\|v_i\|$ for and order it. From now on we assume that $\| v_1\|\leq \dots \leq \|v_M\|$.

  • Choose arbitrarily $D$ points $v_1,\dots, v_D$ amongst the $M$ points such that they span the $D$-dimensional vector space.

  • An isometry fixing globally your set of points must send a vertex to a vertex of the same length. Therefore try all possibilities (brute force) for the images of $v_1,\dots, v_D$ and test if it gives you an invertible linear transformation and if they fix globally the set of points (maybe try first with the set of vertices).

What you get at the end is a bunch of invertible $d$ by $d$ matrices that fix globally your set. It is easily adaptable with the $\epsilon$ accuracy.