I generate abstract tilings of surfaces, which are represented as graphs and use GAP to calculate the permutation group and based on that the finite group presentation using the following commands:
gap> di:=ReadDigraphs("/data/graph.ds6",1);
<immutable digraph with 450 vertices, 1500 edges>
gap> dg:=DigraphGroup(di);
<permutation group of size 5033164800 with 28 generators>
gap> pr:=PresentationViaCosetTable(dg);
Unfortunately, not even a server with 480GB of memory manages to find the finite presentation of the group.
In the GAP Documentation an alternative is described, which proposes to give a subgroup of the group in terms of words and generators to PresentationViaCosetTable. Unfortunately, my knowledge of groups is quite limited and I do not know how to approach this solution starting from my permutation group. Can anyone point me in the right direction?
PresentationViaCosetTableis an older function that will be inefficien for all but small examples. I suggest you tryIsomorphismFpGroup(chooses generators itself to get a nicer presentation) orIsomorphismFpGroupByGenerators(takes your given generators).When
homis such an isomorphism, letF:=Range(hom), thenFreeGeneratorsOfFpGroup(F)are the free generators andRelatorsOfFpGroup(F)the relators.You also first could call
hom:=hom*IsomorphismSimplifiedFpGroup(Range(hom));to try to simplyfy the presentation, but that can be a question of luck.