schnelle matrizenoperationen von christian büttner proseminar ergänzende kapitel zu dap ii...

Post on 05-Apr-2015

106 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

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