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

36

Upload: ernst-gent

Post on 05-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction
Page 2: Schnelle Matrizenoperationen von Christian Büttner Proseminar Ergänzende Kapitel zu DAP II Informationsquelle: Cormen, Leiserson, Rivest Introduction

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ich habe fertig!