Dynamisches Programmieren Stand

Ähnliche Dokumente
16. All Pairs Shortest Path (ASPS)

Dynamisches Programmieren - Problemstruktur

Informatik II Dynamische Programmierung

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

4. Die Menge der Primzahlen. Bertrands Postulat

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

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

Zahlenfolgen und Konvergenzkriterien

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

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

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

2. Gleichwertige Lösungen

Beispiel 4 (Die Urne zu Fall 4 mit Zurücklegen und ohne Beachten der Reihenfolge ) das Sitzplatzproblem (Kombinationen mit Wiederholung) Reihenfolge

2. Diophantische Gleichungen

3. Tilgungsrechnung Tilgungsarten

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

Klausur 1 über Folgen

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

Finanzmathematische Formeln und Tabellen

Lektion II Grundlagen der Kryptologie

1 Lösungen zu Analysis 1/ 12.Übung

Aufgaben zur Analysis I

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

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

Betriebswirtschaft Wirtschaftsmathematik Studienleistung BW-WMT-S

6 Folgen. 6.4 Folgen reeller Zahlen. Mathematik für Informatiker B, SS 2012 Dienstag 5.6. $Id: folgen.tex,v /06/05 11:12:18 hk Exp $

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:

Übungsblatt 1 zur Vorlesung Angewandte Stochastik

Finanzmathematik für HAK

2 Vollständige Induktion

SUCHPROBLEME UND ALPHABETISCHE CODES

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

BINOMIALKOEFFIZIENTEN. Stochastik und ihre Didaktik Referentin: Iris Winkler

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

1. Zahlenfolgen und Reihen

Aufgaben zu Kapitel 8

6. Übungsblatt Aufgaben mit Lösungen + Selbsttest-Auflösung

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

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

Zählterme (Seite 1) Aufgabe: Wie viele Nummernschilder kann es theoretisch im Raum Dresden geben? Wann müsste die 4.Ziffer eingeführt werden?

Wahrscheinlichkeit & Statistik

15.4 Diskrete Zufallsvariablen

Musterlösung zu Übungsblatt 2

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

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

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

Gliederung. Value-at-Risk

Wirtschaftsmathematik

Mathematik. Vorlesung im Bachelor-Studiengang Business Administration (Modul BWL 1A) an der FH Düsseldorf im Wintersemester 2008/09

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

Parameter von Häufigkeitsverteilungen

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

PrivatKredit. Direkt ans Ziel Ihrer Wünsche

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

Löslichkeitsdiagramm. Grundlagen

Prof. Dr. Günter Hellmig. Klausurenskript Finanzmathematik

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

Die while-schleife (Abweisschleife) Die while-schleife (Beispiele) Die while-schleife ist eine Abweisschleife Syntax:

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

Übungen zur Klausur Nr. 2: Wahrscheinlichkeitsrechnung II

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

1 Analysis T1 Übungsblatt 1

Wissenschaftliches Arbeiten Studiengang Energiewirtschaft

Marek Kubica, Diskrete Strukturen Übungsblatt 13 Gruppe 11

Innerbetriebliche Leistungsverrechnung

Korrekturrichtlinie zur Studienleistung Wirtschaftsmathematik am Betriebswirtschaft BB-WMT-S

Methoden: Heron-Verfahren, Erweiterung von Differenzen von Quadratwurzeln

Tao De / Pan JiaWei. Ihrig/Pflaumer Finanzmathematik Oldenburg Verlag 1999 =7.173,55 DM. ges: A m, A v

Exponentialfunktionen und die e- Funktion. Bei den bisher betrachteten Funktionen traten Exponenten nur als Zahlen auf.

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

Evaluierung einer Schulungsmaßnahme: Punktezahl vor der Schulung Punktezahl nach der Schulung. Autoritarismusscore vor/nach Projekt

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

Lernhilfe in Form eines ebooks

Finanzmathematik. = K 0 (1+i) n = K 0 q n

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

5 Bernoulli-Kette. 5.1 Bernoulli-Experiment. Jakob Bernoulli Schweizer Mathematiker und Physiker Einleitung

von solchen Abbildungen. Eine solche Folge bestimmt für jedes x M die Folge der Werte f n. Schreibt man dies noch einmal formal hin, so erhält man:

Einführung in die Grenzwerte

1.2. Taylor-Reihen und endliche Taylorpolynome

Formelsammlung. zur Klausur. Beschreibende Statistik

Übungen mit dem Applet Fourier-Reihen


Klasse: Platzziffer: Punkte: / Graph zu f

Feldeffekttransistoren in Speicherbauelementen

Transkript:

Dyamisches Programmiere Stad Stad der Dige: Dyamische Programmierug vermeidet Mehrfachberechug vo Zwischeergebisse Bei Rekursio eisetzbar Häufig eifache bottom-up Implemetierug möglich Das Subset Sum Problem: Algorithmus für schwieriges Problem Laufzeit hägt vo Eigabewert ab SS 28 9.Dyamisches Programmiere

Fraktioales Rucksack-Problem Gegebe sid Gegestäde. Der i-te Gegestad besitzt Wert v i ud Gewicht g i. Ausserdem ist eie Gewichtsschrake W gegebe. Zulässige Lösuge sid Zahle a i [, ] mit i= a i g i W. Gesucht ist eie zulässige Lösug möglichst großem Gesamtwert a K mit,, a i= a v. i i SS 26 9.Dyamisches Programmiere 2

Gierige Lösug des fraktioale Rucksack-Problems Algorithmus Gieriges-Eipacke:. Sortiere die Verhältisse v i / g i absteiged. Sei v π g v g Lv ( ) π( ) π( 2) π( 2) π( ) π( ) für Permutatio π auf (,,). 2. Bestimme maximales k, so dass och gilt gπ( i) W 3. Setze aπ( ) = aπ( 2) = L = aπ( ) = ud setze g k i=. a π ( k+ ) = W k i= gπ + ( k ) g π ( i). Alle adere a i setze auf. SS 26 9.Dyamisches Programmiere 3

Gieriges Eipacke ist optimal Satz 7.4: Gieriges Eipacke löst das fraktioale Rucksackproblem optimal. SS 26 9.Dyamisches Programmiere 4

Dyamisches Programmiere Rucksack Das Rucksackproblem: Rucksack mit begrezter Kapazität Objekte mit uterschiedlichem Wert ud uterschiedlicher Größe Wir wolle Objekte vo möglichst großem Gesamtwert mitehme SS 28 9.Dyamisches Programmiere 5

Dyamisches Programmiere Rucksack Rucksackgröße 6 Größe 5 2 3 7 4 Wert 5 2 8 4 9 SS 28 9.Dyamisches Programmiere 6

Dyamisches Programmiere Rucksack Rucksackgröße 6 Größe 5 2 3 7 4 Wert 5 2 8 4 9 Objekt ud 3 passe ud habe Gesamtwert 3 Optimal? SS 28 9.Dyamisches Programmiere 7

Dyamisches Programmiere Rucksack Rucksackgröße 6 Größe 5 2 3 7 4 Wert 5 2 8 4 9 Objekt ud 3 passe ud habe Gesamtwert 3 Optimal? Objekt 2, 3 ud 4 passe ud habe Gesamtwert 5! SS 28 9.Dyamisches Programmiere 8

Dyamisches Programmiere Rucksack Das Rucksackproblem (Optimierugsversio): Eigabe: Objekte {,,}; Objekt i hat gazz. pos. Größe g[i] ud Wert v[i]; Rucksackkapazität W Ausgabe: Mege S {,,} mit Σ g[i] W ud maximalem Wert Σ v[i] i S i S SS 28 9.Dyamisches Programmiere 9

Dyamisches Programmiere Rucksack Herleite eier Rekursio: Sei O optimale Lösug Bezeiche Opt(i,w) de Wert eier optimale Lösug aus Objekte bis i bei Rucksackgröße w Uterscheide, ob Objekt i O ist: Fall ( icht i O): Opt(,W) = Opt(-,W) Fall 2 ( i O): Opt(,W) = v[] + Opt(-,W-g[]) SS 28 9.Dyamisches Programmiere

Dyamisches Programmiere Rucksack Rekursio: Opt(i,)= für i Opt(,i)= für i W We w<g[i] da Opt(i,w) = Opt(i-,w) Sost, Opt(i,w) = max{opt(i-,w), v[i] + Opt(i-,w-g[i])} SS 28 9.Dyamisches Programmiere

Dyamisches Programmiere Rucksack Rekursio: Opt(i,)= für i Opt(,i)= für i W Kei Objekt passt i de Rucksack We w<g[i] da Opt(i,w) = Opt(i-,w) Sost, Opt(i,w) = max{opt(i-,w), v[i] + Opt(i-,w-g[i])} SS 28 9.Dyamisches Programmiere 2

Dyamisches Programmiere Rucksack Rekursio: Opt(i,)= für i Opt(,i)= für i W Kei Objekt steht zur Auswahl We w<g[i] da Opt(i,w) = Opt(i-,w) Sost, Opt(i,w) = max{opt(i-,w), v[i] + Opt(i-,w-g[i])} SS 28 9.Dyamisches Programmiere 3

Dyamisches Programmiere Rucksack Rekursio: Opt(i,)= für i Opt(,i)= für i W We w<g[i] da Opt(i,w) = Opt(i-,w) Passt aktuelles Objekt i de Rucksack? Sost, Opt(i,w) = max{opt(i-,w), v[i] + Opt(i-,w-g[i])} SS 28 9.Dyamisches Programmiere 4

Dyamisches Programmiere Rucksack Rekursio: Opt(i,)= für i Opt(,i)= für i W We w<g[i] da Opt(i,w) = Opt(i-,w) Sost, Opt(i,w) = max{opt(i-,w), v[i] + Opt(i-,w-g[i])} Sost, verwede Rekursio SS 28 9.Dyamisches Programmiere 5

Dyamisches Programmiere Rucksack Rucksack(,W). Iitialisiere Feld A[,..,][,..,W] mit A[,i] = für alle i ud A[j,]= für alle i W 2. for i to do 3. for j to W do 4. Bereche A[i,j] ach Rekursio 5. retur A[,W] SS 28 9.Dyamisches Programmiere 6

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 2 7 3 4 7 3 3 W SS 28 9.Dyamisches Programmiere 7

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 g[]>w: Also Opt(i,w) = Opt(i-,w) 2 3 2 7 3 4 7 3 3 W SS 28 9.Dyamisches Programmiere 8

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 Opt(i,w) = max{opt(i-,w), v[i] + Opt(i-,w-g[i])} 2 3 2 7 3 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 9

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 2 7 3 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 2

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 2 7 3 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 2

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 2 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 22

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 2 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 23

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 2 4 4 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 24

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 2 4 4 4 4 4 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 25

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 2 4 4 4 4 4 6 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 26

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 2 4 4 4 4 4 6 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 27

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 4 2 4 4 4 4 4 6 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 28

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 4 5 5 5 5 2 4 4 4 4 4 6 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 29

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 4 5 5 5 5 6 2 4 4 4 4 4 6 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 3

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 3 4 5 7 8 8 8 2 3 4 5 5 5 5 6 2 4 4 4 4 4 6 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 3

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 4 2 3 5 6 7 9 3 4 5 7 8 8 8 2 3 4 5 5 5 5 6 2 4 4 4 4 4 6 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 32

Dyamisches Programmiere Rucksack Größe Wert g v 5 2 2 3 5 6 7 9 2 3 4 2 3 5 6 7 9 3 4 5 7 8 8 8 2 3 4 5 5 5 5 6 2 4 4 4 4 4 6 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 33

Dyamisches Programmiere Rucksack Größe Wert g v 2 3 5 7 9 2 3 5 2 2 3 5 6 7 9 2 3 4 2 3 5 6 7 9 3 4 5 7 8 8 8 2 3 4 5 5 5 5 6 2 4 4 4 4 4 6 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 34

Dyamisches Programmiere Rucksack Größe Wert 2 3 5 7 9 2 3 g v 2 3 5 7 9 2 3 5 2 2 3 5 6 7 9 2 3 4 2 3 5 6 7 9 3 4 5 7 8 8 8 2 3 4 5 5 5 5 6 2 4 4 4 4 4 6 7 3 2 2 2 2 4 7 3 3 W SS 28 9.Dyamisches Programmiere 35

Dyamisches Programmiere Rucksack Größe Wert 2 3 5 7 9 2 3 5 7 9 2 3 5 6 7 9 2 3 5 6 7 9 2 3 2 3 3 4 5 7 8 8 8 4 5 5 5 5 6 4 4 4 4 4 6 2 2 2 2 Optimaler Lösugswert für W=8 2 g v 5 2 3 4 2 3 2 7 3 4 7 3 3 W SS 28 9.Dyamisches Programmiere 36

Dyamisches Programmiere Rucksack Größe Wert 2 3 5 7 9 2 3 5 7 9 2 3 5 6 7 9 2 3 5 6 7 9 2 3 2 3 3 4 5 7 8 8 8 4 5 5 5 5 6 4 4 4 4 4 6 2 2 2 2 Optimaler Lösugswert für W=8 2 g v 5 2 3 4 2 3 2 7 3 4 7 3 3 W SS 28 9.Dyamisches Programmiere 37

Dyamisches Programmiere Rucksack Satz 9.6 Algorithmus Rucksack berechet i Θ(W) Zeit de Wert eier optimale Lösug, wobei die Azahl der Objekte ist ud W die Größe des Rucksacks. SS 28 9.Dyamisches Programmiere 38

Dyamische Programmierug - APSP All Pairs Shortest Path (APSP): Eigabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar vo Kote u,v V die Distaz vo u ach v sowie eie kürzeste Weg a b c d e f a 5 5 9 b 4 5 9 c -3 6 5 d -4 5 4 a 2 5 b -4 d 4 6 5 8 c e 7 - f e 5 8 9 - f SS 28 9.Dyamisches Programmiere 39

Dyamische Programmierug - APSP Zur Erierug: Sei G ei Graph ohe egative Zykle ud sei j vo i aus erreichbar. Da gibt es eie kürzeste i-j-weg, der keie Kote doppelt beutzt. Wir köe also aehme, dass jeder Kote i jedem Weg maximal eimal vorkommt Betrachte i-j-weg, der ur über Kote aus {,,k} läuft: k i j SS 28 9.Dyamisches Programmiere 4

Dyamische Programmierug - APSP Zur Erierug: Sei G ei Graph ohe egative Zykle ud sei j vo i aus erreichbar. Da gibt es eie kürzeste i-j-weg, der keie Kote doppelt beutzt. Wir köe also aehme, dass jeder Kote i jedem Weg maximal eimal vorkommt Betrachte i-j-weg, der ur über Kote aus {,,k} läuft: k Kote k tritt maximal eimal auf i j SS 28 9.Dyamisches Programmiere 4

Dyamische Programmierug - APSP Zur Erierug: Sei G ei Graph ohe egative Zykle ud sei j vo i aus erreichbar. Da gibt es eie kürzeste i-j-weg, der keie Kote doppelt beutzt. Wir köe also aehme, dass jeder Kote i jedem Weg maximal eimal vorkommt Betrachte i-j-weg, vo u der ach ur k über Kote aus {,,k} läuft: führt ur über Kote aus {,,k-} k i j SS 28 9.Dyamisches Programmiere 42

Dyamische Programmierug - APSP Zur Erierug: Sei G ei Graph ohe egative Zykle ud sei j vo i aus erreichbar. Da gibt es eie kürzeste i-j-weg, der keie Kote doppelt beutzt. Wir köe also aehme, dass jeder Kote i jedem Weg maximal eimal vorkommt Betrachte i-j-weg, der ur Weg über vo Kote k ach v aus {,,k} läuft: k führt ur über Kote aus {,,k-} i j SS 28 9.Dyamisches Programmiere 43

Dyamische Programmierug - APSP Kürzester i-j-weg über Kote aus {,,k} ist (a) kürzester i-j-weg über Kote aus {,,k-} oder (b) kürzester i-k-weg über Kote aus {,,k-} gefolgt vo kürzestem k-j-weg über Kote aus {,,k-} Fall (b): k i j SS 28 9.Dyamisches Programmiere 44

Dyamische Programmierug - APSP Die Rekursio: (k) Sei d ij die Läge eies kürzeste i-j-wegs mit Kote aus {,,k} (k) ij d = w ij, falls k= (k-) (k-) (k-) mi ( d, d + d ), falls k ij ik kj () () ij Matrix D =(d ) ethält die gesuchte Lösug SS 28 9.Dyamisches Programmiere 45

Dyamische Programmierug - APSP Floyd-Warshall(W,) (). D W 2. for k to do 3. for i to do 4. for j to do 5. d mi(d, d + d ) 6. retur D (k) ij () (k-) ij (k-) ik (k-) kj SS 28 9.Dyamisches Programmiere 46

Dyamisches Programmiere Rucksack Teile & Herrsche: Aufteile der Eigabe i mehrere Uterprobleme Rekursives löse der Uterprobleme Zusammefüge Gierige Algorithme: Kostruiere Lösug Schritt für Schritt I jedem Schritt optimiere eifaches, lokales Kriterium Dyamische Programmierug: Formuliere Problem rekursiv Vermeide mehrfache Berechug vo Teilergebisse Verwede bottom-up Implemetierug SS 28 9.Dyamisches Programmiere 47