cayleypy.PermutationGroups

class cayleypy.PermutationGroups[source]

Pre-defined Cayley graphs for permutation groups (S_n).

__init__()

Methods

__init__()

all_transpositions(n)

Cayley graph for S_n (n>=2), generated by all n(n-1)/2 transpositions.

burnt_pancake(n)

Cayley graph generated by reverses of all signed prefixes.

coxeter(n)

Cayley graph for S_n (n>=2), generated by adjacent transpositions (Coxeter generators).

cubic_pancake(n, subset)

Cayley graph for S_n (n>=2), generated by set of 3 prefix reversal generators.

cyclic_coxeter(n)

Cayley graph for S_n (n>=2), generated by adjacent transpositions plus cyclic transposition.

derangements(n)

Cayley graph generated by permutations without fixed points, called derangements.

full_reversals(n)

Cayley graph for S_n (n>=2), generated by reverses of all possible n(n-1)/2 substrings.

lrx(n[, k])

Cayley graph for S_n (n>=3), generated by: shift left, shift right, swap two elements 0 and k.

lx(n)

Cayley graph for S_n (n>=3), generated by left shift (L) and swapping first two elements (X).

pancake(n)

Cayley graph for S_n (n>=2), generated by reverses of all prefixes.

rapaport_m2(n)

Cayley graph for S_n with M2 generators.

signed_reversals(n)

Cayley graph generated by reverses of all possible signed n(n+1)/2 substrings.

three_cycles(n)

Cayley graph for S_n (n ≥ 3), generated by all 3-cycles (a, b, c) where a < b, a < c.

three_cycles_0ij(n)

Cayley graph for S_n (n ≥ 3), generated by 3-cycles of the form (0 i j), where i != j.

top_spin(n[, k])

Cayley graph for S_n (n>=k>=2), generated by: shift left, shift right, reverse first k elements.

static all_transpositions(n: int) CayleyGraphDef[source]

Cayley graph for S_n (n>=2), generated by all n(n-1)/2 transpositions.

static burnt_pancake(n: int) CayleyGraphDef[source]

Cayley graph generated by reverses of all signed prefixes.

Actually is a graph for S_2n (n>=1) representing a graph for n pancakes, where i-th element represents bottom side of i-th pancake, and (n+i)-th element represents top side of i-th pancake. The graph has n generators denoted R1,R2..R(n), where Ri is reverse of elements 0,1..i,n,n+1..n+i.

static coxeter(n: int) CayleyGraphDef[source]

Cayley graph for S_n (n>=2), generated by adjacent transpositions (Coxeter generators).

It has n-1 generators: (0,1), (1,2), …, (n-2,n-1).

static cubic_pancake(n: int, subset: int) CayleyGraphDef[source]

Cayley graph for S_n (n>=2), generated by set of 3 prefix reversal generators.

Sets definitions are:
  • subset=1 => {Rn, R(n-1), R2}

  • subset=2 => {Rn, R(n-1), R3}

  • subset=3 => {Rn, R(n-1), R(n-2)}

  • subset=4 => {Rn, R(n-1), R(n-3)}

  • subset=5 => {Rn, R(n-2), R2}

  • subset=6 => {Rn, R(n-2), R3}

  • subset=7 => {Rn, R(n-2), R(n-3)}

where Ri is reverse of elements 0,1..i.

static cyclic_coxeter(n: int) CayleyGraphDef[source]

Cayley graph for S_n (n>=2), generated by adjacent transpositions plus cyclic transposition.

It has n generators: (0,1), (1,2), …, (n-2,n-1), (0,n-1).

static derangements(n: int) CayleyGraphDef[source]

Cayley graph generated by permutations without fixed points, called derangements.

static full_reversals(n: int) CayleyGraphDef[source]

Cayley graph for S_n (n>=2), generated by reverses of all possible n(n-1)/2 substrings.

static lrx(n: int, k: int = 1) CayleyGraphDef[source]

Cayley graph for S_n (n>=3), generated by: shift left, shift right, swap two elements 0 and k.

Parameters:
  • n – Size of permutations.

  • k – Specifies that X is transposition of elements 0 and k. 1<=k<n. By default, k=1, which means X is transposition of first 2 elements.

static lx(n: int) CayleyGraphDef[source]

Cayley graph for S_n (n>=3), generated by left shift (L) and swapping first two elements (X).

This is an example of a Cayley graph where generators are not inverse-closed.

See https://oeis.org/A039745.

Parameters:

n – Size of permutations.

static pancake(n: int) CayleyGraphDef[source]

Cayley graph for S_n (n>=2), generated by reverses of all prefixes.

It has n-1 generators denoted R1,R2..R(n-1), where Ri is reverse of elements 0,1..i. See https://en.wikipedia.org/wiki/Pancake_graph.

static rapaport_m2(n: int) CayleyGraphDef[source]

Cayley graph for S_n with M2 generators.

Reference: E. Rapaport-Strasser. Cayley color groups and hamilton lines. Scr. Math, 24:51–58, 1959.

static signed_reversals(n: int) CayleyGraphDef[source]

Cayley graph generated by reverses of all possible signed n(n+1)/2 substrings.

Actually is a graph for S_2n (n>=1) representing a graph for n elements, where i-th index represents bottom side of i-th element, and (n+i)-th index represents top side of i-th element. The graph has n generators denoted R[1..1],R[1..2]..R[n..n], where R[i..j] is signed reverse of elements i,i+1..j (or actually indexes i..j,n+i..n+j).

static three_cycles(n: int) CayleyGraphDef[source]

Cayley graph for S_n (n ≥ 3), generated by all 3-cycles (a, b, c) where a < b, a < c.

static three_cycles_0ij(n: int) CayleyGraphDef[source]

Cayley graph for S_n (n ≥ 3), generated by 3-cycles of the form (0 i j), where i != j.

static top_spin(n: int, k: int = 4)[source]

Cayley graph for S_n (n>=k>=2), generated by: shift left, shift right, reverse first k elements.

Parameters:
  • n – Size of permutations.

  • k – Specifies size of prefix to reverse. By default, k=4.