Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

9 Actions, stabilisers and orbits
 9.1 Stabilisers

9 Actions, stabilisers and orbits

9.1 Stabilisers

The GAP function Stabilizer is a generic function to compute stabilisers of one object (or sets or tuples etc. of objects) under a group, using a specified action function. This generic function can be used together with the in FinInG implemented groups and elements of geometries. However, computing time can be very long, already in small geometries.

gap> ps := PG(3,8);
ProjectiveSpace(3, 8)
gap> g := CollineationGroup(ps);
The FinInG collineation group PGammaL(4,8)
gap> p := Random(Points(ps));
<a point in ProjectiveSpace(3, 8)>
gap> Stabilizer(g,p,OnProjSubspaces);
<projective collineation group of size 177223237632>
gap> time;
13527
gap> line := Random(Lines(ps));
<a line in ProjectiveSpace(3, 8)>
gap> Stabilizer(g,line,OnProjSubspaces);
<projective collineation group of size 21849440256>
gap> time;
108345
 

The packages GenSS and orb required by FinInG provide efficient operations to compute stabilisers, and FinInG provides functionality to used these operations for the particular groups and (elements) of geometries.

9.1-1 FiningStabiliser
‣ FiningStabiliser( g, el )( operation )

Returns: The subgroup of g stabilising the element el

The argument g is a group of collineations acting on the element el, being a subspace of a projective space (and hence, all elements of a Lie geometry are allowed as second argument). This operation relies on the GenSS operation Stab.

gap> ps := PG(5,4);
ProjectiveSpace(5, 4)
gap> g := SpecialHomographyGroup(ps);
The FinInG PSL group PSL(6,4)
gap> p := Random(Points(ps));
<a point in ProjectiveSpace(5, 4)>
gap> FiningStabiliser(g,p);
<projective collineation group of size 264696069567283200 with 2 generators>
gap> line := Random(Lines(ps));
<a line in ProjectiveSpace(5, 4)>
gap> FiningStabiliser(g,line);
<projective collineation group of size 3881174040576000 with 3 generators>
gap> plane := Random(Planes(ps));
<a plane in ProjectiveSpace(5, 4)>
gap> FiningStabiliser(g,plane);
#I  Have 106048 points.
#I  Have 158748 points.
<projective collineation group of size 958878292377600 with 2 generators>
gap> ps := HyperbolicQuadric(5,5);
Q+(5, 5)
gap> g := IsometryGroup(ps);
PGO(1,6,5)
gap> p := Random(Points(ps));
<a point in Q+(5, 5)>
gap> FiningStabiliser(g,p);
<projective collineation group of size 36000000 with 3 generators>
gap> line := Random(Lines(ps));
<a line in Q+(5, 5)>
gap> FiningStabiliser(g,line);
<projective collineation group of size 6000000 with 3 generators>
gap> plane := Random(Planes(ps));
<a plane in Q+(5, 5)>
gap> FiningStabiliser(g,plane);
<projective collineation group of size 93000000 with 2 generators>
gap> h := SplitCayleyHexagon(3);
Split Cayley Hexagon of order 3
gap> g := CollineationGroup(h);
#I  for Split Cayley Hexagon
#I  Computing nice monomorphism...
#I  Found permutation domain…
G_2(3)
gap> p := Random(Points(h));
<a point of Split Cayley Hexagon of order 3>
gap> FiningStabiliser(g,p);
<projective collineation group of size 11664 with 3 generators>
gap> line := Random(Lines(h));
<a line of Split Cayley Hexagon of order 3>
gap> FiningStabiliser(g,line);
<projective collineation group of size 11664 with 3 generators>
 

9.1-2 FiningStabiliserOrb
‣ FiningStabiliserOrb( g, el )( operation )

Returns: The subgroup of g stabilising the element el

The argument g is a group of collineations acting on the element el, being a subspace of a projective space (and hence, all elements of a Lie geometry are allowed as second argument). This operation relies on some particular orb functionality.

gap> ps := PG(5,4);
ProjectiveSpace(5, 4)
gap> g := SpecialHomographyGroup(ps);
The FinInG PSL group PSL(6,4)
gap> p := Random(Points(ps));
<a point in ProjectiveSpace(5, 4)>
gap> FiningStabiliserOrb(g,p);
<projective collineation group with 15 generators>
gap> line := Random(Lines(ps));
<a line in ProjectiveSpace(5, 4)>
gap> FiningStabiliserOrb(g,line);
<projective collineation group with 15 generators>
gap> plane := Random(Planes(ps));
<a plane in ProjectiveSpace(5, 4)>
gap> FiningStabiliserOrb(g,plane);
<projective collineation group with 15 generators>
gap> ps := HyperbolicQuadric(5,5);
Q+(5, 5)
gap> g := IsometryGroup(ps);
PGO(1,6,5)
gap> p := Random(Points(ps));
<a point in Q+(5, 5)>
gap> FiningStabiliserOrb(g,p);
<projective collineation group with 15 generators>
gap> line := Random(Lines(ps));
<a line in Q+(5, 5)>
gap> FiningStabiliserOrb(g,line);
<projective collineation group with 15 generators>
gap> plane := Random(Planes(ps));
<a plane in Q+(5, 5)>
gap> FiningStabiliserOrb(g,plane);
<projective collineation group with 15 generators>
gap> h := SplitCayleyHexagon(3);
Split Cayley Hexagon of order 3
gap> g := CollineationGroup(h);
#I  for Split Cayley Hexagon
#I  Computing nice monomorphism...
#I  Found permutation domain…
G_2(3)
gap> p := Random(Points(h));
<a point of Split Cayley Hexagon of order 3>
gap> FiningStabiliserOrb(g,p);
<projective collineation group with 15 generators>
gap> line := Random(Lines(h));
<a line of Split Cayley Hexagon of order 3>
gap> FiningStabiliserOrb(g,line);
<projective collineation group with 15 generators>
 

A small example shows the difference in computing time. Clearly the FiningStabiliserOrb is the fastest way to compute stabilizers of one element.

gap> ps := PG(3,8);
ProjectiveSpace(3, 8)
gap> g := CollineationGroup(ps);
The FinInG collineation group PGammaL(4,8)
gap> p := Random(Points(ps));
<a point in ProjectiveSpace(3, 8)>
gap> g1 := Stabilizer(g,p);
<projective collineation group of size 177223237632>
gap> time;
13759
gap> g2 := FiningStabiliser(g,p);
<projective collineation group of size 177223237632 with 2 generators>
gap> time;
312
gap> g3 := FiningStabiliserOrb(g,p);
<projective collineation group with 15 generators>
gap> time;
46
gap> g1=g2;
true
gap> g2=g3;
true
 

Computing the setwise stabiliser under a group is possible using Stabilizer. Not suprisingly, the computing time can also be very long.

gap> ps := PG(3,4);
ProjectiveSpace(3, 4)
gap> p := Random(Points(ps));
<a point in ProjectiveSpace(3, 4)>
gap> q := Random(Points(ps));
<a point in ProjectiveSpace(3, 4)>
gap> g := CollineationGroup(ps);
The FinInG collineation group PGammaL(4,4)
gap> Stabilizer(g,Set([p,q]),OnSets);
<projective collineation group of size 552960>
gap> time;
16079
 

The package GenSS provides an efficient operation to compute setwise stabilisers, and FinInG provides functionality to used these GenSS operation for the particular groups and (elements) of geometries.

9.1-3 FiningSetwiseStabiliser
‣ FiningSetwiseStabiliser( g, els )( operation )

Returns: The subgroup of g stabilising the set els

The argument g is a group of collineations acting on the element el, being a subspace of a projective space (and hence, all elements of a Lie geometry are allowed as second argument). The argument els is a set of elements of the same type of the same Lie geometry, the elements are all in the category IsSubspaceOfProjectiveSpace. The underlying action function is assumed to be OnProjSubspaces

gap> ps := HyperbolicQuadric(5,5);                   
Q+(5, 5)
gap> g := IsometryGroup(ps);
PGO(1,6,5)
gap> plane1 := Random(Planes(ps));
<a plane in Q+(5, 5)>
gap> plane2 := Random(Planes(ps));
<a plane in Q+(5, 5)>
gap> FiningSetwiseStabiliser(g,Set([plane1,plane2]));
#I  Computing adjusted stabilizer chain...
<projective collineation group with 5 generators>
 

A small example shows the difference in computing time.

gap> ps := ParabolicQuadric(4,4);
Q(4, 4)
gap> g := CollineationGroup(ps);
PGammaO(5,4)
gap> l1 := Random(Lines(ps));
<a line in Q(4, 4)>
gap> l2 := Random(Lines(ps));
<a line in Q(4, 4)>
gap> g1 := Stabilizer(g,Set([l1,l2]),OnSets);
<projective collineation group of size 720>
gap> time;
31095
gap> g2 := FiningSetwiseStabiliser(g,Set([l1,l2]));
#I  Computing adjusted stabilizer chain...
<projective collineation group with 4 generators>
gap> time;
56
gap> g1=g2;
true
 
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B Bib Ind

generated by GAPDoc2HTML