schnelle matrizenoperationen von christian büttner proseminar ergänzende kapitel zu dap ii...
TRANSCRIPT
![Page 1: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/1.jpg)
![Page 2: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/2.jpg)
Schnelle Matrizenoperationen von Christian Büttner
Proseminar Ergänzende Kapitel zu DAP II
Informationsquelle: Cormen, Leiserson, Rivest Introduction to algorithm
![Page 3: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/3.jpg)
Was erwartet uns?
Strassens Algorithmus
Lineare Gleichungssysteme
Invertieren von Matrizen
Symetrisch positiv definite Matrizen
![Page 4: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/4.jpg)
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
![Page 5: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/5.jpg)
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 !
![Page 6: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/6.jpg)
Strassens Algorithmus
Dies liefert einen rekursiven Algorithmus mit Laufzeit
)()()2
(*8)( 32 nnn
TnT
Strassens Algorithmus hingegen liefert:
)()()2
(*7)( )7lg(2 nnn
TnT
![Page 7: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/7.jpg)
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
![Page 8: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/8.jpg)
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 **
![Page 9: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/9.jpg)
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 ** + =
![Page 10: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/10.jpg)
Strassens Algorithmus
5)(*)()(*)(***** Phedahedheahdedhaea
hbfdhdea **** 5P
4P 2P
![Page 11: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/11.jpg)
Strassens Algorithmus
)(*)()(*)(*****6 hfdbhfdhfbhdfdhbfbP
fbeaPPPPr **6245
Nun kann man r wie folgt bestimmen
![Page 12: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/12.jpg)
Strassens Algorithmus
7315
)(*)()(*)(*****
PPPPu
gecagecgeagcecgaea
Weiter kann man folgendes machen
hdecgaeaPPP ****315
![Page 13: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/13.jpg)
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
![Page 14: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/14.jpg)
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”.
![Page 15: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/15.jpg)
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
**
**
)*(***
****
**
![Page 16: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/16.jpg)
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
![Page 17: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/17.jpg)
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
![Page 18: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/18.jpg)
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
![Page 19: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/19.jpg)
Lineare Gleichungssysteme
Forward substitution
)(11221
)2(2121
)1(1
1
*
nnnnnnyn byylyll
byyl
by
1
1)()(
i
jjijii ylby
![Page 20: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/20.jpg)
Lineare Gleichungssysteme
Backsubstitution
nnnn
nn
yxu
yxuxu
11111
ij
n
ijjiji
i u
xuy
x
1
![Page 21: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/21.jpg)
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
![Page 22: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/22.jpg)
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³)
![Page 23: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/23.jpg)
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
![Page 24: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/24.jpg)
Matrizen invertieren
Zeitaufwand:
LUP-Zerlegung (n³)
Lösen der linearen Gleichung für n Spaltenvektoren n* (n²)= (n³)
=> (n³)
![Page 25: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/25.jpg)
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))
![Page 26: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/26.jpg)
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
![Page 27: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/27.jpg)
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)
![Page 28: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/28.jpg)
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
![Page 29: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/29.jpg)
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
![Page 30: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/30.jpg)
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
![Page 31: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/31.jpg)
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.
![Page 32: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/32.jpg)
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
![Page 33: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/33.jpg)
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
![Page 34: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/34.jpg)
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
![Page 35: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/35.jpg)
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
![Page 36: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction](https://reader036.vdocuments.site/reader036/viewer/2022062622/55204d6149795902118b470f/html5/thumbnails/36.jpg)
Ich habe fertig!