Dealing with orbits under permutation groups.
SWITCH_TABLE
A switch table is a tool for finding lex-maximal or -minimal in orbits under the action of a permutation group. Its main ingredient is an upper-left triangular matrix with group elements as entries. The output contains the support at every level, i.e. a number and a Set<Int>, the number is the size of the support and and the Set<Int> are the indices of those entries that can be permuted to the index of the current level while keeping previous level indices fixed. I.e. entry [i,j] will keep the first i entries of a vector fixed, while moving the j-th entry to position i. Note that we start counting at 0! This method has been developed for the purpose of enumerating triangulations up to symmetry. See Joswig, Jordan and Kastner, Electron. J. Combin. 25.3, Paper 3.6, 27. It is used in mptopcom, https://polymake.org/mptopcom .
> $P = new PermutationAction(GENERATORS=>[[1,2,0,4,5,3],[2,1,0,5,4,3]]); > print $P->SWITCH_TABLE; Supports: (size, content) Level 0: 2 {1 2} Level 1: 1 {2} Entries: [0,1]: 1 0 2 4 3 5 [0,2]: 1 2 0 4 5 3 [1,2]: 0 2 1 3 5 4
BASE
A base for STRONG_GENERATORS
.
N_STRONG_GENERATORS
The number of STRONG_GENERATORS
.
STRONG_GENERATORS
Strong generating set with respect to BASE
.
TRANSVERSALS
Transversals along the stabilizer chain.
TRANSVERSAL_SIZES
The number of group elements per transversal.
Dealing with orbits under permutation groups.
lex_maximal
Assume the group acts on a vector by permuting its entries. Then this method gives the lex-maximal vector from the orbit of the input vector under the group action. For more details see SWITCH_TABLE
.
lex_minimal
Similar to lex_maximal
; for more details see SWITCH_TABLE
.