Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei
|
|
- Kerstin Fiedler
- vor 7 Jahren
- Abrufe
Transkript
1 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 findet er n egenstände; der i-te egenstand hat den Wert v i und das ewicht w i Sein Rucksack kann höchstens das ewicht c tragen w i und c sind ganze Zahlen (v i können aus sein) Welche egenstände sollten für den maximalen Profit gewählt werden?. Zachmann Informatik - SS Dynamische Programmierung 8 Beispiel Rucksack = = 8 = Fazit: Keine gute Strategie ist es, das Objekt mit bestem Profit/ewicht als erstes zu wählen. Zachmann Informatik - SS Dynamische Programmierung
2 7/7/ Fractional Knapsack Problem: Dieb kann Teile der egenstände mitnehmen Lösungsalgo später (reedy-strategie) --Knapsack-Problem: Binäre Entscheidung zwischen und : jeder egenstand wird vollständig genommen oder gar nicht Formale Problemstellung: x i = / : egenstand i ist (nicht) im Rucksack. Zachmann Informatik - SS Dynamische Programmierung Rekursive Lösung Betrachte den ersten egenstand i=; zwei Möglichkeiten:. Der egenstand wird in Rucksack gepackt (x =); Rest-Problem:. Der egenstand wird nicht in Rucksack gepackt (x =); Rest-Problem: Berechne beide Fälle, wähle den besseren. Zachmann Informatik - SS Dynamische Programmierung
3 7/7/ Knotenbeschriftung: vorhandene Kapazität Wert c Objekt c c - w v c c - w v c - w v c - w - w v + v c c - w v c - w v c - w - w v + v. Zachmann Informatik - SS Dynamische Programmierung Sei V(i,k) der maximal mögliche Wert für die egenstände i, i+,, n bei gegebener max. Kapazität k V(i,k) kann dann für i n geschrieben werden als. Zachmann Informatik - SS Dynamische Programmierung
4 7/7/ Algorithmus, basierend auf diesen Fällen, hat Laufzeit von O( n ) Ist ineffizient, denn V(i,k) wird für die gleichen i und k mehrmals berechnet Beispiel: n = 5, c =, w = (,,, 5, ), v = (,, 5,, ) V(,) V(,) V(,8) V(,) V(,8) V(,8) V(,) gleiches Unterproblem. Zachmann Informatik - SS Dynamische Programmierung Lösung mittels Dynamischer Programmierung Ineffizienz kann vermieden werden, indem alle V(i,k), einmal berechnet, in einer Tabelle gespeichert werden Die Tabelle wird in der Reihenfolge i = n, n-,,, für k c gefüllt k j- j j+ c V(n, k) v n v n v n j ist das erste k mit w n k. Zachmann Informatik - SS Dynamische Programmierung 5
5 7/7/ Beispiel n = 5, c =, w = (,,, 5, ), v = (, (,, 5,, ) i k Zachmann Informatik - SS Dynamische Programmierung n = 5, c =, w = (,,, 5, ), v = (,, 5,, ) x = [,,,,] oder x = [,,,,] i k Zachmann Informatik - SS Dynamische Programmierung 7 5
6 7/7/ Bemerkungen Aufwand: O(n c), c = Kapazität des Rucksacks Achtung: dieser Algorithmus klappt nur, wenn c und die w i Integers sind! Falls c oder die w i keine Integers sind, dann ist das Problem "NPvollständig", und es gibt (wahrscheinlich) keinen polynomiellen Algorithmus. Zachmann Informatik - SS Dynamische Programmierung 8 Längste gemeinsame Teilfolge Seien X = (x,, x m ) und Y = (y,, y n ) zwei Folgen, wobei x i, y i A für ein endliches Alphabet A, dann heißt Y Teilfolge von X, wenn es aufsteigend sortierte Indizes i,, i n gibt, mit x ij = y j für j =,, n Beispiel: Y = BA ist Teilfolge von X = ABAAB, wähle (i, i, i, i ) = (,,5,7) Sind X, Y, Z Folgen über A, so heißt Z gemeinsame Teilfolge von X und Y, wenn Z Teilfolge sowohl von X als auch Y ist Beispiel: Z = BA ist gemeinsame Teilfolge von X = ABAAB und Y = BAABB. Zachmann Informatik - SS Dynamische Programmierung
7 7/7/ Z heißt längste gemeinsame Teilfolge von X und Y, wenn Z gemeinsame Teilfolge von X und Y ist und es keine andere gemeinsame Teilfolge von X und Y gibt, die größere Länge als Z besitzt Beispiel: Z = BA ist nicht längste gemeinsame Teilfolge von X =ABAAB und Y = BAABB, denn BAA ist eine längere gemeinsame Teilfolge von X und Y Beim Problem Längste-emeinsame-Teilfolge (longest-commonsubsequence problem, LSP) sind als Eingabe zwei Folgen X = (x,, x m ) und Y = (y,, y n ) gegeben, gesucht ist eine längste gemeinsame Teilfolge X und Y Anwendung: "Distanz" zwischen Strings messen z.b.: DNA-Analyse, "ungefährer" String-Vergleich. Zachmann Informatik - SS Dynamische Programmierung 5 Naïver Algorithmus Für jede mögliche Unterfolge von X: prüfe ob es eine Unterfolge von Y ist Laufzeit: Θ(n m ) Es gibt m mögliche Unterfolgen von X zu überprüfen Für jede Unterfolge wird Zeit Θ(n) benötigt, um Y zu überprüfen: - "scanne" Y, "verbrauche" jeweils den nächsten Buchstaben von X, falls er passt - X ist Unterfolge von Y, wenn am Ende von Y kein Zeichen von X mehr übrig ist. Zachmann Informatik - SS Dynamische Programmierung 5 7
8 7/7/ Struktur des LSP Definition: sei X = (x,, x m ) eine beliebige Folge, für i =,,, m ist der i-te Präfix von X definiert als X i = (x,, x i ). Der i-te Präfix von X besteht also aus den ersten i Symbolen von X, der -te Präfix ist die leere Folge. Satz: seien X = (x,, x m ) und Y = (y,, y n ) beliebige Folgen und sei Z = (z,, z k ) eine längste gemeinsame Teilfolge von X und Y, dann gilt:. ist x m = y n, dann ist z k = x m = y n und Z k- ist eine längste gemeinsame Teilfolge von X m- und Y n-. ist x m y n und z k x m, dann ist Z eine längste gemeinsame Teilfolge von X m- und Y. ist x m y n und z k y n, dann ist Z eine längste gemeinsame Teilfolge von X und Y n-. Zachmann Informatik - SS Dynamische Programmierung 5 Beweis Fall (x m = y n ): Jede gemeinsame Teilfolge Z', die nicht mit z ' l = x m = y n endet, kann verlängert werden, indem x m = y n angefügt wird die LS Z muß mit x m = y n enden Z k- ist längste gemeinsame Teilfolge von X m- und Y n-, denn es gibt keine längere gemeinsame Teilfolge von X m- und Y n-, oder Z wäre keine längste gemeinsame Teilfolge Fall (x m y n und z k x m ): Da Z nicht mit x m endet Z ist gemeinsame Teilfolge von X m- und Y und daher keine längere gemeinsame Teilfolge von X m- und Y, oder Z wäre keine längste gemeinsame Teilfolge. Zachmann Informatik - SS Dynamische Programmierung 5 8
9 7/7/ Rekursion für Länge von LS Lemma: Sei c[i,j] die Länge einer längsten gemeinsamen Teilfolge des i-ten Präfix X i von X und des j-ten Präfix Y j von Y, dann gilt Beobachtung: rekursive Berechnung der c[m,n] würde immer wieder zur Berechnung derselben Werte führen berechnen daher die Werte c[i,j] iterativ "von unten nach oben", z.b. zeilenweise b[i,j] speichert Informationen zur späteren Konstruktion einer längsten gemeinsamen Teilfolge. Zachmann Informatik - SS Dynamische Programmierung 5 Beispiel c[springtime, printing] c[springtim, printing] c[springtime, printin] c[springti, printing] c[springtim, printin] c[springtim, printin] c[springtime, printi] c[springt, printing] c[springti, printin] c[springtim, printi] c[springtime, print]. Zachmann Informatik - SS Dynamische Programmierung 55
10 7/7/ Berechnung der Werte c[i,j] def lcs_length( x,y ): for i in range(, len(x) ): c[i,] = for j in range(, len(y) ): c[,y] = for i in range(, len(x) ): for j in range(, len(y) ): if x[i] = y[j]: c[i,j] = c[i-,j-]+ b[i,j] = NW else: if c[i-,j] >= c[i,j-]: c[i,j] = c[i-,j] b[i,j] = N else: c[i,j] = c[i,j-] b[i,j] = W return b,c. Zachmann Informatik - SS Dynamische Programmierung 5 Beispieltabellen c[i,j] und b[i,j] j 5 i y j B D A B A x i A B B 5 D A 7 B b c. Zachmann Informatik - SS Dynamische Programmierung 57
11 7/7/ Laufzeiten Lemma: der Algorithmus lcs_length hat die Laufzeit O(nm), wenn die Folgen X, Y die Längen n und m haben.. Zachmann Informatik - SS Dynamische Programmierung 58 Verwandte Probleme Es gibt viele Probleme, die sehr ähnlich zum LSP sind Editier-Distanz (anderes Maß für den Abstand/Distanz er Strings): egeben Strings A, B Aufgabe: welches ist die minimale Folge von elementaren Editieroperationen, um A in B zu überführen? Zugelassene Operationen: Zeichen löschen, einfügen, ersetzen Approximative Stringsuche: egeben Text T und String S Finde dasjenige Teilstück T[i:j], das am ähnlichsten zu S ist (von allen anderen Teilstücken T[i':j']) Anwendungen: DNA-Sequence-Alignment, u.a.. Zachmann Informatik - SS Dynamische Programmierung
12 7/7/ Memoisierung (Top-down-Ansatz) "Memo" = edächtnis Üblicherweise ist Formulierung der optimalen Lösung rekursiv, aber Algorithmus geht bottom-up vor Memoization [sic] = Technik in der dynamischen Programmierung, falls Bottom-up-Ansatz nicht klar Notizblock-Methode zur Beschleunigung einer rekursiven Problemlösung: Algo bleibt rekursiv Ein Teilproblem wird nur beim ersten Auftreten gelöst Die Lösung wird in einer Tabelle gespeichert und bei jedem späteren Auftreten desselben Teilproblems (d.h., rekursiver Aufruf mit denselben Parametern) wird die Lösung (ohne erneute Rechnung!) in der Tabelle nachgesehen. Zachmann Informatik - SS Dynamische Programmierung Beispiel: MMP mittels Memoisierung def mcm_mem_rek( p,i,j ): if i = j: return if m[i,j] < : # check first, return m[i,j] # if already computed for k in range( i,j ): q = p[i-]*p[k]*p[j] + mcm_rek(p,i,k) + \ mcm_rek(p,k+,j) if q < m[i,j]: m[i,j] = q return m[i,j] def mcm_mem( p ): for i in range(, len(p)+ ): for j in range(, len(p)+ ): m = # z.b. 787 return mcm_mem_rek( p,,len(p)- ). Zachmann Informatik - SS Dynamische Programmierung
13 7/7/ Aufwand Behauptung: Zur Berechnung aller Einträge m[i,j] mit Hilfe von mcm_mem_rek genügen insgesamt O(n ) Schritte Beweis: O(n ) Einträge jedes Element m[i,j] wird einmal eingetragen jeder Eintrag m[i,j] wird zur Berechnung von weniger als n weiteren Einträgen m[i',j'] herangezogen, wobei i = i' j < j' oder i > i' j= j' Bemerkungen zum MMP Es gibt einen Algorithmus mit linearer Laufzeit O(n), der eine Klammerung mit Multiplikationsaufwand.55. M opt findet Es gibt einen Algorithmus mit Laufzeit O(n log n), der eine optimale Klammerung findet j n i n. Zachmann Informatik - SS Dynamische Programmierung Zusammenfassung Dynamische Programmierung = Algorithmenentwurfstechnik, die oft bei Optimierungsproblemen angewandt wird Man muß eine Menge von Entscheidungen treffen, die Bedingungen unterliegen, um eine optimale (min/max) Lösung zu erlangen Es kann verschiedenen Lösungswege geben Allgemein einsetzbar bei rekursiven Verfahren, wenn Teillösungen (von Unterproblemen) mehrfach benötigt werden Lösungsansatz: Tabellieren von Teilergebnissen Vorteil: Laufzeitverbesserungen, oft polynomiell statt exponentiell. Zachmann Informatik - SS Dynamische Programmierung
14 7/7/ Zwei verschiedene Ansätze Bottom-up + kontrollierte effiziente Tabellenverwaltung, spart Zeit + spezielle optimierte Berechnungsreihenfolge, spart Platz - weitgehende Umcodierung des Originalprogramms erforderlich - möglicherweise Berechnung nicht benötigter Werte Top-down (Memoisierung, Notizblockmethode) + Originalprogramm wird nur gering oder nicht verändert + nur tatsächlich benötigte Werte werden berechnet - eventuell unnötige rekursive Aufrufe - Tabellengröße oft nicht optimal. Zachmann Informatik - SS Dynamische Programmierung 5
0 i = n w n > k v n. V (i +1,k), max v i + V (i +1,k w i )
Sei V(i,k) der maximal mögliche Wert für die egenstände i, i+1,, n bei gegebener max. Kapazität k V(i,k) kann dann für i n geschrieben werden als i = n w n > k v n V (i, k) = V (i +1,k) V (i +1,k), max
MehrInformatik II Dynamische Programmierung
/9/ lausthal Informatik II Dynamische Programmierung. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Zweite Technik für den Algorithmenentwurf Zur Herkunft des Begriffes: " Programmierung"
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.
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.
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
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
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,
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
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
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.
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
MehrInformatik II Greedy-Algorithmen
lausthal Informatik II reedy-algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Erinnerung: Dynamische Programmierung Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:
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
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
Mehr6. Algorithmen auf Zeichenketten
6. Algorithmen auf Zeichenketten Motivation Wir lernen nun Algorithmen zur Lösung verschiedener elementarer Probleme auf Zeichenketten zu lösen Zeichenketten spielen eine wichtige Rolle in diversen Gebieten
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
MehrG. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen:
lausthal Informatik II Divide & onquer. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Algorithmen-Design-Techniken Die wichtigsten Entwurfsverfahren für Algorithmen: 1. Divide and onquer
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit
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)
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
MehrAlgorithmen I - Tutorium 28 Nr. 12
Algorithmen I - Tutorium 28 Nr. 12 20.07.2017: Spaß mit Dynamischer und Linearer Programmierung Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN
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
MehrSuchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz
Suchen in Texten Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz Textsuche Gegeben ist ein Zeichensatz (Alphabet) Σ. Für einen Text T Σ n und
MehrDynamische Programmierung
Dynamische Programmierung Manuel Grandeit Hallo Welt -Seminar 28.06.2011 Manuel Grandeit 1 / 40 Inhaltsübersicht Einführung Münzwechsel Was ist ein Zustand? Konstruktion einer DP-Lösung Top-Down-DP Bottom-Up-DP
Mehr3.3 Optimale binäre Suchbäume
3.3 Optimale binäre Suchbäume Problem 3.3.1. Sei S eine Menge von Schlüsseln aus einem endlichen, linear geordneten Universum U, S = {a 1,,...,a n } U und S = n N. Wir wollen S in einem binären Suchbaum
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
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
MehrInformatik II Greedy-Algorithmen
7/7/06 lausthal Erinnerung: Dynamische Programmierung Informatik II reedy-algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:
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
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
MehrEinführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung Sebastian Küpper Redundanz Rekursiver Lösungen Rekursion kann elegante Bescheibungen zur Problemlösung ergeben
MehrKapitel 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Übersicht. 1 Einführung. 2 Suchen und Sortieren. 3 Graphalgorithmen. 4 Algorithmische Geometrie. 5 Textalgorithmen. 6 Paradigmen
Übersicht 1 Einführung 2 Suchen und Sortieren 3 Graphalgorithmen 4 Algorithmische Geometrie 5 6 Paradigmen Übersicht 5 Editdistanz (Folie 446, Seite 83 im Skript) Eingabe: Zwei Strings v und w Frage: Kommt
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:
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
MehrEffiziente Algorithmen 2
Effiziente Algorithmen 2 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
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
MehrAlgorithmen 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
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
MehrDynamische Programmierung
Dynamische Programmierung Hannes Schwarz - WS-06/07 Hannes.Schwarz@uni-konstanz.de Getting Ready for the ACM Programming Contest Übersicht Übersicht Was ist dynamische Programmierung? Entwicklung eines
MehrAlgorithmen auf Sequenzen
Algorithmen auf Sequenzen Fehlertolerante Mustersuche: Distanz- und Ähnlichkeitsmaße Sven Rahmann Genominformatik Universitätsklinikum Essen Universität Duisburg-Essen Universitätsallianz Ruhr Einführung
MehrDatenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Geometrisches Problem: Problem: Nächstes Paar Eingabe: n Punkte in der Ebene Ausgabe: Das Paar q,r mit geringstem Abstand
MehrZunächst ein paar einfache "Rechen"-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt:
Der Groß-O-Kalkül Zunächst ein paar einfache "Rechen"-Regeln: G. Zachmann Informatik 1 - WS 05/06 Komplexität 22 Additionsregel Lemma, Teil 1: Für beliebige Funktionen f und g gilt: Zu beweisen: nur das
MehrAlgorithmische Bioinformatik 1
Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
MehrAchtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass
Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik
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
MehrInformatik I Komplexität von Algorithmen
Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
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
MehrInformatik II Precomputation
lausthal Informatik II Precomputation. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Definitionen Preconditioning (Vorbehandlung): Aufgabe: löse nacheinander mehrere Probleme, die einen
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 21 (11.7.2018) String Matching (Textsuche) II Greedy Algorithmen I Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Mariano Zelke Datenstrukturen 2/19 Das Teilfolgenproblem: Algorithmus A 3 A 3 (i, j bestimmt den Wert einer maximalen Teilfolge für a i,..., a j. (1 Wenn
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
MehrWann sind Codes eindeutig entschlüsselbar?
Wann sind Codes eindeutig entschlüsselbar? Definition Suffix Sei C ein Code. Ein Folge s {0, 1} heißt Suffix in C falls 1 c i, c j C : c i = c j s oder 2 c C und einen Suffix s in C: s = cs oder 3 c C
MehrIdeen der Informatik Ein Rundgang durch die Komplexität [Was geht? Was geht schwer? Was geht gar nicht?]
Ideen der Informatik Ein Rundgang durch die Komplexität [Was geht? Was geht schwer? Was geht gar nicht?] Kurt Mehlhorn Adrian Neumann Folien von Kosta Panagiotou Plan für Heute Komplexitätsklassen P =
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
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 17.01.013 Parametrisierte Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
MehrKlausur Informatik 2: Algorithmen und Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!
Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Klausur Informatik 2: Algorithmen und Datenstrukturen Donnerstag, 9. März 21, 2017, 9:00 bis 12.00 Uhr Name:.....................................................................
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
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 19 (27.6.2018) Dynamische Programmierung III Algorithmen und Komplexität Dynamische Programmierung DP Rekursion + Memoization Memoize:
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2007 11. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen Safe
MehrBucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt.
Bucketsort Beispiel Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt 1 2 A.78.17 0 1 B.12.17 Sonst: Skalieren ( Aufwand O(n) ) 3.39 2.21.23.26 Idee:
MehrEingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt
Bucketsort Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt Sonst: Skalieren ( Aufwand O(n) ) Idee: Teile [0, 1) in n gleich große Buckets - Oder: n/k
Mehr1.3 Knuth-Morris-Pratt-Algorithmus
1.3 Knuth-Morris-Pratt-Algorithmus Präprozessing bestimmt längste Ränder der Präfixe von P Die Kenntnis der Ränder erspart Vergleiche bei periodischen Suchwörtern Laufzeit: Θ(m) für das Präprozessing,
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2009 11. Vorlesung Uwe Quasthoff Universität Leipzig Institut für Informatik quasthoff@informatik.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen
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:
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 18 (25.6.2018) Dynamische Programmierung II Algorithmen und Komplexität Fibonacci Zahlen Definition der Fibonacci Zahlen F 0, F 1, F 2,
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 9. Vorlesung Peter Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Invertierte Listen Nutzung vor allem zur Textsuche
MehrKontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Wortproblem: der CYK-Algorithmus Pumping Lemma für kontextfreie Sprachen
MehrGierige Algorithmen Interval Scheduling
Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} 7. j i 8. return A Gierige Algorithmen Interval Scheduling Beweisidee:
MehrHallo Welt für Fortgeschrittene
Hallo Welt für Fortgeschrittene Dynamische Programmierung Thomas Karmann 4. Juni 2010 1 / 36 Übersicht Einführung Definition Anwendung Funktionsweise Grundlagen Memoisation Top-Down Bottom-Up Grenzen Anwendungsbeispiele
Mehr2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017
2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel
MehrDatenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Klausur Wichtige Hinweise: 2.7.07, Beginn 9 Uhr Bitte spätestens 8:4 Uhr vor Ort sein Sporthalle + Audimax Informationen
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 22 (20.7.2016) Greedy Algorithmen - Datenkompression Algorithmen und Komplexität Greedy Algorithmen Greedy Algorithmen sind eine Algorithmenmethode,
MehrAlgorithmen und Datenstrukturen in der Bioinformatik Zweites Übungsblatt WS 05/06 Musterlösung
Johanna Ploog, Konstantin Clemens Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Zweites
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 25. Vorlesung Dynamisches Programmieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Klausurvorbereitung Tipp: Schreiben Sie sich alle Fragen
MehrRange-Search. Operationen: Welche Datenstrukturen sind geeignet? Arrays? Listen? AVL-Bäume? Splay-Bäume?
Algorithmische Geometrie Die Technik der Sweepline Range-Search (Folie 431, Seite 79 im Skript) Operationen: 1 Einfügen einer Zahl x 2 Löschen einer Zahl x 3 Ausgabe aller gespeicherter Zahlen in [a, b]
MehrDas Rucksackproblem: schwache NP-Härte und Approximation
Das Rucksackproblem: schwache NP-Härte und Approximation Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1. Februar 2010 Berthold Vöcking, Informatik 1 () Vorlesung
MehrC G C C G C. Löschen von Knoten. Beispiel: Löschen von k =
Löschen von Knoten Beispiel: Löschen von k = 8 14 8 2 11 17 9 26 Informatik 2 SS 1 Beispiel: Löschen von k = 8 14 8 2 11 17 26 Informatik 2 SS 1 9 1 1 Beispiel: Löschen von k = 8-1 14 11 2 17 9 26 Informatik
MehrKlausur Algorithmen und Datenstrukturen II 01. Agust 2016
Technische Universität Braunschweig Sommersemester 2016 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen und Datenstrukturen
Mehr2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung
2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0
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
Mehr20. 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Übung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci
MehrApproximationsalgorithmen. 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
Mehr1.5 Boyer-Moore-Algorithmus
1.5 Boyer-Moore-Algorithmus Suche nach Vorkommen von P in T von links nach rechts. In einer Phase erfolgen Vergleiche von rechts nach links. Verschiebungsheuristiken: Bad Character und Good Suffix. Laufzeit:
MehrDas Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt
Divide and Conquer Das Divide - and - Conquer Prinzip Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt 2 Quicksort: Sortieren durch Teilen
Mehr2.2 Der Algorithmus von Knuth, Morris und Pratt
Suchen in Texten 2.1 Grundlagen Ein Alphabet ist eine endliche Menge von Symbolen. Bsp.: Σ a, b, c,..., z, Σ 0, 1, Σ A, C, G, T. Wörter über Σ sind endliche Folgen von Symbolen aus Σ. Wörter werden manchmal
MehrVoronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :
MehrStud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern
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,
MehrEin sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.
2.5 Suchen Eine Menge S will nach einem Element durchsucht werden. Die Menge S ist statisch und S = n. S ist Teilmenge eines Universums auf dem eine lineare Ordnung definiert ist und soll so gespeichert
MehrGierige 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
Mehr11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P
11 Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P 11 Woche: Turingmaschinen, Entscheidbarkeit, P 239/ 333 Einführung in die NP-Vollständigkeitstheorie
Mehr