1 Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich Dynamische Programmierung.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Algorithmentheorie 08 – Dynamische Programmierung (4) Editierdistanz Approximative Zeichenkettensuche Sequence Alignment Prof. Dr. Th. Ottmann WS
Methoden des Algorithmenentwurfs Kapitel 1.4:Approximations-schemata
Knapsack & Bin Packing Sebastian Stober
Rekursion Was ist Rekursion? Was sind rekursive Methoden?
Projektgruppe AIR Optimierung von Planungsprozessen im Flugverkehr
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004.
Listen Richard Göbel.
FOR Anweisung.
Algorithmentheorie 6 – Greedy-Verfahren
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
Prinzipien des Algorithmenentwurfs Backtracking Prof. Dr. Th. Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (04 – Entwurfsverfahren) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Algorithmen und Komplexität
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Rekursion Richard Göbel.
Einführung in die Programmierung
Aus.
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
1 Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich Graphen (2)
Flüsse, Schnitte, bipartite Graphen
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Einführung in die Programmierung
Die Zählschleife int s = 0 for (int k=1; k
Informatik 1 Übung 4.
Christian Mansky Design - Fallstudien Christian Mansky
Auswahlanweisungen, Iterationsanweisungen, Blöcke, Sprunganweisungen
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 5 Dr. W. Narzt u. Dr. A. Stritzinger.
1 Helmut Schauer Educational Engineering Lab Department for Informatics University of Zurich Algorithmen und Datenstrukturen FS 2008 BBäume.
Graphen (1) 1 Helmut Schauer Educational Engineering Lab
Seminar Informatik Didaktik FS08 Vorbesprechung
Vorlesung 5. #include double fv(double x) { return sin(x); } int main(){ int i,N=10; double a=1,b=2,del,x,sum,f,integral; for(i=1,sum=0.0,del = (b-a)/N;i
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Barrierefreiheit, ePub3, EDUPUB
Einführung in die Programmierung mit Java
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/ Übungsaufgabe vom Logische Ausdrücke 1.true & false | true 2.(10>2)
IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder.
Wozu Maple? Symbolische Algebra Manche Sachen soll man besser nicht von Hand machen –kleine Rechnungs Fehler können mehrere Millionen werden – am besten.
1 Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich Geometrische Algorithmen.
Optimierungs- Algorithmen
WS03/041 Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
G.Heyer Algorithmen und Datenstrukturen 2 1 Dynamische Programmierung Das Prinzip „Teile und Herrsche“ diente als Grundlage für die Entwicklung vieler.
Der Airbus A380 und seine größte Konkurrenz
Tutorium Software-Engineering SS14 Florian Manghofer.
Fragen Sie sich ehrlich…. Möchten Sie Ihr Gehalt erhöhen?
Mаtheguru.one Tipps und Lösungen zu Matheaufgaben aus Schulbüchern von der Mittelstufe bis zum Abitur.
Luftfracht Flughafen Zürich
Systemanalyse BA Heidenheim 2002.
Wiederholung TexPoint fonts used in EMF.
Talking about prices Pointing things out
Wiederholung TexPoint fonts used in EMF.
Syntax: while ( BEDINGUNG ) { // Anweisungen die so lange immer wieder ausgeführt // werden, wie die Bedingung zutrifft } for (INITIALISIERUNG; BEDINGUNG;
Raphael Fischer Informatik II - Übung 08 Raphael Fischer
Arrays of Objects, a 3 part process
 Präsentation transkript:

1 Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich Dynamische Programmierung

2 Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich 0/1 Rucksackproblem (Knapsack) O(2 N ) Geg: N Objekte mit Gewicht (size) s i und Kosten (profit) p i Kapazität C Ges: Eine Teilmenge T der Objekte so dass die Summe der Gewichte C und die Summe der Kosten maximal ist

3 Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich 0/1 Rucksackproblem (dynamisch) O(C*N) Einschränkung: ganzzahlige Gewichte s i Bei der Lösung des Rucksackproblems mittels dynamischer Programmierung werden Teillösungen für alle Rucksäcke kleinerer ganzzahliger Kapazität j C gebildet und zur Gesamtlösung zusammengesetzt. cost[j]... Profit im Rucksack der Kapazität j best[j]... oberstes Objekt im Rucksack der Kapazität j for (int i=0; i<N; i++)// für alle Objekte i for (int j=C; j>=s[i]; j--) // für alle Rucksäcke der Kapazität j if (cost[j-s[i]]+p[i] > cost[j]) { // falls neuer Profit > bisher grösster Profit cost[j] = cost[j-s[i]]+p[i];// packe den Rucksack mit der best[j] = i;// Kapazität j-s[i] und das Objekt i }// in den Rucksack der Kapazität j

4 Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich Beispiel: single objects

5 Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich Beispiel: multiple objects

6 Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich Beispiel: subset sum (s i = p i )