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.[ 2] It is used in computer algebra systems .[ 3]
Algorithm
Let V be a vector space and U , W two finite-dimensional subspaces of V with the following spanning sets :
U
=
⟨
u
1
,
…
,
u
n
⟩
{\displaystyle U=\langle u_{1},\ldots ,u_{n}\rangle }
and
W
=
⟨
w
1
,
…
,
w
k
⟩
.
{\displaystyle W=\langle w_{1},\ldots ,w_{k}\rangle .}
Finally, let
B
1
,
…
,
B
m
{\displaystyle B_{1},\ldots ,B_{m}}
be linearly independent vectors so that
u
i
{\displaystyle u_{i}}
and
w
i
{\displaystyle w_{i}}
can be written as
u
i
=
∑
j
=
1
m
a
i
,
j
B
j
{\displaystyle u_{i}=\sum _{j=1}^{m}a_{i,j}B_{j}}
and
w
i
=
∑
j
=
1
m
b
i
,
j
B
j
.
{\displaystyle w_{i}=\sum _{j=1}^{m}b_{i,j}B_{j}.}
Output
The algorithm computes the base of the sum
U
+
W
{\displaystyle U+W}
and a base of the intersection
U
∩
W
{\displaystyle U\cap W}
.
Algorithm
The algorithm creates the following block matrix of size
(
(
n
+
k
)
×
(
2
m
)
)
{\displaystyle ((n+k)\times (2m))}
:
(
a
1
,
1
a
1
,
2
⋯
a
1
,
m
a
1
,
1
a
1
,
2
⋯
a
1
,
m
⋮
⋮
⋮
⋮
⋮
⋮
a
n
,
1
a
n
,
2
⋯
a
n
,
m
a
n
,
1
a
n
,
2
⋯
a
n
,
m
b
1
,
1
b
1
,
2
⋯
b
1
,
m
0
0
⋯
0
⋮
⋮
⋮
⋮
⋮
⋮
b
k
,
1
b
k
,
2
⋯
b
k
,
m
0
0
⋯
0
)
{\displaystyle {\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:
(
c
1
,
1
c
1
,
2
⋯
c
1
,
m
∗
∗
⋯
∗
⋮
⋮
⋮
⋮
⋮
⋮
c
q
,
1
c
q
,
2
⋯
c
q
,
m
∗
∗
⋯
∗
0
0
⋯
0
d
1
,
1
d
1
,
2
⋯
d
1
,
m
⋮
⋮
⋮
⋮
⋮
⋮
0
0
⋯
0
d
l
,
1
d
l
,
2
⋯
d
l
,
m
0
0
⋯
0
0
0
⋯
0
⋮
⋮
⋮
⋮
⋮
⋮
0
0
⋯
0
0
0
⋯
0
)
{\displaystyle {\begin{pmatrix}c_{1,1}&c_{1,2}&\cdots &c_{1,m}&*&*&\cdots &*\\\vdots &\vdots &&\vdots &\vdots &\vdots &&\vdots \\c_{q,1}&c_{q,2}&\cdots &c_{q,m}&*&*&\cdots &*\\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_{l,1}&d_{l,2}&\cdots &d_{l,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,
∗
{\displaystyle *}
stands for arbitrary numbers, and the vectors
(
c
p
,
1
,
c
p
,
2
,
…
,
c
p
,
m
)
{\displaystyle (c_{p,1},c_{p,2},\ldots ,c_{p,m})}
for every
p
∈
{
1
,
…
,
q
}
{\displaystyle p\in \{1,\ldots ,q\}}
and
(
d
p
,
1
,
…
,
d
p
,
m
)
{\displaystyle (d_{p,1},\ldots ,d_{p,m})}
for every
p
∈
{
1
,
…
,
l
}
{\displaystyle p\in \{1,\ldots ,l\}}
are nonzero.
Then
(
y
1
,
…
,
y
q
)
{\displaystyle (y_{1},\ldots ,y_{q})}
with
y
i
:=
∑
j
=
1
m
c
i
,
j
B
j
{\displaystyle y_{i}:=\sum _{j=1}^{m}c_{i,j}B_{j}}
is a basis of
U
+
W
{\displaystyle U+W}
and
(
z
1
,
…
,
z
l
)
{\displaystyle (z_{1},\ldots ,z_{l})}
with
z
i
:=
∑
j
=
1
m
d
i
,
j
B
j
{\displaystyle z_{i}:=\sum _{j=1}^{m}d_{i,j}B_{j}}
is a basis of
U
∩
W
{\displaystyle U\cap W}
.
Proof of correctness
First, we define
π
1
:
V
×
V
→
V
,
(
a
,
b
)
↦
a
{\displaystyle \pi _{1}:V\times V\to V,(a,b)\mapsto a}
to be the projection to the first component.
Let
H
:=
{
(
u
,
u
)
∣
u
∈
U
}
+
{
(
w
,
0
)
∣
w
∈
W
}
⊆
V
×
V
.
{\displaystyle H:=\{(u,u)\mid u\in U\}+\{(w,0)\mid w\in W\}\subseteq V\times V.}
Then
π
1
(
H
)
=
U
+
W
{\displaystyle \pi _{1}(H)=U+W}
and
H
∩
(
0
×
V
)
=
0
×
(
U
∩
W
)
{\displaystyle H\cap (0\times V)=0\times (U\cap W)}
.
Also,
H
∩
(
0
×
V
)
{\displaystyle H\cap (0\times V)}
is the kernel of
π
1
|
H
{\displaystyle {\pi _{1}|}_{H}}
, the projection restricted to H .
Therefore,
dim
(
H
)
=
dim
(
U
+
W
)
+
dim
(
U
∩
W
)
{\displaystyle \dim(H)=\dim(U+W)+\dim(U\cap W)}
.
The Zassenhaus Algorithm calculates a basis of H . In the first m columns of this matrix, there is a basis
y
i
{\displaystyle y_{i}}
of
U
+
W
{\displaystyle U+W}
.
The rows of the form
(
0
,
z
i
)
{\displaystyle (0,z_{i})}
(with
z
i
≠
0
{\displaystyle z_{i}\neq 0}
) are obviously in
H
∩
(
0
×
V
)
{\displaystyle 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
,
∗
)
{\displaystyle (y_{i},*)}
and
(
0
,
z
i
)
{\displaystyle (0,z_{i})}
) are a basis of H , so there are
dim
(
U
∩
W
)
{\displaystyle \dim(U\cap W)}
such
z
i
{\displaystyle z_{i}}
s. Therefore, the
z
i
{\displaystyle z_{i}}
s form a basis of
U
∩
W
{\displaystyle U\cap W}
.
Example
Consider the two subspaces
U
=
⟨
(
1
−
1
0
1
)
,
(
0
0
1
−
1
)
⟩
{\displaystyle U=\left\langle {\begin{pmatrix}1\\-1\\0\\1\end{pmatrix}},{\begin{pmatrix}0\\0\\1\\-1\end{pmatrix}}\right\rangle }
and
W
=
⟨
(
5
0
−
3
3
)
,
(
0
5
−
3
−
2
)
⟩
{\displaystyle W=\left\langle {\begin{pmatrix}5\\0\\-3\\3\end{pmatrix}},{\begin{pmatrix}0\\5\\-3\\-2\end{pmatrix}}\right\rangle }
of the vector space
R
4
{\displaystyle \mathbb {R} ^{4}}
.
Using the standard basis , we create the following matrix of dimension
(
2
+
2
)
×
(
2
⋅
4
)
{\displaystyle (2+2)\times (2\cdot 4)}
:
(
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
)
.
{\displaystyle {\begin{pmatrix}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{pmatrix}}.}
Using elementary row operations , we transform this matrix into the following matrix:
(
1
0
0
0
∗
∗
∗
∗
0
1
0
−
1
∗
∗
∗
∗
0
0
1
−
1
∗
∗
∗
∗
0
0
0
0
1
−
1
0
1
)
{\displaystyle {\begin{pmatrix}1&0&0&0&&*&*&*&*\\0&1&0&-1&&*&*&*&*\\0&0&1&-1&&*&*&*&*\\\\0&0&0&0&&1&-1&0&1\end{pmatrix}}}
(some entries have been replaced by "
∗
{\displaystyle *}
" because they are irrelevant to the result).
Therefore,
(
(
1
0
0
0
)
,
(
0
1
0
−
1
)
,
(
0
0
1
−
1
)
)
{\displaystyle \left({\begin{pmatrix}1\\0\\0\\0\end{pmatrix}},{\begin{pmatrix}0\\1\\0\\-1\end{pmatrix}},{\begin{pmatrix}0\\0\\1\\-1\end{pmatrix}}\right)}
is a basis of
U
+
W
{\displaystyle U+W}
, and
(
(
1
−
1
0
1
)
)
{\displaystyle \left({\begin{pmatrix}1\\-1\\0\\1\end{pmatrix}}\right)}
is a basis of
U
∩
W
{\displaystyle U\cap W}
.
See also
References
^ Luks, Eugene M. ; Rákóczi, Ferenc; Wright, Charles R. B. (April 1997), "Some algorithms for nilpotent permutation groups", Journal of Symbolic Computation , 23 (4): 335–354, doi :10.1006/jsco.1996.0092 .
^ Fischer, Gerd (2012), Lernbuch Lineare Algebra und Analytische Geometrie (in German), Vieweg+Teubner , pp. 207–210, doi :10.1007/978-3-8348-2379-3 , ISBN 978-3-8348-2378-6
^ The GAP Group (February 13, 2015), "24 Matrices" , GAP Reference Manual, Release 4.7 , retrieved 2015-06-11
External links