Skip to main content
1 of 5
user avatar
user avatar

Studying finite groups with Euclidean geometry?

Since each finite group $G$ can be considered as a subgroup of the symmetric group, by Cayley's theorem, we might see the elements of $G$ as permutations $\pi$.

Consider for each $\pi \in G$ the set:

$$X(\pi) := \{ (i,\pi(i)) | 1 \le i \le n \}$$

Then the Jaccard similarity-kernel, which is positive definite, is:

$$J(\pi,\pi'):= \frac{ |X(\pi) \cap X(\pi')|}{|X(\pi) \cup X(\pi')|}$$

We can consider the matrix

$$M = (J(g,h)_{g,h \in G})$$

ordered somehow by an ordering of $G$.

Since $J$ is a kernel and a similarity, we can write the distance between two elements in $G$ as:

$$d(g,h) = \sqrt{J(g,g) + J(h,h)-2J(g,h)} = \sqrt{2-2J(g,h)}$$

A similarity $s:X\times X \rightarrow \mathbb{R}$ is defined in Encyclopedia of Distances as:

  1. $s(x,y) \ge 0 \forall x,y \in X$

  2. $s(x,y) = s(y,x) \forall x,y \in X$

  3. $s(x,y) \le s(x,x) \forall x,x \in X$

  4. $s(x,y) = s(x,x) \iff x=y$

A positive definite kernel $k$ is a positive definite function on some set $X$.

A "kernel-similarity" is a function $f$ which is a kernel and a similiarity.

One can prove that the above Jaccard function is a kernel-similarity.

My question is, if one can gain any insight for finite groups by studying properties of the Euclidean geometry of the embedded vectors $\phi(g)$.

For instance the matrix $M$ is a Gram-Matrix of linear independent vectors, hence one can look at the volume of these vectors:

$$\operatorname{vol}(G): = \sqrt{\det(M_G)}$$

Here is some SAGEMATH code to look at this:

from sage.matrix.operation_table import OperationTable

def Jaccard(A,B):
    XA = set([ (x,A[x]) for x in range(len(A))])
    XB = set([ (x,B[x]) for x in range(len(A))])
    #print(XA)
    #print(XB)
    return QQ(len(XA.intersection(XB)))/QQ(len(XA.union(XB)))


def distJ(A,B):
    return sqrt(Jaccard(A,A)+Jaccard(B,B)-2*Jaccard(A,B))

def GramMatrix(finiteGroup):
    G = finiteGroup
    O = OperationTable(G,operator.mul,names="elements")
    M = matrix([[ Jaccard(Permutation(x),Permutation(y)) for x in O.column_keys()] for y in O.column_keys()])
    return M

def distanceMatrix(finiteGroup):
    G = finiteGroup
    O = OperationTable(G,operator.mul,names="elements")
    M = matrix([[ distJ(Permutation(x),Permutation(y)) for x in O.column_keys()] for y in O.column_keys()])
    return M
    

groups = [SymmetricGroup(1),SymmetricGroup(2),CyclicPermutationGroup(3),CyclicPermutationGroup(4),KleinFourGroup(),CyclicPermutationGroup(5),CyclicPermutationGroup(6),SymmetricGroup(3),QuaternionGroup(),DihedralGroup(5),AlternatingGroup(4),SymmetricGroup(4),DihedralGroup(8)]
for G in groups: #G = DihedralGroup(4)
    print("Group G:=")
    print(G)
    M = GramMatrix(G)
    print("Gram-Matrix:")
    print(M)
    print("cholesky = ")
    print(M.cholesky())
    print("characteristic-polynomial of Gram-Matrix=")
    print(factor(M.charpoly()))
    print("distance-Matrix:=")
    print(distanceMatrix(G))
    print("Volume of G:")
    print(sqrt(M.det()))

Related question: Irreducible representations and Jaccard Kernel for Groups?

In the related question, it seems that the characteristic polynomial contains information on the dimensionality of the irreducible representations of $G$.

Thanks for your help!

user6671