Skip to content
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

Recog An/Sn unknown degree: conder, holt #265

Draft
wants to merge 13 commits into
base: master
Choose a base branch
from

Conversation

ssiccha
Copy link
Collaborator

@ssiccha ssiccha commented Apr 9, 2021

A PR based on #176.

We are going to implement the extensions by Conder and Derek Holt's
GuessAltSymDegree.

@ssiccha
Copy link
Collaborator Author

ssiccha commented Apr 12, 2021

Rebased the last commit onto the current version of #176.

@codecov
Copy link

codecov bot commented Apr 12, 2021

Codecov Report

Merging #265 (fe2066e) into master (628f227) will decrease coverage by 0.57%.
The diff coverage is 100.00%.

❗ Current head fe2066e differs from pull request most recent head deb2974. Consider uploading reports for the commit deb2974 to get more accurate results

@@            Coverage Diff             @@
##           master     #265      +/-   ##
==========================================
- Coverage   78.59%   78.01%   -0.58%     
==========================================
  Files          43       43              
  Lines       18459    18520      +61     
==========================================
- Hits        14508    14449      -59     
- Misses       3951     4071     +120     
Impacted Files Coverage Δ
gap/generic/SnAnUnknownDegree.gi 98.26% <100.00%> (+0.51%) ⬆️
gap/projective/AnSnOnFDPM.gi 77.62% <0.00%> (-12.14%) ⬇️
gap/perm/giant.gi 89.68% <0.00%> (-3.59%) ⬇️
gap/matrix/matimpr.gi 69.03% <0.00%> (-3.23%) ⬇️
gap/projective/classicalnatural.gi 92.57% <0.00%> (-1.61%) ⬇️
gap/projective/almostsimple.gi 65.64% <0.00%> (-0.20%) ⬇️
gap/base/recognition.gi 68.79% <0.00%> (-0.13%) ⬇️
gap/projective/c3c5.gi 87.86% <0.00%> (-0.03%) ⬇️
gap/matrix.gi 94.40% <0.00%> (-0.03%) ⬇️
gap/perm.gi 97.27% <0.00%> (-0.02%) ⬇️
... and 9 more

@FriedrichRober
Copy link
Contributor

Link to our Hackmd

@ssiccha ssiccha force-pushed the frss/AnSnRecogUnknownDegree-2 branch from 96f9a25 to 705504c Compare March 28, 2022 22:01
@FriedrichRober FriedrichRober force-pushed the frss/AnSnRecogUnknownDegree-2 branch 3 times, most recently from e63f4a8 to 956884d Compare March 29, 2022 22:51
@ssiccha
Copy link
Collaborator Author

ssiccha commented Mar 29, 2022

We should be almost done. We think there are two TODOs left: clean up the tests and figure out what to do with small classical groups like: Omega(-1,4,3). It has element orders <= 5, thus slips through our heuristics to weed out groups which are not isomorphic to An or Sn. Hence the SnAnUnknownDegree algorithm takes forever until it realizes, that the group in question is not an An or Sn. We think we should be able to alleviate this by simply saying that we're NeverApplicable if the vector space our group acts has less than e.g. 100 elements. And then we'll post a challenge on slack or the GAP forum whether somebody can find a small group, which makes the algorithm run slow.

And get the tests to pass again. :)

And in Make CallMethods directly write into the RecogNode update the docs of CallMethods.

And, @FriedrichRober is writing a short text, how all the parts fit together, that is how our implementation differs from a "vanilla" implementation of the JLNP algorithm according to the paper.

@ssiccha ssiccha force-pushed the frss/AnSnRecogUnknownDegree-2 branch 2 times, most recently from 3b12114 to daceec3 Compare March 29, 2022 23:52
@fingolfin
Copy link
Member

Awesome, thank you!

@fingolfin
Copy link
Member

@FriedrichRober do you think you can finish this on your own, now that @ssiccha is gone? Perhaps I can help a bit?

@FriedrichRober
Copy link
Contributor

Yes, I think I can finish this on my own. The code is finished (except for handling small classical groups). What is missing now is to finish the documentation (comments) and looking at the runtime of the test suite.

@FriedrichRober FriedrichRober force-pushed the frss/AnSnRecogUnknownDegree-2 branch 2 times, most recently from d45adbb to 7ba5ec6 Compare June 1, 2022 13:32
ssiccha and others added 8 commits November 4, 2022 11:05
This has the advantage, that methods can check whether methods they
depend upon where already called.
Finish SnAnUnknownDegree and install it as a method for projective
groups.

Old commit msgs
Add FindImageSnSmallDegree
Improve a comment in tryThreeCycleCandidate
Extend the heuristic three cycle test
WIP BIB Conder
WIP update comments for Conder's thesis
Use `SnAnUnknownDegree` also for 7 and 8.
WIP handle small degree
Add `GuessSnAnDegree`
FIX: replace old `EmptyRecognitionInfoRecord` with `RecogNode` in test file.
Test: Adjust permMatGroup
Add Todo comment in GuessSnAnDegree for Alt(9) and Sym(8)
Add TODO comment and possibly a reference for the inspiration of GuessSnAnDegree
Move GuessSnAnDegree into contrib/derek
FIX: contrib/derek sum over prime-powers and not primes

Co-authored-by: ssiccha <[email protected]>
- heuristicThreeCycleTest -> RECOG.HeuristicThreeCycleTest
- RECOG.StandardGenerators -> RECOG.SnAnStandardGenerators
Instead, use the lower bound `M` to ensure that we have a degree `n >= 7`.
- Delete `slow/GenericSnAnUnknownDegree.tst`.
- Move tests for helper functions to `quick/GenericSnAnUnknownDegreeHelpers.tst`.
…ycle test.

This is a big time saver for groups where we have to exceed all attempts.
- Relocate old code for upper bound to `RECOG.SnAnUpperBoundForDegree`.
- The is upper bound is not tight enough, since it only uses the dimension of the matrix group.
- Use Derek's `RECOG.GuessSnAnDegree` from contrib/Derek
@FriedrichRober FriedrichRober force-pushed the frss/AnSnRecogUnknownDegree-2 branch 3 times, most recently from 65b0b4a to 85ca56f Compare November 4, 2022 05:43
Compute ThreeCycleCandidates in a "lazy" way,
as done in Magma Code GetNextThreeCycle.
@FriedrichRober
Copy link
Contributor

@fingolfin, ich habe nun die Änderungen implementiert, wie wir es besprochen haben. Wir geben früher auf, und speichern uns die Iteratoren im recog node ab, um sie später weiter zu verwenden. Trotzdem dauert die Test-Suite auf meinem Rechner 3-4 Minuten länger als auf dem master. Meiner Meinung nach ist dieser Zustand inakzeptabel, um das einfach so zu mergen :(

Ich muss dann nochmal genau schauen, an welchen Stellen wir zu viel Zeit verschwenden, und ob sich da was machen lässt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants