schnelle matrizenoperationen von christian büttner proseminar ergänzende kapitel zu dap ii...
Post on 05-Apr-2015
106 Views
Preview:
TRANSCRIPT
Schnelle Matrizenoperationen von Christian Büttner
Proseminar Ergänzende Kapitel zu DAP II
Informationsquelle: Cormen, Leiserson, Rivest Introduction to algorithm
Was erwartet uns?
Strassens Algorithmus
Lineare Gleichungssysteme
Invertieren von Matrizen
Symetrisch positiv definite Matrizen
Strassens Algorithmus
• Warum ein Algorithmus?Matrixoperationen sind wichtig in der Wissenschaft z.B. Strömungsverhalten von Wasser.
• Was macht der Algorithmus?Berechnung des Produktes zweier n n Matrizen
• Vergleich zum naiven Algorithmus?Der naive Algorithmus benötigt
Strassens Algorithmus nur
)( 3n
)()( 81,27lg nn
Strassens Algorithmus
Der Algorithmus basiert auf der Divide & Conquer Idee.
)(,,,,,,,
)(,,
2
Rmathgfedcbaseiund
RmatCBASei
n
n
hf
ge
dc
ba
ut
sr
BAC
*
*
Dann ergeben sich die vier Gleichungen
hdgcu
fdect
hbgas
fbear
**
**
**
**
Multiplikation ist nicht Kommutativ !
Strassens Algorithmus
Dies liefert einen rekursiven Algorithmus mit Laufzeit
)()()2
(*8)( 32 nnn
TnT
Strassens Algorithmus hingegen liefert:
)()()2
(*7)( )7lg(2 nnn
TnT
Strassens Algorithmus
1) Eingangsmatrix in Untermatrizen teilen.22
nn
2) Mit skalar Additionen/Subtraktionen 14
Matrizen aufstellen
)( 2n22
nn
77665544332211 ,,,,,,,,,,,,, BABABABABABABA
3) rekursiv berechnen 7,...,1* ifürBAP iii
4) berechne r,s,t,u durch addieren/subtrahieren der verschiedenen MatrizeniP
Strassens Algorithmus
7,...,1}1,0,1{,,,,,,,
)****(*)****(*
43214321
43214321
iundmit
hgfedcbaBAP
iiiiiiii
iiiiiiiiiii
h
g
f
e
dcbabfear
0000
0000
0010
0001
)*(
d
c
b
a
hgfe
hbgas **
fdect **
hdgcu **
Strassens Algorithmus
21 PPs Kann man wie folgt darstellen
=
haga ** hbha ** hbga ** +1:)(* Phga 2:*)( Phba
Analog kann man mit verfahren43 PPt
3:*)( Pedc 4:)(* Pefd
edec ** edfd ** fdec ** + =
Strassens Algorithmus
5)(*)()(*)(***** Phedahedheahdedhaea
hbfdhdea **** 5P
4P 2P
Strassens Algorithmus
)(*)()(*)(*****6 hfdbhfdhfbhdfdhbfbP
fbeaPPPPr **6245
Nun kann man r wie folgt bestimmen
Strassens Algorithmus
7315
)(*)()(*)(*****
PPPPu
gecagecgeagcecgaea
Weiter kann man folgendes machen
hdecgaeaPPP ****315
Strassens Algorithmus
Beispiel
ut
sr
26
48*
75
31
2)24(*11 P
82*)31(2 P
968*)75(3 P
14)86(*74 P
80)28)(71(5 P
32)26(*)73(6 P
42)48(*)51(7 P
1021 PPs
8243 PPt
266245 PPPPr
347315 PPPPu
3482
1026
Strassens Algorithmus
Satz: Sei (R,+,*) ein Ring, dann ist auch ein Ring
,*)),(( Rmat nn
Beweis:
Assoziativgesetz bzgl + wird “vererbt”.Neutrales Element ist die Matrix die nur aus dem neutralen Element des Rings R besteht. Oft als 0 bezeichnet
Additives inverse ist die Matrix aus den additiven inversen Elementen des Rings R.
Kommutativität bzgl. + wird “vererbt”.
Strassens Algorithmus
nnn
n
nnn
n
nnn
n
n
ilj
n
lijki
n
ilj
n
lijki
n
ilj
n
lijki
n
llj
n
iijki
n
llj
n
iijki
nnn
n
nnn
n
nnn
n
cc
cc
bb
bb
aa
aa
cba
cbacba
cbacba
cc
cc
bb
bb
aa
aa
1
111
1
111
1
111
1 1
1 11 1
1 11 1
1
111
1
111
1
111
**
**
)*(***
****
**
Strassens Algorithmus
Anmerkung Binärmatrizen
Ringkein),},1,0({
Die Definition der Multiplikation
kjik
n
kij
n
bac
matCBAmitBAC
1
)}1,0({,,*
Konvertiere die Binärmatrix in die reellen Zahlen und führe Strassens Algorithmus durch.
Prüfe ob ein wert ungleich 0 ist, wenn ja ersetze ihn durch 1
Lineare Gleichungssysteme
Problemstellung:n
nn bxundmatAmitbAx ,)(
Satz: Ist A invertierbar so gibt es genau eine Lösung
'')'()()(
'
'
1111 xAxAAxAAxAxAAx
bAxAx
LösungenzweixundxSeien
Mögliche Lösung eines LGS:
bAx
bAAxA
bAx
1
11
Problem: numerisch instabil
Lineare Gleichungssysteme
LUP-Decomposition
PA=LU P ist Permutationsmatrix
L ist linker untere normierte Dreicksmatrix
U ist rechte obere Dreiecksmatrix
tuationbacksubstimitlösenyUx
ionsubstituatforwardmitlösenPbLy
UxymitPbLUx
PbPAx
bAx
*00
*0
**
1**
0
1*
001
PA
Lineare Gleichungssysteme
Forward substitution
)(11221
)2(2121
)1(1
1
*
nnnnnnyn byylyll
byyl
by
1
1)()(
i
jjijii ylby
Lineare Gleichungssysteme
Backsubstitution
nnnn
nn
yxu
yxuxu
11111
ij
n
ijjiji
i u
xuy
x
1
Lineare Gleichungssysteme
Beispiel LU-Decomposition
3111104
2310192
195136
5132
21942
189161
4243
5132
17712
2141
4243
5132
3712
2141
4243
5132
3000
2100
4240
5132
1712
0141
0013
0001
3111104
2310192
195136
5132
Lineare Gleichungssysteme
LUP-Decomposition
-LU-Decomposition mit Spaltenpivotierung.
Betragsgrösstes Element suchen und Zeilen vertauschen und in einem Permutationsvektor speichern
=> numerisch stabiler und Division durch NULL wird vermieden
Laufzeitverhalten ist (n³)
Matrizen invertieren
Was können wir ?
bAx
Lösen von linearen Gleichungen auch für verschiedene b
Was bringt uns das?
IAA 1* Kann man auch für jede Spalte einzeln Lösen
nifürAvonSpaltenxmitexA iii ,...,1* 1
Matrizen invertieren
Zeitaufwand:
LUP-Zerlegung (n³)
Lösen der linearen Gleichung für n Spaltenvektoren n* (n²)= (n³)
=> (n³)
Matrizen invertieren
Satz: Sei M(n) die Zeit um zwei nn Matrizen zu multiplizieren und I(n) die Zeit um eine nn Matrix zu invertieren, dann gilt I(n)=(M(n))
Beweis: “M(n)=O(I(n))”
Seien A,B zwei nn Matrizen.
n
n
n
n
n
n
I
BI
ABAI
D
I
BI
AI
D
00
0
00
0
0
1
D lässt sich in O(I(3n)) =O(I(n)) invertieren
=> M(n)=O(I(n))
Matrizen invertieren
“I(n)=O(M(n))” Beweis Idee
-erweitern der Matrix mit “Identität, so dass man eine
Potenz von 2 erhält
-für symetrisch positiv definite Matrizen definiert man einen rekursiven Algorithmus mit Laufzeitverhalten
I(n)2I(n/2)+4M(n)+O(n²)= 2I(n/2)+O(M(n))=O(M(n))
Die Matrix ist nicht symetrisch positiv definit
111 ***)*(
*1
AAAAAAA
AAtrtrtrtr
tr
Symmetrisch positive definite Matrizen
Definition: Eine symetrisch positiv definite Matrix erfüllt folgende Bedingungen
00)2
)1
xfürAxx
AAtr
tr
Satz: Jede positiv definite Matrix ist invertierbar
Beweis: Sei Ax=0 d.h. die Zeilen der Matrix sind linear abhängig. Dies ist ein Widerspruch zu Eigenschaft 2)
Symmetrisch positive definite Matrizen
Satz: Ist A symetrisch und positiv definit, so ist jede linke obere Untermatrix symetrisch und positiv definit.
Beweis:
-symetrisch ist klar
0''
)0,(0
')0,(
xAx
Cx
xAx
x
DC
BAx trtrtr
Symmetrisch positive definite Matrizen
Satz: Ist A eine symetrisch, positiv definite Matrix, dann ist das Schur-komplement auch symetrisch positiv definit
trk
trk
BBACS
CB
BAA
1
Definition des Schurkomplemtes
Beweis: Man kann zeigen, dass S symetrisch ist. Wir wollen nur zeigen, dass S positiv definit ist.
0)(
)()()(1
111
SzzzBBACz
zBBACzzBAyAzBAy
CzzByzyByyAy
z
y
CB
BAzyAxx
trtrk
tr
trk
trtrkk
trtrk
trtrtrtrk
tr
trktrtrtr
q.e.d.
Symmetrisch positive definite Matrizen
Symmetrisch positive definite Matrizen
Korollar: Symmetrisch positiv definite Matrizen verursachen bei einer LU-Decompositon nie eine Division durch 0.
Beweis: Sei A eine symetrisch positiv definite Matrix. Da jede linke obere Untermatrix positiv definit ist, ist auch das erste Element positiv insbesondere nicht 0. Der erste Schritt der LU-Decomposition erstellt das Schurkomplement. Nun kann man per Induktion zeigen dass alle Pivotelemente ungleich 0 sind.
Symmetrisch positive definite Matrizen
Gegeben sei eine Menge von Punkten. Nun möchte man ein Polynom des Grades n finden, so dass die Kurve möglichst nah an allen Punkten vorbei geht.
mifürxFy
yxyxyx
iii
mm
,...,1)(
),(),...,,(),,( 2211
Symmetrisch positive definite Matrizen
Was ist ?)( ixF
n
jjji xfcxF
1
)()( Wobei n die Anzahl der Basisfunktionen angibt.
Was ist nun ?)(xf j
121
1
...)(
)(..
n
n
jj
xcxccxF
xxfBz
)(
)(
)(
)()()(
)()()(
)()()(
2
1
2
1
21
22221
11211
mnmnmm
n
n
xF
xF
xF
c
c
c
xfxfxf
xfxfxf
xfxfxf
Ac
Symmetrisch positive definite Matrizen
Nun wollen wir den Fehler dabei betrachten
yAAAc
yAAcAyAcA
AyAc
zuäquivalent
aycadc
d
ycayAc
yAc
trtr
trtrtr
tr
m
iik
n
jijij
k
m
i
n
jijij
m
ii
))((
0)(
0)(
02
1
1 1
2
1
2
1
22
2
1
1
2
Symmetrisch positive definite Matrizen
Beispiel: Die Punkte (-1,2),(1,1),(2,1),(3,0),(5,3) sollen durch eine quadratische Kurve approximiert werden.
2
1
1
255
244
233
222
211
2321
214,0757,02,1)(
214,0
757,0
200,1
)(
060,0036,0048,0036,0060,0
088.,0193,0190,0093.0388,0
100,0100,0200,0300,0500,0
)(
2551
931
421
111
111
1
1
1
1
1
)(
xxxF
cyAAA
AAA
xx
xx
xx
xx
xx
A
xcxccxF
trtr
trtr
Ich habe fertig!
top related