In mathematics, the Zassenhaus algorithm[1] 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. It is used in computer algebra systems.
Let be a vector space and, two finite-dimensional subspaces of with the following spanning sets:
U=\langleu1,\ldots,un\rangle
W=\langlew1,\ldots,wk\rangle.
B1,\ldots,Bm
ui
wi
ui=
m | |
\sum | |
j=1 |
ai,jBj
wi=
m | |
\sum | |
j=1 |
bi,jBj.
U+W
U\capW
The algorithm creates the following block matrix of size
((n+k) x (2m))
\begin{pmatrix} a1,1&a1,2& … &a1,m&a1,1&a1,2& … &a1,m\\ \vdots&\vdots&&\vdots&\vdots&\vdots&&\vdots\\ an,1&an,2& … &an,m&an,1&an,2& … &an,m\\ b1,1&b1,2& … &b1,m&0&0& … &0\\ \vdots&\vdots&&\vdots&\vdots&\vdots&&\vdots\\ bk,1&bk,2& … &bk,m&0&0& … &0 \end{pmatrix}
Using elementary row operations, this matrix is transformed to the row echelon form. Then, it has the following shape:
\begin{pmatrix} c1,1&c1,2& … &c1,m&\bullet&\bullet& … &\bullet\\ \vdots&\vdots&&\vdots&\vdots&\vdots&&\vdots\\ cq,1&cq,2& … &cq,m&\bullet&\bullet& … &\bullet\\ 0&0& … &0&d1,1&d1,2& … &d1,m\\ \vdots&\vdots&&\vdots&\vdots&\vdots&&\vdots\\ 0&0& … &0&d\ell,1&d\ell,2& … &d\ell,m\\ 0&0& … &0&0&0& … &0\\ \vdots&\vdots&&\vdots&\vdots&\vdots&&\vdots\\ 0&0& … &0&0&0& … &0 \end{pmatrix}
\bullet
(cp,1,cp,2,\ldots,cp,m)
p\in\{1,\ldots,q\}
(dp,1,\ldots,dp,m)
p\in\{1,\ldots,\ell\}
Then
(y1,\ldots,yq)
yi:=
m | |
\sum | |
j=1 |
ci,jBj
U+W
(z1,\ldots,z\ell)
zi:=
m | |
\sum | |
j=1 |
di,jBj
U\capW
First, we define
\pi1:V x V\toV,(a,b)\mapstoa
Let
H:=\{(u,u)\midu\inU\}+\{(w,0)\midw\inW\}\subseteqV x V.
\pi1(H)=U+W
H\cap(0 x V)=0 x (U\capW)
Also,
H\cap(0 x V)
{\pi1|}H
\dim(H)=\dim(U+W)+\dim(U\capW)
The Zassenhaus algorithm calculates a basis of . In the first columns of this matrix, there is a basis
yi
U+W
The rows of the form
(0,zi)
zi ≠ 0
H\cap(0 x V)
(yi,\bullet)
(0,zi)
\dim(U\capW)
zi
zi
U\capW
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
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
R4
Using the standard basis, we create the following matrix of dimension
(2+2) x (2 ⋅ 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)
\bullet
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)
U+W
\left(\left(\begin{array}{r}1\\-1\\0\\1\end{array}\right)\right)
U\capW