Dynamische Programmierung Matrixkettenprodukt

Ähnliche Dokumente
Informatik II Dynamische Programmierung

Dynamisches Programmieren Stand

5.7. Aufgaben zu Folgen

... a ik) i=1...m, k=1...n A = = ( a mn

Tutoraufgabe 1 (Rekursionsgleichungen):

Lösungsskizzen Mathematik für Informatiker 5. Aufl. Kapitel 3 Peter Hartmann

Innerbetriebliche Leistungsverrechnung

Kleines Matrix-ABC. Fachgebiet Regelungstechnik Leiter: Prof. Dr.-Ing. Johann Reger. 1 Elementares

Mathematische Rekursion. Rekursion. Rekursion in C++ Mathematische Rekursion. Definition. 1, falls n 1. n! = n (n-1)!, falls n > 1

1.3 Funktionen. Seien M und N Mengen. f : M N x M : 1 y N : y = f(x) nennt man Funktion oder Abbildung. Beachte: Zuordnung ist eindeutig.

Zusammenfassung: Folgen und Konvergenz

Satz Ein Boolescher Term t ist eine Tautologie genau dann, wenn t unerfüllbar ist.

Einführende Beispiele Arithmetische Folgen. Datei Nr SW. Das komplette Manuskript befindet sich auf der Mathematik - CD.

Höhere Mathematik II für die Fachrichtungen Elektroingenieurwesen, Physik und Geodäsie inklusive Komplexe Analysis und Integraltransformationen

2 Asymptotische Schranken

Nachklausur - Analysis 1 - Lösungen

Methode der kleinsten Quadrate

6. Übung - Differenzengleichungen

3. Tilgungsrechnung Tilgungsarten

Statistik mit Excel Themen-Special. Peter Wies. 1. Ausgabe, Februar 2014 W-EX2013S

2 Vollständige Induktion

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Page-Rank: Markov-Ketten als Grundlage für Suchmaschinen im Internet

1.1 Berechnung des Endwerts einer Einmalanlage bei linearer ganzjähriger Verzinsung nach n Verzinsungsjahren

1 Vollständige Induktion

Kryptologie: Kryptographie und Kryptoanalyse Kryptologie ist die Wissenschaft, die sich mit dem Ver- und Entschlüsseln von Informationen befasst.

4 Konvergenz von Folgen

AT AB., so bezeichnet man dies als innere Teilung von

Formelsammlung Mathematik

Finanzmathematik für HAK

Aufgabe G 1.1. [Vollständige Induktion, Teleskopsumme] n k 3 = n N : k(k + 1) = 1 1

Finanzmathematische Formeln und Tabellen

Lösungen der Aufgaben zur Vorbereitung auf die Klausur Mathematik für Informatiker I

Kovarianz und Korrelation

Statistik Einführung // Konfidenzintervalle für einen Parameter 7 p.2/39

Kapitel 4: Stationäre Prozesse

Reihen Arithmetische Reihen Geometrische Reihen. Datei Nr (Neu bearbeitet und erweitert) Juni Friedrich W. Buckel

n (n + 1) = 1(1 + 1)(1 + 2) 3 Induktionsschritt: Angenommen die Gleichung gilt für n N. Dann folgt: 1 2 = 2 =

18 2 Zeichen, Zahlen & Induktion *

2. Gleichwertige Lösungen

1 Das Skalarprodukt und das Kreuzprodukt

Prof. Dr.-Ing. Bernd Kochendörfer. Bauwirtschaft und Baubetrieb. Investitionsrechnung

Ungleichungen werden mit Äquivalenzumformungen gelöst. Hierzu werden die sogenannten Monotoniegesetze angegeben.

Geometrische Folgen. Auch Wachstumsfolgen Viele Aufgaben. Lösungen nur auf der Mathe-CD Hier nur Ausschnitte. Datei Nr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Carmichaelzahlen und andere Pseudoprimzahlen

1. Goldener Schnitt Pascalsches Dreieck

Leitfaden zu den Zertifikate-Indizes. Discount-Index Outperformance-Index Bonus-Index Kapitalschutz-Index Aktienanleihen-Index

SUCHPROBLEME UND ALPHABETISCHE CODES

Statistik und Wahrscheinlichkeitsrechnung

Höhere Finanzmathematik. Sehr ausführliches Themenheft (d. h. mit Theorie) Aber auch mit vielen Trainingsaufgaben

Arithmetische und geometrische Folgen. Die wichtigsten Theorieteile. und ganz ausführliches Training. Datei Nr

Komplexe Zahlen. Lernziele dieses Abschnitts sind:

Musterlösung zu Blatt 8 der Vorlesung Analysis I WS08/09

4. Die Menge der Primzahlen. Bertrands Postulat

Die Gasgesetze. Die Beziehung zwischen Volumen und Temperatur (Gesetz von J.-L. und J. Charles): Gay-Lussac

TECHNISCHE UNIVERSITÄT MÜNCHEN

Konzentration und Disparität

Kapitel 2. Zahlenbereiche

Zusammenfassung: Gleichungen und Ungleichungen

Logik. Wahrheitstafeln - für verschiedene Belegungen der logischen Variable wird der Wahrheitswert logischer Ausdrücke angegeben

$Id: reihen.tex,v /06/14 13:59:06 hk Exp $

Kapitel 6: Quadratisches Wachstum

Methoden: Heron-Verfahren, Erweiterung von Differenzen von Quadratwurzeln

Wissenschaftliches Arbeiten Studiengang Energiewirtschaft

Merge-Sort und Binäres Suchen

Es werden 120 Schüler befragt, ob sie ein Handy besitzen. Das Ergebnis der Umfrage lautet: Von 120 Schülern besitzen 99 ein Handy.

Testumfang für die Ermittlung und Angabe von Fehlerraten in biometrischen Systemen

5.7. Aufgaben zu Folgen und Reihen

Kennzeichen: Die Berechnungsbasis bleibt während der gesamten Verzinsungsdauer unverändert (lineares Wachstum)

Lerneinheit 2: Grundlagen der Investition und Finanzierung

Kapitel 6: Statistische Qualitätskontrolle

Betriebswirtschaft Wirtschaftsmathematik Studienleistung BW-WMT-S

FormelnfürdieAnzahlmöglicherQuadrateaufn*nSpielfeldern

Musterlösung zu Übungsblatt 2

Fehlerrechnung. 3. Genauigkeit von Meßergebnissen am Beispiel der Längenmessung

Transkript:

Dyamische Programmierug Matrixketteprodukt

Das Optimalitätsprizip Typische Awedug für dyamisches Programmiere: Optimierugsprobleme Eie optimale Lösug für das Ausgagsproblem setzt sich aus optimale Lösuge für kleiere Probleme zusamme. 2

Ketteprodukt vo Matrize Gegebe: Folge (Kette) A,A 2,...,A vo Matrize Gesucht: Produkt A A 2... A Problem: Orgaisiere die Multiplikatio so, dass möglichst weig skalare Multiplikatioe ausgeführt werde. Defiitio: Ei Matrizeprodukt heißt vollstädig geklammert, we es etweder eie eizele Matrix oder das geklammerte Produkt zweier vollstädig geklammerter Matrizeprodukte ist. 3

Beispiel für vollstädig geklammerte Matrizeprodukte der Kette A,A 2,...,A Alle vollstädig geklammerte Matrizeprodukte der Kette A,A 2,A 3, A 4 sid: ( A ( A 2 ( A 3 A 4 ) ) ) ( A ( ( A 2 A 3 ) A 4 ) ) ( ( A A 2 )( A 3 A 4 ) ) ( ( A ( A 2 A 3 ) ) A 4 ) ( ( ( A A 2 ) A 3 ) A 4 ) 4

Azahl der verschiedee Klammeruge Klammeruge etspreche strukturell verschiedee Bäume. 5

6 Azahl der verschiedee Klammeruge P() sei die Azahl der verschiedee Klammeruge vo A...A k A k+...a ( ) ( ) ( ) ( ) = = = 2 für k k P k P P P ( ) ( ) Zahl te Catalasche 4 4 2 5 = + + Ο + = + C P P π Bem: Fide der optimale Klammerug durch Ausprobiere silos.

A Multiplikatio zweier Matrize = ( a ), B = ( b ), A B = C = ( c ) ij p q ij q r c ij = q k= a ik Algorithmus Matrix-Mult Iput: Eie (p q) Matrix A ud eie (q r) Matrix B Output: Die (p r) Matrix C = A B for i := to p do 2 for j := to r do 3 C[i, j] := 0 4 for k := to q do 5 C[i, j] := C[i, j] + A[i, k] B[k,j] b kj. ij p r Azahl Multiplikatioe ud Additioe: p q r Bem: für zwei Matrize werde hier 3 Multiplikatioe beötigt. Es geht auch mit O( 2.376 ) Multiplikatioe., 7

Matrizeketteprodukt Beispiel Berechug des Produkts vo A,A 2,A 3 mit A :0 00 Matrix A 2 :00 5 Matrix A 3 : 5 50 Matrix a) Klammerug ( ( A A 2 ) A 3 ) erfordert A = (A A 2 ): A A 3 : Summe: 8

Matrizeketteprodukt Beispiel A :0 00 Matrix A 2 :00 5 Matrix A 3 : 5 50 Matrix a) Klammerug (A (A 2 A 3 )) erfordert A = (A 2 A 3 ): A A : Summe: 9

Struktur der optimale Klammerug (A i...j ) = ((A i...k ) (A k+...j )) i k < j Jede optimale Lösug des Matrixketteprodukt Problems ethält optimale Lösuge vo Teilprobleme. Rekursive Bestimmug des Wertes eier optimale Lösug: m[i,j] sei miimale Azahl vo Operatioe zur Berechug des Teilproduktes A i...j : m[i,j] = 0 falls i = j m[i,j] = mi i k< j { [ i, k] + m[ k +, j] + p p p } m i k j,sost s[i,j] = optimaler Splitwert k, für de das Miimum ageomme wird 0

Rekursive Matrixketteprodukt Algorithmus rek-mat-ket(p, i, j) Iput: Eigabefolge p = p 0,p,...,p, p i- p i Dimesioe der Matrix A i Ivariate: rek-mat-ket(p, i, j) liefert m[i, j] if i = j the retur 0 2 m[i, j] := 3 for k := i to j do 4 m[i, j] := mi(m[i,j], p i- p k p j + rek-mat-ket(p, i, k) + rek-mat-ket(p, k+, j)) 5 retur m[i, j] Aufruf: rek-mat-ket(p,, )

2 Rekursives Matrixketteprodukt, Laufzeit Sei T() die Azahl der Schritte zur Berechug vo rek-mat-ket(p,,). ( ) ( ) ( ) (vollst.iduktio) 3 ) ( ) ( 2 ) ( () = = + + + + i k T i T k T k T T T Expoetielle Laufzeit!

Matrixketteprodukt mit dyamischer Programmierug Algorithmus dy-mat-ket Iput: Eigabefolge p= p 0,p,...,p p i- p i Dimesio der Matrix A i Output: m[,] := legth(p) 2 for i:= to do m[i, i] := 0 3 for l:=2 to do /* l = Läge des Teilproblems */ 4 for i := to l + do /* i ist der like Idex */ 5 j := i + l /* j ist der rechte Idex*/ 6 m[i, j] := 7 for k := i to j - do 8 m[i, j] := mi(m[i, j], p i- p k p j + m[i, k] + m[k +, j]) 9 retur m[, ] 3

Berechugsbeispiel A 30 35 A 5 0 4 A 2 35 5 A 5 0 20 A 5 5 3 A 6 20 25 P = (30,35,5,5,0,20,25) 4

6 Berechugsbeispiel P = (30,35,5,5,0,20,25) m 5 6 2 5 j 4 3 i 2 3 9.375 7.875 4.375 2.500 5.750 2.625 750.000 5.000 0 0 3.500 0 0 0 0 4 5

Berechugsbeispiel m [ 2,5] = mi 2 k< 5 m mi m m ( m[ 2, k] + m[ k +,5] + p p p ) [ 2,2] + m[ 3,5] [ 2,3] + m[ 4,5] [ 2,4] + m[ 5,5] + + + p p p p p p 2 3 4 p p p 5 5 5 k 5 0 + 2500 + 35 5 20 = 3000 mi 2625 + 000 + 35 5 20 = 725 4375 + 0 + 35 0 20 = 375 = 725 6

Matrixketteprodukt ud optimale Splitwerte mit dyamischer Programmierug Algorithmus dy-mat-ket(p) Iput: Eigabefolge p= p 0,p,...,p p i- p i Dimesio der Matrix A i Output: m[,] ud eie Matrix s[i,j] vo opt. Splitwerte := legth(p) 2 for i := to do m[i, i] := 0 3 for l := 2 to do 4 for i := to l + do 5 j := i + l 6 m[i, j] := 7 for k := i to j do 8 q := m[i, j] 9 m[i, j] := mi(m[i, j], p i- p k p j + m[i, k] + m[k +, j]) 0 if m[i, j] < q the s[i, j] := k retur (m[, ], s) 7

i 8 5 Berechugsbeispiel für Splitwerte 6 j 3 2 2 5 4 3 3 3 3 5 2 3 4 4 5

Berechug der optimale Klammerug Algorithmus Opt-Klam Iput: Die Sequez A der Matrize, die Matrix s der optimale Splitwerte, zwei Idizes i ud j Output: Eie optimale Klammerug vo A i...j if i < j 2 the X := Opt-Klam(A, s, i, s[i, j]) 3 Y := Opt-Klam(A, s, s[i, j] +, j) 4 retur (X Y) 5 else retur A i Aufruf: Opt Klam(A, s,, ) 9

Bemerkug zum Matrixketteprodukt. Es gibt eie Algorithmus mit Laufzeit O( log ), der optimale Klammerug fidet. 3. Es gibt eie Algorithmus mit liearer Laufzeit O(), der eie Klammerug fidet mit Multiplikatiosaufwad.55 M opt 20