Schreier vector
From Wikipedia, the free encyclopedia
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.
Contents |
[edit] Overview
Suppose G is a finite group with generating sequence X = {x1,x2,...,xr} which acts on the finite set Ω = {1,2,...,n}. A common task in computational group theory is to compute the orbit of some element
under G. At the same time, one can record a Schreier vector for ω. This vector can then be used to find the
satisfying ωg = α, for any
. Use of Schreier vectors to perform this requires less storage space and time complexity than storing these g explicitly.
[edit] Formal definition
All variables used here are defined in the overview.
A Schreier vector for
is a vector
such that:
- v[ω] = − 1
- For
(the manner in which the v[α] are chosen will be made clear in the next section) - v[α] = 0 for

[edit] 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 Ω, X = {x1,x2,...,xr}
- for i in { 0, 1, …, n }:
- set v[i] = 0
- set orbit = { ω }, v[ω] = −1
- for α in orbit and i in { 1, 2, …, r }:
- if
is not in orbit:
- append
to orbit - set
![v[\alpha^{x_i}] = i](../../../../math/7/d/4/7d456df603b1fd6d3cea48831599e8ec.png)
- append
- if
- 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:
- set
![g = {x_k}g, \alpha = \alpha^{x_k^{-1}}, k = v[\alpha]](../../../../math/3/5/5/355c8762b244f9c3fcc75d11b560ea91.png)
- set
- return g
[edit] References
| This article needs additional citations for verification. Please help improve this article by adding reliable references. Unsourced material may be challenged and removed. (February 2008) |
- Butler, G. (1991), Fundamental algorithms for permutation groups, vol. 559, Lecture Notes in Computer Science, Berlin, New York: Springer-Verlag, MR1225579, ISBN 978-3-540-54955-0
- Holt, Derek F. (2005), A Handbook of Computational Group Theory, London: CRC Press, ISBN 978-1-58488-372-2
- Seress, Ákos (2003), Permutation group algorithms, vol. 152, Cambridge Tracts in Mathematics, Cambridge University Press, MR1970241, ISBN 978-0-521-66103-4

