Wikipedia / Schreier vector
Wikipedia / Schreier vector
In mathematics, especially the field of computational group theory, a Schreier vector is a tool for reducing the time and space complexity required to calculate orbits of a permutation group.
Overview
Suppose G is a finite group which acts. A common task in computational group theory is to compute the orbit. Use of Schreier vectors to perform this requires less storage space and time complexity than storing these g explicitly.
Formal definition
All variables used here are defined in the overview.
such that:
are chosen will be made clear in the next section)
Use in algorithms
Here we illustrate, using pseudocode, the use of Schreier vectors in two algorithms
Algorithm to compute the orbit of ω under G and the corresponding Schreier vector
Input: ω in Ω
for i in { 0, 1, …, n }:
set v[i] = 0
set orbit = { ω }, v[ω] = −1
for α in orbit and i in { 1, 2, …, r }:
is not in orbit:
to orbit
return orbit, v
Algorithm to find a g in G such that ωg = α for some α in Ω, using the v from the first algorithm
Input: v, α, X
if v[α] = 0:
return false
set g = e, and k = v[α] (where e is the identity element of G)
while k ≠ −1:
return g
References