Random loops can be obtained from random quasigroups by normalization (principal isotope)
The Jacobson-Matthews method
We fix and consider tables
Let be the set of proper latin squares
Introduce the concept of improper latin squares
Let be the set of all proper and improper latin squares
Make into a graph by defining "moves" on the elements
Difficult:
Theorem 1 The graph is connected with diameter at most . Theorem 2 The average distance between proper latin squares is at most .
Random walks in this graph give a Monte Carlo algorithm to generate latin squares uniformly at random
Question: How to know when to stop?
Improper latin squares
The symbols are variables
We introduce the concept of an improper LS:
An improper LS has a unique entry of the form
All rows and columns sum up to
The symbol (the one with the negative sign) has exactly two further occurences in the row and column of the improper entry
The Jacobson-Matthews move for a proper LS
The move modifies a subsquare
There are such subsquares
The Jacobson-Matthews move for an improper LS
The move modifies a "improper" subsquare
There are 8 such subsquares
The result is proper if and only if
Important: No more than one improper entry
Time complexity of RandomQuasigroup
Number of iterations =
Random nilpotent loops
Nilpotent loops have an efficient construction method using factor sets
Random central extensions are generated by random factor sets
Random nilpotent loops are given by the list of the composition factors
gap> L := RandomNilpotentLoop( [ Group((1,2)), ElementaryAbelianGroup(32) ] ); time;
<loop of size 64>
39
gap> Size( AutomorphismGroup( L ) ); time;
32
1774
Compare this with random loops:
gap> L := RandomLoop( 64 ); time;
<loop of size 64>
7205
gap> Size( AutomorphismGroup( L ) ); time;
1
151
Exotic constructors: Loops by (right) loop folders
Definition (Aschbacher) Let be a group, a subgroup and a subset such that and for each conjugate of , is a set of right coset representatives. Then is called a loop folder.
For define
where .
Then is the loop associated with the loop folder
An almost trivial example:
gap> G := SymmetricGroup( 3 );; H := TrivialSubgroup( G );;
gap> LoopByRightFolder( G, H, Elements( G ) );
<loop of size 6>
gap> IsAssociative( last );
true
Exotic constructors: Right Bol loops by exact factorizations
Right Bol loop: Loop with the rigth Bol identity
Twisted subgroup: such that and for all
The anti-diagonal is a twisted subgroup in
The loop folder is a Bol loop folder, if is a twisted subgroup in
Exact factorization: subgroups of s. t. and
Example: Let be a transitive permutation group, and a regular subgroup. Let be the stabilizer of an element in . Then is an exact factorization
Exotic constructors: Right Bol loops by exact factorizations
Theorem (GN 2007): Let be an exact factorization. Let be the anti-diagonal in . Then is a Bol loop folder.
gap> M:=LoopByRightFolder(GxG,AxB,K);
<loop of size 24>
gap> IsomorphismLoops(L,M);
MappingByFunction( <right Bol loop of size 24>, <loop of size 24>,
>function( x ) ... end )