cc.redberry.core.groups.permutations
Class AlgorithmsBacktrack
- java.lang.Object
-
- cc.redberry.core.groups.permutations.AlgorithmsBacktrack
-
public final class AlgorithmsBacktrack extends java.lang.ObjectAlgorithms which uses backtrack search in permutation groups including searching for subgroups, setwise stabilizers, coset representatives, intersections of subgroups, centralizers etc.- Since:
- 1.1.6
- See Also:
AlgorithmsBase
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static voidintersection(java.util.List<? extends BSGSElement> group1, java.util.List<? extends BSGSElement> group2, java.util.ArrayList<BSGSCandidateElement> intersection)Calculates intersection of given subgroups usingsubgroupSearch(java.util.List, java.util.ArrayList, BacktrackSearchTestFunction, cc.redberry.core.utils.Indicator).static Permutation[]leftCosetRepresentatives(java.util.List<? extends BSGSElement> group, java.util.List<? extends BSGSElement> subgroup)Calculates left coset (gK) representatives of specified subgroup in specified group; each transversal is <-least in its coset.static Permutation[]leftCosetRepresentatives(java.util.List<? extends BSGSElement> group, java.util.List<? extends BSGSElement> subgroup, int[] base, InducedOrdering ordering)Calculates left coset (gK) representatives of specified subgroup in specified group; each returned transversal is <-least in its coset.static PermutationleftTransversalOf(Permutation element, java.util.List<? extends BSGSElement> group, java.util.List<? extends BSGSElement> subgroup)Returns coset representative of specified element; the returned representative will be minimal in its coset.static PermutationleftTransversalOf(Permutation element, java.util.List<? extends BSGSElement> group, java.util.List<? extends BSGSElement> subgroup, int[] base, InducedOrdering ordering)Returns coset representative of specified element; the returned representative will be minimal in its coset.static voidsubgroupSearch(java.util.List<? extends BSGSElement> group, java.util.ArrayList<BSGSCandidateElement> subgroup, BacktrackSearchTestFunction testFunction, Indicator<Permutation> property)The algorithm performs subgroup search in specified group.static voidsubgroupSearch(java.util.List<? extends BSGSElement> group, java.util.ArrayList<BSGSCandidateElement> subgroup, BacktrackSearchTestFunction testFunction, Indicator<Permutation> property, int[] base, InducedOrdering ordering)The algorithm performs subgroup search in specified group.static voidsubgroupSearchWithPayload(java.util.List<? extends BSGSElement> group, java.util.ArrayList<BSGSCandidateElement> subgroup, BacktrackSearchPayload payload, Indicator<Permutation> property)The algorithm performs subgroup search in specified group.static voidsubgroupSearchWithPayload(java.util.List<? extends BSGSElement> group, java.util.ArrayList<BSGSCandidateElement> subgroup, BacktrackSearchPayload payload, Indicator<Permutation> property, int[] base, InducedOrdering ordering)The algorithm performs subgroup search in specified group.
-
-
-
Method Detail
-
subgroupSearch
public static void subgroupSearch(java.util.List<? extends BSGSElement> group, java.util.ArrayList<BSGSCandidateElement> subgroup, BacktrackSearchTestFunction testFunction, Indicator<Permutation> property)
The algorithm performs subgroup search in specified group. If a nonempty initialsubgroupwas provided, then it will be extended to the subgroup which we search for. Implementation issues can be found in Sec. 4.6.3 in [Holt05].- Parameters:
group- base and strong generating set of groupsubgroup- initial base and strong generating set of subgroup for which we perform searchtestFunction- test function that applies at each level of search treeproperty- property of subgroup elements- See Also:
BacktrackSearch
-
subgroupSearchWithPayload
public static void subgroupSearchWithPayload(java.util.List<? extends BSGSElement> group, java.util.ArrayList<BSGSCandidateElement> subgroup, BacktrackSearchPayload payload, Indicator<Permutation> property)
The algorithm performs subgroup search in specified group. If a nonempty initialsubgroupwas provided, then it will be extended to the subgroup which we search for. Implementation issues can be found in Sec. 4.6.3 in [Holt05].- Parameters:
group- base and strong generating set of groupsubgroup- initial base and strong generating set of subgroup for which we perform searchpayload- payload test function that applies at each level of search tree and listen events on entering and leaving each tree levelproperty- property of subgroup elements- See Also:
BacktrackSearch
-
subgroupSearch
public static void subgroupSearch(java.util.List<? extends BSGSElement> group, java.util.ArrayList<BSGSCandidateElement> subgroup, BacktrackSearchTestFunction testFunction, Indicator<Permutation> property, int[] base, InducedOrdering ordering)
The algorithm performs subgroup search in specified group. If a nonempty initialsubgroupwas provided, then it will be extended to the subgroup which we search for. Implementation issues can be found in Sec. 4.6.3 in [Holt05].- Parameters:
group- base and strong generating set of groupsubgroup- initial base and strong generating set of subgroup for which we perform searchtestFunction- test function that applies at each level of search treeproperty- property of subgroup elementsbase- precomputed baseordering- precomputed induced ordering- See Also:
BacktrackSearch
-
subgroupSearchWithPayload
public static void subgroupSearchWithPayload(java.util.List<? extends BSGSElement> group, java.util.ArrayList<BSGSCandidateElement> subgroup, BacktrackSearchPayload payload, Indicator<Permutation> property, int[] base, InducedOrdering ordering)
The algorithm performs subgroup search in specified group. If a nonempty initialsubgroupwas provided, then it will be extended to the subgroup which we search for. Implementation issues can be found in Sec. 4.6.3 in [Holt05].- Parameters:
group- base and strong generating set of groupsubgroup- initial base and strong generating set of subgroup for which we perform searchpayload- test function that applies at each level of search treeproperty- property of subgroup elementsbase- precomputed baseordering- precomputed induced ordering
-
leftCosetRepresentatives
public static Permutation[] leftCosetRepresentatives(java.util.List<? extends BSGSElement> group, java.util.List<? extends BSGSElement> subgroup)
Calculates left coset (gK) representatives of specified subgroup in specified group; each transversal is <-least in its coset. The implementation is based on a general backtrack search and prunes tree using minimality test. For details see the first method described in 4.6.7 in [Holt05].- Parameters:
group- groupsubgroup- subgroup of specified group- Returns:
- left coset representatives
-
leftCosetRepresentatives
public static Permutation[] leftCosetRepresentatives(java.util.List<? extends BSGSElement> group, java.util.List<? extends BSGSElement> subgroup, int[] base, InducedOrdering ordering)
Calculates left coset (gK) representatives of specified subgroup in specified group; each returned transversal is <-least in its coset. The implementation is based on a general backtrack search and prunes tree using minimality test. For details see the first method described in 4.6.7 in [Holt05].- Parameters:
group- groupsubgroup- subgroup of specified groupbase- precomputed baseordering- precomputed ordering- Returns:
- left coset representatives
-
leftTransversalOf
public static Permutation leftTransversalOf(Permutation element, java.util.List<? extends BSGSElement> group, java.util.List<? extends BSGSElement> subgroup)
Returns coset representative of specified element; the returned representative will be minimal in its coset.- Parameters:
element- group elementgroup- groupsubgroup- subgroup- Returns:
- coset representative of specified group element
-
leftTransversalOf
public static Permutation leftTransversalOf(Permutation element, java.util.List<? extends BSGSElement> group, java.util.List<? extends BSGSElement> subgroup, int[] base, InducedOrdering ordering)
Returns coset representative of specified element; the returned representative will be minimal in its coset.- Parameters:
element- group elementgroup- groupsubgroup- subgroupbase- precomputed baseordering- precomputed ordering- Returns:
- coset representative of specified group element
-
intersection
public static void intersection(java.util.List<? extends BSGSElement> group1, java.util.List<? extends BSGSElement> group2, java.util.ArrayList<BSGSCandidateElement> intersection)
Calculates intersection of given subgroups usingsubgroupSearch(java.util.List, java.util.ArrayList, BacktrackSearchTestFunction, cc.redberry.core.utils.Indicator).- Parameters:
group1- permutation groupgroup2- permutation groupintersection- initial intersection of given groups
-
-
DataMelt 3.0 © DataMelt by jWork.ORG