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 with generating sequence which acts on the finite set . 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 an element satisfying , for any . 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.

A Schreier vector for is a vector such that:

  1. For (the manner in which the are chosen will be made clear in the next section)
  2. for

Use in algorithms

Here we illustrate, using pseudocode, the use of Schreier vectors in two algorithms

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 }:
if is not in orbit:
append to orbit
set
return orbit, v
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
return g

References

This article is issued from Wikipedia - version of the 9/25/2014. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.