18. Dynamisches Programmieren



Ähnliche Dokumente
binäre Suchbäume Informatik I 6. Kapitel binäre Suchbäume binäre Suchbäume Rainer Schrader 4. Juni 2008 O(n) im worst-case Wir haben bisher behandelt:

4. Musterlösung. Problem 1: Kreuzende Schnitte **

Informatik II. Minimalpolynome und Implikanten. Minimalpolynome. Minimalpolynome. Rainer Schrader. 27. Oktober Was bisher geschah: Definition

Einführung in die Finanzmathematik

Beim Wiegen von 50 Reispaketen ergaben sich folgende Gewichte X(in Gramm):

Funktionsgleichungen folgende Funktionsgleichungen aus der Vorlesung erhält. = e

2. Nullstellensuche. Eines der ältesten numerischen Probleme stellt die Bestimmung der Nullstellen einer Funktion f(x) = 0 dar.

Lineare Regression (1) - Einführung I -

Gruppe. Lineare Block-Codes

Netzwerkstrukturen. Entfernung in Kilometer:

Diskrete Mathematik 1 WS 2008/09

1 - Prüfungsvorbereitungsseminar

nonparametrische Tests werden auch verteilungsfreie Tests genannt, da sie keine spezielle Verteilung der Daten in der Population voraussetzen

Polygonalisierung einer Kugel. Verfahren für die Polygonalisierung einer Kugel. Eldar Sultanow, Universität Potsdam,

Elemente der Mathematik - Sommer 2016

12 LK Ph / Gr Elektrische Leistung im Wechselstromkreis 1/ ω Additionstheorem: 2 sin 2 2

1 Definition und Grundbegriffe

ERP Cloud Tutorial. E-Commerce ECM ERP SFA EDI. Backup. Preise erfassen.

Seminar Analysis und Geometrie Professor Dr. Martin Schmidt - Markus Knopf - Jörg Zentgraf. - Fixpunktsatz von Schauder -

Bedingte Entropie. Bedingte Entropie. Bedingte Entropie. Kapitel 4: Bedingte Entropie I(X;Y) H(X Y) H(Y) H(X) H(XY)

1. Systematisierung der Verzinsungsarten. 2 Jährliche Verzinsung. 5 Aufgaben zur Zinsrechnung Jährliche Verzinsung mit einfachen Zinsen

1.1 Das Prinzip von No Arbitrage

Zinseszinsformel (Abschnitt 1.2) Begriffe und Symbole der Zinsrechnung. Die vier Fragestellungen der Zinseszinsrechnung 4. Investition & Finanzierung

Methoden der innerbetrieblichen Leistungsverrechnung

Kreditpunkte-Klausur zur Lehrveranstaltung Projektmanagement (inkl. Netzplantechnik)

SteigLeitern Systemteile

4.6 Das Pumping-Lemma für reguläre Sprachen:

Ich habe ein Beispiel ähnlich dem der Ansys-Issue [ansys_advantage_vol2_issue3.pdf] durchgeführt. Es stammt aus dem Dokument Rfatigue.pdf.

Spiele und Codes. Rafael Mechtel

1 BWL 4 Tutorium V vom

Statistik und Wahrscheinlichkeit

Der Satz von COOK (1971)

Für jeden reinen, ideal kristallisierten Stoff ist die Entropie am absoluten Nullpunkt gleich

Wie eröffne ich als Bestandskunde ein Festgeld-Konto bei NIBC Direct?

Wie eröffne ich als Bestandskunde ein Festgeld-Konto bei NIBC Direct?

FORMELSAMMLUNG STATISTIK (I)

Stochastische Prozesse

Analysis I. Vorlesung 17. Logarithmen. R R, x exp x,

Lineare Optimierung Dualität

Beschreibende Statistik Mittelwert

Die Transzendenz der Eulerschen Zahl e

Free Riding in Joint Audits A Game-Theoretic Analysis

Fallstudie 1 Diskrete Verteilungen Abgabe: Aufgabentext und Lösungen schriftlich bis zum

Flußnetzwerke - Strukturbildung in der natürlichen Umwelt -

3. Lineare Algebra (Teil 2)

Stochastische Prozesse

-70- Anhang: -Lineare Regression-

Nernstscher Verteilungssatz

Übung zur Vorlesung. Informationstheorie und Codierung

Gesetzlicher Unfallversicherungsschutz für Schülerinnen und Schüler

Die Ausgangssituation Das Beispiel-Szenario... 14

Ionenselektive Elektroden (Potentiometrie)

Netzsicherheit I, WS 2008/2009 Übung 3. Prof. Dr. Jörg Schwenk

Weitere NP-vollständige Probleme

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

Manhattan-Metrik anhand des Beispiels

I, U : Momentanwerte für Strom und Spannung I 0, U 0 : Scheitelwerte für Strom und Spannung

d da B A Die gesamte Erscheinung der magnetischen Feldlinien bezeichnet man als magnetischen Fluss. = 1 V s = 1 Wb

6. Übung zur Linearen Algebra II

Multilineare Algebra und ihre Anwendungen. Nr. 6: Normalformen. Verfasser: Yee Song Ko Adrian Jenni Rebecca Huber Damian Hodel

6. Modelle mit binären abhängigen Variablen

Wechselstrom. Dr. F. Raemy Wechselspannung und Wechselstrom können stets wie folgt dargestellt werden : U t. cos (! t + " I ) = 0 $ " I

Unter der Drehgruppe verstehen wir diegruppe der homogenen linearen Transformationen

IT- und Fachwissen: Was zusammengehört, muss wieder zusammenwachsen.

7/7/06. Das Rucksack-Problem. Beispiel. Rekursive Lösung. Englisch: Knapsack Problem. Das Problem: Fazit:

Backup- und Restore-Systeme implementieren. Technische Berufsschule Zürich IT Seite 1

50 Matrixnormen und Eigenwertabschätzungen

mit der Anfangsbedingung y(a) = y0

Definition des linearen Korrelationskoeffizienten

Projektmanagement / Netzplantechnik Sommersemester 2005 Seite 1

Streuungs-, Schiefe und Wölbungsmaße

Versicherungstechnischer Umgang mit Risiko

Übungsklausur zur Vorlesung Wahrscheinlichkeit und Regression Lösungen. Übungsklausur Wahrscheinlichkeit und Regression Die Lösungen

e dt (Gaußsches Fehlerintegral)

Arbeitsgruppe Radiochemie Radiochemisches Praktikum P 06. Einführung in die Statistik. 1. Zählung von radioaktiven Zerfällen und Statistik 2

Lineare Regression. Stefan Keppeler. 16. Januar Mathematik I für Biologen, Geowissenschaftler und Geoökologen

4. Ratenmonotones Scheduling Rate-Monotonic Scheduling (LIU/LAYLAND 1973)

Einführung in Moderne Portfolio-Theorie. Dr. Thorsten Oest Oktober 2002

Franzis Verlag, Poing ISBN Autor des Buches: Leonhard Stiny

phil omondo phil omondo Skalierung von Organisationen und Innovationen gestalten Sie möchten mehr Preise und Leistungen Workshops und Seminare

Näherungsverfahren. Wiederhole den Algorithmusbegriff. Erläutere die Begriffe: Klasse der NP-Probleme. Probleme. Probleme. Approximative Algorithmen

Transkript:

8. Dynamsches Programmeren Dynamsche Programmerung we gerge Algorthmen ene Algorthmenmethode, um Optmerungsprobleme zu lösen. We Dvde&Conquer berechnet Dynamsche Programmerung Lösung enes Problems aus Lösungen zu Telproblemen. Lösungen zu Telproblemen werden ncht rekursv gelöst. Lösungen zu Telproblemen werden teratv begnnend mt den Lösungen der klensten Telprobleme berechnet (bottom-up). Datenstrukturen und Algorthmen 8. Dynamsches Programmeren

Dynamsches Programmeren (2) Wrd häufg angewandt, wenn rekursver Ansatz Lösungen zu mmer weder denselben Telproblemen lösen wrd. Lernen dre Bespele kennen: Längste gemensame Telfolge, optmale Suchbäume, Rucksackproblem. Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 2

Längste gemensame Telfolge () Seen X ( x, K,x ) und Y = ( y, K, ) = m yn zwe Telfolgen, wobe x,y A für en endlches Alphabet A. Dann hesst Y Telfolge von X, wenn es aufstegend sorterte Indzes, K, gbt mt x = y für =, K, n. n Bespel: Y=(B,C,A,C) st Telfolge von,,, X=(A,B,A,C,A,B,C). Wähle ( ) ( 2,4,5,7 ). 2 3 4 = Snd X,Y,Z Folgen über A, so hesst Z gemensame Telfolge von X und Y, wenn Z Telfolge sowohl von X als auch von Y st. Bespel: Z=(B,C,A,C) st gemensame Telfolge von X=(A,B,A,C,A,B,C) und Y=(B,A,C,C,A,B,B,C). Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 3

Längste gemensame Telfolge (2) Z hesst längste gemensame Telfolge von X und Y, wenn Z gemensame Telfolge von X und Y st und es kene andere gemensame Telfolge von X und Y gbt, de größere Länge als Z bestzt. Bespel: Z=(B,C,A,C) st ncht längste gemensame Telfolge von X=(A,B,A,C,A,B,C) und Y=(B,A,C,C,A,B,B,C). Denn (B,A,C,A,C) st ene längere gemensame Telfolge von X und Y. Bem Problem Längste-Gemensame-Telfolge (LCS) snd als Engabe zwe Telfolgen X = ( x, K,xm ) und Y = ( y, K, yn ) gegeben. Gesucht st dann ene längste gemensame Telfolge von X und Y. Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 4

Bespel längste gemensame Telfolge Folge X A B C B D A B Folge Y B D C A B A Folge X A B C B D A B Folge Y B D C A B A Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 5

Struktur von LCS = K m ene belebge Folge. Für = 0,, K,m st der -te Präfx von X defnert als X = ( x, K, x ). Der -te Präfx von besteht also aus den ersten Symbolen von X. Der 0-te Präfx st de leere Folge. Defnton 8.: Se X ( x,,x ) Satz 8.2: Seen X ( x, K,xm ) und Y = ( y, K, yn ) Folgen und se Z ( z, K, ) = belebge = z k ene längste gemensame Telfolge von X und Y. Dann glt. Ist x m = yn, dann st z k = xm = yn und Zk st ene längste gemensame Telfolge von Xm und Yn. 2. Ist xm yn und zk xm, dann st Z ene längste gemensame Telfolge von X m und Y. 3. Ist xm yn und zk yn, dann st Z ene längste gemensame Telfolge von X und Y. n Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 6

Rekurson für Länge von LCS Lemma 8.3: Se [, ] c de Länge ener längsten gemensamen Telfolge des -ten Präfx X von X und des -ten Präfx Y von Y. Dann glt: c [, ] = c[, ] +, max{ c[, ],c[, ] } 0,, falls = 0 oder falls, > 0 und x falls, > 0 und x = 0 = y y. [ ] Beobachtung: Rekursve Berechnung der c, würde zu Berechnung mmer weder derselben Werte führen. Deses st neffzent. Berechnen daher de Werte c[, ] teratv, nämlch zelenwese. Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 7

Berechnung der Werte c[,] ( X,Y) ( X) ( Y) LCS Length m length 2 n length 3 for 0 to m 4 do c[,0] 0 5 for 0 to n 6 do c[ 0, ] 0 7 for to m 8 do for to n 9 do f x = y 0 then c b, 2 else f 3 4 5 6 7 return b,c [, ] c[, ] + [ " " c[ -, ] c[, ] then c[, ] c[, ] b[, ] " " else c[, ] c[, ] b[, " " [ ] b, spechert Informatonen zur späteren Berechnung ener längsten gemensamen Telfolge. Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 8

Bespeltabellen c[,] und b[,] 0 2 3 4 5 6 y B D C A B A 0 x 0 0 0 0 0 0 0 A 2 B 3 C 4 B 5 D 6 A 7 B 0 0 0 0 0 2 2 0 2 2 2 2 0 2 2 3 3 0 2 2 2 3 3 0 2 2 3 3 4 0 2 2 3 4 4 Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 9

Berechnung von LCS aus c und b ( ) Prnt - LCS b,x,, f = 0 = 0 2 then return 3 f b[, ] = " " 4 then Prnt - LCS b,x, 5 prnt x 6 else f b[, ] = " " 7 then Prnt - LCS b,x, 8 else Prnt - LCS b,x,, ( -, -) ( -, ) ( -) Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 0

Laufzet von LCS-Length und LCS-Prnt Lemma 8.4: Algorthmus LCS-Length hat Laufzet O(nm), wenn de Folgen X,Y Länge n und m haben. Lemma 8.5: Algorthmus LCS-Prnt hat Laufzet O(n+m), wenn de Folgen X,Y Länge n und m haben. Datenstrukturen und Algorthmen 8. Dynamsches Programmeren

Berechnung von LCS aus c,b - Illustraton 0 2 3 4 5 6 y B D C A B A 0 x 0 0 0 0 0 0 0 A 2 B 3 C 4 B 5 D 6 A 7 B 0 0 0 0 0 2 2 0 2 2 2 2 0 2 2 3 3 0 2 2 2 3 3 0 2 2 3 3 4 0 2 2 3 4 4 Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 2

Dynamsches Programmeren - Struktur. Bestmme rekursve Struktur ener optmalen Lösung. 2. Entwerfe rekursve Methode zur Bestmmung des Werts ener optmalen Lösung. 3. Transformere rekursv Methode n ene teratve (bottom-up) Methode zur Bestmmung des Werts ener optmalen Lösung. 4. Bestmmen aus dem Wert ener optmalen Lösung und n 3. ebenfalls berechneten Zusatznformatonen ene optmale Lösung. Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 3

Optmale bnäre Suchbäume () Gegeben st Folge K ( k, K, ) k < = k n mt k < kn, K,pn; q0,q, K,qn mt sowe Werte p 0 < L, Bedeutung der p, q : Nach Schlüssel k wrd mt Wahrschenlchket p gesucht. Nach enem ncht, k wrd mt Wahrschenlchket q gesucht. Dabe se k und =. k + exsterenden Schlüssel m offenen Intervall ( ) 0 = k n + Repräsenteren ncht exsterende Schlüssel m k, + durch dummy Schlüssel, = 0,, K, n. Intervall ( ) k n = n + p q =. = 0 d Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 4

Optmale bnäre Suchbäume (2) Gesucht st bnärer Suchbaum Aufwand pro Suche mnmert. n [ ] = ( depth ( k ) + ) p + ( depth ( d ) + ) E Suchaufwand = T, der erwarteten Hat k oder d Tefe t m Suchbaum T, so st der Aufwand für ene Suche nach k bzw. d genau t+. depth ( ) ( ) Se T k, depth T d Tefe von Schlüssel k bzw. n enem Suchbaum T. Dann st erwarteter Aufwand ener Suche n T gegeben durch T n = 0 T d q = + n = depth T n ( k ) p + deptht ( d ) = 0 q Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 5

Nützlche Verallgemenerung Verlangen ncht mehr, dass de Werte p, K,p ; q,q, K,q 0 ene Wahrschenlchketsver- n 0 n telung blden. Erlauben also p q. n = n + Wollen aber weterhn Suchbaum für de Schlüssel k, K,, so dass de Summe k n n = mnmert wrd. Nennen dese Summe trotzdem erwarteten Suchaufwand. = 0 ( deptht ( k ) + ) p + ( deptht ( d ) + ) n = 0 q Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 6

Erwarteter Suchaufwand Bespele () 0 2 3 4 5 p 0,5 0,0 0,05 0,0 0,20 q 0,05 0,0 0,05 0,05 0,05 0,0 k 2 k k 4 d0 d k3 k5 d2 d3 d d 4 5 Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 7

Erwarteter Suchaufwand Bespele (2) Knoten k k 2 k 3 k 4 k 5 d 0 d d 2 d 3 d 4 d 5 Tefe 0 2 2 2 2 3 3 3 3 Wahrschenlchket 0,5 0,0 0,05 0,0 0,20 0,05 0,0 0,05 0,05 0,05 0,0 Betrag 0,30 0,0 0,5 0,20 0,60 0,5 0,30 0,20 0,20 0,20 0,40 Erwarteter Suchaufwand: 2,80 Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 8

Erwarteter Suchaufwand Bespele (3) 0 2 3 4 5 p 0,5 0,0 0,05 0,0 0,20 q 0,05 0,0 0,05 0,05 0,05 0,0 k 2 Erwarteter Suchaufwand: 2,75 k k 5 d0 d k 4 d 5 k 3 d 4 d d 2 3 Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 9

Struktur optmaler Lösung Satz 8.5: Se T en optmaler Suchbaum für de Schlüsselfolge K = ( k, K, k n ) mt Wahrschenlchketen p, K,pn; q0,q, K, qn. Enthält T den Telbaum T mt den Schlüsseln k, K, k, dann st T n optmaler Suchbaum für de Schlüssel k, K, k. Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 20

Se [, ] Rekursve optmale Lösung () e der erwartete Suchaufwand für enen optmalen Suchbaum mt Schlüsseln k, K, k. Ist k r Wurzel enes optmalen Suchbaums für de Schlüssel k, K, k, so glt [, ] = p + e[,r ] + w[,r ] + e[ r +, ] + w[ r, ]. e r + Dabe st [, ] : = + w p k q. k= k= k Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 2

Rekursve optmale Lösung (2) Es glt : [ ] = p + w[,r ] + w[ r +, ] w, [ ] = p + q + w[, ]. w, Damt dann r [, ] = e[,r ] + e[ r +, ] w[, ]. e + Schleßlch folgt [ ] e, = mn r q, { e[,r ] + e[ r +, ] + w[, ] }, falls falls = -. Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 22

Berechnung der Werte e[,] ( p,q,n) Optmal BST for to n + 2 do e[, -] q 3 w[, -] q 4 for l to n 5 do for to n - l + 6 do + l 7 e, 8 w, 9 for r to 0 do t e,r f t < 2 then 3 4 return e, root [ ] [ ] w[, ] + p [ ] root, spechert Informatonen zur späteren Berechnung enes optmalen Suchbaums + q [ ] + e[ r +, ] + w[, ] e[, ] e [, ][ t root, ] r Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 23

Laufzet von Optmal-BST Satz 8.7: Optmal-BST hat be ener Folge von n 3 Schlüsseln Laufzet O n. ( ) Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 24

Bespel für Optmal-BST 0 2 3 4 5 p 0,5 0,0 0,05 0,0 0,20 q 0,05 0,0 0,05 0,05 0,05 0,0 e w 5 5 4 2,75 2 4,00 2,75 2,00 3 3 3 0,70 0,80 3,25,20,30 2 4 2 0,55 0,50 0,60 4 0,90 0,70 0,60 0,90 5 0,45 0,35 0,30 0,50 5 0 0,45 0,40 0,25 0,30 0,50 0,30 0,25 0,5 0,20 0,35 6 0 0,05 0,0 0,05 0,05 0,05 0,0 0,05 0,0 0,05 0,05 0,05 0,0 6 root 5 4 2 2 3 2 4 3 2 2 2 5 4 2 4 5 2 3 4 5 5 Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 25

Dynamsches Programmeren - Struktur. Bestmme rekursve Struktur ener optmalen Lösung. 2. Entwerfe rekursve Methode zur Bestmmung des Werts ener optmalen Lösung. 3. Transformere rekursv Methode n ene teratve (bottom-up) Methode zur Bestmmung des Werts ener optmalen Lösung. 4. Bestmmen aus dem Wert ener optmalen Lösung und n 3. ebenfalls berechneten Zusatznformatonen ene optmale Lösung. Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 26

0/-Rucksackproblem und dynamsches Programmeren Gegeben snd n Gegenstände g, K, g n mt Werten v, K, v n und Gewchten w, K, wn. Außerdem st ene Gewchtsschranke G gegeben. Zulässge Lösungen snd Zahlen a, K,a 0, mt D.h. eder Gegenstand muss entweder vollständg oder überhaupt ncht genommen werden. Gesucht st ene zulässge Lösung mt möglchst großem Gesamtwert n = a w G. n = a v n. { } Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 27

Struktur ener optmalen Lösung Defneren für =,,n und Z den Wert g, x als das mnmale Gesamtgewcht ener Telmenge der ersten Gegenstände mt Gesamtwert mndestens x. x [ ] Lemma 8.8: Der optmale Wert opt für ene Instanz des 0/-Rucksackproblems st gegeben durch max { x : g[ n, x] G} Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 28

Rekursve optmale Lösung Lemma 8.9: Für alle =0,,n und alle ganzzahlgen x glt: g[, x] : = mn 0,, { g[, x], w + g[, x v ]}, falls x 0 falls x > 0, = falls, x > 0 0 Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 29

Berechnung der Werte g[,v] bs zum Optmum Optmal Knapsack 2 3 4 5 6 7 x 0 for 0 to n whle [ ] [ ] do g,x g n,x 0 G do x x + g 0,x [ ] 8 do g,x 9 f 0 return x - ( w, v, G) for to n [ ] g[, x] w + g[,max{x - v,0} ] < g[,x] then g[,x] w + g[,max{x - v,0}] Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 30

Bespel für Optmal-Knapsack v w 2 2 2 3 3 4 3 x 0 2 3 4 5 6 0 0 0 2 2 0 2 3 5 3 0 3 4 6 4 0 2 4 5 Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 3

Laufzet von Optmal-Knapsack Lemma 8.9: Be n Gegenständen hat Optmal-Knapsack Laufzet O ( n opt), wobe opt der Wert ener optmalen Lösung st. Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 32

Dynamsches Programmeren - Struktur. Bestmme rekursve Struktur ener optmalen Lösung. 2. Entwerfe rekursve Methode zur Bestmmung des Werts ener optmalen Lösung. 3. Transformere rekursv Methode n ene teratve (bottom-up) Methode zur Bestmmung des Werts ener optmalen Lösung. 4. Bestmmen aus dem Wert ener optmalen Lösung und n 3. ebenfalls berechneten Zusatznformatonen ene optmale Lösung. Datenstrukturen und Algorthmen 8. Dynamsches Programmeren 33