Informatik II Dynamische Programmierung

Ähnliche Dokumente
Dynamische Programmierung Matrixkettenprodukt

2 Vollständige Induktion

Nachklausur - Analysis 1 - Lösungen

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

Aufgaben und Lösungen der Probeklausur zur Analysis I

Innerbetriebliche Leistungsverrechnung

2. Diophantische Gleichungen

Übungen zur Vorlesung Funktionentheorie Sommersemester Musterlösung zu Blatt 0

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

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

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

1 Analysis T1 Übungsblatt 1

Institut für Stochastik Prof. Dr. N. Bäuerle Dipl.-Math. S. Urban

AUFGABENSTELLUNG (ZUSAMMENFASSUNG) 2 SPEZIFIKATION 2. Datenfluß und Programmablauf 2. Vorbedingung 3. Nachbedingung 3. Schleifeninvariante 3

15.4 Diskrete Zufallsvariablen

BINOMIALKOEFFIZIENTEN. Stochastik und ihre Didaktik Referentin: Iris Winkler

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

Statistik I/Empirie I

Stichproben im Rechnungswesen, Stichprobeninventur

Kunde. Kontobewegung

Finanzmathematische Formeln und Tabellen

Korrekturrichtlinie zur Studienleistung Wirtschaftsmathematik am Betriebswirtschaft BB-WMT-S

3. Tilgungsrechnung Tilgungsarten

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

Übungsblatt 1 zur Vorlesung Angewandte Stochastik

Stochastik für WiWi - Klausurvorbereitung

1 Randomisierte Bestimmung des Medians

GIBS. Übungsaufgaben zur Vertiefung. V1. Beschriften Sie die Konstruktionen! n n n n ' ' ' ' Modul 1.5. Geometrische Optik 1 58.

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

Aufgabenblatt 4. A1. Definitionen. Lösungen. Zins = Rate Zinskurve = Zinsstruktur Rendite = Yield

VAIO-Link Kundenservice Broschüre

Mathematischer Vorkurs zum Studium der Physik

Medienzentrum. Bibliothek. Handreichung zur Literatursuche

Mit Ideen begeistern. Mit Freude schenken.

Vorlesung Informationssysteme

Das FSB Geldkonto. Einfache Abwicklung und attraktive Verzinsung. +++ Verzinsung aktuell bis zu 3,7% p.a. +++

Auch im Risikofall ist das Entscheidungsproblem gelöst, wenn eine dominante Aktion in A existiert.

Vorkurs Mathematik für Informatiker Folgen

Dynamisches Programmieren Stand

Betriebswirtschaft Wirtschaftsmathematik Studienleistung BW-WMT-S

SUCHPROBLEME UND ALPHABETISCHE CODES

3. Inkrementelle Algorithmen

Kapitel 4: Stationäre Prozesse

Kapitel 6: Quadratisches Wachstum

Flexibilität beim Lagern und Kommissionieren: Schienengeführte Regalbediengeräte

Ausgangspunkt: Über einen endlichen Zeitraum wird aus einem Kapital (Rentenbarwert RBW v n,i

Wissenschaftliches Arbeiten Studiengang Energiewirtschaft

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

11 Divide-and-Conquer und Rekursionsgleichungen

e) ( 4a + 8b + 9a + 18b ) : a + 2b f) 2 log (x) + 3 log (2y) 0.5 log (z)

BERUFSKOLLEG KAUFMÄNNISCHE SCHULEN DES KREISES DÜREN Zweijährige Höhere Handelsschule

Gliederung. Value-at-Risk

Lerneinheit 2: Grundlagen der Investition und Finanzierung

Mathematik der Lebensversicherung. Dr. Karsten Kroll GeneralCologne Re

Logarithmus - Übungsaufgaben. I. Allgemeines

3. Einführung in die Statistik

Versicherungstechnik

Gruppe 108: Janina Bär Christian Hörr Robert Rex

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

= T Jährliche Ratentilgung Jährliche Ratentilgung. Ausgangspunkt: Beispiel:

Wiederkehrende XML-Inhalte in Adobe InDesign importieren

Investitionsund Finanzierungsplanung mittels Kapitalwertmethode, Interner Zinsfuß

PrivatKredit. Direkt ans Ziel Ihrer Wünsche

HONORAR Honorarabrechnung

Aufgaben zur vollständigen Induktion

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

Übungsblatt 6 Musterlösung

Analysis I Probeklausur 2

Private Altersvorsorge. Berufsunfähigkeitsschutz plus Steuerersparnis. Günstig vorsorgen durch Kombination mit unserer fondsgebundenen Basisrente.

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

Finanzmathematik für HAK

Lektion II Grundlagen der Kryptologie

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

Statistische Maßzahlen. Statistik Vorlesung, 10. März, Beispiel. Der Median. Beispiel. Der Median für klassifizierte Werte.

h i Deskriptive Statistik 1-dimensionale Daten Daten und Häufigkeiten Seite 1 Nominal Ordinal Metrisch (Kardinal) Metrisch - klassiert

Calmet Calibration. Calmet C300 Der Kalibrator für nicht sinusförmige Signalverläufe - Oberwellen Erweiterte Spezifikationen.

3 Grenzwerte. 3.1 Grenzwerte von Folgen

FIBU Kontoauszugs- Manager

Einleitung. Aufgabe 1a/1b. Übung IV

Klasse: Platzziffer: Punkte: / Graph zu f

Die allgemeinen Daten zur Einrichtung von md cloud Sync auf Ihrem Smartphone lauten:

Löslichkeitsdiagramm. Grundlagen

4 Konvergenz von Folgen

n 1,n 2,n 3,...,n k in der Stichprobe auftreten. Für die absolute Häufigkeit können wir auch die relative Häufigkeit einsetzen:

Heute Kapitalanlage morgen ein Zuhause

Projektmanagement Solarkraftwerke

Analysis ZAHLENFOLGEN Teil 4 : Monotonie

Feldeffekttransistoren in Speicherbauelementen

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

Transkript:

lausthal Iformatik II Dyamische Programmierug. Zachma lausthal Uiversity, ermay zach@i.tu-clausthal.de Zweite Techik für de Algorithmeetwurf Zum Name: "Dyamische " hat ichts mit "Dyamik" zu tu, soder mit Tabulierug " Programmierug" hat ichts mit "Programmiere" zu tu, soder mit "Verfahre" Vergleiche "lieares Programmiere", "Iteger-Programmiere" (alles Begriffe aus der Optimierugstheorie) Typische Awedug für dyamisches Programmiere: Optimierug. Zachma Iformatik 2 SS Dyamische Programmierug 2

Matrix hai Multiplicatio Problem (MMP) egebe: eie Folge (Kette) A, A 2,, A vo Matrize mit verschiedee Dimesioe esucht: das Produkt A. A. 2. A Aufgabe: Orgaisiere die Multiplikatioe so, daß möglichst weig skalare Multiplikatioe ausgeführt werde. eerelle Idee hier: utze Assoziativität aus. Defiitio: Ei Matrizeprodukt heißt vollstädig geklammert, we es etweder eie eizele Matrix oder das geklammerte Produkt zweier vollstädig geklammerter Matrizeprodukte ist.. Zachma Iformatik 2 SS Dyamische Programmierug Multiplikatio zweier Matrize p A q q B r = r p # Eigabe: p q Matrix A, q r Matrix B # Ausgabe: p r Matrix = A B for i i rage(,p ): for j i rage(,r ): [i,j] = for k i rage(,q ): [i,j] += A[i,k] * B[k,j] Azahl der Muliplikatioe ud Additioe = p q r Bem: für 2 -Matrize werde hier Multiplikatioe beötigt, es geht auch mit O( 2.78 ). Zachma Iformatik 2 SS Dyamische Programmierug 4 2

Beispiel Berechug des Produkts vo A, A 2, A mit A : Matrix A 2 : 5 Matrix A : 5 5 Matrix. Klammerug ((A A 2 )A ) erfordert 2. Klammerug (A (A 2 A )) erfordert A' = (A A 2 ) 5 Mult. A' A 25 Mult. A'' = (A 2A ) 25 Mult. A A'' 5 Mult. Summe: 75 Mult. Summe: 75 Mult.. Zachma Iformatik 2 SS Dyamische Programmierug 5 Problemstellug egebe: Folge vo Matrize A, A 2,, A ud die Dimesioe p, p,, p, wobei Matrix A i Dimesio p i- p i hat esucht: eie Multiplikatiosreihefolge, die die Azahl der Multiplikatioe miimiert Beachte: der Algorithmus führt die Multiplikatioe icht aus, er bestimmt ur die optimale Reihefolge! Verallgemeierug: ermittle die optimale Ausführugsreihefolge für eie Mege vo Operatioe Z.B. im ompilerbau: ode-optimierug Bei Datebake: Afrageoptimierug. Zachma Iformatik 2 SS Dyamische Programmierug 6

Beispiel für A A 2 A Alle vollstädig geklammerte Matrizeprodukte der Folge A, A 2, A, A 4 sid: Klammeruge etspreche strukturell verschiedee Auswertugsbäume: A A 4 A A 4 etc A A 2 A A 4 A A 2 A A 4 A 4 A 2 A A 4 A 4 A 2 A A A 2 A A 4 A A A 4 A 2 A A A 2. Zachma Iformatik 2 SS Dyamische Programmierug 7 Azahl der verschiedee Klammeruge P() sei die Azahl der verschiedee Klammeruge vo A A k A k + A : Defiitio: P( +)=: = -te atala'sche Zahl Es gilt (o. Bew.): P( +)= 2 4 4 + π + O 5 Folge: Fide der optimale Klammerug durch Ausprobiere aller Möglichkeite ist silos. Zachma Iformatik 2 SS Dyamische Programmierug 8 4

Die Struktur der optimale Klammerug Sei A i j das Produkt der Matrize i bis j; A i j ist eie p i- p j -Matrix Behauptug: Jede optimale Lösug des MMP ethält optimale Lösuge vo Teilprobleme Aders gesagt: Jede optimale Lösug des MMP setzt sich zusamme aus optimale Lösuge vo bestimmte Teilprobleme. Zachma Iformatik 2 SS Dyamische Programmierug 9 Beweis (durch Widerspruch) Sei eie optimale Lösug so geklammert A i j = (A i k ) (A k+ j ), i k < j Behauptug: die Klammerug ierhalb A i k muß ihrerseits optimal sei A.: die Klammerug vo A i k ierhalb der optimale Lösug zu A i j sei icht optimal Es gibt bessere Klammerug vo A i k mit gerigere Koste Setze diese Teillösug i Lösug zu A i j = (A i k ) (A k+ j ) ei Ergibt eie bessere Lösug Widerspruch zur Aahme der Optimalität der ursprügliche Lösug zu A i j. Zachma Iformatik 2 SS Dyamische Programmierug 5

Eie rekursive Lösug Auf der höchste Stufe werde 2 Matrize multipliziert, d.h., für jedes k, k -, ist (A ) = ((A k ) (A k+ )) Die optimale Koste köe beschriebe werde als i = j Folge ethält ur eie Matrix, keie Koste i < j ka geteilt werde, idem jedes k, i k < j betrachtet wird: Koste für ei bestimmtes k = "Koste liks" + "Koste rechts" Koste für die Matrix-Multiplikatio (A i k ). (A k+ j ) Daraus lässt sich die folgede rekursive Regel ableite: m[i,j] sei die miimale Azahl vo Operatioe zur Berechug des Teilprodukts A i j. Zachma Iformatik 2 SS Dyamische Programmierug Ei aiver rekursiver Algorithmus # Iput p = Vektor der Array-röße # Output m[i,j] = optimale Koste für die # Multiplikatio der Arrays i,.., j def mcm_rek( p, i, j ): if i = j: retur m = for k i rage( i,j ): q = p[i-]*p[k]*p[j] + \ mcm_rek( p, i, k ) + \ mcm_rek( p, k+, j ) if q < m: m = q retur m Aufruf für das gesamte Problem: mcm_rek( p,, ). Zachma Iformatik 2 SS Dyamische Programmierug 2 6

Laufzeit des aive rekursive Algorithmus Sei T() die Azahl der Schritte zur Berechug vo mcm_rek für Eigabefolge der Läge Expoetielle Laufzeit!. Zachma Iformatik 2 SS Dyamische Programmierug Formulierug mittels Dyamischer Programmierug Beobachtug: die Azahl der Teilprobleme A i j (+) mit i j ist ur Θ 2 2 Folgerug: der aive rekursive Algo berechet viele Teilprobleme mehrfach! Idee: Bottom-up-Berechug der optimale Lösug: Speichere Teillösuge i eier Tabelle j i Daher "dyamische Programmierug" Welche Tabelleeiträge werde für m[i,j] beötigt? Hier: bottom-up = vo der Diagoale ach "rechts obe". Zachma Iformatik 2 SS Dyamische Programmierug 4 7

Berechugsbeispiel A : 5 A 2 : 5 5 A : 5 5 A 4 : 5 A 5 : 2 A 6 : 2 25 p = (, 5, 5, 5,, 2, 25) j 2 4 5 6 575 7875 975 2625 475 2 75 2 i m 5 5 4 5 6. Zachma Iformatik 2 SS Dyamische Programmierug 5 ewiug der optimale Reihefolge Speichere die Positio für die beste Treug, d.h., dejeige Wert k, der zum miimale Wert vo m[i,j] führt Speichere dazu i eiem zweite Array s[i,j] dieses optimale k: s[i,j] wird ur für Folge mit midestes 2 Matrize ud j > i beötigt m s s[i,j] gibt a, welche Multiplikatio zuletzt ausgeführt werde soll Für s[i,j] = k ud die Teilfolge A i j ist es optimal, zuerst A i k, daach A k+ j ud zum Schluss die beide Teilergebisse zu multipliziere:. Zachma Iformatik 2 SS Dyamische Programmierug 6 8

Algorithmus mittels dyamischer Programmierug = le(p) - for i i rage(, + ): # assume m has dim (+). (+) m[i,i] = for L i rage( 2,+ ): # cosider chais of legth L for i i rage(,-l ): j = i+l- # le = L j-i = L- m[i,j] = for k i rage( i,j ): q = m[i,k] + m[k+,j] + p[i-]*p[k]*p[j] if q < m[i,j]: m[i,j] = q s[i,j] = k Komplexität: es gibt geschachtelte Schleife, die jeweils höchstes -mal durchlaufe werde, die Laufzeit beträgt also O( ). Zachma Iformatik 2 SS Dyamische Programmierug 7 Beispiel egebe: die Folge vo Dimesioe (5, 4, 6, 2, 7) Multiplikatio vo A (5 4), A 2 (4 6), A (6 2) ud A 4 (2 7) Optimale Folge ist ((A (A 2 A ))A 4 ) j 2 4 j 2 4 5 2 88 58 A 4 A 2 6 48 4 84 2 i s[i,j] 2 2 i 2 m[i,j] A 2 A 4 7 4 A A 2 A 2 A 2 optimale Folge. Zachma Iformatik 2 SS Dyamische Programmierug 8 9

Die Techik der dyamische Programmierug Rekursiver Asatz: Löse eies Problems durch Löse mehrerer kleierer Teilprobleme, aus dee sich die Lösug für das Ausgagsproblem zusammesetzt Häufiger Effekt: Mehrfachberechuge vo Lösuge Bottom-up-Berechug: fügt Lösuge kleierer Uterprobleme zusamme, um größere Uterprobleme zu löse ud liefert so eie Lösug für das gesamte Problem Methode: iterative Erstellug eier Tabelle. Zachma Iformatik 2 SS Dyamische Programmierug 9 Wichtige Begriffe Optimale Uterstruktur (optimal substructure): Ei Problem besitzt die (Eigeschaft der) optimale Substruktur, bzw. gehorcht dem Prizip der Optimalität : :. Die Lösug eies Problems setzt sich aus de Lösuge vo Teilprobleme zusamme - Bsp. MMP: gesuchte Klammerug vo A A setzt sich zusamme aus der Klammerug eier (bestimmte) Teilkette A A k ud eier Teilkette A k+ A 2. We die Lösug optimal ist, da müsse auch die Teillösuge optimal sei! - Bsp. MMP: wir habe folgede Behauptug bewiese: Falls Klammerug zu A A k icht optimal Klammerug zu A A (die gemäß A. Teillsg zu A A k ethält) ka icht optimal sei. Zachma Iformatik 2 SS Dyamische Programmierug 2

Achtug: die zweite Bedigug (Teillösuge müsse optimal sei) ist machmal icht erfüllt: Beispiel: lägster Pfad durch eie raphe a b Aufgabe hier: bestimme lägste Pfad vo a ach c d c Im Beispiel rechts: Lösug besteht aus Teilpfade a b ud b c Aber diese sid icht optimale(!) Lösuge der etspr. Teilprobleme - Optimale (d.h., lägste) Lösug für a b = a d c b. Zachma Iformatik 2 SS Dyamische Programmierug 2 Uabhägigkeit der Teillösuge: Die Teilprobleme heiße (im Sie der Dy. Progr.) uabhägig : : die Optimierug des eie Teilproblems beeiflußt icht die Optimierug des adere (z.b. bei der Wahl der Uterteilug) - Bsp. MMP: die Wahl der Klammerug für A A k ist völlig uabhägig vo der Klammerug für A k+ A - egebsp. "lägster Pfad": die optimale Lsg für a b (ämlich a d c b) immt der optimale Lsg für b c Elemete weg a d b c. Zachma Iformatik 2 SS Dyamische Programmierug 22

Überlappede Teilprobleme: Ei Problem wird zerlegt i Uterprobleme, diese wieder i Uter- Uterprobleme, usw. Ab irgedeiem rad müsse dieselbe Uter-Uterprobleme mehrfach vorkomme, sost ergibt das DP wahrscheilich keie effiziete Lösug - Bsp. MMP: Rekursiosbaum ethält viele überlappede Teilprobleme 4 2 4 2 4 4 4 2 2 4 2 4 4 2 2 4 4 2 2 4 4 2 2 2 2 2 2. Zachma Iformatik 2 SS Dyamische Programmierug 2 Rekostruktio der optimale Lösug: Optimale Lösug für esamtproblem beihaltet Schritte:. Etscheidug treffe zur Zerlegug des Problems i Teile 2. Optimale Wert für Teilprobleme bereche. Optimale Wert für esamtproblem "zusammesetze" Dyamische Programmierug berechet zuächst oft ur de "Weg" zur optimale Lösug, aber - im zweite Schritt wird da die optimale Lösug mittels diese Weges berechet; - dazu Etscheiduge eifach i Phase speicher ud i Phase 2 da "abspiele" m s - Beispiel: MMP Speichere Idex k, der zum optimale Wert führt i zweitem Array s. Zachma Iformatik 2 SS Dyamische Programmierug 24 2

Schritte bei der dyamische Programmierug. harakterisiere die (rekursive) Struktur der optimale Lösug (Prizip der optimale Substruktur) 2. Defiiere de Wert eier optimale Lösug rekursiv. Trasformiere die rekursive Methode i eie iterative bottom-up Methode, bei der alle Zwischeergebisse i eier Tabelle gespeichert werde. Zachma Iformatik 2 SS Dyamische Programmierug 25 Das Rucksack-Problem (Kapsack Problem) Das Problem: "Die Qual der Wahl" Beispiel: ei Dieb raubt eie Lade aus; um möglichst flexibel zu sei, hat er für die Beute ur eie Rucksack dabei Im Lade fidet er egestäde; der i-te egestad hat de Wert v i ud das ewicht w i Sei Rucksack ka höchstes das ewicht c trage w i ud c sid gaze Zahle (die v i köe aus sei) Aufgabe: welche egestäde sollte für de maximale Profit gewählt werde?. Zachma Iformatik 2 SS Dyamische Programmierug 8

Beispiel 2 2 5 2 + 2 + 2 + 6 6 6 2 Rucksack = 6 = 8 = 22 Fazit: es ist keie gute Strategie, das Objekt mit dem beste Verhältis Profit:ewicht als erstes zu wähle. Zachma Iformatik 2 SS Dyamische Programmierug 9 Eiige Variate des Kapsack-Problems Fractioal Kapsack Problem: Der Dieb ka Teile der egestäde mitehme Lösugsalgo später (mit reedy-strategie) - Kapsack Problem: Biäre Etscheidug zwische ud : jeder egestad wird vollstädig geomme oder gar icht Formale Problemstellug: x i = / : egestad i ist (icht) im Rucksack. Zachma Iformatik 2 SS Dyamische Programmierug 4 4

Die rekursive Lösug Betrachte de erste egestad i=; es gibt zwei Möglichkeite:. Der egestad wird i de Rucksack gepackt (x =) Rest-Problem: 2. Der egestad wird icht i de Rucksack gepackt (x =) Rest-Problem: Bereche beide Fälle, wähle de bessere. Zachma Iformatik 2 SS Dyamische Programmierug 4 Der Rekursiosbaum vorhadee Rest-Kapazität Wert des Rucksacks c Objekt c c - w v 2 c c - w 2 v 2 c - w v c - w - w 2 v + v 2 c c - w v c - w v c - w - w v + v. Zachma Iformatik 2 SS Dyamische Programmierug 42 5