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 α_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 Λ of R is said to be Lie n-Engel if for any x,y ∈ Λ, [x,y,...,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 ∈ 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 η of order 2 and G_η={g ∈ G ∣ η(g)=g}. Extending the antiautomorphism η 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 η-involution. If η(g)=g^-1 for all g ∈ 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⋅ u^*=1) by a random way. Also, there exists a two-parametrical version of this method, where the second parameter η 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⋅ 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⋅ x=x ⋅ u, ∀ x ∈ 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 ∈ G ∖ {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,...,y]=0 for all x, y ∈ 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,...,g_n ∈ G. By the symbol (g_1,...,g_n) we denote the commutator of the elements g_1,...,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 ∈ X, y ∈ Y.

This allows us to define the lower central series of a nonempty subset H of G: let γ_n+1(H)=(γ_n(H),H) with γ_1(H)=H. We say that H is nilpotent if γ_n(H)=1 for some n. For a nilpotent subset H ⊆ 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 δ^[n](KG)=[δ^[n-1](KG),δ^[n-1](KG)] with δ^[0](KG)=KG are equal to zero.

Denote by dl_L(KG) the minimal element of the set {m∈ N | δ^[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 ∈ 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 ∈ 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