Zassenhaus algorithm

From HandWiki
Short description: Mathematic algorithm for basis

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

Input

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

U=u1,,un

and

W=w1,,wk.

Finally, let B1,,Bm be linearly independent vectors so that ui and wi can be written as

ui=j=1mai,jBj

and

wi=j=1mbi,jBj.

Output

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

Algorithm

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

(a1,1a1,2a1,ma1,1a1,2a1,man,1an,2an,man,1an,2an,mb1,1b1,2b1,m000bk,1bk,2bk,m000)

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

(c1,1c1,2c1,mcq,1cq,2cq,m000d1,1d1,2d1,m000d,1d,2d,m000000000000)

Here, stands for arbitrary numbers, and the vectors (cp,1,cp,2,,cp,m) for every p{1,,q} and (dp,1,,dp,m) for every p{1,,} are nonzero.

Then (y1,,yq) with

yi:=j=1mci,jBj

is a basis of U+W and (z1,,z) with

zi:=j=1mdi,jBj

is a basis of UW.

Proof of correctness

First, we define π1:V×VV,(a,b)a to be the projection to the first component.

Let H:={(u,u)uU}+{(w,0)wW}V×V. Then π1(H)=U+W and H(0×V)=0×(UW).

Also, H(0×V) is the kernel of π1|H, the projection restricted to H. Therefore, dim(H)=dim(U+W)+dim(UW).

The Zassenhaus algorithm calculates a basis of H. In the first m columns of this matrix, there is a basis yi of U+W.

The rows of the form (0,zi) (with zi0) are obviously in H(0×V). Because the matrix is in row echelon form, they are also linearly independent. All rows which are different from zero ((yi,) and (0,zi)) are a basis of H, so there are dim(UW) such zis. Therefore, the zis form a basis of UW.

Example

Consider the two subspaces U=(1101),(0011) and W=(5033),(0532) of the vector space 4.

Using the standard basis, we create the following matrix of dimension (2+2)×(24):

(11011101001100115033000005320000).

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

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

Therefore ((1000),(0101),(0011)) is a basis of U+W, and ((1101)) is a basis of UW.

See also

References

  1. "Some algorithms for nilpotent permutation groups", Journal of Symbolic Computation 23 (4): 335–354, April 1997, doi:10.1006/jsco.1996.0092 .
  2. Fischer, Gerd (2012) (in de), Lernbuch Lineare Algebra und Analytische Geometrie, Vieweg+Teubner, pp. 207–210, doi:10.1007/978-3-8348-2379-3, ISBN 978-3-8348-2378-6 
  3. The GAP Group (February 13, 2015), "24 Matrices", GAP Reference Manual, Release 4.7, http://www.gap-system.org/Manuals/doc/ref/chap24.html, retrieved 2015-06-11