|
|
Line 1: |
Line 1: |
| 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 [[orbit (group theory)|orbits]] of a [[permutation group]].
| | Nice to meet you, my title is Refugia. To play baseball is the hobby he will by no means quit doing. Managing people has been his working day occupation for a whilst. South Dakota is where I've usually been residing.<br><br>Feel free to surf to my web page; [http://exchange.craftemergency.org/thankyous/can-men-be-sexually-harassed-ladies exchange.craftemergency.org] |
| | |
| ==Overview==
| |
| | |
| Suppose G is a finite [[Group (mathematics)|group]] with generating sequence <math>X = \{x_1,x_2,...,x_r\}</math> which [[Group action|acts]] on the finite set <math>\Omega = \{1,2,...,n\}</math>. A common task in computational group theory is to compute the [[Orbit (group theory)|orbit]] of some element <math>\omega \in \Omega</math> under G. At the same time, one can record a Schreier vector for <math>\omega</math>. This vector can then be used to find an element <math>g \in G</math> satisfying <math>\omega^g = \alpha</math>, for any <math>\alpha \in \omega^G</math>. 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 <math>\omega \in \Omega</math> is a vector <math>\mathbf{v} = (v[1],v[2],...,v[n])</math> such that:
| |
| | |
| # <math>v[\omega] = -1</math>
| |
| # For <math>\alpha \in \omega^G \setminus \{ {\omega} \} , v[\alpha] \in \{1,...,r\}</math> (the manner in which the <math>v[\alpha]</math> are chosen will be made clear in the next section)
| |
| # <math>v[\alpha] = 0</math> for <math>\alpha \notin \omega^G</math>
| |
| | |
| ==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 ''Ω'', <math>X = \{x_1,x_2,...,x_r\}</math>
| |
| | |
| :for ''i'' in { 0, 1, …, ''n'' }:
| |
| ::set ''v''[''i''] = 0
| |
| | |
| :set ''orbit'' = { ''ω'' }, ''v''[''ω''] = −1
| |
| | |
| :for ''α'' in ''orbit'' and ''i'' in { 1, 2, …, ''r'' }:
| |
| ::if <math>\alpha^{x_i}</math> is not in ''orbit'':
| |
| :::append <math>\alpha^{x_i}</math> to ''orbit''
| |
| :::set <math>v[\alpha^{x_i}] = i</math>
| |
| | |
| :return ''orbit'', ''v''
| |
| | |
| * Algorithm to find a ''g'' in ''G'' such that ''ω''<sup>''g''</sup> = ''α'' 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 <math>g = {x_k}g, \alpha = \alpha^{x_k^{-1}}, k = v[\alpha]</math>
| |
| | |
| :return ''g''
| |
| | |
| ==References==
| |
| {{refimprove|date=February 2008}}
| |
| *{{Citation | last1=Butler | first1=G. | title=Fundamental algorithms for permutation groups | publisher=[[Springer-Verlag]] | location=Berlin, New York | series=Lecture Notes in Computer Science | isbn=978-3-540-54955-0 | id={{MathSciNet | id = 1225579}} | year=1991 | volume=559}}
| |
| *{{Citation | last1=Holt | first1=Derek F. | title=A Handbook of Computational Group Theory | publisher=[[CRC Press]] | location=London | isbn=978-1-58488-372-2 | year=2005}}
| |
| *{{Citation | last1=Seress | first1=Ákos | title=Permutation group algorithms | publisher=[[Cambridge University Press]] | series=Cambridge Tracts in Mathematics | isbn=978-0-521-66103-4 | id={{MathSciNet | id = 1970241}} | year=2003 | volume=152}}
| |
| | |
| | |
| | |
| [[Category:Computational group theory]]
| |
| [[Category:Permutation groups]]
| |
Nice to meet you, my title is Refugia. To play baseball is the hobby he will by no means quit doing. Managing people has been his working day occupation for a whilst. South Dakota is where I've usually been residing.
Feel free to surf to my web page; exchange.craftemergency.org