Matrices may be regarded as defining a design with the entry of a matrix in
a particular row and column defining the incidence of the row and column.
The automorphism group of a matrix is the set of permutations of the rows and
columns of the matrix that leave the matrix unchanged.
Finds a permutation x such that Mx= N, if such exists.
If a permutation is found return values are true and the permutation,
otherwise returns false. The algorithm used is a backtrack search as
for AutomorphismGroup above.
Parameters
LeftRowColours: SeqEnum[RngIntElt] Default:
LeftColColours: SeqEnum[RngIntElt] Default:
RightRowColours: SeqEnum[RngIntElt] Default:
RightColColours: SeqEnum[RngIntElt] Default:
may be used to describe partitions of the rows
and columns of M (Left) and of N (Right) that are to be
preserved by x.
The user may also supply subgroups of the automorphism groups of M
(as LeftSubgroup) and of N (as RightSubgroup), if such
subgroups are known. These may speed the course of the algorithm.
We construct a matrix from a Fano polytope and compute its automorphism
group.
> M := VertexFacetHeightMatrix(PolytopeSmoothFanoDim3(10)); M;
[1 0 0 0 2 1 2 2]
[0 0 0 1 1 2 2 2]
[0 0 1 2 0 2 2 1]
[2 0 1 0 2 0 2 1]
[0 2 0 1 1 2 0 2]
[1 2 0 0 2 1 0 2]
[0 2 1 2 0 2 0 1]
[2 2 1 0 2 0 0 1]
[2 2 2 1 1 0 0 0]
[1 2 2 2 0 1 0 0]
[1 0 2 2 0 1 2 0]
[2 0 2 1 1 0 2 0]
> A := AutomorphismGroup(M); A;
Permutation group A acting on a set of cardinality 20
Order = 24 = 2^3 * 3
(2, 4)(3, 12)(5, 8)(7, 9)(13, 18)(15, 16)(17, 20)
(1, 5)(2, 6)(3, 8)(4, 7)(9, 11)(10, 12)(13, 16)(14, 19)(17, 18)
(1, 2)(3, 4)(5, 6)(7, 8)(9, 10)(11, 12)(13, 16)(17, 18)
> Nrows(M), Ncols(M);
12, 8
> Orbits(A);
[
GSet{@ 14, 19 @},
GSet{@ 13, 18, 16, 17, 15, 20 @},
GSet{@ 1, 5, 2, 8, 6, 4, 3, 7, 12, 9, 10, 11 @}
]
The automorphism group is transitive on the rows of the matrix.
Now dualize the matrix and test for isomorphism.
> D := Matrix(12, 8, [2-x:x in Eltseq(M)]);
> f, x := IsIsomorphic(M, D); f, x;
true (2, 4)(3, 12)(5, 8)(7, 9)(14, 19)(15, 17)(16, 20)
> M^x eq D;
true
[Next][Prev] [Right] [Left] [Up] [Index] [Root]