Zassenhaus-Algorithmus

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Der Zassenhaus-Algorithmus[1] ist ein Algorithmus zur Bestimmung von Schnitt- und Summenbasen von zwei Untervektorräumen in der Linearen Algebra. Der Algorithmus ist nach dem Mathematiker Hans Zassenhaus benannt, eine fachwissenschaftliche Veröffentlichung des Algorithmus durch Zassenhaus ist jedoch nicht bekannt.[2] Er findet Verwendung in Computeralgebrasystemen.[3] [4]

Voraussetzungen

[Bearbeiten | Quelltext bearbeiten ]

Es sei V {\displaystyle V} {\displaystyle V} ein Vektorraum und U , W {\displaystyle U,W} {\displaystyle U,W} zwei endlichdimensionale Untervektorräume von V {\displaystyle V} {\displaystyle V}, von denen jeweils ein Erzeugendensystem bekannt ist:

U = u 1 , , u n {\displaystyle U=\langle u_{1},\ldots ,u_{n}\rangle } {\displaystyle U=\langle u_{1},\ldots ,u_{n}\rangle }

und

W = w 1 , , w k {\displaystyle W=\langle w_{1},\ldots ,w_{k}\rangle } {\displaystyle W=\langle w_{1},\ldots ,w_{k}\rangle }.

Schließlich benötigt man noch linear unabhängige Vektoren B 1 , , B m {\displaystyle B_{1},\ldots ,B_{m}} {\displaystyle B_{1},\ldots ,B_{m}}, in denen die Darstellung

u i = j = 1 m a i , j B j {\displaystyle u_{i}=\sum _{j=1}^{m}a_{i,j}B_{j}} {\displaystyle u_{i}=\sum _{j=1}^{m}a_{i,j}B_{j}}

und

w i = j = 1 m b i , j B j {\displaystyle w_{i}=\sum _{j=1}^{m}b_{i,j}B_{j}} {\displaystyle w_{i}=\sum _{j=1}^{m}b_{i,j}B_{j}}

bekannt ist.

Ziel des Algorithmus

[Bearbeiten | Quelltext bearbeiten ]

Gesucht sind Basen der Summe U + W {\displaystyle U+W} {\displaystyle U+W} und der Schnittmenge U W {\displaystyle U\cap W} {\displaystyle U\cap W}.

Man stelle die folgende ( ( n + k ) × ( 2 m ) ) {\displaystyle ((n+k)\times (2m))} {\displaystyle ((n+k)\times (2m))}-Matrix als Blockmatrix

( 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}}} {\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}}}

auf. Mithilfe der Zeilenumformungen führe man diese Matrix über in eine Matrix in Stufenform der folgenden Gestalt:

( 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}}} {\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}}}

Dabei seien die Vektoren ( c p , 1 , c p , 2 , , c p , m ) {\displaystyle (c_{p,1},c_{p,2},\ldots ,c_{p,m})} {\displaystyle (c_{p,1},c_{p,2},\ldots ,c_{p,m})} für p { 1 , , q } {\displaystyle p\in \{1,\ldots ,q\}} {\displaystyle p\in \{1,\ldots ,q\}} und ( d p , 1 , , d p , m ) {\displaystyle (d_{p,1},\ldots ,d_{p,m})} {\displaystyle (d_{p,1},\ldots ,d_{p,m})} für p { 1 , , l } {\displaystyle p\in \{1,\ldots ,l\}} {\displaystyle p\in \{1,\ldots ,l\}} nicht die Nullvektoren.

Dann ist ( y 1 , , y q ) {\displaystyle (y_{1},\ldots ,y_{q})} {\displaystyle (y_{1},\ldots ,y_{q})} mit

y i := j = 1 m c i , j B j {\displaystyle y_{i}:=\sum _{j=1}^{m}c_{i,j}B_{j}} {\displaystyle y_{i}:=\sum _{j=1}^{m}c_{i,j}B_{j}}

eine Basis von U + W {\displaystyle U+W} {\displaystyle U+W} und ( z 1 , , z l ) {\displaystyle (z_{1},\ldots ,z_{l})} {\displaystyle (z_{1},\ldots ,z_{l})} mit

z i := j = 1 m d i , j B j {\displaystyle z_{i}:=\sum _{j=1}^{m}d_{i,j}B_{j}} {\displaystyle z_{i}:=\sum _{j=1}^{m}d_{i,j}B_{j}}

eine Basis von U W {\displaystyle U\cap W} {\displaystyle U\cap W}.

Die Korrektheit des Algorithmus basiert auf folgender Erkenntnis: Der Unterraum H := { ( u , u ) | u U } + { ( w , 0 ) | w W } V × V {\displaystyle H:=\{(u,u)|u\in U\}+\{(w,0)|w\in W\}\leq V\times V} {\displaystyle H:=\{(u,u)|u\in U\}+\{(w,0)|w\in W\}\leq V\times V} erfüllt π 1 ( H ) = U + W {\displaystyle \pi _{1}(H)=U+W} {\displaystyle \pi _{1}(H)=U+W} und H ( 0 × V ) = 0 × ( U W ) {\displaystyle H\cap (0\times V)=0\times (U\cap W)} {\displaystyle H\cap (0\times V)=0\times (U\cap W)}, wobei π 1 : V × V V {\displaystyle \pi _{1}:V\times V\to V} {\displaystyle \pi _{1}:V\times V\to V} die Projektion auf die erste Komponente sei. Gleichzeitig ist H ( 0 × V ) {\displaystyle H\cap (0\times V)} {\displaystyle H\cap (0\times V)} der Kern der auf H {\displaystyle H} {\displaystyle H} eingeschränkten Projektion. Insbesondere ist dim ( H ) = dim ( U + W ) + dim ( U W ) {\displaystyle \dim(H)=\dim(U+W)+\dim(U\cap W)} {\displaystyle \dim(H)=\dim(U+W)+\dim(U\cap W)}.

Der Zassenhaus-Algorithmus berechnet eine Basis von H {\displaystyle H} {\displaystyle H}. In den ersten m {\displaystyle m} {\displaystyle m} Spalten der Matrix wird dabei eine Basis y i {\displaystyle y_{i}} {\displaystyle y_{i}} von U + W {\displaystyle U+W} {\displaystyle U+W} berechnet. Die Zeilen ( 0 , z i ) {\displaystyle (0,z_{i})} {\displaystyle (0,z_{i})} sind offenbar in H ( 0 × V ) {\displaystyle H\cap (0\times V)} {\displaystyle H\cap (0\times V)} enthalten und wegen der Zeilenstufenform linear unabhängig. Alle von Null verschiedenen Zeilen zusammen, also ( y i , ) {\displaystyle (y_{i},\ast )} {\displaystyle (y_{i},\ast )} und ( 0 , z i ) {\displaystyle (0,z_{i})} {\displaystyle (0,z_{i})} müssen aber eine Basis von H {\displaystyle H} {\displaystyle H} bilden, also stimmt die Anzahl der z i {\displaystyle z_{i}} {\displaystyle z_{i}} mit dim ( U W ) {\displaystyle \dim(U\cap W)} {\displaystyle \dim(U\cap W)} überein, d. h., es wurde eine Basis von U W {\displaystyle U\cap W} {\displaystyle U\cap W} berechnet.

Gegeben seien die beiden Untervektorräume 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 } {\displaystyle U=\left\langle {\begin{pmatrix}1\\-1\0円\1円\end{pmatrix}},{\begin{pmatrix}0\0円\1円\\-1\end{pmatrix}}\right\rangle } und 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 } {\displaystyle W=\left\langle {\begin{pmatrix}5\0円\\-3\3円\end{pmatrix}},{\begin{pmatrix}0\5円\\-3\\-2\end{pmatrix}}\right\rangle } des R 4 {\displaystyle \mathbb {R} ^{4}} {\displaystyle \mathbb {R} ^{4}}.

Indem man als ( B 1 , B 2 , B 3 , B 4 ) {\displaystyle (B_{1},B_{2},B_{3},B_{4})} {\displaystyle (B_{1},B_{2},B_{3},B_{4})} die Einheitsbasis des R 4 {\displaystyle \mathbb {R} ^{4}} {\displaystyle \mathbb {R} ^{4}} verwendet, muss man die folgende Matrix

( 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}}} {\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}}}

mittels elementarer Zeilenumformungen auf Stufenform bringen. Dies liefert schließlich

( 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}}} {\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}}}.

Demnach ist ( ( 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)} {\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)} eine Basis von U + W {\displaystyle U+W} {\displaystyle U+W}, und ( ( 1 1 0 1 ) ) {\displaystyle \left({\begin{pmatrix}1\\-1\0円\1円\end{pmatrix}}\right)} {\displaystyle \left({\begin{pmatrix}1\\-1\0円\1円\end{pmatrix}}\right)} ist eine Basis von U W {\displaystyle U\cap W} {\displaystyle U\cap W}.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten ]
  1. Eugene M. Luks, Ferenc Rákóczi, Charles R. B. Wright: Some Algorithms for Nilpotent Permutation Groups. 1996, S. 15 (online [abgerufen am 15. September 2012]). 
  2. Fischer, S. 210.
  3. GAP – Matrices. Abgerufen am 15. September 2012. 
  4. MeatAxe – Other Kernel Functions. Ehemals im Original (nicht mehr online verfügbar); abgerufen am 15. September 2012.@1 @2 Vorlage:Toter Link/www.math.rwth-aachen.de (Seite nicht mehr abrufbar. Suche in Webarchiven) 
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Zassenhaus-Algorithmus&oldid=221557432"