Optimierung. Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen. Vorgehen: Dynamische Programmierung
|
|
- Timo Lang
- vor 7 Jahren
- Abrufe
Transkript
1 Optimierung Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen Optimierung I Dynamisches Programmieren Günther Greiner Lehrstuhl für Graphische Datenverarbeitung Sommersemester 8 G. Greiner, U. Rüde FAU Erlangen-Nürnberg Optimierung ist ein Grundproblem der Informatik Diskrete Optimierung Diskrete Variablen (z.b. binär, ganzzahlig) Endlich viele Zustände zu durchsuchen Enge Beziehungen zu diskreten Strukturen, wie Bäumen, Graphen, Kontinuierliche Optimierung Kontinuierliche Variablen Unbeschränkte vs. Optimierung mit Nebenbedingungen Enge Verwandtschaft zur Nullstellensuche Bei dynamischen Systemen: Optimalsteuerung - Bezüge zur Regelungstechnik G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg Diskrete Optimierung: Dynamisches Programmieren Im Gegensatz zu Divide-and-Conquer eine Bottom-Up- Methode Idee - um ein Problem der Größe n zu optimieren: Erstelle eine Tabelle, in der alle relevanten Probleme der Größe,,,..., n- gelöst werden Greife auf diese Teil-Lösungen zurück um das Größe-n-Problem zu optimieren. Oft eingesetzt zur Optimierung Wenn Lösungen aus kleineren Teil-Lösungen zusammengesetzt Name ist historisch bedingt -- heißt eigentlich nichts anderes als tabellenbasierter Algorithmus. Rekursion mit Memorieren der Teillösungen Vermeidung von Mehrfachberechnungen Vorgehen: Dynamische Programmierung Charakterisiere den Lösungsraum Definiere rekursiv, wie sich eine optimale Lösung aus kleineren zusammensetzt Konzipiere den Algorithmus bottom-up, so dass tabellarisch optimale Teillösungen für aufsteigende Problemgrößen gefunden werden Dabei wird jeweils auf die schon existierenden Teillösungen zurückgegriffen. Wir studieren das Verfahren der dynamischen Programmierung anhand von Beispielen. Als erstes kommen wir zum Problem der Matrix-Kettenmultiplikation zurück. G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg
2 Matrizen-Kettenmultiplikation Beispiel zum Dynamischen Programmieren: Matrizen-Kettenmultiplikation Gegeben seien n Matrizen M, M,..., M n, die miteinander multipliziert werden sollen Dimensionen unterschiedlich: M : p p, M : p p,..., M n : p n- p n Aufwand für eine Multiplikation einer p q mit einer q r Matrix ist p q r (Mult+Add). Gesamtaufwand hängt stark von der assoziativen Klammerung ab: Beispiel: M :, M :, M : (M M ) M kostet + = Operationen M (M M ) kostet + = Operationen G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg Matrizen-Kettenmultiplikation Naiver Algorithmus: Durchprobieren aller Klammerungen Wie viele Möglichkeiten gibt es, ein Produkt mit n Faktoren zu klammern? Die Anzahl ist durch die Catalanschen Zahlen C n gegeben. Die Folge beginnt mit den Zahlen,,,,,, 9,, 8, 79,... Catalansche Zahlen Anzahl der Triangulierungen eines konvexen Polygons C = C = Herleitung siehe z.b. U. Schöning: Algorithmik, Spektrum Verlag,. Durchprobieren hat exponentielle Komplexität - ist also für größere n ungeeignet. C = G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg 7 G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg 8
3 Matrizen-Kettenmultiplikation Definiere m(i,j) - die minimale Zahl von Multiplikationen, mit der man bei optimaler Klammerung das Teilprodukt M i... M j mit der Dimensionsfolge p i-, p i,..., p j berechnen kann. Es gilt m(i,i) =. Nehmen wir an, die optimale (äußere) Klammerung des Produkts M i... M j sei (M i... M k ) (M k+... M j ) mit i k < j. Es gilt dann m(i, j) = min (m(i, k) + m(k+, j) + p i- p k p j : i k<j ) Optimaler Aufwand: Rekursionsformel Im Algorithmus verwenden wir deshalb eine Tabelle (d.h einen D- array) m(i,j), von dem allerdings nur das obere Dreieck benötigt wird. Algorithmus errechnet die Tabellenwerte (i, j) in der Reihenfolge j-i =,,,..., n- und unter Verwendung der bereits errechneten Tabelleneinträge. G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg 9 G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg Algorithmus for i=,..., n: m[i,i]= for r=,..., n-: for i=,..., n-r: j= i+r m[i,j] = for k= i,..., j-: q= m[i,k] + m[k+,j] + p[i-]*p[k]*p[j] if q < m [i,j] then m[i,j]= q Am Ende steht in m[,n] die optimale Anzahl an Operationen Die optimale Klammerung kann man bestimmen, in dem man sich bei jedem Tabelleneintrag zusätzlich merkt, für welches k das Minimum zu Stande kam. Algorithmus for i=..n: m[i,i]= for r=..n-: for i=..n-r: j= i+r r= r= r= r=n- m[i,j] = for k= i..j-: q= m[i,k] + m[k+,j] + p[i-i]*p[k]*p[j] if q < m [i,j] then m[i,j]= q m ij = min(m ik +m k+j +p i- *p k *p j i<=k<j) i= n-r G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg
4 Algorithmus for i=..n: m[i,i]= for r=..n-: for i=..n-r: j= i+r m[i,j] = for k= i..j-: q= m[i,k] + m[k+,j] + p[i-i]*p[k]*p[j] if q < m [i,j] then m[i,j]= q m ij = min(m ik +m k+j +p i- *p k *p j i<=k<j) r= r= Algorithmus for i=..n: m[i,i]= for r=..n-: for i=..n-r: j= i+r r= r= r= m ij = min(m ik +m k+j +p i- *p k *p j i<=k<j) r= r= G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg Beispiel Matrizenmultiplikation M : x M : x M : x M : x M : x (p i )= (,,,,, ) G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg 7 m Komplexität Aufwand = O((Größe der Tabelle) (Aufwand pro Eintrag)). Hier konkret: O(n n) = O(n ) Vergleich mit dem Aufwand, wenn man die Rekursionsformel direkt in einen Divide-et-Impera-Algorithmus umsetzt: Proc mat(i,j) if i=j then return else r= for k=i to j- q= mat(i,k) + mat(k+,j) + p i- * p k * p j if q < r then r= q return r Hier werden innerhalb der Rekursion wiederholt die gleichen Optimierungsprobleme gelöst, deshalb wächst der Aufwand exponentiell. G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg 8
5 Traveling Sales Person (TSP) Beispiel zum Dynamischen Programmieren: Traveling Salesperson Das Problem des Handlungsreisenden: Ein berühmtes NP-vollständiges Problem der Informatik Problem: Finde die optimale Rundreise durch n gegebene Städte, so dass jede Stadt genau einmal besucht wird, und die zurückgelegte Strecke (oder Kosten, oder Zeit) minimal wird. Entfernungstabelle m i,j ist Nicht notwendig symmetrisch, Erfüllt nicht unbedingt die Dreiecksungleichung, Kann Einträge von haben. Gesucht also eine Permutation G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg 9 G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg Traveling Sales Person (TSP) Es kann (wegen der -Einträge) durchaus vorkommen, dass keine Lösung existiert. Ein naiver Algorithmus würde alle Permutationen durchspielen, also Komplexität O(n!) - also sehr schnell exponentiell wachsend. Da es ein NP-vollständiges Problem ist, können wir nicht erwarten, dass wir (wie bei der Kettenmultiplikation) einen polynomialen Algorithmus finden. Trotzdem kann man den naiven Algorithmus mit Hilfe der dynamischen Programmierung wesentlich verbessern. TSP - Beispiellösung zufällig plazierte Städte im Einheitsquadrat. Kostenfunktion: Euklidische Entfernung Lösung mit heuristischem Verfahren bestimmt. Optimalität nicht sichergestellt G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg
6 Dynamische Programmierung für das TSP-Problem Grundidee: Wenn eine optimale Rundreise (obda) bei Stadt beginnt und dann die Stadt k besucht, dann muss der Weg von k zurück nach durch die Städte {,..., n} - {k} ebenfalls optimal sein. Deshalb sei g(i,s) die Länge des kürzesten Weges, der bei der Stadt i beginnt, dann durch jede Stadt der Menge S genau einmal geht, um dann bei Stadt zu enden. Dynamische Programmierung für das TSP-Problem for i=,..., n do: g[i, ] = m i, for k=,..., n-: for S, S =k, S: for i {,..., n} \ S: Berechne g[i,s] nach obiger Formel. Berechne g[,{,..., n}] nach obiger Formel. G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg TSP Beispiel () TSP Beispiel () Hannover Berlin Frankfurt Nürnberg München G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg 8
7 TSP Beispiel () TSP Beispiel () G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg 9 G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg Dynamische Programmierung für das TSP-Problem Komplexität = O((Größe Tabelle) (Aufwand pro Eintrag)). Hier konkret: O(n n n) = O(n n ) Der Aufwand ist immer noch exponentiell (darüber sollten wir uns nicht wundern), aber weniger schnell anwachsend exponentiell als im naiven Algorithmus Die optimale Tour erhält man, wenn man mitverfolgt, über welche Minimumsbildung die Tabelle aufgebaut wurde. Man beachte, wie der Aufwand mit größeren n wächst. Beispiel zum Dynamischen Programmieren: Rucksackproblem G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg
8 Das /-Rucksackproblem Eingabe: n+ Zahlen: v,..., v n : Wert von n Objekten g,..., g n : Gewicht der n Objekte G: Größe des Rucksacks Gesucht: ein Vektor (a,..., a n ) aus -en und -en, so dass Dynamische Programmierung: Rucksackproblem Wenn der Rucksack der Größe G mit einer Auswahl I {,..., n} optimal gepackt ist, so gilt für jedes i I, dass ein (G-g i )-großer Rucksack optimal mit einer Auswahl aus den Objekten {,,..., n}-{i} gepackt ist, wenn man die Auswahl I-{i} annimmt. Sei w(i,h) der optimale Wert beim Packen eines Rucksacks h G mit einer Auswahl der Objekte,..., i; i n, also Wir suchen nach einem Optimalitätsprinzip, das uns einen Ansatz mit dynamischer Programmierung erlaubt G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg Algorithmus für das Rucksackproblem Beispiel - Rucksackproblem Reihenfolge g ν oder for i=,..., n: for h=,..., G: Berechne w[i,h] nach obiger Formel Die optimale Auswahl ergibt sich wiederum daraus, welcher Fall bei der Berechnung der w[n,g] jeweils aufgetreten ist. Komplexität = O((Größe der Tabelle) (Aufwand pro Eintrag)). Hier konkret: O(n G) O() = O(nG) G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg 7
9 Beispiel - Rucksackproblem Zusammenfassung: Dynamische Programmierung g ν Dynamische Programmierung ist ein nützliches Prinzip um diskrete Optimierungsprobleme zu lösen Grundprinzip: Rekursion bottom-up Memorieren, d.h. Speichern der Zwischenergebnisse in einer Tabelle Implementierung: Bottom-up-Aufbau der Tabelle. G= :, g = ν = G=7 :,, g = 7 ν = G= :,,, g = 8 ν = G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg 8 G. Greiner, U. Rüde Algorithmik III, Sommer 8 FAU Erlangen-Nürnberg 9
Algorithmen und Datenstrukturen 1 Kapitel 3
Algorithmen und Datenstrukturen 1 Kapitel 3 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 3.6 Dynamische Programmierung Die rekursive Problemzerlegung kann
MehrWiederholung. Divide & Conquer Strategie
Wiederholung Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n 2 ) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer
MehrDynamische Programmierung
Dynamische Programmierung Julian Brost 11. Juni 2013 Julian Brost Dynamische Programmierung 11. Juni 2013 1 / 39 Gliederung 1 Was ist dynamische Programmierung? Top-Down-DP Bottom-Up-DP 2 Matrix-Kettenmultiplikation
MehrTheoretische Informatik III (Winter 2018/19) Prof. Dr. Ulrich Hertrampf. Noch einmal TSP
Noch einmal TSP Wir hatten das TSP-Problem (Problem der Handlungsreisenden) schon als Beispiel für die Branch-and-Bound Methode kennengelernt. Nun wollen wir noch einen zweiten Algorithmus angeben, der
Mehr5.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
MehrADS: Algorithmen und Datenstrukturen 2
.. ADS: Algorithmen und Datenstrukturen 2 8. Vorlesung Uwe Quasthoff Abteilung Automatische Sprachverarbeitung Institut für Informatik Universität Leipzig 6. Juni 2012 1 / 25 Editier-Distanz Beobachtungen:
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 8 Gerhard Heyer, Florian Holz unter Verwendung der Materialien der letzten Jahre Abteilung Automatische Sprachverarbeitung Institut für Informatik Universität
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrAlgorithmen 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
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrTop-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy
2.2 Entwurfsparadigmen Top-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy 1 Top-Down Zerlege das gegebene Problem in Teilschritte Zerlege Teilschritte
MehrKombinatorische Optimierung
Kombinatorische Optimierung Zuweisungsprobleme 2 1 3 5 4 Kombinatorische Optimierung Rucksackpackproblem 1 10 2 4 6 3 5 8 6 Aufspannende Bäume Travelling Salesman VLSI Design C. Kanzow, M. Gerdts Kombinatorische
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
MehrDynamische Programmierung II
Vorlesungstermin 10: Dynamische Programmierung II Markus Püschel David Steurer talks2.dsteurer.org/dp2.pdf Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich Plan für heute Dynamische Programmierung
MehrDas Problem des Handlungsreisenden
Seite 1 Das Problem des Handlungsreisenden Abbildung 1: Alle möglichen Rundreisen für 4 Städte Das TSP-Problem tritt in der Praxis in vielen Anwendungen als Teilproblem auf. Hierzu gehören z.b. Optimierungsprobleme
MehrDynamische Programmierung
Dynamische Programmierung Claudia Gerhold 9.5.6 Claudia Gerhold Dynamische Programmierung 9.5.6 / 4 Agenda Einführung Dynamische Programmierung Top-Down Ansatz mit Memoization Bottom-Up Ansatz 3 Anwendungsbeispiele
Mehr19. Dynamic Programming I
502 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrFormulierung mittels Dynamischer Programmierung
Formulierung mittels Dynamischer Programmierung Beobachtung: die Anzahl der Teilprobleme A i j n mit i j n ist nur Folgerung: der naïve rekursive Algo berechnet viele Teilprobleme mehrfach! Idee: Bottom-up-Berechnung
MehrAlgebraische und arithmetische Algorithmen
Kapitel 1 Algebraische und arithmetische Algorithmen 1.1 Das algebraische Berechnungsmodell Struktur: Körper (oder Ring) mit den Operationen +,,, (/) Eingabe: endliche Folge von Zahlen Ausgabe: endliche
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 10 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 13. Juni 2018 [Letzte Aktualisierung: 12/06/2018,
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 9 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 06. Juni 2018 [Letzte Aktualisierung: 06/07/2018,
MehrDatenstrukturen & 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
MehrRückblick: divide and conquer
Rückblick: divide and conquer pi = (xi,yi) } p å } ' }d(p,p) p ''=min(, ') F 0/0 p./95 weitere Algorithmentechniken Greedy-Algorithmen dynamische Programmierung Backtracking branch and bound Heuristiken
MehrInformatik II: Algorithmen und Datenstrukturen SS 2013
Informatik II: Algorithmen und Datenstrukturen SS 2013 Vorlesung 11b, Mittwoch, 3. Juli 2013 (Editierdistanz, dynamische Programmierung) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil XI Peter F Stadler & Konstantin Klemm Bioinformatics Group, Dept of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 16
MehrAlgebraische und arithmetische Algorithmen
Kapitel 1 Algebraische und arithmetische Algorithmen 1.1 Das algebraische Berechnungsmodell Struktur: Körper (oder Ring) mit den Operationen +,,, (/) Eingabe: endliche Folge von Zahlen Ausgabe: endliche
MehrTheoretische 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
MehrSatz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ).
Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ). Beweis: Für jedes a Σ muss jede Position in der Tabelle nur konstant oft besucht werden.
MehrAlgorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen
Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen Rekonstruktion kontinuierlicher Daten Interpolation multivariater Daten Ulrich Rüde Lehrstuhl für Systemsimulation Sommersemester
Mehr19. Dynamic Programming I
Fibonacci Zahlen 9. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixettenmultipliation, Matrixmultipliation nach Strassen [Ottman/Widmayer,
MehrSchriftlicher Test zu C (90 Minuten) VU Einführung ins Programmieren für TM. 1. Oktober 2012
Familienname: Vorname: Matrikelnummer: Aufgabe 1 (2 Punkte): Aufgabe 2 (3 Punkte): Aufgabe 3 (2 Punkte): Aufgabe 4 (3 Punkte): Aufgabe 5 (2 Punkte): Aufgabe 6 (1 Punkte): Aufgabe 7 (2 Punkte): Aufgabe
Mehr21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3
581 21. Greedy Algorithmen Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3 Aktivitäten Auswahl 582 Koordination von Aktivitäten, die gemeinsame Resource exklusiv
Mehr12.4 Traveling Salesman Problem
96 KOMBINATORISCHE SUCHE.4 Traveling Salesman Problem Definition.3(TSP, Problem des Handlungsreisenden): Wir betrachten einen gerichteten, gewichteten Graphen G = (V,E) mit K : V R. K({u,v}) sind die Kosten
MehrKap. 3: Exakte Lösungsverfahren für NPschwierige. Optimierungsprobleme VO Algorithm Engineering
Kap. 3: Exakte Lösungsverfahren für NPschwierige kombinatorische Optimierungsprobleme VO Algorithm Engineering 3.1 Einführung Professor Dr. Petra Mutzel 3.2 Komb. vs. Ganzzahlige Opt. Lehrstuhl für Algorithm
MehrProseminar Effiziente Algorithmen
Proseminar Effiziente Algorithmen Kapitel 9: Divide & Conquer und Prof. Dr. Christian Scheideler WS 218 Generische Optimierungsverfahren: Systematische Suche lass nichts aus Divide and Conquer löse das
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 05 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute Einführung Grundlagen von Algorithmen Grundlagen
MehrArithmetik und Algebra
Willkommen Gliederung "Hallo Welt!" für Fortgeschrittene Friedrich-Alexander-Universität Erlangen-Nürnberg Institut für Informatik Lehrstuhl 2 7. Juni 2005 Willkommen Gliederung Gliederung 1 Repräsentation
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft
Mehr12. Rekursion Grundlagen der Programmierung 1 (Java)
12. Rekursion Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 24. Januar 2006 Einordnung im Kontext der Vorlesung
MehrEntwurf und Analyse von Algorithmen
Entwurf und Analyse von Algorithmen (5. Sem 2VO MAT.319 & 1 UE MAT.320 // 3VU 716.325) VO/UE/VU: Oswin Aichholzer UE/VU: Birgit Vogtenhuber Institut für Softwaretechnologie Entwurf 22nd European und Analyse
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute Einführung Grundlagen von Algorithmen
Mehr1 Einführung. 2 Grundlagen von Algorithmen. 3 Grundlagen von Datenstrukturen. 4 Grundlagen der Korrektheit von Algorithmen
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Einführung Grundlagen von Algorithmen Grundlagen
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen
MehrApproximationsalgorithmen 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
MehrApproximationsalgorithmen 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
MehrAlgorithmen 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
MehrDynamische 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
Mehr11 Dynamisches Programmieren
Algorithmen und Datenstrukturen 279 11 Dynamisches Programmieren Gegenstand dieses und des nächsten Kapitels sind noch einmal Algorithmen. Zunächst beschreiben wir das sog. dynamische Programmieren. kein
MehrAlgorithmische Methoden zur Netzwerkanalyse
Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische
MehrEffiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra
Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)
MehrKombinatorische Optimierung Vorlesung für den Bereich Diplom/Master Informatik
Kombinatorische Optimierung Vorlesung für den Bereich Diplom/Master Informatik Dozent: Juniorprof. Dr. Henning Meyerhenke PARALLELES RECHNEN INSTITUT FÜR THEORETISCHE INFORMATIK, FAKULTÄT FÜR INFORMATIK
MehrProbleme aus NP und die polynomielle Reduktion
Probleme aus NP und die polynomielle Reduktion Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 15. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
MehrDiskrete Optimierungsverfahren zur Lösung von Sudokus
Diskrete Optimierungsverfahren zur Lösung von Sudokus Seminarvortrag von Daniel Scholz am 6. Dezember 2006 Am Beispiel der Lösung von Sudokurätseln mit Hilfe der linearen Optimierung werden verschiedenen
Mehr2 Rationale und reelle Zahlen
2 reelle Es gibt Mathematik mit Grenzwert (Analysis) und Mathematik ohne Grenzwert (z.b Algebra). Grenzwerte existieren sicher nur dann, wenn der Zahlbereich vollständig ist, also keine Lücken aufweist
MehrAlgorithmische Graphentheorie
Algorithmische Graphentheorie Sommersemester 2016 2. Vorlesung Rundreiseprobleme Teil II Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Übersicht I) Eulerkreise III) Handlungsreisende II) Hamiltonkreise
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 21 (15.7.2016) String Matching (Textsuche) Approximate String Matching Algorithmen und Komplexität Textsuche / String Matching Gegeben:
MehrKLAUSUR ZUR LINEAREN ALGEBRA I MUSTERLÖSUNG
KLAUSUR ZUR LINEAREN ALGEBRA I Wiederholungsprüfung MUSTERLÖSUNG. April 2008 Name: Studiengang: Aufgabe 2 3 4 5 6 Summe Punktzahl /50 Allgemeine Hinweise: Bitte schreiben Sie Ihre Lösungen jeweils unter
MehrProjekt Systementwicklung
Projekt Systementwicklung Effiziente Codierung: Laufzeitoptimierung Prof. Dr. Nikolaus Wulff Effiziente Codierung Der Wunsch effizienten Code zu schreiben entstammt mehreren Quellen: Zielplattformen mit
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8
MehrDynamisches 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)
MehrAlgorithmen und Datenstrukturen in der Bioinformatik Erstes Übungsblatt WS 05/06 Musterlösung
Konstantin Clemens Johanna Ploog Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Erstes
MehrÜ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
MehrDynamische Optimierung
Dynamische Optimierung Mike Hüftle 28. Juli 2006 Inhaltsverzeichnis 1 Einleitung 2 1.1.................................... 2 2 Dynamisches Optimierungmodell 3 2.1 Grundmodell der dynamischen Optimierung............
MehrGrundlagen Theoretischer Informatik 3 SoSe 2012 in Trier. Henning Fernau Universität Trier
Grundlagen Theoretischer Informatik 3 SoSe 2012 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Harte Probleme Sind harte Probleme stets NP-hart? Vermutlich nein... Klassisches Beispiel:
MehrÜbungen zur Vorlesung Datenstrukturen und Algorithmen SS 07 Beispiellösung Blatt 5
Kamil Swierkot Paderborn, den 01.06.2007 Aufgabe 17 Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 07 Beispiellösung Blatt 5 Bei der Optimierungsvariante des SubSetSum Problems wird bei der Eingabe
MehrA = ( a 1,..., a n ) ii) Zwei Matrizen sind gleich, wenn die Einträge an den gleichen Positionen übereinstimmen. so heißt die n n Matrix
Matrizen Definition: i Eine m n Matrix A ist ein rechteckiges Schema aus Zahlen, mit m Zeilen und n Spalten: a a 2 a n a 2 a 22 a 2n a m a m2 a mn Die Spaltenvektoren dieser Matrix seien mit a,, a n bezeichnet
MehrGrundlagen Theoretischer Informatik 3 SoSe 2012 in Trier. Henning Fernau Universität Trier
Grundlagen Theoretischer Informatik 3 SoSe 2012 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Zum Umgang mit NP-harten Problemen In manchen Anwendungen ist das garantierte Auffinden exakter
MehrÜ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
MehrKap. 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
MehrVortrag 20: Kurze Vektoren in Gittern
Seminar: Wie genau ist ungefähr Vortrag 20: Kurze Vektoren in Gittern Kerstin Bauer Sommerakademie Görlitz, 2007 Definition und Problembeschreibung Definition: Gitter Seien b 1,,b k Q n. Dann heißt die
MehrKlammersprache Definiere
Klammersprache w=w 1...w n {(,)}* heißt korrekt geklammert, falls die Anzahl ( ist gleich der Anzahl ). in jedem Anfangsstück w 1,...,w i (i n) ist die Anzahl ( nicht kleiner als die Anzahl ). Definiere
Mehr6. Übung zur Linearen Optimierung SS08
6 Übung zur Linearen Optimierung SS08 1 Sei G = (V, E) ein schlichter ungerichteter Graph mit n Ecken und m Kanten Für eine Ecke v V heißt die Zahl der Kanten (u, v) E Grad der Ecke (a) Ist die Anzahl
Mehr2. Optimierungsprobleme 6
6 2. Beispiele... 7... 8 2.3 Konvexe Mengen und Funktionen... 9 2.4 Konvexe Optimierungsprobleme... 0 2. Beispiele 7- Ein (NP-)Optimierungsproblem P 0 ist wie folgt definiert Jede Instanz I P 0 hat einen
MehrRandomisierte Algorithmen
Randomisierte Algorithmen Randomisierte Algorithmen 5. Zwei spieltheoretische Aspekte Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2015/2016 1 / 36 Überblick
MehrKAPITEL 6 GANZZAHLIGE OPTIMIERUNG UND VOLLSTÄNDIG UNIMODULARE MATRIZEN
KPITEL 6 GNZZHLIGE OPTIMIERUNG UND VOLLSTÄNDIG UNIMODULRE MTRIZEN F. VLLENTIN,. GUNDERT. Ganzzahlige lineare Programme Viele Optimierungsprobleme des Operations Research lassen sich als ganzzahlige lineare
MehrTheoretische Informatik 1
Theoretische Informatik 1 Approximierbarkeit David Kappel Institut für Grundlagen der Informationsverarbeitung Technische Universität Graz 02.07.2015 Übersicht Das Problem des Handelsreisenden TSP EUCLIDEAN-TSP
MehrEin 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
Mehr11. Übung Algorithmen I
Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
MehrGrundlagen der Algorithmen und Datenstrukturen Kapitel 12
Grundlagen der Algorithmen und Datenstrukturen Kapitel 12 Christian Scheideler + Helmut Seidl SS 2009 28.06.09 Kapitel 12 1 Generische Optimierungsverfahren Techniken: Systematische Suche lass nichts aus
Mehr4.5 Überbestimmte Gleichungssysteme, Gauß sche Ausgleichrechnung
4.5 Überbestimmte Gleichungssysteme, Gauß sche Ausgleichrechnung In vielen Anwendungen treten lineare Gleichungssysteme auf, die eine unterschiedliche Anzahl von Gleichungen und Unbekannten besitzen: Ax
MehrFormale Grundlagen der Informatik F3: Berechenbarkeit un
Formale Grundlagen der Informatik F3: Berechenbarkeit und Komplexität Fachbereich Informatik AB Theoretische Grundlagen der Informatik (TGI) Universität Hamburg farwer@informatik.uni-hamburg.de 14. Dezember
MehrWenn wir zudem a ii = 1 für 1 i n setzen, dann gilt für A k (boolesches Produkt, A 0 = I) 0 falls es im Graphen keinen Pfad von v i nach v j,
6.2 Boolesche Matrixmultiplikation und Transitive Hülle Wir ersetzen nun im vorhergehenden Abschnitt die Distanzmatrix durch die (boolesche) Adjazenzmatrix und (min, +) durch (, ), d.h.: n C = A B; c ij
MehrEffizienz von Algorithmen
Effizienz von Algorithmen Letzte Bearbeitung: Jan 211 Ein wichtiger Aspekt bei Algorithmen sind seine "Kosten". Wir wollen uns hier ausschließlich mit der Laufzeit des gewählten Algorithmus beschäftigen.
MehrDiskrete Strukturen. Abgabetermin: 20. September 2011, 14 Uhr in die DS Briefkästen
Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Prof. Dr. Ernst W. Mayr Dr. Werner Meixner Sommersemester 2011 Übungsblatt 5 12. September 2011 Diskrete Strukturen
MehrAlgorithmen und Datenstrukturen Laufzeitabschätzung
Algorithmen und Datenstrukturen Laufzeitabschätzung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren, Suchen,
MehrSchulmethode zur Multiplikation von n-stelligen Binärzahlen a und b: (evtl. fallen Zeilen weg, wenn das zugehörige Bit des Multiplikators 0 ist).
4-1 4. Algorithmen auf Zahlen Themen: Multiplikation von binären Zahlen Matrixmultiplikation 4.1 Multiplikation ganzer Zahlen Schulmethode zur Multiplikation von n-stelligen Binärzahlen a und b: n=8: aaaaaaaa
MehrAlgorithmen und Datenstrukturen
Technische Universität München SoSe 2017 Fakultät für Informatik, I-16 Lösungsblatt 4 Dr. Stefanie Demirci 31. Mai 2017 Rüdiger Göbl, Mai Bui Algorithmen und Datenstrukturen Aufgabe 1 Komplexität Berechnung
MehrStud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 15 P Hinweise: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 26. Vorlesung Greedy- und Approximationsalgorithmen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Operations Research Optimierung für Wirtschaftsabläufe:
MehrDie Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen
Die Klasse NP und die polynomielle Reduktion Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 26 Optimierungsprobleme und ihre Entscheidungsvariante Beim Rucksackproblem
MehrMultiplikation von Matrizen
Multiplikation von Matrizen Die Regeln der Multiplikation von Zahlen können nicht direkt auf die Multiplikation von Matrizen übertragen werden. 2-E Ma Lubov Vassilevskaya Multiplikation ccvon Matrizen
MehrDie Klasse NP und die polynomielle Reduktion
Die Klasse NP und die polynomielle Reduktion Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Dezember 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
Mehrlineare Programmierung
lineare Programmierung Viele Probleme sind durch lineare Gleichungssysteme charakterisiert lineare Programmiermethoden Der Lösungsraum ist häufig auf ganze Zahlen oder gar natürliche Zahlen eingeschränkt!
MehrAm Dienstag, den 16. Dezember, ist Eulenfest. 1/45
Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009
MehrInformatik I Übung, Woche 47: Nachtrag zur dynamischen Programmierung
Informatik I Übung, Woche 47: Nachtrag zur dynamischen Programmierung Giuseppe Accaputo 20. November, 2015 : Definition : Unser Rucksack kann nur 20 kg tragen, wir wollen jedoch den Wert der Ware, welche
MehrExperimente. Zahlenbeispiel. Cache-Optimale Algorithmen. Warum Funktionieren Caches? Cache-Oblivious Speichermodell. Characterisierung von Caches
M=10 9, B=10 6 Zahlenbeispiel Für c=1/7 folgt daraus Experimente 20 Millionen Operationen auf Priority Queue mit verschiedenen Implementierungen Datenstrukturen ohne Rücksicht auf Paging-Effekte (Fibonacci
MehrVektoren und Matrizen
Vektoren und Matrizen Einführung: Wie wir gesehen haben, trägt der R 2, also die Menge aller Zahlenpaare, eine Körperstruktur mit der Multiplikation (a + bi(c + di ac bd + (ad + bci Man kann jedoch zeigen,
Mehr