grundlagen der dynamischen programmierung die klassischen ...€¦ · die klassischen dp-probleme...
TRANSCRIPT
![Page 1: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/1.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Dynamische Programmierung - wettkampforientiert
Armin Krupp
11. Mai 2010
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 2: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/2.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Inhaltsverzeichnis
1 Grundlagen der Dynamischen ProgrammierungVorgehensweise am Beispiel des RucksackproblemsZusammenfassung
2 Die klassischen DP-ProblemeEdit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
3 Aufgaben
4 Literatur
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 3: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/3.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Basics Dynamische Programmierung
Richard Bellmann.
Programmierung → Tabelle.
Optimale Teillosungen.
Zwischenspeicherung.
Laufzeitvorteil.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 4: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/4.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Basics Dynamische Programmierung
Richard Bellmann.
Programmierung → Tabelle.
Optimale Teillosungen.
Zwischenspeicherung.
Laufzeitvorteil.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 5: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/5.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Basics Dynamische Programmierung
Richard Bellmann.
Programmierung → Tabelle.
Optimale Teillosungen.
Zwischenspeicherung.
Laufzeitvorteil.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 6: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/6.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Basics Dynamische Programmierung
Richard Bellmann.
Programmierung → Tabelle.
Optimale Teillosungen.
Zwischenspeicherung.
Laufzeitvorteil.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 7: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/7.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Basics Dynamische Programmierung
Richard Bellmann.
Programmierung → Tabelle.
Optimale Teillosungen.
Zwischenspeicherung.
Laufzeitvorteil.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 8: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/8.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Ein klassisches DP-Problem: Rucksack
Rucksackproblem
Rucksack R mit Kapazitat CR .
n Gegegenstande.
i-ter Gegenstand hat Große ci und Wert vi .
Problem
Welche Gegenstande sollen eingepackt werden, um den Wert zumaximieren?
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 9: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/9.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Ein klassisches DP-Problem: Rucksack
Rucksackproblem
Rucksack R mit Kapazitat CR .
n Gegegenstande.
i-ter Gegenstand hat Große ci und Wert vi .
Problem
Welche Gegenstande sollen eingepackt werden, um den Wert zumaximieren?
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 10: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/10.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Ein klassisches DP-Problem: Rucksack
Rucksackproblem
Rucksack R mit Kapazitat CR .
n Gegegenstande.
i-ter Gegenstand hat Große ci und Wert vi .
Problem
Welche Gegenstande sollen eingepackt werden, um den Wert zumaximieren?
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 11: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/11.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Ein klassisches DP-Problem: Rucksack
Rucksackproblem
Rucksack R mit Kapazitat CR .
n Gegegenstande.
i-ter Gegenstand hat Große ci und Wert vi .
Problem
Welche Gegenstande sollen eingepackt werden, um den Wert zumaximieren?
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 12: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/12.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Ein paar Notationen
Feste Ordnung.
val(i , k)
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 13: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/13.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Ein paar Notationen
Feste Ordnung.
val(i , k)
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 14: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/14.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Die Struktur der optimalen Losung
Schritt 1: Optimale Substruktur
Zeige, dass die optimale Losung aus optimalen Teillosungenbesteht!
Angenommen, wir haben eine optimale Rucksackbepackung.
Dann muss die Rucksackbepackung fur den Rucksack ohnedas oberste Element und mit entsprechender reduzierterKapazitat auch optimal sein.
Ware dies nicht so, dann gabe es eine Bepackung fur diereduzierte Kapazitat mit einem hoheren Wert.
Nach Hinzufugen des obersten Elementes hatten wir danneine bessere Rucksackbepackung
Widerspruch zur optimalen Rucksackbepackung!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 15: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/15.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Die Struktur der optimalen Losung
Schritt 1: Optimale Substruktur
Zeige, dass die optimale Losung aus optimalen Teillosungenbesteht!
Angenommen, wir haben eine optimale Rucksackbepackung.
Dann muss die Rucksackbepackung fur den Rucksack ohnedas oberste Element und mit entsprechender reduzierterKapazitat auch optimal sein.
Ware dies nicht so, dann gabe es eine Bepackung fur diereduzierte Kapazitat mit einem hoheren Wert.
Nach Hinzufugen des obersten Elementes hatten wir danneine bessere Rucksackbepackung
Widerspruch zur optimalen Rucksackbepackung!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 16: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/16.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Die Struktur der optimalen Losung
Schritt 1: Optimale Substruktur
Zeige, dass die optimale Losung aus optimalen Teillosungenbesteht!
Angenommen, wir haben eine optimale Rucksackbepackung.
Dann muss die Rucksackbepackung fur den Rucksack ohnedas oberste Element und mit entsprechender reduzierterKapazitat auch optimal sein.
Ware dies nicht so, dann gabe es eine Bepackung fur diereduzierte Kapazitat mit einem hoheren Wert.
Nach Hinzufugen des obersten Elementes hatten wir danneine bessere Rucksackbepackung
Widerspruch zur optimalen Rucksackbepackung!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 17: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/17.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Die Struktur der optimalen Losung
Schritt 1: Optimale Substruktur
Zeige, dass die optimale Losung aus optimalen Teillosungenbesteht!
Angenommen, wir haben eine optimale Rucksackbepackung.
Dann muss die Rucksackbepackung fur den Rucksack ohnedas oberste Element und mit entsprechender reduzierterKapazitat auch optimal sein.
Ware dies nicht so, dann gabe es eine Bepackung fur diereduzierte Kapazitat mit einem hoheren Wert.
Nach Hinzufugen des obersten Elementes hatten wir danneine bessere Rucksackbepackung
Widerspruch zur optimalen Rucksackbepackung!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 18: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/18.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Die Struktur der optimalen Losung
Schritt 1: Optimale Substruktur
Zeige, dass die optimale Losung aus optimalen Teillosungenbesteht!
Angenommen, wir haben eine optimale Rucksackbepackung.
Dann muss die Rucksackbepackung fur den Rucksack ohnedas oberste Element und mit entsprechender reduzierterKapazitat auch optimal sein.
Ware dies nicht so, dann gabe es eine Bepackung fur diereduzierte Kapazitat mit einem hoheren Wert.
Nach Hinzufugen des obersten Elementes hatten wir danneine bessere Rucksackbepackung
Widerspruch zur optimalen Rucksackbepackung!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 19: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/19.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Die Struktur der optimalen Losung
Schritt 1: Optimale Substruktur
Zeige, dass die optimale Losung aus optimalen Teillosungenbesteht!
Angenommen, wir haben eine optimale Rucksackbepackung.
Dann muss die Rucksackbepackung fur den Rucksack ohnedas oberste Element und mit entsprechender reduzierterKapazitat auch optimal sein.
Ware dies nicht so, dann gabe es eine Bepackung fur diereduzierte Kapazitat mit einem hoheren Wert.
Nach Hinzufugen des obersten Elementes hatten wir danneine bessere Rucksackbepackung
Widerspruch zur optimalen Rucksackbepackung!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 20: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/20.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Die Struktur der optimalen Losung
Schritt 1: Optimale Substruktur
Zeige, dass die optimale Losung aus optimalen Teillosungenbesteht!
Angenommen, wir haben eine optimale Rucksackbepackung.
Dann muss die Rucksackbepackung fur den Rucksack ohnedas oberste Element und mit entsprechender reduzierterKapazitat auch optimal sein.
Ware dies nicht so, dann gabe es eine Bepackung fur diereduzierte Kapazitat mit einem hoheren Wert.
Nach Hinzufugen des obersten Elementes hatten wir danneine bessere Rucksackbepackung
Widerspruch zur optimalen Rucksackbepackung!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 21: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/21.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Rekursive Definition des Wertes der optimalen Losung
Rekursive Formulierung
Finde eine rekursive Formulierung des Optimierungsproblems!
Wir wollen val(i , k), i ∈ [n], k ∈ [CR ] berechnen.
Wir haben nun zwei Moglichkeiten:
Wir packen das i-te Element in den Rucksack ein.
Dann betragt der Wert des Rucksacks val(i − 1, k − ci ) + vi
Oder wir packen es nicht ein.
Dann betragt der Wert des Rucksacks val(i − 1, k).
Optimierungsproblem → wahlemax(val(i − 1, k − ci ) + vi , val(i − 1, k))
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 22: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/22.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Rekursive Definition des Wertes der optimalen Losung
Rekursive Formulierung
Finde eine rekursive Formulierung des Optimierungsproblems!
Wir wollen val(i , k), i ∈ [n], k ∈ [CR ] berechnen.
Wir haben nun zwei Moglichkeiten:
Wir packen das i-te Element in den Rucksack ein.
Dann betragt der Wert des Rucksacks val(i − 1, k − ci ) + vi
Oder wir packen es nicht ein.
Dann betragt der Wert des Rucksacks val(i − 1, k).
Optimierungsproblem → wahlemax(val(i − 1, k − ci ) + vi , val(i − 1, k))
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 23: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/23.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Rekursive Definition des Wertes der optimalen Losung
Rekursive Formulierung
Finde eine rekursive Formulierung des Optimierungsproblems!
Wir wollen val(i , k), i ∈ [n], k ∈ [CR ] berechnen.
Wir haben nun zwei Moglichkeiten:
Wir packen das i-te Element in den Rucksack ein.
Dann betragt der Wert des Rucksacks val(i − 1, k − ci ) + vi
Oder wir packen es nicht ein.
Dann betragt der Wert des Rucksacks val(i − 1, k).
Optimierungsproblem → wahlemax(val(i − 1, k − ci ) + vi , val(i − 1, k))
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 24: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/24.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Rekursive Definition des Wertes der optimalen Losung
Rekursive Formulierung
Finde eine rekursive Formulierung des Optimierungsproblems!
Wir wollen val(i , k), i ∈ [n], k ∈ [CR ] berechnen.
Wir haben nun zwei Moglichkeiten:
Wir packen das i-te Element in den Rucksack ein.
Dann betragt der Wert des Rucksacks val(i − 1, k − ci ) + vi
Oder wir packen es nicht ein.
Dann betragt der Wert des Rucksacks val(i − 1, k).
Optimierungsproblem → wahlemax(val(i − 1, k − ci ) + vi , val(i − 1, k))
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 25: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/25.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Rekursive Definition des Wertes der optimalen Losung
Rekursive Formulierung
Finde eine rekursive Formulierung des Optimierungsproblems!
Wir wollen val(i , k), i ∈ [n], k ∈ [CR ] berechnen.
Wir haben nun zwei Moglichkeiten:
Wir packen das i-te Element in den Rucksack ein.
Dann betragt der Wert des Rucksacks val(i − 1, k − ci ) + vi
Oder wir packen es nicht ein.
Dann betragt der Wert des Rucksacks val(i − 1, k).
Optimierungsproblem → wahlemax(val(i − 1, k − ci ) + vi , val(i − 1, k))
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 26: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/26.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Rekursive Definition des Wertes der optimalen Losung
Rekursive Formulierung
Finde eine rekursive Formulierung des Optimierungsproblems!
Wir wollen val(i , k), i ∈ [n], k ∈ [CR ] berechnen.
Wir haben nun zwei Moglichkeiten:
Wir packen das i-te Element in den Rucksack ein.
Dann betragt der Wert des Rucksacks val(i − 1, k − ci ) + vi
Oder wir packen es nicht ein.
Dann betragt der Wert des Rucksacks val(i − 1, k).
Optimierungsproblem → wahlemax(val(i − 1, k − ci ) + vi , val(i − 1, k))
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 27: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/27.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Rekursive Definition des Wertes der optimalen Losung
Rekursive Formulierung
Finde eine rekursive Formulierung des Optimierungsproblems!
Wir wollen val(i , k), i ∈ [n], k ∈ [CR ] berechnen.
Wir haben nun zwei Moglichkeiten:
Wir packen das i-te Element in den Rucksack ein.
Dann betragt der Wert des Rucksacks val(i − 1, k − ci ) + vi
Oder wir packen es nicht ein.
Dann betragt der Wert des Rucksacks val(i − 1, k).
Optimierungsproblem → wahlemax(val(i − 1, k − ci ) + vi , val(i − 1, k))
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 28: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/28.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Rekursive Definition des Wertes der optimalen Losung
Rekursive Formulierung
Finde eine rekursive Formulierung des Optimierungsproblems!
Wir wollen val(i , k), i ∈ [n], k ∈ [CR ] berechnen.
Wir haben nun zwei Moglichkeiten:
Wir packen das i-te Element in den Rucksack ein.
Dann betragt der Wert des Rucksacks val(i − 1, k − ci ) + vi
Oder wir packen es nicht ein.
Dann betragt der Wert des Rucksacks val(i − 1, k).
Optimierungsproblem → wahlemax(val(i − 1, k − ci ) + vi , val(i − 1, k))
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 29: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/29.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Berechnung der optimalen Losung
C++ Code:
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 30: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/30.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Analyse
Laufzeit
Pro Rekusionsschritt werden zwei neue Funtionsaufrufe getatigt!Laufzeit: O(2n)
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 31: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/31.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Der DP-Ansatz
val(i − 1, k) wird bei val(i , k), val(i + 1, k), . . . val(n, k)(indirekt) aufgerufen!
Wenn wir den Wert von val(i − 1, k) kennen, konnen wir unszeitaufwendige Rechnungen ersparen.
Top-Down → Memoization
Bottom-Up→ Tabelle
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 32: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/32.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Der DP-Ansatz
val(i − 1, k) wird bei val(i , k), val(i + 1, k), . . . val(n, k)(indirekt) aufgerufen!
Wenn wir den Wert von val(i − 1, k) kennen, konnen wir unszeitaufwendige Rechnungen ersparen.
Top-Down → Memoization
Bottom-Up→ Tabelle
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 33: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/33.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Der DP-Ansatz
val(i − 1, k) wird bei val(i , k), val(i + 1, k), . . . val(n, k)(indirekt) aufgerufen!
Wenn wir den Wert von val(i − 1, k) kennen, konnen wir unszeitaufwendige Rechnungen ersparen.
Top-Down → Memoization
Bottom-Up→ Tabelle
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 34: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/34.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Der DP-Ansatz
val(i − 1, k) wird bei val(i , k), val(i + 1, k), . . . val(n, k)(indirekt) aufgerufen!
Wenn wir den Wert von val(i − 1, k) kennen, konnen wir unszeitaufwendige Rechnungen ersparen.
Top-Down → Memoization
Bottom-Up→ Tabelle
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 35: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/35.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Der DP-Ansatz
val(i − 1, k) wird bei val(i , k), val(i + 1, k), . . . val(n, k)(indirekt) aufgerufen!
Wenn wir den Wert von val(i − 1, k) kennen, konnen wir unszeitaufwendige Rechnungen ersparen.
Top-Down → Memoization
Bottom-Up→ Tabelle
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 36: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/36.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Losung des Problems - mit DP
Berechnung der Losung
Lose das Problem effizient, indem die Zwischenlosungen in einerentsprechenden Datenstruktur abgespeichert werden.
Wir haben zwei “Laufvariablen”, i und k.
Erstelle eine n×CR Tabelle, der (i , j)-Eintrag enthalt val(i , j).
Oder: Erstelle eine map, in der die val(i , j) memoisiertwerden.
Die optimale Losung findet sich dann in (n, CR).
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 37: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/37.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Losung des Problems - mit DP
Berechnung der Losung
Lose das Problem effizient, indem die Zwischenlosungen in einerentsprechenden Datenstruktur abgespeichert werden.
Wir haben zwei “Laufvariablen”, i und k.
Erstelle eine n×CR Tabelle, der (i , j)-Eintrag enthalt val(i , j).
Oder: Erstelle eine map, in der die val(i , j) memoisiertwerden.
Die optimale Losung findet sich dann in (n, CR).
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 38: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/38.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Losung des Problems - mit DP
Berechnung der Losung
Lose das Problem effizient, indem die Zwischenlosungen in einerentsprechenden Datenstruktur abgespeichert werden.
Wir haben zwei “Laufvariablen”, i und k.
Erstelle eine n×CR Tabelle, der (i , j)-Eintrag enthalt val(i , j).
Oder: Erstelle eine map, in der die val(i , j) memoisiertwerden.
Die optimale Losung findet sich dann in (n, CR).
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 39: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/39.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Losung des Problems - mit DP
Berechnung der Losung
Lose das Problem effizient, indem die Zwischenlosungen in einerentsprechenden Datenstruktur abgespeichert werden.
Wir haben zwei “Laufvariablen”, i und k.
Erstelle eine n×CR Tabelle, der (i , j)-Eintrag enthalt val(i , j).
Oder: Erstelle eine map, in der die val(i , j) memoisiertwerden.
Die optimale Losung findet sich dann in (n, CR).
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 40: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/40.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Losung des Problems - mit DP
Berechnung der Losung
Lose das Problem effizient, indem die Zwischenlosungen in einerentsprechenden Datenstruktur abgespeichert werden.
Wir haben zwei “Laufvariablen”, i und k.
Erstelle eine n×CR Tabelle, der (i , j)-Eintrag enthalt val(i , j).
Oder: Erstelle eine map, in der die val(i , j) memoisiertwerden.
Die optimale Losung findet sich dann in (n, CR).
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 41: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/41.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Implementierung in C++
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 42: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/42.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Optional - die Losung
Konstruktion der Losung
Wenn nicht nur der Wert der Losung zahlt, muss die Losungmitgeschrieben werden.
Rucksackbepackung ist von Interesse.
Ablesen aus der Tabelle:
val(i , k) = val(i − 1, k)→ i − te Element nicht enthalten.
Separate Tabelle:
tab[i ][k] = kvorher
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 43: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/43.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Optional - die Losung
Konstruktion der Losung
Wenn nicht nur der Wert der Losung zahlt, muss die Losungmitgeschrieben werden.
Rucksackbepackung ist von Interesse.
Ablesen aus der Tabelle:
val(i , k) = val(i − 1, k)→ i − te Element nicht enthalten.
Separate Tabelle:
tab[i ][k] = kvorher
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 44: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/44.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Optional - die Losung
Konstruktion der Losung
Wenn nicht nur der Wert der Losung zahlt, muss die Losungmitgeschrieben werden.
Rucksackbepackung ist von Interesse.
Ablesen aus der Tabelle:
val(i , k) = val(i − 1, k)→ i − te Element nicht enthalten.
Separate Tabelle:
tab[i ][k] = kvorher
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 45: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/45.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Optional - die Losung
Konstruktion der Losung
Wenn nicht nur der Wert der Losung zahlt, muss die Losungmitgeschrieben werden.
Rucksackbepackung ist von Interesse.
Ablesen aus der Tabelle:
val(i , k) = val(i − 1, k)→ i − te Element nicht enthalten.
Separate Tabelle:
tab[i ][k] = kvorher
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 46: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/46.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Optional - die Losung
Konstruktion der Losung
Wenn nicht nur der Wert der Losung zahlt, muss die Losungmitgeschrieben werden.
Rucksackbepackung ist von Interesse.
Ablesen aus der Tabelle:
val(i , k) = val(i − 1, k)→ i − te Element nicht enthalten.
Separate Tabelle:
tab[i ][k] = kvorher
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 47: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/47.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Optional - die Losung
Konstruktion der Losung
Wenn nicht nur der Wert der Losung zahlt, muss die Losungmitgeschrieben werden.
Rucksackbepackung ist von Interesse.
Ablesen aus der Tabelle:
val(i , k) = val(i − 1, k)→ i − te Element nicht enthalten.
Separate Tabelle:
tab[i ][k] = kvorher
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 48: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/48.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Zusammenfassung der Schritte
1 Nachweis optimale Substruktur.
2 Rekursive Formulierung.
3 Top-Down oder Bottom up.
4 Konstruktion der Losung
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 49: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/49.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Zusammenfassung der Schritte
1 Nachweis optimale Substruktur.
2 Rekursive Formulierung.
3 Top-Down oder Bottom up.
4 Konstruktion der Losung
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 50: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/50.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Zusammenfassung der Schritte
1 Nachweis optimale Substruktur.
2 Rekursive Formulierung.
3 Top-Down oder Bottom up.
4 Konstruktion der Losung
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 51: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/51.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Zusammenfassung der Schritte
1 Nachweis optimale Substruktur.
2 Rekursive Formulierung.
3 Top-Down oder Bottom up.
4 Konstruktion der Losung
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 52: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/52.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Checkliste: Wann DP angewenden?
Optimierungsproblem oder Aufzahlproblem.
Probleminstanzen sind ganzzahlig.
Laufzeit der naiven Losung uberschlagen!
Eingabegroße:1 O(n)→ Wertebereich!2 O(n2)→≈ 10003 O(n3)→≈ 100
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 53: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/53.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Checkliste: Wann DP angewenden?
Optimierungsproblem oder Aufzahlproblem.
Probleminstanzen sind ganzzahlig.
Laufzeit der naiven Losung uberschlagen!
Eingabegroße:1 O(n)→ Wertebereich!2 O(n2)→≈ 10003 O(n3)→≈ 100
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 54: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/54.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Checkliste: Wann DP angewenden?
Optimierungsproblem oder Aufzahlproblem.
Probleminstanzen sind ganzzahlig.
Laufzeit der naiven Losung uberschlagen!
Eingabegroße:
1 O(n)→ Wertebereich!2 O(n2)→≈ 10003 O(n3)→≈ 100
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 55: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/55.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Checkliste: Wann DP angewenden?
Optimierungsproblem oder Aufzahlproblem.
Probleminstanzen sind ganzzahlig.
Laufzeit der naiven Losung uberschlagen!
Eingabegroße:1 O(n)→ Wertebereich!
2 O(n2)→≈ 10003 O(n3)→≈ 100
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 56: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/56.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Checkliste: Wann DP angewenden?
Optimierungsproblem oder Aufzahlproblem.
Probleminstanzen sind ganzzahlig.
Laufzeit der naiven Losung uberschlagen!
Eingabegroße:1 O(n)→ Wertebereich!2 O(n2)→≈ 1000
3 O(n3)→≈ 100
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 57: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/57.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Checkliste: Wann DP angewenden?
Optimierungsproblem oder Aufzahlproblem.
Probleminstanzen sind ganzzahlig.
Laufzeit der naiven Losung uberschlagen!
Eingabegroße:1 O(n)→ Wertebereich!2 O(n2)→≈ 10003 O(n3)→≈ 100
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 58: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/58.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Vorgehensweise am Beispiel des RucksackproblemsZusammenfassung
Checkliste: Wann DP angewenden?
Optimierungsproblem oder Aufzahlproblem.
Probleminstanzen sind ganzzahlig.
Laufzeit der naiven Losung uberschlagen!
Eingabegroße:1 O(n)→ Wertebereich!2 O(n2)→≈ 10003 O(n3)→≈ 100
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 59: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/59.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Uberblick
In einigen UVA/ACM Aufgaben sind klassische DP-Probleme“versteckt”.
Problem erkannt, Problem gebannt.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 60: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/60.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Uberblick
In einigen UVA/ACM Aufgaben sind klassische DP-Probleme“versteckt”.
Problem erkannt, Problem gebannt.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 61: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/61.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Klassische DP-Probleme
1 Rucksack
2 Levenshtein/Edit - Distance
3 Longest Common Subsequence
4 Cocke - Younger - Kasami (CYK)
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 62: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/62.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Klassische DP-Probleme
1 Rucksack
2 Levenshtein/Edit - Distance
3 Longest Common Subsequence
4 Cocke - Younger - Kasami (CYK)
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 63: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/63.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Klassische DP-Probleme
1 Rucksack
2 Levenshtein/Edit - Distance
3 Longest Common Subsequence
4 Cocke - Younger - Kasami (CYK)
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 64: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/64.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Klassische DP-Probleme
1 Rucksack
2 Levenshtein/Edit - Distance
3 Longest Common Subsequence
4 Cocke - Younger - Kasami (CYK)
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 65: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/65.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Edit/Levenshtein - Distance
Gegeben seien zwei Zeichenketten P = p1 . . . pn undT = t1 . . . tm.
Wir konnen folgende Operationen auf diesen Kettendurchfuhren:
1 Ersetzen: meer → mehr2 Einfugen: dof → doof3 Loschen: interressant → interessant
Alle Operationen sind gleich teuer.
Die Levenshtein-Distance bezeichnet die minimale Anzahl anOperationen, um P in T umzuwandeln.
Aufgabe: Berechne die Levenshtein-Distance!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 66: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/66.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Edit/Levenshtein - Distance
Gegeben seien zwei Zeichenketten P = p1 . . . pn undT = t1 . . . tm.
Wir konnen folgende Operationen auf diesen Kettendurchfuhren:
1 Ersetzen: meer → mehr2 Einfugen: dof → doof3 Loschen: interressant → interessant
Alle Operationen sind gleich teuer.
Die Levenshtein-Distance bezeichnet die minimale Anzahl anOperationen, um P in T umzuwandeln.
Aufgabe: Berechne die Levenshtein-Distance!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 67: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/67.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Edit/Levenshtein - Distance
Gegeben seien zwei Zeichenketten P = p1 . . . pn undT = t1 . . . tm.
Wir konnen folgende Operationen auf diesen Kettendurchfuhren:
1 Ersetzen: meer → mehr2 Einfugen: dof → doof3 Loschen: interressant → interessant
Alle Operationen sind gleich teuer.
Die Levenshtein-Distance bezeichnet die minimale Anzahl anOperationen, um P in T umzuwandeln.
Aufgabe: Berechne die Levenshtein-Distance!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 68: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/68.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Edit/Levenshtein - Distance
Gegeben seien zwei Zeichenketten P = p1 . . . pn undT = t1 . . . tm.
Wir konnen folgende Operationen auf diesen Kettendurchfuhren:
1 Ersetzen: meer → mehr2 Einfugen: dof → doof3 Loschen: interressant → interessant
Alle Operationen sind gleich teuer.
Die Levenshtein-Distance bezeichnet die minimale Anzahl anOperationen, um P in T umzuwandeln.
Aufgabe: Berechne die Levenshtein-Distance!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 69: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/69.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Edit/Levenshtein - Distance
Gegeben seien zwei Zeichenketten P = p1 . . . pn undT = t1 . . . tm.
Wir konnen folgende Operationen auf diesen Kettendurchfuhren:
1 Ersetzen: meer → mehr2 Einfugen: dof → doof3 Loschen: interressant → interessant
Alle Operationen sind gleich teuer.
Die Levenshtein-Distance bezeichnet die minimale Anzahl anOperationen, um P in T umzuwandeln.
Aufgabe: Berechne die Levenshtein-Distance!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 70: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/70.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Edit/Levenshtein - Distance
Gegeben seien zwei Zeichenketten P = p1 . . . pn undT = t1 . . . tm.
Wir konnen folgende Operationen auf diesen Kettendurchfuhren:
1 Ersetzen: meer → mehr2 Einfugen: dof → doof3 Loschen: interressant → interessant
Alle Operationen sind gleich teuer.
Die Levenshtein-Distance bezeichnet die minimale Anzahl anOperationen, um P in T umzuwandeln.
Aufgabe: Berechne die Levenshtein-Distance!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 71: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/71.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Berechnung der Levenshtein - Distance
Klar: Optimierungsproblem
Bezeichne mit LD(i , j) die minimale Anzahl an Operationen,um p1 . . . pi in t1 . . . tj umzuwandeln.
Optimale Substruktur und rekursive Formulierung
Angenommen wir wollen LD(i , j) berechnen:1 Ubereinstimmung oder Ersetzen: LD(i , j) = LD(i − 1, j − 1)
oder LD(i , j) = LD(i − 1, j − 1) + 12 Einfugen: LD(i , j) = LD(i − 1, j) + 13 Loschen: LD(i , j) = LD(i , j − 1) + 1
Mit diesem Wissen lasst sich nun eine DP Formulierungfinden.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 72: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/72.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Berechnung der Levenshtein - Distance
Klar: Optimierungsproblem
Bezeichne mit LD(i , j) die minimale Anzahl an Operationen,um p1 . . . pi in t1 . . . tj umzuwandeln.
Optimale Substruktur und rekursive Formulierung
Angenommen wir wollen LD(i , j) berechnen:
1 Ubereinstimmung oder Ersetzen: LD(i , j) = LD(i − 1, j − 1)oder LD(i , j) = LD(i − 1, j − 1) + 1
2 Einfugen: LD(i , j) = LD(i − 1, j) + 13 Loschen: LD(i , j) = LD(i , j − 1) + 1
Mit diesem Wissen lasst sich nun eine DP Formulierungfinden.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 73: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/73.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Berechnung der Levenshtein - Distance
Klar: Optimierungsproblem
Bezeichne mit LD(i , j) die minimale Anzahl an Operationen,um p1 . . . pi in t1 . . . tj umzuwandeln.
Optimale Substruktur und rekursive Formulierung
Angenommen wir wollen LD(i , j) berechnen:1 Ubereinstimmung oder Ersetzen: LD(i , j) = LD(i − 1, j − 1)
oder LD(i , j) = LD(i − 1, j − 1) + 1
2 Einfugen: LD(i , j) = LD(i − 1, j) + 13 Loschen: LD(i , j) = LD(i , j − 1) + 1
Mit diesem Wissen lasst sich nun eine DP Formulierungfinden.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 74: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/74.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Berechnung der Levenshtein - Distance
Klar: Optimierungsproblem
Bezeichne mit LD(i , j) die minimale Anzahl an Operationen,um p1 . . . pi in t1 . . . tj umzuwandeln.
Optimale Substruktur und rekursive Formulierung
Angenommen wir wollen LD(i , j) berechnen:1 Ubereinstimmung oder Ersetzen: LD(i , j) = LD(i − 1, j − 1)
oder LD(i , j) = LD(i − 1, j − 1) + 12 Einfugen: LD(i , j) = LD(i − 1, j) + 1
3 Loschen: LD(i , j) = LD(i , j − 1) + 1
Mit diesem Wissen lasst sich nun eine DP Formulierungfinden.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 75: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/75.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Berechnung der Levenshtein - Distance
Klar: Optimierungsproblem
Bezeichne mit LD(i , j) die minimale Anzahl an Operationen,um p1 . . . pi in t1 . . . tj umzuwandeln.
Optimale Substruktur und rekursive Formulierung
Angenommen wir wollen LD(i , j) berechnen:1 Ubereinstimmung oder Ersetzen: LD(i , j) = LD(i − 1, j − 1)
oder LD(i , j) = LD(i − 1, j − 1) + 12 Einfugen: LD(i , j) = LD(i − 1, j) + 13 Loschen: LD(i , j) = LD(i , j − 1) + 1
Mit diesem Wissen lasst sich nun eine DP Formulierungfinden.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 76: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/76.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Berechnung der Levenshtein - Distance
Klar: Optimierungsproblem
Bezeichne mit LD(i , j) die minimale Anzahl an Operationen,um p1 . . . pi in t1 . . . tj umzuwandeln.
Optimale Substruktur und rekursive Formulierung
Angenommen wir wollen LD(i , j) berechnen:1 Ubereinstimmung oder Ersetzen: LD(i , j) = LD(i − 1, j − 1)
oder LD(i , j) = LD(i − 1, j − 1) + 12 Einfugen: LD(i , j) = LD(i − 1, j) + 13 Loschen: LD(i , j) = LD(i , j − 1) + 1
Mit diesem Wissen lasst sich nun eine DP Formulierungfinden.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 77: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/77.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Berechnung der Levenshtein - Distance
Klar: Optimierungsproblem
Bezeichne mit LD(i , j) die minimale Anzahl an Operationen,um p1 . . . pi in t1 . . . tj umzuwandeln.
Optimale Substruktur und rekursive Formulierung
Angenommen wir wollen LD(i , j) berechnen:1 Ubereinstimmung oder Ersetzen: LD(i , j) = LD(i − 1, j − 1)
oder LD(i , j) = LD(i − 1, j − 1) + 12 Einfugen: LD(i , j) = LD(i − 1, j) + 13 Loschen: LD(i , j) = LD(i , j − 1) + 1
Mit diesem Wissen lasst sich nun eine DP Formulierungfinden.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 78: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/78.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Beispiel
A C M
0 1 2 3
I 1
C 2
P 3
C 4
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 79: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/79.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Beispiel
A C M
0 1 2 3
I 1 1 2 3
C 2 2
1 2
P 3 3 2 2
C 4 4 3 3
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 80: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/80.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Beispiel
A C M
0 1 2 3
I 1 1 2 3
C 2 2 1
2
P 3 3 2 2
C 4 4 3 3
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 81: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/81.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Beispiel
A C M
0 1 2 3
I 1 1 2 3
C 2 2 1 2
P 3 3 2 2
C 4 4 3 3
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 82: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/82.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Beispiel
A C M
0 1 2 3
I 1 1 2 3
C 2 2 1 2
P 3 3 2 2
C 4 4 3 3
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 83: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/83.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Beispiel
A C M
0 1 2 3
I 1 1 2 3
C 2 2 1 2
P 3 3 2 2
C 4 4 3 3
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 84: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/84.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Longest-Common-Subsequence
LCS - Problemstellung
Gegeben seien zwei Strings P und T , finde die langste gemeinsameSubsequenz. (Bsp. Zitrone und Zisterne)
Dieses Problem ist der Levenshtein-Distance sehr ahnlich:
Wenn wir das Ersetzen nicht zulassen (sehr teuer machen),erhalten wir die minimale Anzahl an Einfuge- undLoschoperationen.
Die langste gemeinsame Sequenz bleibt dabei erhalten!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 85: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/85.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Longest-Common-Subsequence
LCS - Problemstellung
Gegeben seien zwei Strings P und T , finde die langste gemeinsameSubsequenz. (Bsp. Zitrone und Zisterne)
Dieses Problem ist der Levenshtein-Distance sehr ahnlich:
Wenn wir das Ersetzen nicht zulassen (sehr teuer machen),erhalten wir die minimale Anzahl an Einfuge- undLoschoperationen.
Die langste gemeinsame Sequenz bleibt dabei erhalten!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 86: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/86.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Longest-Common-Subsequence
LCS - Problemstellung
Gegeben seien zwei Strings P und T , finde die langste gemeinsameSubsequenz. (Bsp. Zitrone und Zisterne)
Dieses Problem ist der Levenshtein-Distance sehr ahnlich:
Wenn wir das Ersetzen nicht zulassen (sehr teuer machen),erhalten wir die minimale Anzahl an Einfuge- undLoschoperationen.
Die langste gemeinsame Sequenz bleibt dabei erhalten!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 87: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/87.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Longest-Common-Subsequence
LCS - Problemstellung
Gegeben seien zwei Strings P und T , finde die langste gemeinsameSubsequenz. (Bsp. Zitrone und Zisterne)
Dieses Problem ist der Levenshtein-Distance sehr ahnlich:
Wenn wir das Ersetzen nicht zulassen (sehr teuer machen),erhalten wir die minimale Anzahl an Einfuge- undLoschoperationen.
Die langste gemeinsame Sequenz bleibt dabei erhalten!
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 88: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/88.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Cocke-Younger-Kasami Algorithmus
CYK - Algorithmus
Der Algorithmus von Casami-Younger-Kocke lost das Problem, obein Wort w zu einer vorgegebenen kontextfreien Sprache L gehort.Dabei muss die Gramatik G der Sprache L(G ) inChomsky-Normalform vorliegen.
1 Es sei ein Wort w = w1 . . . wn gegeben. Wenn w in L(G )liegt, dann gibt es eine Folge von Produktionen, sodassS → AB → . . .→ w gilt.
2 Damit existiert insbesondere ein Index i ∈ [1, n − 1], sodassw1 . . . wi ein Produkt von A und wi+1 . . . wn ein Produkt vonB ist.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 89: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/89.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Cocke-Younger-Kasami Algorithmus
CYK - Algorithmus
Der Algorithmus von Casami-Younger-Kocke lost das Problem, obein Wort w zu einer vorgegebenen kontextfreien Sprache L gehort.Dabei muss die Gramatik G der Sprache L(G ) inChomsky-Normalform vorliegen.
1 Es sei ein Wort w = w1 . . . wn gegeben. Wenn w in L(G )liegt, dann gibt es eine Folge von Produktionen, sodassS → AB → . . .→ w gilt.
2 Damit existiert insbesondere ein Index i ∈ [1, n − 1], sodassw1 . . . wi ein Produkt von A und wi+1 . . . wn ein Produkt vonB ist.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 90: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/90.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Cocke-Younger-Kasami Algorithmus
CYK - Algorithmus
Der Algorithmus von Casami-Younger-Kocke lost das Problem, obein Wort w zu einer vorgegebenen kontextfreien Sprache L gehort.Dabei muss die Gramatik G der Sprache L(G ) inChomsky-Normalform vorliegen.
1 Es sei ein Wort w = w1 . . . wn gegeben. Wenn w in L(G )liegt, dann gibt es eine Folge von Produktionen, sodassS → AB → . . .→ w gilt.
2 Damit existiert insbesondere ein Index i ∈ [1, n − 1], sodassw1 . . . wi ein Produkt von A und wi+1 . . . wn ein Produkt vonB ist.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 91: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/91.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Fortsetzung CYK
1 Daraus lasst sich ein rekursiver Ansatz ableiten.
2 Wir fuhren eine boolsche Funktion M(i , j , X ) ein, die genaudann wahr ist, wenn sich wi . . . wj aus X ableiten lasst.
3 Um M(i , j , X ) zu berechnen, werten wir alle Produktionen vonX aus M(i , j , X ) =
∨(X→YZ∈G)(
∨ji=k M(i , k , Y ) ∧M(k , j , Z ))
4 Wenn M(1, n, S) wahr ist, liegt w in L(G ).
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 92: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/92.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Fortsetzung CYK
1 Daraus lasst sich ein rekursiver Ansatz ableiten.
2 Wir fuhren eine boolsche Funktion M(i , j , X ) ein, die genaudann wahr ist, wenn sich wi . . . wj aus X ableiten lasst.
3 Um M(i , j , X ) zu berechnen, werten wir alle Produktionen vonX aus M(i , j , X ) =
∨(X→YZ∈G)(
∨ji=k M(i , k , Y ) ∧M(k , j , Z ))
4 Wenn M(1, n, S) wahr ist, liegt w in L(G ).
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 93: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/93.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Fortsetzung CYK
1 Daraus lasst sich ein rekursiver Ansatz ableiten.
2 Wir fuhren eine boolsche Funktion M(i , j , X ) ein, die genaudann wahr ist, wenn sich wi . . . wj aus X ableiten lasst.
3 Um M(i , j , X ) zu berechnen, werten wir alle Produktionen vonX aus M(i , j , X ) =
∨(X→YZ∈G)(
∨ji=k M(i , k , Y ) ∧M(k , j , Z ))
4 Wenn M(1, n, S) wahr ist, liegt w in L(G ).
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 94: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/94.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Fortsetzung CYK
1 Daraus lasst sich ein rekursiver Ansatz ableiten.
2 Wir fuhren eine boolsche Funktion M(i , j , X ) ein, die genaudann wahr ist, wenn sich wi . . . wj aus X ableiten lasst.
3 Um M(i , j , X ) zu berechnen, werten wir alle Produktionen vonX aus M(i , j , X ) =
∨(X→YZ∈G)(
∨ji=k M(i , k , Y ) ∧M(k , j , Z ))
4 Wenn M(1, n, S) wahr ist, liegt w in L(G ).
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 95: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/95.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Beispiel: Self-Replicating Worms
Ein Stuck Quantonium fiel auf einige Erdwurmer, die dadurch inmehrere Teile zerlegt wurden. Die einzelnen Korperteile derWurmer fingen kurz darauf an, sich zu reproduzieren, wobei sichmanche Korperteile nicht mehr verandern, andere jedoch. EineReproduktion lauft immer nach folgendem Schema ab:K → AB.Alle Wurmer, die uber eine Kette von Reproduktionen aus demKorperteil “bowel” entstanden sind, sind bose, die anderen nicht.General W.R. Monger mochte nun wissen, ob ein gegebener Wurmbose ist oder nicht.Aufgabe: Finde aus den gegebenen Reproduktionsmechanismenheraus, ob ein Wurm gut oder bose ist.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 96: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/96.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Edit / Levenshtein - DistanceLongest-Common-SubsequenceCYK
Fragen
Noch Fragen?
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 97: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/97.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Zum Warmwerden: Welcome to Code Jam (Google CodeJam 2009)
Eingabe
Ein String mit maximal 500 Zeichen (Kleinbuchstaben undLeerzeichen)
Ausgabe
Wie oft ist der String welcome to code jam (mit Leerzeichen) alsSubsequence vor? Dabei sollen nur die letzten 4 Ziffern der Zahlausgegeben werden.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 98: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/98.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Beispieleingabe
Input Outputelcomew elcome to code jam Case 1: 0001
wweellccoommee to code qps jam Case 2: 0256welcome to codejam Case 3: 0000
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 99: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/99.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Aufgabe 2: Is bigger smarter (UVA 10131)
Problem
Einige Leute behaupten, je schwerer ein Elefant ist, desto klugersei er. Um diese Theorie zu widerlegen, sollen aus einer gegebenenListe von Elefanten (mit Gewicht und IQ) moglichst viele Elefantengefunden werden, sodass alle Gewichte und IQs der Elefantenverschieden und der IQ eines schwereren Elefanten geringer als dereines leichteren ist.
Input
Eine Liste mit dem Gewicht und IQ des jeweiligen Elefanten.
Output
Die großte Anzahl der Elefanten, die diesem Kriterium entsprechensowie deren Indizes in der Anfangsreihenfolge.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 100: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/100.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Aufgabe 2: Is bigger smarter (UVA 10131)
Problem
Einige Leute behaupten, je schwerer ein Elefant ist, desto klugersei er. Um diese Theorie zu widerlegen, sollen aus einer gegebenenListe von Elefanten (mit Gewicht und IQ) moglichst viele Elefantengefunden werden, sodass alle Gewichte und IQs der Elefantenverschieden und der IQ eines schwereren Elefanten geringer als dereines leichteren ist.
Input
Eine Liste mit dem Gewicht und IQ des jeweiligen Elefanten.
Output
Die großte Anzahl der Elefanten, die diesem Kriterium entsprechensowie deren Indizes in der Anfangsreihenfolge.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 101: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/101.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Aufgabe 2: Is bigger smarter (UVA 10131)
Problem
Einige Leute behaupten, je schwerer ein Elefant ist, desto klugersei er. Um diese Theorie zu widerlegen, sollen aus einer gegebenenListe von Elefanten (mit Gewicht und IQ) moglichst viele Elefantengefunden werden, sodass alle Gewichte und IQs der Elefantenverschieden und der IQ eines schwereren Elefanten geringer als dereines leichteren ist.
Input
Eine Liste mit dem Gewicht und IQ des jeweiligen Elefanten.
Output
Die großte Anzahl der Elefanten, die diesem Kriterium entsprechensowie deren Indizes in der Anfangsreihenfolge.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 102: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/102.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Aufgabe 3: Ferryloading (UVA 10261)
Problem
Um uber eine Fluss zu gelangen, warten n Autos in einerWarteschlange vor einer Fahre. Der Kapitan der zweispurigenFahre teilt die Autos auf die linke oder rechte Fahrseite ein. Dabeiist die Reihenfolge der Autos fest vorgegeben und die Gesamtlangeder Autoschlangen auf beiden Seiten der Fahre darf die Lange derFahre nicht uberschreiten. Aufgrund seiner Erfahrung kann derKapitan die Langen der einzelnen Autos abschatzen.Mit dieser Information soll nun ein Programm geschrieben werden,welches fur eine gegebene Schlange von Autos die optimaleZuteilung bestimmt.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 103: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/103.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Fortsetzung zu Ferryloading
Input
Die Anzahl der Autos sowie die einzelnen Langen.
Output
Die Anzahl der Autos, die auf die Fahre passen, dazu fur jedesAuto entweder ein “Left” oder “Right”, je nach dem, auf welcheSeite der Fahre das Auto geschickt wird.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 104: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/104.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Fortsetzung zu Ferryloading
Input
Die Anzahl der Autos sowie die einzelnen Langen.
Output
Die Anzahl der Autos, die auf die Fahre passen, dazu fur jedesAuto entweder ein “Left” oder “Right”, je nach dem, auf welcheSeite der Fahre das Auto geschickt wird.
Armin Krupp Dynamische Programmierung - wettkampforientiert
![Page 105: Grundlagen der Dynamischen Programmierung Die klassischen ...€¦ · Die klassischen DP-Probleme Aufgaben Literatur Vorgehensweise am Beispiel des Rucksackproblems Zusammenfassung](https://reader033.vdocuments.site/reader033/viewer/2022060221/5f07524b7e708231d41c683f/html5/thumbnails/105.jpg)
Grundlagen der Dynamischen ProgrammierungDie klassischen DP-Probleme
AufgabenLiteratur
Literatur
T. Cormen et. al.Introduction to AlgorithmsMIT Press 2007
Steven S. SkienaThe Algorithm Design ManualSpringer 2008
Armin Krupp Dynamische Programmierung - wettkampforientiert