-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Setwise stabiliser and random Schreier-Sims #5
Comments
Dear PoslavskySV On Mon, Jan 05, 2015 at 05:54:08AM -0800, PoslavskySV wrote:
Examining the results of SetwiseStabilizer, the group size is correct (144), even As far as I can see there is no way to pass the size of the group directly Cheers, |
Dear Markus, Thank you very much for quick response! I'll follow closely the updates of this issue. Best, |
So I added a change which resolves this particular issue, and which will be in the next genss release. However, I am concerned that my change is simply hiding a deeper issue. In particular, I am wondering whether the code computing the stabilizer chain is buggy or not. If anybody knows more about the internals of genss and wants to chime in, that would be great. Here are the details: I tried the given example in slightly modified form and recorded the output of gap> S := sw.S;
<stabchain size=144 orblen=9 layer=1 SchreierDepth=3>
<stabchain size=16 orblen=8 layer=2 SchreierDepth=3>
<stabchain size=2 orblen=2 layer=3 SchreierDepth=1>
gap> Size(Group(S!.orb!.gens));
144
gap> Size(Group(S!.stab!.orb!.gens));
8
gap> Size(Group(S!.stab!.stab!.orb!.gens));
2 So, the generators in orb!.stab in the second layer seems to be missing something. Alas: gap> Size(Group(Concatenation(S!.stab!.orb!.gens,S!.stab!.stab!.orb!.gens)));
16 It is not hard to see how this can happen in the code... What is harder to tell (for me, at least) is whether this is a bug or not! I mean, of course those generators give the orbit, so they are generators of the orbit. They are also generator for that layer of the stabilizer chain. So, perhaps the above is actually just fine. There is a lot of code using InstallGlobalFunction( GENSS_FindGensStabilizer,
function( S, pt, opt )
# Assumes that S is a correct stabilizer chain for the group generated by
# its gens (in S!.orb!.gens) and that pt lies in the first orbit S!.orb.
# Finds an SLP to express generators of the stabilizer of pt in
# the group in terms of the gens.
local gens,g,pos,mgens,word,cosetrep,invgens,pr,stabgens,size,stabsize,
randel,newpt,ptpos,ptcosetrep,el,SS,stab,i;
gens := S!.orb!.gens;
g := GroupWithGenerators(gens);
SetSize(g,Size(S)); If this function is ever called with the subchain And perhaps we should just remove that function? :) Finally, for the record, what was / is the connection to the problem at hand? Well, gens := [];
SS := S;
for i in [1..Length(M)] do
if SS = false then break; fi;
if M[i] = SS!.orb[1] then SS := SS!.stab; fi;
od;
if SS = false then
gens := [];
else
gens := ShallowCopy(SS!.orb!.gens);
fi;
# These are now the generators of the pointwise stabilizer!
# We add to them as we go. So if your set M happens to be pointwise fixed by a group in the stabilizer chain, we immediately add those generators. Alas, of course in our "bad" case, that list of generators is incomplete. To fix this, I changed it to add the generators for the lower layers, too. (Which is a common requirement when dealing with stabilizer chains, so it felt natural... but, as explained above, I am left somewhat uncertain about the whole thing). |
I am new to GAP and I would like to find setwise stabiliser for some permutation group. While playing with
genss
, I've found the following potential issue. Consider the code:The above code throws exception at some iteration, while it should not. If I understand correctly, this is because
SetwiseStabilizer
function uses randomised Schreier-Sims to construct BSGS, and there is a probability to obtain incomplete BSGS, so backtrack search fails. Is it possible to specify group order toSetwiseStabilizer
, so it will use randomised Schreier-Sims with known order and will always produce valid BSGS and backtrack search will always complete?The text was updated successfully, but these errors were encountered: