Goto Chapter: Top 1 2 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

2 Random Methods
 2.1 Basic Operations
 2.2 Random Methods for Obtaining Elements With Desired Properties
 2.3 Random Methods for Group Rings

2 Random Methods

2.1 Basic Operations

Please note, that throughout this package it is assumed that the group G is finite.

2.1-1 BasicGroup
‣ BasicGroup( KG )( function )

Let \(G\) be a group and \(F\) a field. Then the group algebra \(FG\) consists of the set of formal linear combinations of the form

\[ \sum_{g \in G} \alpha_g g, \quad \alpha_g \in F \]

where all but finitely many of the \(\alpha_g\) are zero [Lee73][Bov98].

For the group ring KG the function BasicGroup returns the basic group of KG as a subgroup of the group of units of KG.


gap> G:=CyclicGroup(IsFpGroup,4);

<fp group of size 4 on the generators [ a ]>
gap> Elements(G);

[ <identity ...>, a, a^2, a^3 ]
gap> KG:=GroupRing(GF(2),G);

<algebra-with-one over GF(2), with 1 generators>
gap> BasicGroup(KG);

<group with 4 generators>
gap> Elements(last);

[ (Z(2)^0)*<identity ...>, (Z(2)^0)*a, (Z(2)^0)*a^2, (Z(2)^0)*a^3 ]

2.1-2 IsLienEngel
‣ IsLienEngel( KG )( function )

On any associative ring \(R\) the Lie bracket is defined as \([x,y] = xy-yx.\). For any positive integer \(n\), a subset \(\Lambda\) of \(R\) is said to be Lie \(n\)-Engel if for any \(x,y \in \Lambda\), \([x,y,\ldots,y]=0\) (\(y\) is taken \(n\) times) [Lee00][Seh78] .

For the group ring KG the function IsLienEngel returns true if KG is Lie \(n\)-Engel and false otherwise.


gap> G:=CyclicGroup(4);

<pc group of size 4 with 2 generators>
gap> KG:=GroupRing(GF(2),G);

<algebra-with-one over GF(2), with 2 generators>
gap> IsLienEngel(KG);

false
gap> G:=DihedralGroup(16);

<pc group of size 16 with 4 generators>
gap> KG:=GroupRing(GF(2),G);

<algebra-with-one over GF(2), with 4 generators>
gap> IsLienEngel(KG);

true

2.2 Random Methods for Obtaining Elements With Desired Properties

2.2-1 GetRandomUnit
‣ GetRandomUnit( KG )( function )

For the group ring KG the function GetRandomUnit returns an unit (i.e. an invertible element) by a random way.


gap> G:=CyclicGroup(4);

<pc group of size 4 with 2 generators>
gap> KG:=GroupRing(GF(7),G);

<algebra-with-one over GF(7), with 2 generators>
gap> u:=GetRandomUnit(KG);;

gap> Augmentation(u);

Z(7)^4
gap> u*u^-1;

(Z(7)^0)*<identity> of ...

2.2-2 GetRandomNormalizedUnit
‣ GetRandomNormalizedUnit( KG )( function )

Let \(U(KG)\) be the multiplicative group of the group algebra \(KG\) of the \(p\)-group \(G\) over a field \(K\) of characteristic \(p\). The subgroup

\[ V(KG)=\{ \sum_{g \in G} \alpha_g g \in U(KG) \mid \sum_{g \in G} \alpha_g = 1 \} \]

is called the group of normalized units of the group algebra \(KG\) [BS89].

For the group ring KG the function GetRandomNormalizedUnit returns a normalized unit (i.e. an invertible element with augmentation 1, \(u \in V(KG)\)) by a random way.


gap> G:=DihedralGroup(IsFpGroup,16);;

gap> KG:=GroupRing(GF(2),G);;

gap> u:=GetRandomNormalizedUnit(KG);;

gap> Augmentation(u);

Z(2)^0
gap> u*u^-1;

(Z(2)^0)*<identity ...>

2.2-3 GetRandomNormalizedUnitaryUnit
‣ GetRandomNormalizedUnitaryUnit( KG[, eta] )( function )

Let \(p\) be a prime, \(K\) the field of characteristic \(p\), \(G\) a finite abelian \(p\)-group with an arbitrary antiautomorphism \(\eta\) of order 2 and \(G_{\eta}=\{g \in G \mid \eta(g)=g\}\). Extending the antiautomorphism \(\eta\) to the group algebra \(KG\) we obtain the involution

\[ x = \sum_{g \in G} \alpha_g g \mapsto x^{*}= \sum_{g \in G} \alpha_g \eta(g) \]

of KG which is called as \(\eta\)-involution. If \(\eta(g)=g^{-1}\) for all \(g \in G\) then this involution is called canonical. Then, if \(V(KG)\) is the group of normalized units of \(KG\), the subgroup of unitary units is defined as [BS06]

\[ V_*(KG)=\{x \in V(FG) \mid x^* = x^{-1} \}. \]

For the group algebra KG the function GetRandomNormalizedUnitaryUnit returns a normalized unitary unit (i.e. such an invertible element with augmentation 1, that \(u\cdot u^{*}=1\)) by a random way. Also, there exists a two-parametrical version of this method, where the second parameter \(\eta\) is an arbitrary antiautomorphism of \(G\). In this case, the function GetRandomNormalizedUnitaryUnit returns a normalized unitary unit (i.e. such an invertible element with augmentation 1, that \(u\cdot u^{*}=1\)) by a random way for the group algebra KG and an arbitrary antiautomorphism eta.


gap> G:=CyclicGroup(4);;

gap> KG:=GroupRing(GF(2),G);;

gap> u:=GetRandomNormalizedUnitaryUnit(KG);;

gap> u*Involution(u);

(Z(2)^0)*<identity> of ...
gap> Augmentation(u);

Z(2)^0
gap> Aut:=AutomorphismGroup(G);;

gap> KG:=GroupRing(GF(2),G);;

gap> Aut2:=Filtered(Aut,i->Order(i)=2);;

gap> Aut2;

[ [ f1*f3 ] -> [ f1*f2*f4 ], [ f1*f3 ] -> [ f1*f3*f4 ],
  [ f1*f3 ] -> [ f1*f2 ] ]
gap> eta:=Aut2[2];

[ f1*f3 ] -> [ f1*f3*f4 ]
gap> u:=GetRandomNormalizedUnitaryUnit(KG,eta);;

gap> u*RAMEGA_InvolutionKG(u, eta, KG);

(Z(2)^0)*<identity> of ...

2.2-4 GetRandomCentralNormalizedUnit
‣ GetRandomCentralNormalizedUnit( KG )( function )

For the group ring KG the function GetRandomCentralNormalizedUnit returns a central normalized unit (i.e. such an invertible element with augmentation 1, that \(u\cdot x=x \cdot u\), \(\forall x \in KG\)) by a random way.


gap> G:=CyclicGroup(IsFpGroup,4);;

gap> KG:=GroupRing(GF(2),G);;

gap> u:=GetRandomCentralNormalizedUnit(KG);;

gap> Augmentation(u);

Z(2)^0
gap> bool:=true;

true
gap> for x in Elements(KG) do

> if x*u<>u*x then bool:=false; break; fi;

> od;

gap> bool;

true

2.2-5 GetRandomElementFromAugmentationIdeal
‣ GetRandomElementFromAugmentationIdeal( KG )( function )

If \(KG\) is a modular group ring then its augmentation ideal \(A\) is generated by all elements of the form \(g-1\) where \(g \in G \setminus \{1 \}\). The augmentation ideal consists of all elements with augmentation 0, i.e.

\[ A(KG)=\{ \sum_{g \in G} \alpha_g g \in KG \mid \sum_{g \in G} \alpha_g = 0 \}. \]

For the modular group ring KG the function GetRandomElementFromAugmentationIdeal returns an element from the augmentation ideal of \(KG\) by a random way.


gap> G:=QuaternionGroup(16);

<pc group of size 16 with 4 generators>
gap> KG:=GroupRing(GF(2),G);

<algebra-with-one over GF(2), with 4 generators>
gap> u:=GetRandomElementFromAugmentationIdeal(KG);;

gap> Augmentation(u);

0*Z(2)

2.3 Random Methods for Group Rings

2.3-1 RandomLienEngelLength
‣ RandomLienEngelLength( KG, num )( function )

Let KG be a Lie n-Engel group ring and let \([x,y,y,\ldots,y]=0\) for all \(x, y \in KG \). Then the number of \(y\)'s in the last equation is called the Lie \(n\)-Engel length [BK77][Kur96][Kur98].

For the Lie n-Engel group ring KG and the maximal number of iterations num the function RandomLienEngelLength returns the Lie \(n\)-Engel length of \(KG\) by a random way.


gap> G:=DihedralGroup(16);;

gap> KG:=GroupRing(GF(2),G);;

gap> RandomLienEngelLength(KG,100);

4

2.3-2 RandomExponent
‣ RandomExponent( KG, num )( function )

For the group ring KG (where \(G\) is a finite \(p\)-group and the characteristic of \(K\) is \(p\)) and the maximal number of iterations num the function RandomExponent returns the exponent of V(KG) [BL93] [BS18] [Sha91] by a random way.


gap> G:=DihedralGroup(16);;

gap> KG:=GroupRing(GF(2),G);;

gap> RandomExponent(KG,100);

8

2.3-3 RandomExponentOfNormalizedUnitsCenter
‣ RandomExponentOfNormalizedUnitsCenter( KG, num )( function )

For the group ring KG (where \(G\) is a finite \(p\)-group and the characteristic of \(K\) is \(p\)) and the maximal number of iterations num the function RandomExponentOfNormalizedUnitsCenter returns the exponent of the center of the group of normalized units of KG by a random way.


gap> G:=DihedralGroup(16);;

gap> KG:=GroupRing(GF(2),G);;

gap> RandomExponentOfNormalizedUnitsCenter(KG,100);

4

2.3-4 RandomNilpotencyClass
‣ RandomNilpotencyClass( KG, num )( function )

Let \(G\) be a group and let \(g_1,\ldots,g_n \in G \). By the symbol \((g_1,\ldots,g_n)\) we denote the commutator of the elements \(g_1,\ldots,g_n\) which is defined inductively as

\[ (g_1,\ldots,g_n)=((g_1,\ldots,g_{n-1}),g_n), \quad (g_1,g_2)=g_1^{-1}g_2^{-1}g_1 g_2. \]

As usual, for the subsets \(X, Y\) of G we will denote by \((X,Y)\) the subgroup generated by all commutators \((x,y)\) with \(x \in X\), \(y \in Y\).

This allows us to define the lower central series of a nonempty subset \(H\) of \(G\): let \(\gamma_{n+1}(H)=(\gamma_{n}(H),H)\) with \(\gamma_1(H)=H\). We say that \(H\) is nilpotent if \(\gamma_{n}(H)=1\) for some \(n\). For a nilpotent subset \(H \subseteq G\) the number

\[ cl(H) = \min\{n \in \mathbb{N}_0: \gamma_{n+1}(H)=1\} \]

is called the nilpotency class of \(H\) [BJ11][Sha93][Sha91][MS90] [Sha90b][Sha90a].

For the Lie nilpotent group ring KG and the maximal number of iterations num the function RandomNilpotencyClass returns the nilpotency class of the group of normalized units of KG by a random way.


gap> G:=DihedralGroup(16);;

gap> KG:=GroupRing(GF(2),G);;

gap> RandomNilpotencyClass(KG,100);

4

2.3-5 RandomDerivedLength
‣ RandomDerivedLength( KG, n )( function )

\(KG\) is called Lie solvable, if some of the terms of the Lie derived series \(\delta^{[n]}(KG)=[\delta^{[n-1]}(KG),\delta^{[n-1]}(KG)]\) with \(\delta^{[0]}(KG)=KG\) are equal to zero.

Denote by \(dl_L(KG)\) the minimal element of the set \(\{m\in\mathbb N\;\vert\; \delta^{[m]}(KG)=0\}\), which is said to be the Lie derived length of \(KG\) [Bal12] [BT08][Spi08][CS10].

For the modular group ring KG and a positive integer n the function RandomDerivedLength returns the Lie derived length by a random way.


gap> D:=DihedralGroup(IsFpGroup,8);;

gap> KG:=GroupRing(GF(2),D);;

gap> RandomDerivedLength(KG,100);

2

2.3-6 RandomCommutatorSubgroup
‣ RandomCommutatorSubgroup( KG, n )( function )

For the group ring KG and a positive integer n the function RandomCommutatorSubgroup returns the commutator subgroup of the unit group of \(KG\) using \(n\) iterations by a random way. There is also an overloaded version of this method for finding the commutator subgroup of an arbitrary group \(G\) using \(n\) iterations by a random way.


gap> G:=DihedralGroup(IsFpGroup,8);;

gap> KG:=GroupRing(GF(2),G);;

gap> SG:=RandomCommutatorSubgroup(KG,100);

gap> StructureDescription(SG);

"C2 x C2 x C2"

2.3-7 RandomCommutatorSubgroupOfNormalizedUnits
‣ RandomCommutatorSubgroupOfNormalizedUnits( KG, n )( function )

For the modular group ring KG and a positive integer n the function RandomCommutatorSubgroupOfNormalizedUnits returns the commutator subgroup of normalized units by a random way.


gap> G:=DihedralGroup(8);;

gap> KG:=GroupRing(GF(2),G);;

gap> SG:=RandomCommutatorSubgroupOfNormalizedUnits(KG,100);;

gap> u:=Random(Elements(SG));;

gap> Augmentation(u);

Z(2)^0

2.3-8 RandomNormalizedUnitGroup
‣ RandomNormalizedUnitGroup( KG, n )( function )

For a group ring KG, where G is a finite p-group and K has characteristic p and a positive integer n, where n is the number of iterations, the function RandomNormalizedUnitGroup returns the normalized unit group of KG by a random way.


gap> G:=DihedralGroup(8);;

gap> KG:=GroupRing(GF(2),G);;

gap> SG:=RandomNormalizedUnitGroup(KG);

<group with 4 generators>
gap> Size(SG);

128
gap> u:=Random(Elements(SG));;

gap> Augmentation(u);

Z(2)^0

2.3-9 RandomUnitarySubgroup
‣ RandomUnitarySubgroup( KG, n )( function )

For a modular group ring KG and a positive integer n, where n is the number of iterations, the function RandomUnitarySubgroup returns the subgroup generated by the normalized unitary units (see GetRandomNormalizedUnitaryUnit (2.2-3)) by a random way.


gap> G:=DihedralGroup(8);;

gap> KG:=GroupRing(GF(2),G);;

gap> SG:=RandomUnitarySubgroup(KG,100);;

gap> u:=Random(Elements(SG));;

gap> Augmentation(u);

Z(2)^0
gap> u*u^-1;

(Z(2)^0)*<identity> of ...

2.3-10 RandomCommutatorSeries
‣ RandomCommutatorSeries( KG, n )( function )

For a modular group ring KG, where G is a p-group, and a positive integer n, where n is the number of iterations, the function RandomCommutatorSeries returns the commutator series of the group of normalized units in \(KG\) by a random way.


gap> G:=DihedralGroup(8);;

gap> KG:=GroupRing(GF(2),G);;

gap> CS:=RandomCommutatorSeries(KG,100);

[ <group of size 128 with 4 generators>, <group of size 8 with 8 generators>,
  <group of size 1 with 1 generators> ]

2.3-11 RandomLowerCentralSeries
‣ RandomLowerCentralSeries( KG, n )( function )

The lower central series of a group \(G\) is the descending series of groups

\[ G=G_1 \trianglerighteq G_2 \trianglerighteq \ldots \trianglerighteq G_n \trianglerighteq \ldots, \]

where each \(G_{n+1}=[G_n,G]\), the subgroup generated by all commutators \([x,y]\) with \(x\) in \(G_n\) and \(y\) in \(G\). Thus, \(G_2=[G,G]=G^{(1)}\), the derived subgroup of \(G\); \(G_3=[[G,G],G]\), etc. The lower central series is often denoted \(y_n(G)\).

For a group ring KG, for which \(V(KG)\) is nilpotent, and a positive integer n, where n is the number of iterations, the function RandomLowerCentralSeries returns the lower central series of the group of normalized units of \(KG\) by a random way.


gap> G:=DihedralGroup(8);;

gap> KG:=GroupRing(GF(2),G);;

gap> CS:=RandomLowerCentralSeries(KG,100);

[ <group of size 128 with 4 generators>, <group of size 8 with 8 generators>,
  <group of size 1 with 1 generators> ]

2.3-12 RandomUnitaryOrder
‣ RandomUnitaryOrder( KG, n[, sigma] )( function )

For the group ring KG, where G is a finite p-group and K has characteristic p, and a positive integer n, where n is the number of iterations, the function RandomUnitaryOrder returns the order of the unitary subgroup of \(KG\) [CG09] by a random way. Also, there exists a three-parametrical version of this method, where the third parameter sigma is an arbitrary anti-automorphism of \(G\).


gap> G:=DihedralGroup(8);;

gap> KG:=GroupRing(GF(2),G);;

gap> ord:=RandomUnitaryOrder(KG,100);

64

2.3-13 RandomOmega
‣ RandomOmega( G, m, n )( function )

For the p group G and a positive integers m and n (number of iterations) the function RandomOmega returns the subgroup of \(G\), that is generated by the elements \(g\) for which \(g^{p^m}=1\), by random search.


gap> G:=CyclicGroup(8);;

gap> KG:=GroupRing(GF(2),G);;

gap> RO:=RandomOmega(KG,2,50);;

gap> u:=Random(Elements(RO));;

gap> (u^2)^2;

(Z(2)^0)*<identity> of ...
gap> ## Let h be a group.

gap> h:=SmallGroup(16,10);;

gap> RO:=RandomOmega(h,2,50);;

gap> u:=Random(Elements(RO));;

gap> (u^2)^2;

<identity> of ...

2.3-14 RandomAgemo
‣ RandomAgemo( G, m, n )( function )

For the p-group G and a positive integers m and n (number of iterations) the function RandomOmega returns the subgroup of \(G\), that is generated by the elements \(g^{p^m}\) by random search.


gap> G:=CyclicGroup(8);;

gap> KG:=GroupRing(GF(2),G);;

gap> RA:=RandomAgemo(KG,2,50);;

gap> Elements(RA);

[ (Z(2)^0)*<identity> of ..., (Z(2)^0)*f3 ]
gap> u:=Random(Elements(RA));;

gap> (u^2)^2;

(Z(2)^0)*<identity> of ...
gap> ## Let h be a group.

gap> h:=SmallGroup(16,10);;

gap> RA:=RandomAgemo(h,2,50);;

gap> Elements(RA);

[ <identity> of ... ]

2.3-15 RandomDihedralDepth
‣ RandomDihedralDepth( G, n )( function )

For a non abelian finite 2-group G and a positive integer n, where n is the number of iterations, the function RandomDihedralDepth returns the dihedral depth of G, which is defined to be the maximal number d such that G contains a subgroup isomorphic to the dihedral group of order \(2^{(d+1)}\).


gap> G:=SmallGroup([64,6]);

<pc group of size 64 with 6 generators>
gap> StructureDescription(G);

"(C8 x C4) : C2"
gap> RandomDihedralDepth(G,1000);

2

2.3-16 RandomQuaternionDepth
‣ RandomQuaternionDepth( G, n )( function )

For a non abelian finite 2-group G and a positive integer n, where n is the number of iterations, the function RandomQuaternionDepth returns the quaternion depth of G, which is defined to be the maximal number d such that G contains a subgroup isomorphic to the generalized quaternion group of order \(2^{(d+1)}\).


gap> G:=SmallGroup([64,10]);

<pc group of size 64 with 6 generators>
gap> StructureDescription(G);

"(C8 : C4) : C2"
gap> RandomQuaternionDepth(G,1000);

2

2.3-17 GetRandomSubgroupOfNormalizedUnitGroup
‣ GetRandomSubgroupOfNormalizedUnitGroup( KG, n )( function )

For a group ring KG and a positive integer n, the function GetRandomSubgroupOfNormalizedUnitGroup returns a subgroup of the normalized group of units generated by n random normalized units.


gap> KG:=GroupRing(GF(2),DihedralGroup(8));;

gap> G:=GetRandomSubgroupOfNormalizedUnitGroup(KG,2);

<group with 2 generators>
gap> StructureDescription(G);

"(C4 x C2) : C2"

2.3-18 RandomConjugacyClass
‣ RandomConjugacyClass( KG, n )( function )

For a group ring KG and a positive integer n (number of iterations), the function RandomConjugacyClass returns the random conjugacy class of a random element of the group of normalized units.


gap> KG:=GroupRing(GF(2),DihedralGroup(8));;

gap> cc:=RandomConjugacyClass(KG,4);;

gap> List(cc,i->Order(i));

[ 4, 4, 4 ]

2.3-19 RandomConjugacyClasses
‣ RandomConjugacyClasses( KG, n )( function )

For a modular group algebra KG and a positive integer n (number of iterations), the function RandomConjugacyClasses returns the conjugacy classes of the group of normalized units.


gap> KG:=GroupRing(GF(2),SmallGroup(8,3));;

gap> cc:=RandomConjugacyClasses(KG,100);;

gap> Size(Union(cc));

128
gap> Collected(List(cc,x->Number(x)));

[ [ 1, 16 ], [ 4, 28 ] ]
gap> vkg:=RandomNormalizedUnitGroup(KG);;

gap> Size(vkg);

128

2.3-20 RandomIsCentralElement
‣ RandomIsCentralElement( KG, u, n )( function )

For a group ring KG, element \(u \in KG\), and a positive integer n (number of iterations), the function RandomIsCentralElement returns true if u is a central element by random way.


gap> KG:=GroupRing(GF(2),CyclicGroup(16));;

gap> u:=Random(Elements(KG));;

gap> RandomIsCentralElement(KG,u,100);

true

2.3-21 RandomIsNormal
‣ RandomIsNormal( KG, N, n )( function )

For a group ring KG, subgroup N, and a positive integer n (number of iterations), the function RandomIsNormal returns true if N is normal in the normalized group of units by random way.


gap> KG:=GroupRing(GF(2),CyclicGroup(4));;

gap> u:=Elements(KG)[16];

(Z(2)^0)*f1*f2
gap> G:=Group(u);;

gap> StructureDescription(G);

"C4"
gap> RandomIsNormal(KG,G,100);

true

2.3-22 RandomCenterOfCommutatorSubgroup
‣ RandomCenterOfCommutatorSubgroup( KG, n )( function )

For a group ring KG, and a positive integer n (number of iterations), the function RandomCenterOfCommutatorSubgroup returns the center of the commutator subgroup of the normalized unit group using random method.


gap> RANDOM_SEED(1);

gap> KG:=GroupRing(GF(2),DihedralGroup(8));;

gap> cc:=RandomCenterOfCommutatorSubgroup(KG,100);

<group with 8 generators>
gap> StructureDescription(cc);

"C2 x C2 x C2"

2.3-23 RandomConjugacyClassByElement
‣ RandomConjugacyClassByElement( KG, u, n )( function )

For a group ring KG, normalized unit \(u \in KG\), and a positive integer n (number of iterations), the function RandomConjugacyClassByElement returns the random conjugacy class of the normalized unit u.


gap> KG:=GroupRing(GF(2),DihedralGroup(8));;

gap> u:=Random(Elements(KG));;

gap> rcc: = RandomConjugacyClassByElement(KG,u,100);

gap> rcc[1]*u*rcc[1]^-1;

true

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 Bib Ind

generated by GAPDoc2HTML