Zassenhaus algorithm

{{Short description|Mathematic algorithm for basis}}

In mathematics, the Zassenhaus algorithm{{citation

| last1 = Luks | first1 = Eugene M. | author1-link = Eugene M. Luks

| last2 = Rákóczi | first2 = Ferenc

| last3 = Wright | first3 = Charles R. B.

| date = April 1997

| doi = 10.1006/jsco.1996.0092

| issue = 4

| journal = Journal of Symbolic Computation

| pages = 335–354

| title = Some algorithms for nilpotent permutation groups

| volume = 23| doi-access = free

}}.

is a method to calculate a basis for the intersection and sum of two subspaces of a vector space.

It is named after Hans Zassenhaus, but no publication of this algorithm by him is known.{{citation

| last = Fischer | first = Gerd

| doi = 10.1007/978-3-8348-2379-3

| isbn = 978-3-8348-2378-6

| language = de

| pages = 207–210

| publisher = Vieweg+Teubner

| title = Lernbuch Lineare Algebra und Analytische Geometrie

| year = 2012}} It is used in computer algebra systems.{{citation

| access-date = 2015-06-11

| author = The GAP Group

| contribution = 24 Matrices

| contribution-url = http://www.gap-system.org/Manuals/doc/ref/chap24.html

| date = February 13, 2015

| title = GAP Reference Manual, Release 4.7}}

Algorithm

= Input =

Let {{mvar|V}} be a vector space and {{mvar|U}}, {{mvar|W}} two finite-dimensional subspaces of {{mvar|V}} with the following spanning sets:

:U = \langle u_1, \ldots, u_n\rangle

and

:W = \langle w_1, \ldots, w_k\rangle.

Finally, let B_1, \ldots, B_m be linearly independent vectors so that u_i and w_i can be written as

:u_i = \sum_{j=1}^m a_{i,j}B_j

and

:w_i = \sum_{j=1}^m b_{i,j}B_j.

= Output =

The algorithm computes the base of the sum U + W and a base of the intersection U \cap W.

= Algorithm =

The algorithm creates the following block matrix of size ((n+k) \times (2m)):

:\begin{pmatrix}

a_{1,1}&a_{1,2}&\cdots&a_{1,m}&a_{1,1}&a_{1,2}&\cdots&a_{1,m}\\

\vdots&\vdots&&\vdots&\vdots&\vdots&&\vdots\\

a_{n,1}&a_{n,2}&\cdots&a_{n,m}&a_{n,1}&a_{n,2}&\cdots&a_{n,m}\\

b_{1,1}&b_{1,2}&\cdots&b_{1,m}&0&0&\cdots&0\\

\vdots&\vdots&&\vdots&\vdots&\vdots&&\vdots\\

b_{k,1}&b_{k,2}&\cdots&b_{k,m}&0&0&\cdots&0

\end{pmatrix}

Using elementary row operations, this matrix is transformed to the row echelon form. Then, it has the following shape:

:\begin{pmatrix}

c_{1,1}&c_{1,2}&\cdots&c_{1,m}&\bullet&\bullet&\cdots&\bullet\\

\vdots&\vdots&&\vdots&\vdots&\vdots&&\vdots\\

c_{q,1}&c_{q,2}&\cdots&c_{q,m}&\bullet&\bullet&\cdots&\bullet\\

0&0&\cdots&0&d_{1,1}&d_{1,2}&\cdots&d_{1,m}\\

\vdots&\vdots&&\vdots&\vdots&\vdots&&\vdots\\

0&0&\cdots&0&d_{\ell,1}&d_{\ell,2}&\cdots&d_{\ell,m}\\

0&0&\cdots&0&0&0&\cdots&0\\

\vdots&\vdots&&\vdots&\vdots&\vdots&&\vdots\\

0&0&\cdots&0&0&0&\cdots&0

\end{pmatrix}

Here, \bullet stands for arbitrary numbers, and the vectors

(c_{p,1}, c_{p,2}, \ldots, c_{p,m}) for every p \in \{1, \ldots, q\} and (d_{p,1}, \ldots, d_{p,m}) for every p\in \{1, \ldots, \ell\} are nonzero.

Then (y_1, \ldots, y_q) with

:y_i := \sum_{j=1}^m c_{i,j}B_j

is a basis of U+W

and (z_1, \ldots, z_\ell) with

:z_i := \sum_{j=1}^m d_{i,j}B_j

is a basis of U \cap W.

= Proof of correctness =

First, we define \pi_1 : V \times V \to V, (a, b) \mapsto a to be the projection to the first component.

Let

H:=\{(u,u) \mid u\in U\}+\{(w,0) \mid w\in W\} \subseteq V\times V.

Then \pi_1(H) = U+W and

H\cap(0\times V)=0\times(U\cap W).

Also, H \cap (0 \times V) is the kernel of {\pi_1|}_H, the projection restricted to {{mvar|H}}.

Therefore, \dim(H) = \dim(U+W)+\dim(U\cap W).

The Zassenhaus algorithm calculates a basis of {{mvar|H}}. In the first {{mvar|m}} columns of this matrix, there is a basis y_i of U+W.

The rows of the form (0, z_i) (with z_i \neq 0) are obviously in H \cap (0 \times V). Because the matrix is in row echelon form, they are also linearly independent.

All rows which are different from zero ((y_i, \bullet) and (0, z_i)) are a basis of {{mvar|H}}, so there are \dim(U \cap W) such z_is. Therefore, the z_is form a basis of U \cap W.

Example

Consider the two subspaces U = \left\langle \left( \begin{array}{r} 1\\ -1 \\ 0 \\ 1 \end{array} \right), \left( \begin{array}{r} 0 \\ 0 \\ 1 \\ -1 \end{array} \right) \right\rangle and

W = \left\langle \left( \begin{array}{r} 5 \\ 0 \\ -3 \\ 3 \end{array} \right), \left( \begin{array}{r} 0 \\ 5 \\ -3 \\ -2 \end{array} \right) \right\rangle

of the vector space \mathbb{R}^4.

Using the standard basis, we create the following matrix of dimension (2 + 2) \times (2 \cdot 4):

:

\left( \begin{array}{rrrrrrrr} 1 & -1 & 0 & 1 & & 1 & -1 & 0 & 1 \\

0&0&1&-1& &0&0&1&-1 \\ \\

5&0&-3&3& &0&0&0&0 \\

0&5&-3&-2& &0&0&0&0 \end{array} \right).

Using elementary row operations, we transform this matrix into the following matrix:

:

\left( \begin{array}{rrrrrrrrr} 1 & 0 & 0 & 0 & & \bullet & \bullet & \bullet & \bullet \\

0&1&0&-1& &\bullet&\bullet&\bullet&\bullet\\

0&0&1&-1& &\bullet&\bullet&\bullet&\bullet\\ \\

0&0&0&0& &1&-1&0&1 \end{array} \right)

(Some entries have been replaced by "\bullet" because they are irrelevant to the result.)

Therefore

\left( \left(\begin{array}{r} 1\\0\\0\\0\end{array} \right), \left( \begin{array}{r} 0\\1\\0\\-1\end{array} \right), \left( \begin{array}{r} 0\\0\\1\\-1\end{array}\right) \right) is a basis of U+W, and

\left( \left(\begin{array}{r} 1\\-1\\0\\1\end{array}\right) \right) is a basis of U \cap W.

See also

References

{{reflist}}