Optimierung. Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen. Vorgehen: Dynamische Programmierung

Größe: px
Ab Seite anzeigen:

Download "Optimierung. Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen. Vorgehen: Dynamische Programmierung"

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 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

Mehr

Wiederholung. Divide & Conquer Strategie

Wiederholung. 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

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer

Mehr

Dynamische Programmierung

Dynamische 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

Mehr

Theoretische Informatik III (Winter 2018/19) Prof. Dr. Ulrich Hertrampf. Noch einmal TSP

Theoretische 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

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

ADS: Algorithmen und Datenstrukturen 2

ADS: 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:

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: 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

Mehr

19. Dynamic Programming I

19. 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.

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

19. Dynamic Programming I

19. 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.

Mehr

Top-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy

Top-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

Mehr

Kombinatorische Optimierung

Kombinatorische 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

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbä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

Mehr

Dynamische Programmierung II

Dynamische 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

Mehr

Das Problem des Handlungsreisenden

Das 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

Mehr

Dynamische Programmierung

Dynamische 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

Mehr

19. Dynamic Programming I

19. 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.

Mehr

Formulierung mittels Dynamischer Programmierung

Formulierung 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

Mehr

Algebraische und arithmetische Algorithmen

Algebraische 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

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: 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,

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: 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,

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

Rückblick: divide and conquer

Rü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

Mehr

Informatik II: Algorithmen und Datenstrukturen SS 2013

Informatik 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

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: 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

Mehr

Algebraische und arithmetische Algorithmen

Algebraische 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

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

Satz 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 Σ ). 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.

Mehr

Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen

Algorithmik 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

Mehr

19. Dynamic Programming I

19. 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,

Mehr

Schriftlicher Test zu C (90 Minuten) VU Einführung ins Programmieren für TM. 1. Oktober 2012

Schriftlicher 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

Mehr

21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3

21. 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

Mehr

12.4 Traveling Salesman Problem

12.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

Mehr

Kap. 3: Exakte Lösungsverfahren für NPschwierige. Optimierungsprobleme VO Algorithm Engineering

Kap. 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

Mehr

Proseminar Effiziente Algorithmen

Proseminar 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

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen 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

Mehr

Arithmetik und Algebra

Arithmetik 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 Ü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

Mehr

12. Rekursion Grundlagen der Programmierung 1 (Java)

12. 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

Mehr

Entwurf und Analyse von Algorithmen

Entwurf 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

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen 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

Mehr

1 Einführung. 2 Grundlagen von Algorithmen. 3 Grundlagen von Datenstrukturen. 4 Grundlagen der Korrektheit von Algorithmen

1 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

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen 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

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 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

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

11 Dynamisches Programmieren

11 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

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische 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

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente 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)

Mehr

Kombinatorische Optimierung Vorlesung für den Bereich Diplom/Master Informatik

Kombinatorische 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

Mehr

Probleme aus NP und die polynomielle Reduktion

Probleme 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

Mehr

Diskrete Optimierungsverfahren zur Lösung von Sudokus

Diskrete 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

Mehr

2 Rationale und reelle Zahlen

2 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

Mehr

Algorithmische Graphentheorie

Algorithmische 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

Mehr

Informatik II, SS 2016

Informatik 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:

Mehr

KLAUSUR ZUR LINEAREN ALGEBRA I MUSTERLÖSUNG

KLAUSUR 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

Mehr

Projekt Systementwicklung

Projekt Systementwicklung Projekt Systementwicklung Effiziente Codierung: Laufzeitoptimierung Prof. Dr. Nikolaus Wulff Effiziente Codierung Der Wunsch effizienten Code zu schreiben entstammt mehreren Quellen: Zielplattformen mit

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen 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

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

Algorithmen und Datenstrukturen in der Bioinformatik Erstes Übungsblatt WS 05/06 Musterlösung

Algorithmen 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

Ü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

Dynamische Optimierung

Dynamische 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............

Mehr

Grundlagen 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 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

Ü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

Mehr

A = ( 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

A = ( 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

Mehr

Grundlagen 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 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

Ü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

Vortrag 20: Kurze Vektoren in Gittern

Vortrag 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

Mehr

Klammersprache Definiere

Klammersprache 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

Mehr

6. Übung zur Linearen Optimierung SS08

6. Ü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

Mehr

2. Optimierungsprobleme 6

2. 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

Mehr

Randomisierte Algorithmen

Randomisierte 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

Mehr

KAPITEL 6 GANZZAHLIGE OPTIMIERUNG UND VOLLSTÄNDIG UNIMODULARE MATRIZEN

KAPITEL 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

Mehr

Theoretische Informatik 1

Theoretische 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

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

11. Übung Algorithmen I

11. Ü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

Mehr

Grundlagen der Algorithmen und Datenstrukturen Kapitel 12

Grundlagen 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

Mehr

4.5 Überbestimmte Gleichungssysteme, Gauß sche Ausgleichrechnung

4.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

Mehr

Formale Grundlagen der Informatik F3: Berechenbarkeit un

Formale 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

Mehr

Wenn 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,

Wenn 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

Mehr

Effizienz von Algorithmen

Effizienz 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.

Mehr

Diskrete Strukturen. Abgabetermin: 20. September 2011, 14 Uhr in die DS Briefkästen

Diskrete 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

Mehr

Algorithmen und Datenstrukturen Laufzeitabschätzung

Algorithmen 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,

Mehr

Schulmethode zur Multiplikation von n-stelligen Binärzahlen a und b: (evtl. fallen Zeilen weg, wenn das zugehörige Bit des Multiplikators 0 ist).

Schulmethode 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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:

Mehr

Die 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 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

Mehr

Multiplikation von Matrizen

Multiplikation 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

Mehr

Die Klasse NP und die polynomielle Reduktion

Die 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

Mehr

lineare Programmierung

lineare 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!

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45

Am 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

Mehr

Informatik I Übung, Woche 47: Nachtrag zur dynamischen Programmierung

Informatik 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

Mehr

Experimente. Zahlenbeispiel. Cache-Optimale Algorithmen. Warum Funktionieren Caches? Cache-Oblivious Speichermodell. Characterisierung von Caches

Experimente. 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

Mehr

Vektoren und Matrizen

Vektoren 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