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 U∩W.

Algorithm

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

(a1,1a1,2⋯a1,ma1,1a1,2⋯a1,m⋮⋮⋮⋮⋮⋮an,1an,2⋯an,man,1an,2⋯an,mb1,1b1,2⋯b1,m00⋯0⋮⋮⋮⋮⋮⋮bk,1bk,2⋯bk,m00⋯0)

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

(c1,1c1,2⋯c1,m∙∙⋯∙⋮⋮⋮⋮⋮⋮cq,1cq,2⋯cq,m∙∙⋯∙00⋯0d1,1d1,2⋯d1,m⋮⋮⋮⋮⋮⋮00⋯0dℓ,1dℓ,2⋯dℓ,m00⋯000⋯0⋮⋮⋮⋮⋮⋮00⋯000⋯0)

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 U∩W.

Proof of correctness

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

Let H:={(u,u)∣u∈U}+{(w,0)∣w∈W}⊆V×V. Then π1(H)=U+W and H∩(0×V)=0×(U∩W).

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

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 zi≠0) 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⁡(U∩W) such zis. Therefore, the zis form a basis of U∩W.

Example

Consider the two subspaces U=⟨(1−101),(001−1)⟩ and W=⟨(50−33),(05−3−2)⟩ of the vector space ℝ4.

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

(1−1011−101001−1001−150−33000005−3−20000).

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

(1000∙∙∙∙010−1∙∙∙∙001−1∙∙∙∙00001−101) (Some entries have been replaced by "∙" because they are irrelevant to the result.)

Therefore ((1000),(010−1),(001−1)) is a basis of U+W, and ((1−101)) is a basis of U∩W.

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