Algorithmen und Datenstrukturen 1 Kapitel 3
|
|
- Erwin Julius Schubert
- vor 7 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen 1 Kapitel 3 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006
2 3.6 Dynamische Programmierung Die rekursive Problemzerlegung kann an mehreren Stellen auf das gleiche Teilproblem führen. Dann sollte dessen Lösung gespeichert werden, um sie wieder zu verwenden statt neu zu berechnen.
3 Gedankenlose Wiederberechnnung führt meistens zu exponentieller Explosion: E B G A A braucht B, C, D, B braucht E, C, usw. D 8 Probleme werden gelöst, C F wenn G, C, H, F, tabelliert werden. H
4 E G A B C C G G H H F H D F H Problemzerlegung ohne Tabellierung: G wird 3 mal H wird 4 mal gelöst. A, B, D müssen nicht tabelliert werden.
5 Schema der Dynamischen Programmierung: Rekursion + Tabellierung Aspekte: Wie wird Problem zerlegt? Welche Teillösungen werden tabelliert? Wie organisiert man die Tabellierung? Berechnungs-Reihenfolge der Tabellen?
6 Es genügt, zu jedem Teilproblem eine optimale Lösung zu speichern, wenn folgendes Prinzip gilt Bellman s Optimalitätsprinzip Eine optimale Lösung hat stets eine Zerlegung in optimale Teilprobleme. Offensichtlich ist dieses Prinzip für die Kettenmultiplikation von Matrizen erfüllt.
7 Zwei Möglichkeiten zur Organisation der Berechnung: Top-Down: Rekursive Zerlegung, vom Gesamtproblem ausgehend. Tabellierung von Teillösungen bei erster Berechnung. Bottom-Up: Es werden die einfachsten Teillösungen auf Vorrat berechnet, danach die zusammengesetzten... bis zum Gesamtergebnis.
8 Beispiel zur Wirkung der Tabellierung: Fibonacci-Zahlen Berechne: fib(1) = 1 (1) fib(2) = 1 (2) fib(n) = fib(n 1) + fib(n 2) für n > 2 (3)
9 Zählen wir die Aufrufe von fib zur Berechnung von fib(n): A[ fib(1) ] = 1 (4) A[ fib(2) ] = 1 (5) A[ fib(3) ] = 2 (6) A[ fib(4) ] = 5 (7) allgemein: A[ fib(n) ] = 1 + A[ fib(n 1) ] + A[ fib(n 2) ](8) Daraus folgt: A[ fib(n) ] > fib(n)
10 Aufgabe: Mit B[ fib(n) ] berechnen wir die Anzahl der Aufrufe der Basisfälle fib(1) und fib(2) in der rekursiven Berechnung von fib(n). Wie verhält sich B[ fib(n) ] verglichen mit fib(n)?
11 Berechnung von Tabelle F mit F (i) = fib(i) F (1) = 1 (9) F (2) = 1 (10) F (n) = F (n 1) + F (n 2) für n > 2. (11) Für i = 1, 2,..., n wird F (n) in n Schritten berechnet.
12 Bottom-Up versus Top-Down Die tabellierende Berechnung beginnt mit F (1). Die rekursive Berechnung beginnt mit dem Aufruf fib(n). fib und F haben die gleiche rekursive Definition. Nur die Reihenfolge garantiert, dass kleine Probleme bereits tabelliert vorliegen, wenn größere sie als Teillösungen brauchen.
13 Verbesserung: Wenn F (n) berechnet ist, kann man hier F (1)... F (n 2) vergessen. Statt der Tabelle reichen 2 Vorgängerwerte. Oder eine Funktion mit Gedächtnis...
14 fastfib(n) = fst (twofib(n)) (12) fst(x, y) = x (13) twofib(1) = (1, 1) (14) twofib(n) = (b, a + b) where (15) (a, b) = twofib(n 1)
15 Beispiel: Schnelle Matrizenmultiplikation in Ketten Erinnerung: A m,n B n,r = C m,r n c ij = a ik b kj k=1 A[ A m,n B n,r ] = n r k
16 Matrix-Kette: M 1 M 2 M 3 M K mit Dimension (d 0, d 1 ), (d 1, d 2 )... (d K 1, d K ) Matrix-Multiplikation ist assoziativ (A B) C = A (B C) der Aufwand hängt jedoch von der Klammerung ab, da Zwischenergebnisse unterschiedlicher Dimension anfallen.
17 10 50 A B C. (A. B). C A.(B. C) C 10 A B. C 50 A. B A. B. C
18 Rechnung (A B) C Rechnung A (B C) = = Der Rechenweg (A B) C ist hier deutlich schneller. Problem der Matrix-Kettenmultiplikation: Bestimme optimalen Aufwand und Klammerung für Matrixkette M 1 M K. Wir suchen zunächst den optimalen Aufwand.
19 Rekursive Lösung: Der Gesamtaufwand zerlegt sich gemäß der letzten Multiplikation: A[ (M 1... M s ) (M s+1... M K ) ] = (16) A[ M 1 M s ] + A[ M s+1 M K ] + d s 1 d s d s+1
20 Minimal ist der Aufwand dann, 1 wenn die Teilprodukte optimal berechnet werden, 2 wenn der Punkt der letzten Multiplikation (s) optimal gewählt wurde. (1) bedeutet einfach wohlfundierte Rekursion (2) hier müssen wir über alle Punkte s optimieren.
21 Rekursive Bestimmung des Aufwands: w(i,i) = 0 für i=1...k (17) w(i,j) = d i 1 d i d i+1 für j=i+1 (18) w(i,j) = min[d i 1 d s d j +w(i,s)+w(s+1,j) s [i...j 1]] (19) Gesamtaufwand = w(1, K)
22 Rekursion + Tabellierung Betrachte w als (K K) Tabelle, in der das obere Dreieck berechnet wird. w(i, i) = 0 für i = 1... K w(i, i + 1) = d i 1 d i d i+1 für i = 1... K 1 l für l = 2... K 1 für i = 1... K l sei j = i + l berechne w(i, j) wie in (19).
23 Bestimmung der besten Klammerung In der Tabelle wird neben w(i, j) in (19) auch noch derjenige Wert von s gespeichert, der das Minimum ergab. Ist also w(1, K) = (..., s), so ist die Klammerung, die zum minimalen Aufwand führt, (M 1 M s ) (M s+1 M K ), und in den Teilketten verfährt man analog.
Algorithmen und Datenstrukturen 1 Kapitel 4
Algorithmen und Datenstrukturen 1 Kapitel 4 Robert Giegerich Technische Fakultät Universität Bielefeld robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2011/2012 1 / 78 Kapitel 4: Strategien
MehrAlgorithmen und Datenstrukturen I - Strategien der algorithmischen Problemlösung -
Algorithmen und Datenstrukturen I - Strategien der algorithmischen Problemlösung - Alexander Sczyrba Technische Fakultät asczyrba@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2013/2014
MehrAlgorithmen und Datenstrukturen I - Strategien der algorithmischen Problemlösung -
Algorithmen und Datenstrukturen I - Strategien der algorithmischen Problemlösung - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013
MehrAlgorithmen und Datenstrukturen I - Strategien der algorithmischen Problemlösung -
Algorithmen und Datenstrukturen I - Strategien der algorithmischen Problemlösung - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013
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.
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.
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. 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
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
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
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
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
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
MehrOptimierung. Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen. Vorgehen: Dynamische Programmierung
Optimierung Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen Optimierung I Dynamisches Programmieren Günther Greiner Lehrstuhl für Graphische Datenverarbeitung Sommersemester
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
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
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
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,
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
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
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,
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
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
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
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
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,
MehrDynamische Programmierung
Dynamische Programmierung Simon Philippi - 53577 HTW Aalen Jasmin Ratajczyk - 57135 HTW Aalen 25. Januar 2017 Khaled Ahmed - 53558 HTW Aalen 1 Inhaltsverzeichnis 1 Einleitung 3 2 Definition 5 2.1 Top-Down...............................
MehrErkennung der kontextfreien Grammatiken mittels Boolescher Matrixmultiplikation
Erkennung der kontextfreien Grammatiken mittels Boolescher Matrixmultiplikation Valiant-Erkenner Referent: Fedor Uvarov eminar Algorithmen zu kontextfreien Grammatiken Dozenten: Prof Dr. Hofmann, Dr. Leiß
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
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
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 robert.legenstein@igi.tugraz.at 1 Kapitel 2 Algorithmische robert.legenstein@igi.tugraz.at 2 2. Algorithmische 1) Iterative Algorithmen 2) Rekursive Algorithmen
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
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
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 1 Kapitel 3
Algorithmen und Datenstrukturen 1 Kapitel 3 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 3: Strategien der algorithmischen Problemlösung Vorbemerkungen
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
MehrLösungen von Übungsblatt 12
Lösungen von Übungsblatt 12 Algorithmen (WS 2018, Ulrike von Luxburg) Lösungen zu Aufgabe 1 Eine (kanonische) Möglichkeit, die Branch-Schritte auszuführen ergibt sich wie folgt: Das ursprüngliche Problem
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
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............
MehrMathematik für Naturwissenschaftler II SS 2010
Mathematik für Naturwissenschaftler II SS 2010 Lektion 9 20. Mai 2010 Kapitel 9. Matrizen und Determinanten Der Begriff der Matrix Die transponierte Matrix Definition 84. Unter einer (reellen) m n-matrix
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
MehrKlausur Informatik 1 SS 08. Aufgabe 1 2 3 4 Max. Punkte 30 40 40 10 Punkte. Gesamtpunkte:
Klausur Informatik 1 SS 08 Aufgabe 1 2 3 4 Max. Punkte 30 40 40 10 Punkte Gesamtpunkte: Note: Bearbeitungszeit 120 Minuten Keine Hilfsmittel Tragen Sie als erstes Ihren vollständigen Namen und Ihre Matrikelnummer
MehrDatenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes
Mehr6. Transitive Hülle. 6.1 Min-Plus-Matrix-Produkt und Min-Plus-Transitive Hülle Ring Z(+, ) Semiring N(+, )
6. Transitive Hülle 6.1 Min-Plus-Matrix-Produkt und Min-Plus-Transitive Hülle Ring Z(+, ) Semiring N(+, ) Gruppe Halbgruppe Halbgruppe Halbgruppe Wir betrachten den (kommutativen) Semiring über R { } mit
MehrBeispiel: Quicksort. Theoretische Informatik III (Winter 2018/19) Prof. Dr. Ulrich Hertrampf. quicksort(a 1,...,a n ): IF n 2 THEN
Als zweites Beispiel betrachten wir ein weiteres Sortierverfahren, das unter dem Namen quicksort bekannt ist. Eingabe ist wieder ein Array a 1,...,a n AUFGABE: Sortiere a 1,...,a n nach vorgegebenem Schlüssel!
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
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
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
MehrMultiplikation langer Zahlen
Multiplikation langer Zahlen Aljoscha Rudawski 20.5.2017 Inhaltsverzeichnis 1 Einleitung 1 2 Multiplikation nach Lehrbuch 1 2.1 Addition langer Zahlen............................. 2 2.2 Multiplikation
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
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,
MehrKapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung
Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte
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
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)
Mehr36 2 Lineare Algebra
6 Lineare Algebra Quadratische Matrizen a a n sei jetzt n m, A, a ij R, i, j,, n a n a nn Definition Eine quadratische Matrix A heißt invertierbar genau dann, wenn es eine quadratische Matrix B gibt, so
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
MehrSerie 5. Lineare Algebra D-MATH, HS Prof. Richard Pink. 1. [Aufgabe] Invertieren Sie folgende Matrizen über Q:
Lineare Algebra D-MATH, HS 214 Prof Richard Pink Serie 5 1 [Aufgabe] Invertieren Sie folgende Matrizen über Q: 1 a) 1 1 1 1 1 2 1 1 1 b) 1 2 1 1 1 1 2 1 1 1 1 2 1 2 3 1 c) 1 3 3 2 2 1 5 3 1 2 6 1 [Lösung]
MehrParallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff
Parallel Computing Einsatzmöglichkeiten und Grenzen Prof. Dr. Nikolaus Wulff Vorüberlegungen Wann ist paralleles Rechnen sinnvoll? Wenn die Performance/Geschwindigkeit steigt. Wenn sich größere Probleme
Mehr( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen
MehrTeil I. Lineare Algebra I Vorlesung Sommersemester Olga Holtz. MA 378 Sprechstunde Fr und n.v.
Teil I Lineare Algebra I Vorlesung Sommersemester 2011 Olga Holtz MA 378 Sprechstunde Fr 14-16 und nv holtz@mathtu-berlinde Sadegh Jokar MA 373 Sprechstunde, Do 12-14 und nv jokar@mathtu-berlinde Kapitel
MehrIn diesem Abschnitt betrachten wir nur quadratische Matrizen mit Komponenten aus einem Körper K, also A K n n für ein n N. Wenn (mit einem n > 1)
34 Determinanten In diesem Abschnitt betrachten wir nur quadratische Matrizen mit Komponenten aus einem Körper K, also A K n n für ein n N Wenn (mit einem n > 1) a 11 a 12 a 1n a 21 a 22 a 2n A =, (1)
MehrStand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften
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
MehrSpezielle Matrizen. Invertierbarkeit.
Spezielle Matrizen. Invertierbarkeit. Lineare Algebra I Kapitel 4 2. Mai 2012 Logistik Dozent: Olga Holtz, MA 378, Sprechstunden Freitag 14-16 Webseite: www.math.tu-berlin.de/ holtz Email: holtz@math.tu-berlin.de
MehrAnwendungen dynamischer Programmierung in der Biologie
Anwendungen dynamischer Programmierung in der Biologie Überblick Algorithmus zum Finden der wahrscheinlichsten Sekundärstruktur eines RNS Moleküls Sequence Alignment Verbesserung von Sequence Alignment
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
MehrMethoden für den Entwurf von Algorithmen
Methoden für den Entwurf von Algorithmen Greedy Algorithmen: - Löse ein einfaches Optimierungsproblem durch eine Folge vernünftiger Entscheidungen. - Eine getroffene Entscheidung wird nie zurückgenommen.
MehrAlgorithmen für die Speicherhierarchie
Lineare Algebra: untere Schranken Lehrstuhl für Effiziente Algorithmen Fakultät für Informatik Technische Universität München Vorlesung Sommersemester 2009 Gliederung 1 2 Zusätzliche Überlegungen Erinnerung
Mehr1 Einführung. 2 Grundlagen von Algorithmen. 3 Grundlagen von Datenstrukturen. 4 Grundlagen der Korrektheit von Algorithmen
Programm heute lgorithmen und atenstrukturen (für T/IT) Sommersemester 0 r. Tobias Lasser omputer ided Medical Procedures Technische Universität München inführung rundlagen von lgorithmen rundlagen von
MehrKapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Rekursion: Technik Prof. Dr. Günter Rudolph Fakultät
MehrFunktionale Programmierung ALP I. Die Natur rekursiver Funktionen SS Prof. Dr. Margarita Esponda. Prof. Dr.
ALP I Die Natur rekursiver Funktionen SS 2011 Die Natur rekursiver Funktionen Rekursive Funktionen haben oft folgende allgemeine Form: f :: a -> a f 0 = c f (n+1) = h (f n ) Diese Art der Definitionen
MehrII.3.1 Rekursive Algorithmen - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.3.1 Rekursive Algorithmen -
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
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
MehrProf. Dr. Margarita Esponda
Die O-Notation Analyse von Algorithmen Die O-Notation Prof. Dr. Margarita Esponda Freie Universität Berlin ALP II: Margarita Esponda, 5. Vorlesung, 26.4.2012 1 Die O-Notation Analyse von Algorithmen Korrektheit
MehrBlockmatrizen. Beispiel 1 Wir berechnen das Produkt von A R 4 6 mit B R 6 4 :
Blockmatrizen Beispiel 1 Wir berechnen das Produkt von A R 4 6 mit B R 6 4 : 2 1 3 1 1 0 1 0 1 0 0 2 1 1 11 1 1 4 0 1 0 1 0 1 4 1 0 2 1 0 1 0 1 0 3 1 2 1 = 2 4 3 5 11 1 1 4 0 1 0 1 0 1 5 1 2 1 2 4 3 5
MehrInhalt Kapitel 2: Rekursion
Inhalt Kapitel 2: Rekursion 1 Beispiele und Definition 2 Partialität und Terminierung 3 Formen der Rekursion Endständige Rekursion 4 Einbettung 29 Beispiele und Definition Rekursion 30 Man kann eine Funktion
MehrObjektorientierte Programmierung (ZQ1u2B)
Objektorientierte Programmierung (ZQ1u2B) Woche 4 Rekursion Christopher Scho lzel Technische Hochschule Mittelhessen 4. November 2015 Inhalt Rekursion Lineare Rekursion Verzweigte Rekursion Verschränkte
MehrKlausur Algorithmentheorie
Prof. Dr. G. Schnitger Frankfurt, den 24.02.2011 M. Poloczek Klausur Algorithmentheorie WS 2010/2011 Name: Vorname: Geburtsdatum: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen
MehrAlgebraische Algorithmen (Timo Fleischfresser und Deepak Chavan)
Algebraische Algorithmen (Timo Fleischfresser und Deepak Chavan) Teil 1: Matrizen Matrizenmultiplikation Sei A eine m x n Matrix und B eine n x p Matrix. Dann ist A * B = W = [w ij mit i = 0.. m-1, j =
MehrNumerisches Programmieren, Übungen
Technische Universität München SoSe 8 Institut für Informatik Prof. Dr. Thomas Huckle Michael Rippl Fabio Gratl Numerisches Programmieren, Übungen Musterlösung 3. Übungsblatt: Gaußelimination mit Pivotsuche,
MehrEigenschaften der Matrizenmultiplikation. Transponierung. Spezielle Matrizen.
Eigenschaften der Matrizenmultiplikation. Transponierung. Spezielle Matrizen. Lineare Algebra I Kapitel 4 23. April 2013 Logistik Dozent: Olga Holtz, MA 417, Sprechstunden Freitag 14-16 Webseite: www.math.tu-berlin.de/
MehrRekursive Funktionen (1)
Rekursive Funktionen (1) Rekursive Algorithmen Wenn Gesamtlösung durch Lösen gleichartiger Teilprobleme erzielbar: Rekursion möglich Beispiel: Fakultät einer ganzen Zahl n: n i n! = i=1 für n > 0 1 für
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
MehrInvertierbarkeit von Matrizen
Invertierbarkeit von Matrizen Lineare Algebra I Kapitel 4 24. April 2013 Logistik Dozent: Olga Holtz, MA 417, Sprechstunden Freitag 14-16 Webseite: www.math.tu-berlin.de/ holtz Email: holtz@math.tu-berlin.de
MehrRekursive Funktionen (1)
Rekursive Funktionen (1) Rekursive Algorithmen Wenn Gesamtlösung durch Lösen gleichartiger Teilprobleme erzielbar: Rekursion möglich Beispiel: Fakultät einer ganzen Zahl n: nn ii nn! = ii=1 für nn > 0
MehrVektoren und Matrizen
Universität Basel Wirtschaftswissenschaftliches Zentrum Vektoren und Matrizen Dr. Thomas Zehrt Inhalt: 1. Vektoren (a) Einführung (b) Linearkombinationen (c) Länge eines Vektors (d) Skalarprodukt (e) Geraden
MehrProgrammieren 1 C Überblick
Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
MehrDivide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen
Teile & Herrsche: Divide & Conquer Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Probleme: Wie setzt man zusammen? [erfordert algorithmisches Geschick
MehrHeute. Stoff Abschlussprüfung VO. Testen. Einführung Rekursion IT I - VO 13 1
Heute Stoff Abschlussprüfung VO Testen Einführung Rekursion 23.01.2018 IT I - VO 13 1 Organisatorisches Diese Woche letzte UE (ohne Wissensüberprüfung) Nächste Woche Fragestunde in VO Abschlusstest am
MehrEinführung in die Programmierung Wintersemester 2010/11
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion
Mehr