Konzepte der Informatik

Größe: px
Ab Seite anzeigen:

Download "Konzepte der Informatik"

Transkript

1 Konzepte der Informatik Vorkurs Informatik zum WS 2/ Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 3 aus "Abenteuer Informatik" von Jens Gallenbacher Vorkurs Informatik 2 1

2 Wiederholung Grundsätzliche Problematik: Wie nutze ich vorhandenen Platz am effektivsten aus? Problemgröße hängt von folgenden Faktoren ab Anzahl und Beschaffenheit (Größe und Wert) der Schätze Größe der Schatzkiste Mannigfaltige Variation der Problemgrößen Dimensionalität der Gegenstände: ein-, zwei- oder dreidimensional Teilbarkeit der Gegenstände Beschaffenheit der Größe und des Werts der Gegenstände Nur ganzzahlige bzw. diskrete Größen bzw. Werte Meist werden die Gegenstände abstrahiert: Rechtecke und Quader anstatt der eigentlichen Form Verfügbarkeit der Gegenstände: einmal, n-mal oder unbegrenzter Vorrat Vorkurs Informatik 2 2

3 Die Problematik Bereits an diesem einfachen Beispiel sieht man, dass es gar nicht so leicht ist, eine optimale Lösung aus allen Gegenständen zu finden. Man könnte sechs Goldbarren in eine Kiste der Länge 12 packen: Damit bekommen die Gegenstände in der Kiste einen Gegenwert von 3 Goldtalern, aber 44 Goldtaler in Form von 4 Geldbündeln sind doch besser! Man sieht: Eine Lösung bekommt man sicher durch herum probieren. Aber ist die gefundene Lösung auch das Optimum? Vorkurs Informatik 2 3

4 Brute-Force Das Optimum bekommt man immer durch das systematische Probieren aller Möglichkeiten (Brute-Force), wobei jeweils die bessere Lösung beibehalten wird. Das aber nur bei relativ kleinen Problemgrößen machbar. Da aber alle Gegenstände miteinander kombiniert werden können, steigt die Anzahl der Möglichkeiten mit der Vergrößerung der Kiste exponentiell. Das Problem wird sehr schnell unüberschaubar und nicht mehr lösbar. Für das /1-Rucksackproblem, bei dem jeder Schatz genau einmal existiert und entweder eingepackt werden kann oder nicht, kann man den Aufwand für eine Brute-Force-Vorgehensweise mit 2^n angeben. Vorkurs Informatik 2 4

5 5 Vorkurs Informatik 2 Brute-Force (/1 Rucksackproblem) A B C D E E D E E C D E E D E E B C D E E D E E C D E E D E E Rein Raus Inhalt: C, D, E Inhalt: A, C, D Inhalt: A, B, C, D, E Das Rucksackproblem

6 Algorithmische Betrachtung Teile und Herrsche Das Problem wird in kleinere Teilprobleme, die separat gelöst werden, aufgeteilt Bedingung: Annäherung an die Gesamtlösung, wenn man eine Teillösung gefunden hat Anwendung auf das Rucksackproblem: Bin ich der Lösung des Problems mit Schätzen und einer Kiste, die Einheiten fasst, näher, wenn ich die Lösung für das Problem mit 5 Schätzen und einer Kiste, die Einheiten fasst, bereits gefunden habe? Vorkurs Informatik 2

7 Algorithmische Betrachtung Beispiele für optimale Kisten der Größe sieben, acht und neun: Vorkurs Informatik 2 7

8 Dynamische Programmierung Ein weiterer Ansatz zur Lösung komplexer Probleme ist die "Dynamische Programmierung" Keine Aufteilung des Problems in disjunkte Teilprobleme Z.B. Sortiere die linke und die rechte Hälfte einer Liste und füge sie sortiert zusammen Betrachtung "aller" Teilprobleme Für das Rucksackproblem mit k Schätzen und einer Kiste der Größe n: Löse das Problem für alle Größen 1-n und jede Anzahl von Schätzen 1-k, beginnend mit den kleinsten Schätzen "Weniger Arbeit durch das Lösen von mehr Problemen" oder "Mehr ist weniger" Vorkurs Informatik 2 8

9 Dynamische Programmierung - Voraussetzungen Voraussetzungen Problemgrößen müssen abzählbar (diskret) sein Einzelner Lösungsschritt muss linear sein Auswirkung auf das Rucksackproblem Keine Fließkommawerte für Größe oder Wert Eindimensionale Kiste Es gibt nur die Alternativen "Schatz enthalten ja oder nein". Es gibt keine unterschiedlichen Möglichkeiten einen Schatz in die Kiste zu packen. Die einzelnen Schätze müssen beliebig oft verfügbar sein Vorkurs Informatik 2 9

10 Dynamische Programmierung - Voraussetzungen Einteilung der zu füllenden Schatzkiste in Flächenquadrate Betrachtung der Größe aller Schätze als ein Vielfaches eines Flächenquadrates Hier abgebildet ist der kleinste Schatz, ein Goldbarren mit einem Wert von Goldtalern. Vorkurs Informatik 2 1

11 Die Schätze Übersicht der verschiedenen Schätze: Vorkurs Informatik 2

12 Anwendung von Dynamischer Programmierung Lösung "aller" Probleme gleichzeitig: Nutzung einer Maxikiste Eine Kiste, die gleichzeitig auch alle kleineren beinhaltet Sukzessives Lösen des Problems für alle Kistengrößen mit dem jeweils nächstgrößeren Schatz Grundlegendes Vorgehen: Teste für jede Größe, ob das Einfügen eines neuen Schatzes einen Zugewinn bringt Vorkurs Informatik 2 12

13 Anwendung von Dynamischer Programmierung Anhand des ersten Schatzes lässt sich das grundlegende Vorgehen leicht veranschaulichen: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere. Vorkurs Informatik 2 13

14 Anwendung von Dynamischer Programmierung Anhand des ersten Schatzes lässt sich das grundlegende Vorgehen leicht veranschaulichen: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere. Vorkurs Informatik 2 14

15 Anwendung von Dynamischer Programmierung Anhand des ersten Schatzes lässt sich das grundlegende Vorgehen leicht veranschaulichen: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere. Vorkurs Informatik 2 15

16 Anwendung von Dynamischer Programmierung Anhand des ersten Schatzes lässt sich das grundlegende Vorgehen leicht veranschaulichen: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere. Vorkurs Informatik 2 1

17 Anwendung von Dynamischer Programmierung Anhand des ersten Schatzes lässt sich das grundlegende Vorgehen leicht veranschaulichen: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. 12 Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere. Vorkurs Informatik 2 17

18 Anwendung von Dynamischer Programmierung Anhand des ersten Schatzes lässt sich das grundlegende Vorgehen leicht veranschaulichen: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere Vorkurs Informatik 2 18

19 Anwendung von Dynamischer Programmierung Bei nur einen Schatz: relativ komplizierter Algorithmus um alle Schatzkisten optimal mit einem Schatz zu füllen. Problem für alle Größen und nur einen Schatz gelöst Lösung auf der für die weiteren Schätze aufgebaut werden kann Vorkurs Informatik 2 19

20 Anwendung von Dynamischer Programmierung Nimmt man den nächstgrößeren Schatz dazu, so ist das Vorgehen exakt das gleiche: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere Vorkurs Informatik 2 2

21 Anwendung von Dynamischer Programmierung Nimmt man den nächstgrößeren Schatz dazu, so ist das Vorgehen exakt das gleiche: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere Vorkurs Informatik 2 21

22 Anwendung von Dynamischer Programmierung Nimmt man den nächstgrößeren Schatz dazu, so ist das Vorgehen exakt das gleiche: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere Vorkurs Informatik 2 22

23 Anwendung von Dynamischer Programmierung Nimmt man den nächstgrößeren Schatz dazu, so ist das Vorgehen exakt das gleiche: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere Vorkurs Informatik 2 23

24 Anwendung von Dynamischer Programmierung Nimmt man den nächstgrößeren Schatz dazu, so ist das Vorgehen exakt das gleiche: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere Vorkurs Informatik 2 24

25 Anwendung von Dynamischer Programmierung Nimmt man den nächstgrößeren Schatz dazu, so ist das Vorgehen exakt das gleiche: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere Vorkurs Informatik 2 25

26 Anwendung von Dynamischer Programmierung Nimmt man den nächstgrößeren Schatz dazu, so ist das Vorgehen exakt das gleiche: Lege den neuen Schatz der Reihe nach hinter die vorhandenen Schatzkisten (rot); beginne mit der kleinsten. Suche die Kiste mit folgender Länge: Länge der aktuellen Schatzkiste plus Länge des aktuellen Schatzes (blau) Vergleiche den Wert der beiden so gewählten Kisten Ist der Wert der Kiste mit dem neuen Schatz (rot) größer, fülle die andere Kiste (blau) wie erstere Vorkurs Informatik 2 2

27 Anwendung von Dynamischer Programmierung Bis zum Ende durchgeführt ergibt sich das folgende Bild. Problem für alle Größen und zwei Schätzen gelöst Lösung auf der für die weiteren Schätze aufgebaut werden kann Vorkurs Informatik 2 27

28 Anwendung von Dynamischer Programmierung Und auch beim Schatz mit der Länge vier muss man nicht umdenken Vorkurs Informatik 2 28

29 Anwendung von Dynamischer Programmierung Und auch beim Schatz mit der Länge vier muss man nicht umdenken Vorkurs Informatik 2 29

30 Anwendung von Dynamischer Programmierung Nachdem wir nun den Algorithmus auch mit dem dritten Schatz durchexerziert haben, sollte das Prinzip klar sein. Zeit sich die Frage zu stellen, ob das, was wir machen auch funktioniert Vorkurs Informatik 2 3

31 Dynamische Programmierung - Korrektheitsbeweis Die Korrektheit lässt sich per Induktion beweisen, d.h. wir zeigen die Korrektheit für den trivialen Fall (nur ein Schatz) und beweisen, dass die Behauptung sofern sie für n Schätze gilt auch für n+1 Schätze gilt. Vorgehen allgemein: Wir kombinieren immer den Inhalt einer bereits optimal gepackten Kiste A mit einem Schatz S, wofür wir eine Kiste B benötigen, deren Größe der Größe der Kiste A plus des Schatzes S entspricht. Für den Trivialfall (n = 1) ist die Korrektheit sofort zu sehen. Für n = n + 1 gibt es folgende Alternativen Man benötigt den neu hinzugekommenen Schatz S nicht, dann bleibt die Kiste, so wie sie ist, erhalten und damit weiterhin optimal. Benötigt man den neu hinzugekommenen Schatz, so ist in der neuen optimalen Kiste neben dem hinzugekommenen Schatz noch Platz für soviele Elemente, wie es sie auch in Kiste A gibt. Da Kiste A bereits optimal gefüllt war, muss also auch Kiste B optimal gefüllt sein. Vorkurs Informatik 2 31

32 Dynamische Programmierung - Ergebnis Nachdem die Korrektheit des Verfahrens bewiesen ist, können wir es auf die weiteren Schätze anwenden und erhalten das nebenstehende Ergebnis. Damit sind die optimalen Lösungen für alle Kisten gefunden Erstaunlich, dass in der Siegerkiste der Größe 12 ein Goldbarren eingepackt wurde, der auf den ersten Blick als kein vielversprechender Kandidat galt Vorkurs Informatik 2 32

33 Das Rucksackproblem - der Algorithmus Für den folgenden Algorithmus werden wie die eingangs vorgestellten Struktogramme verwenden. Dafür werden wir zwei Pfeile als Zeiger auf die aktuell betrachteten Kisten verwenden. Kiste A Kiste B Vorkurs Informatik 2 33

34 Das Rucksackproblem Struktogramm Nehme den kleinsten Schatz zur Hand Solange man noch einen Schatz in der Hand hält Setze Kiste A neben die Kiste mit Größe Solange Kiste A auf eine Kiste zeigt Lege den Schatz rechts an die Kiste, auf die Kiste A zeigt Lege Kiste B neben die Kiste, die so groß ist wie die neben Kiste A und dem Schatz zusammen Überprüfe, ob der Inhalt von Kiste A plus dem Schatz wertvoller ist als der Inhalt von Kiste B Wenn JA: Fülle Kiste B so, dass sie dem Inhalt von Kiste A plus dem Schatz entspricht Schiebe Kiste A um eine Position nach unten Lege den Schatz aus der Hand und nimm den nächst größeren Schatz in die Hand, falls es noch einen größeren gibt Vorkurs Informatik 2 34

35 Algorithmus Ja oder Nein? Ist das beschriebene Verfahren ein Algorithmus? Das Verfahren ist in einem endlichen Text durch ein Struktogramm beschrieben. Die Objekte der Berechnung sind die Kisten und Schätze. Die Operationen sind das Vergleichen und Füllen von Kisten. Die Reihenfolge der Operationen ist ebenfalls durch das Struktogramm festgelegt. Das Verfahren ist ein Algorithmus. Vorkurs Informatik 2 35

36 Laufzeit Vorkurs Informatik 2 3

37 Laufzeit Anzahl Schritte = Anzahl der Kisten * Anzahl der Schätze Vorkurs Informatik 2 37

38 Laufzeit Anzahl Schritte = Anzahl der Kisten * Anzahl der Schätze Beachte: "Fülle Kiste B so, dass sie dem Inhalt von Kiste A plus dem Schatz entspricht" (türkiser Block) könnte je nach Implementierung eine implizite Schleife beinhalten, sodass sogar eine kubische Laufzeit gegeben wäre Vorkurs Informatik 2 38

39 Vielen Dank für Ihre Aufmerksamkeit! Vorkurs Informatik 2 39

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 2 und 3 aus "Abenteuer Informatik"

Mehr

Konzepte der Informatik

Konzepte der Informatik Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Konzepte der Informatik Vorkurs Informatik zum WS 2013/2014 16.09. - 27.09.2013 Dr. Werner Struckmann / Hendrik Freytag 1. April 2010

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 17. Vorlesung Nächstes Paar Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Problem: Gegeben: Menge P von n Punkten in der Ebene, jeder Punkt

Mehr

Der Branching-Operator B

Der Branching-Operator B Branching 1 / 17 Der Branching-Operator B Unser Ziel: Löse das allgemeine Minimierungsproblem minimiere f (x), so dass Lösung(x). B zerlegt eine Menge von Lösungen in disjunkte Teilmengen. Die wiederholte

Mehr

Von Labyrinthen zu. Algorithmen

Von Labyrinthen zu. Algorithmen Von Labyrinthen zu 4 Gerald Futschek Charakterisierung Algorithmus Ein Algorithmus ist ein schrittweises Verfahren ist exakt beschrieben liefert nach endlich vielen Schritten das Ergebnis (terminiert)

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 9, Donnerstag 18. Dezember 2014 (Teile und Herrsche, Mastertheorem) Junior-Prof. Dr.

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking

Mehr

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme Approximationsalgorithmen für NP-harte Optimierungsprobleme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 18 Was tun mit NP-harten Problemen? Viele praxisrelevante

Mehr

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme Approximationsalgorithmen für NP-harte Optimierungsprobleme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 4. Januar 2011 Berthold Vöcking, Informatik 1 () Vorlesung

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 11. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] Das Rucksack-Problem Ein Dieb, der einen Safe

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2009 11. Vorlesung Uwe Quasthoff Universität Leipzig Institut für Informatik [email protected] Das Rucksack-Problem Ein Dieb, der einen

Mehr

1 Zahlentheorie. 1.1 Kongruenzen

1 Zahlentheorie. 1.1 Kongruenzen 3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern

Mehr

Greedy Algorithms - Gierige Algorithmen

Greedy Algorithms - Gierige Algorithmen Greedy Algorithms - Gierige Algorithmen Marius Burfey 23. Juni 2009 Inhaltsverzeichnis 1 Greedy Algorithms 1 2 Interval Scheduling - Ablaufplanung 2 2.1 Problembeschreibung....................... 2 2.2

Mehr

Algorithmen und Datenstrukturen I Grundlagen

Algorithmen und Datenstrukturen I Grundlagen Algorithmen und Datenstrukturen I Grundlagen Prof. Dr. Oliver Braun Letzte Änderung: 01.11.2017 14:15 Algorithmen und Datenstrukturen I, Grundlagen 1/24 Algorithmus es gibt keine präzise Definition Handlungsvorschrift

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel1 aus "Abenteuer Informatik" von Jens

Mehr

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Übersicht Greedy Algorithmen Einführung Aktivitäten-Auswahl-Problem Huffman Codierung Matthias Zwicker Universität Bern Frühling 2009 2 Greedy Algorithmen Entwurfsstrategie

Mehr

Komplexität von Algorithmen:

Komplexität von Algorithmen: Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine

Mehr

Konzepte der Informatik

Konzepte der Informatik Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Konzepte der Informatik Vorkurs Informatik zum WS 2012/2013 01.10. - 12.10.2012 Dr. Werner Struckmann / Tim Winkelmann Stark angelehnt

Mehr

Vom Leichtesten zum Schwersten Sortieralgorithmen

Vom Leichtesten zum Schwersten Sortieralgorithmen Aktivität 7 Vom Leichtesten zum Schwersten Sortieralgorithmen Zusammenfassung Häufig verwendet man Computer dazu Listen von Elementen in eine bestimmte Ordnung zu bringen. So kann man beispielsweise Namen

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

Algorithmen und Komplexität

Algorithmen und Komplexität Algorithmen und Komplexität Dynamische Programmierung Markus Ullrich Norbert Baum Fachbereich Informatik - IIb07 Hochschule Zittau/Görlitz 28. Mai 2009 1 / 29 Wie sieht es mit langen Ketten aus? A 1 A

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens [email protected] Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Problemreduktion durch Transformation am Beispiel des. Erweiterten Euklidschen Algorithmus

Problemreduktion durch Transformation am Beispiel des. Erweiterten Euklidschen Algorithmus Problemreduktion durch Transformation am Beispiel des Erweiterten Euklidschen Algorithmus Wolfgang Windsteiger JKU Linz, A 4040 Linz, Austria Kurzfassung Transformation beschreibt im Wesentlichen die algorithmische

Mehr

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien

Mehr

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin Kapitel 1 Einleitung 1.1. Begriff des Algorithmus Eine der ältesten Beschreibungstechniken für Abläufe: Benannt nach dem Mathematiker Al-Khwarizmi (ca. 780...840), der am Hof der Kalifen von Bagdad wirkte.

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Kapitel 2. Weitere Beispiele Effizienter Algorithmen Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 [email protected] 1 Kapitel 2 Algorithmische [email protected] 2 2. Algorithmische 1) Iterative Algorithmen 2) Rekursive Algorithmen

Mehr

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen

Mehr

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften

Mehr

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Text: Hinnerk van Bruinehsen - Grafiken: Jens Fischer powered by SDS.mint SoSe 2011 1 Teil

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510 Konvexe Hülle Definition konvexe Menge: Für je zwei beliebige Punkte, die zur Menge gehören, liegt auch stets deren Verbindungsstrecke ganz in der Menge. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links),

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Institut für Programmierung Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2016 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Schilda-Rallye Was steckt

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Dynamische Programmierung. Problemlösungsstrategie der Informatik als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 15.01.2015 INSTITUT FÜR THEORETISCHE 0 KIT 15.01.2015 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner

Mehr

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Sortieren durch Einfügen

Sortieren durch Einfügen Sortieren durch Einfügen Ein Algorithmus zum Informatikjahr 2006 Prof. Dr. W. Kowalk, Universität Oldenburg, [email protected] Schon wieder Aufräumen, dabei habe ich doch erst neulich Nun ja, wenn alles

Mehr

Algorithmen in Zellularautomaten

Algorithmen in Zellularautomaten Algorithmen in Zellularautomaten 9. Sortieren in zweidimensionalen ZA Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Sommersemester 2017 Ziele Problemstellung: Sortieren von

Mehr

Die Menge C der komplexen Zahlen wird im Kapitel Weitere Themen behandelt.

Die Menge C der komplexen Zahlen wird im Kapitel Weitere Themen behandelt. 1 1 Funktionen 1.1 Grundlegende Zahlenmengen Georg Cantor (1845-1918) hat den Begriff der Menge eingeführt. Man versteht darunter die Zusammenfassung einzelner Dinge, welche Elemente genannt werden, zu

Mehr

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen Willkommen zur Vorlesung Algorithmen und Datenstrukturen Mein Name: Andreas Berndt Zum Dozenten Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen Derzeitige Sprachen:

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Vorkurs Beweisführung

Vorkurs Beweisführung Vorkurs Beweisführung Fachschaft Mathematik und Informatik 30.08.2013 Agenda 1 Einleitung 2 Direkter Beweis 3 Widerspruchsbeweis 4 Vollständige Induktion 5 Aussagen widerlegen 6 Gleichheit von Mengen 7

Mehr

5. Bäume und Minimalgerüste

5. Bäume und Minimalgerüste 5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Gierige Algorithmen. Seminar Hallo Welt! für Fortgeschrittene. Jennifer Naumann. 11.Juni 2013

Gierige Algorithmen. Seminar Hallo Welt! für Fortgeschrittene. Jennifer Naumann. 11.Juni 2013 Gierige Algorithmen Seminar Hallo Welt! für Fortgeschrittene Jennifer Naumann 11.Juni 2013 Jennifer Naumann Gierige Algorithmen 11.Juni 2013 1 / 44 Übersicht 1 Einführung Definition Wann darf man gierige

Mehr

Theorieseminar Perlen der theoretischen Informatik

Theorieseminar Perlen der theoretischen Informatik Theorieseminar Perlen der theoretischen Informatik Wintersemester 29/ Steffen Lange Folie 29 Prof. Steffen Lange - HDa/FbI - Theorieseminar Organisatorisches! Fahrplan. Seminar (/* heute */) Vorstellung

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

3. Übungsblatt zu Algorithmen I im SoSe 2017 Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799

Mehr

Approximationsalgorithmen. 19. Dezember / 28

Approximationsalgorithmen. 19. Dezember / 28 Approximationsalgorithmen 19. Dezember 2017 1 / 28 Optimierungsprobleme Das Ziel: Bearbeite schwierige Optimierungsprobleme der Form opt y f (x, y) so dass L(x, y). Die Zielfunktion f (x, y) ist zu minimieren

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)

Mehr

2. Hausübung Algorithmen und Datenstrukturen

2. Hausübung Algorithmen und Datenstrukturen Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 7.4.009. Hausübung Algorithmen und Datenstrukturen Sommersemester 009 Abgabetermin: Montag, 04.05.009, 10:00 Uhr 1

Mehr

Universität des Saarlandes

Universität des Saarlandes Universität des Saarlandes FR 6.2 Informatik Prof. Dr. Kurt Mehlhorn WiSe 2015/2016 Übungen zu Ideen der Informatik http://www.mpi-inf.mpg.de/departments/algorithms-complexity/teaching/winter15/ideen/

Mehr

G. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen:

G. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen: lausthal Informatik II Divide & onquer. Zachmann lausthal University, ermany [email protected] Algorithmen-Design-Techniken Die wichtigsten Entwurfsverfahren für Algorithmen: 1. Divide and onquer

Mehr

Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt.

Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt. Abschätzung für die Rekursion von SELECT Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt. Wir nehmen erst einmal an, dass eine Konstante d existiert,

Mehr

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Datenstrukturen und Algorithmen 2. Klausur SS 2001 UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen)

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle

Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle Kapitel 9 Algorithm. Geometrie Kürzeste Abstände Konvexe Hülle Überblick Teilgebiet der Informatik, in dem es um die Entwicklung effizienter Algorithmen und die Bestimmung der algorithmischen Komplexität

Mehr

Inhalt. 8.1 Motivation. 8.2 Optimierung ohne Nebenbedingungen. 8.3 Optimierung unter Nebenbedingungen. 8.4 Lineare Programmierung

Inhalt. 8.1 Motivation. 8.2 Optimierung ohne Nebenbedingungen. 8.3 Optimierung unter Nebenbedingungen. 8.4 Lineare Programmierung 8. Optimierung Inhalt 8.1 Motivation 8.2 Optimierung ohne Nebenbedingungen 8.3 Optimierung unter Nebenbedingungen 8.4 Lineare Programmierung 8.5 Kombinatorische Optimierung 2 8.1 Motivation Viele Anwendungen

Mehr

Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11)

Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11) Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11) Hinweis: Dieses Übungsblatt enthält

Mehr

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2 Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale

Mehr

Schnelle Multiplikation

Schnelle Multiplikation Informationsblatt für die Lehrkraft Schnelle Multiplikation $&*&*& 999 3 x 3 =? 10001110 π/3 7 X 6 14 666 x 987 Informationsblatt für die Lehrkraft Thema: Schultyp: Vorkenntnisse: Bearbeitungsdauer: Schnelle

Mehr

Dynamische Programmierung

Dynamische Programmierung Dynamische Programmierung Hannes Schwarz - WS-06/07 [email protected] Getting Ready for the ACM Programming Contest Übersicht Übersicht Was ist dynamische Programmierung? Entwicklung eines

Mehr

Schnittebenenverfahren für das symmetrische

Schnittebenenverfahren für das symmetrische Schnittebenenverfahren für das symmetrische TSP Sebastian Peetz Mathematisches Institut Universität Bayreuth 19. Januar 2007 / Blockseminar Ganzzahlige Optimierung, Bayreuth Gliederung 1 Das symmetrische

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind

Mehr

Welche Probleme können Rechner (effizient) lösen? Die P = NP Frage. Ideen der Informatik Kurt Mehlhorn

Welche Probleme können Rechner (effizient) lösen? Die P = NP Frage. Ideen der Informatik Kurt Mehlhorn Welche Probleme können Rechner (effizient) lösen? Die P = NP Frage Ideen der Informatik Kurt Mehlhorn Gliederung Ziele von Theorie Gibt es Probleme, die man prinzipiell nicht mit einem Rechner lösen kann?

Mehr

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität)

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität) Über-/Rückblick Algorithmenbegriff: Berechenbarkeit Turing-Maschine RAM µ-rekursive Funktionen Zeit Platz Komplexität Algorithmentechniken Algorithmenanalyse (Berechnung der Komplexität) Rekursion Iteration

Mehr

Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei

Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei 7/7/ Das Rucksack-Problem Englisch: Knapsack Problem Das Problem: "Die Qual der Wahl" Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei Im Ladens

Mehr

5.4 Das Rucksackproblem

5.4 Das Rucksackproblem Problemstellung: 5.4 Das Rucksackproblem Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke b. Aufgabe: Packe die Objekte in einen Rucksack von Volumen

Mehr

Vorlesung. Vollständige Induktion 1

Vorlesung. Vollständige Induktion 1 WS 015/16 Vorlesung Vollständige Induktion 1 1 Einführung Bei der vollständigen Induktion handelt es sich um ein wichtiges mathematisches Beweisverfahren, mit dem man Aussagen, die für alle natürlichen

Mehr

Übungsblatt 5. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Übungsblatt 5. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 5 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 20. Dezember 2017 Abgabe 16. Januar 2018, 11:00 Uhr

Mehr

Relationen und DAGs, starker Zusammenhang

Relationen und DAGs, starker Zusammenhang Relationen und DAGs, starker Zusammenhang Anmerkung: Sei D = (V, E). Dann ist A V V eine Relation auf V. Sei andererseits R S S eine Relation auf S. Dann definiert D = (S, R) einen DAG. D.h. DAGs sind

Mehr

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I Vorname: Matrikelnummer: Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Jörn Müller-Quade 4. September 2017 Klausur Algorithmen I Aufgabe 1. Kleinaufgaben 15 Punkte Aufgabe

Mehr

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP Kap..1 Heuristiken Kap.. Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 3. VO DAP SS 008 14. Juli 009 Überblick

Mehr

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 23. VO DAP2 SS 2008 14. Juli 2009

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

Dynamisches Programmieren - Problemstruktur

Dynamisches Programmieren - Problemstruktur Dynamisches Programmieren - Problemstruktur Optimale Substruktur: Optimale Lösung enthält optimale Lösungen von Teilproblemen. Bsp.: Kürzester Weg im Graphen, LCS (s. etwa Folie 42 der letzten Vorlesung)

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Zahlentheorie, Arithmetik und Algebra II Benjamin Fischer Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Lineare Rekursion BigInteger Chinesischer

Mehr

Logik. Ernest Peter Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block Aussage

Logik. Ernest Peter Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block Aussage Logik Die Logik ist in der Programmierung sehr wichtig. Sie hilft z.b. bei der systematischen Behandlung von Verzweigungen und Schleifen. z.b. if (X Y und Y>0) then Oder beim Beweis, dass ein Algorithmus

Mehr

Schleifeninvarianten. Dezimal zu Binär

Schleifeninvarianten. Dezimal zu Binär Schleifeninvarianten Mit vollstandiger Induktion lasst sich auch die Korrektheit von Algorithmen nachweisen. Will man die Werte verfolgen, die die Variablen beim Ablauf eines Algorithmus annehmen, dann

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr

20. Dynamic Programming II

20. Dynamic Programming II 536 20. Dynamic Programming II Subset Sum Problem, Rucksackproblem, Greedy Algorithmus, Lösungen mit dynamischer Programmierung, FPTAS, Optimaler Suchbaum [Ottman/Widmayer, Kap. 7.2, 7.3, 5.7, Cormen et

Mehr

3. Diskrete Mathematik

3. Diskrete Mathematik Diophantos von Alexandria um 250 Georg Cantor 1845-1918 Pythagoras um 570 v. Chr Pierre de Fermat 1607/8-1665 Seite 1 Inhalt der Vorlesung Teil 3: Diskrete Mathematik 3.1 Zahlentheorie: Abzählbarkeit,

Mehr

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben Algorithmen und Algorithmisierung von Aufgaben 2-1 Algorithmisierung: Formulierung (Entwicklung, Wahl) der Algorithmen + symbolische Darstellung von Algorithmen Formalismen für die symbolische Darstellung

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

2.6 Asymptotische Approximation: Min Binpacking

2.6 Asymptotische Approximation: Min Binpacking 2.6 Asymptotische Approximation: Min Binpacking In diesem Abschnitt geht es die Erscheinung, dass manche Optimierungsprobleme Approximationsalgorithmen haben, die nur für Inputs x mit groÿem Wert m (x)

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

Mehr