Wiederholung TexPoint fonts used in EMF.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (4) Editierdistanz Approximative Zeichenkettensuche Sequence Alignment Prof. Dr. Th. Ottmann WS
Advertisements

Christian Scheideler SS 2009
Kapitel 3 Arithmetische Schaltkreise
DNA-Array oder DNA-Chip
DNA-Array oder DNA-Chip
Wiederholung TexPoint fonts used in EMF.
Wiederholung: Ziehen von Elementen
Übungsbetrieb Di neuer Raum HZO 60
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
WS 03/041 Algorithmentheorie 01 - Einleitung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Kapitel 6: Klassifizierung von Sortiertechniken
Kapitel 6. Suchverfahren
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Approximationsalgorithmen …liefern in polynomieller.
Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004.
Sortierverfahren Richard Göbel.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (09 - Weitere Sortierverfahren) Prof. Th. Ottmann.
Geometrisches Divide and Conquer
Algorithmen und Komplexität
Minimum Spanning Tree: MST
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Information und Kommunikation
Polynome und schnelle Fourier-Transformation
Mehrkriterielle Optimierung mit Metaheuristiken
Das Traveling Salesman Problem (TSP)
Analyse der Laufzeit von Algorithmen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
WS03/041 Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Binärbäume.
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Laufzeitverhalten beim Sortieren
Wiederholung Größte gemeinsame Teiler Satz von Bezout:
Wiederholung Gerichtete Graphen Digraph D=(V,E)
Wiederholung TexPoint fonts used in EMF.
Christian Scheideler WS 2008
Übungen Übungsanmeldung Übungskorrektur
Organisatorisches DiMa für Master of Science Mathe anrechenbar
Klausurtermin Klausur Diskrete Mathematik I Do stündig
Wiederholung TexPoint fonts used in EMF.
Wiederholung Körper K Eigenschaften von multiplikativen Gruppen
Kleiner Schreibfehler
Korrektur Aufgabe 8.1 Anstatt x2-2x+3 muss es heissen x2-4x+3.
Wiederholung Gruppen Untergruppen Gruppenisomorphismen
Wiederholung Umwandlung in Koordinatenform
Zusammenfassung Königsberger Brückenproblem Planare Graphen
Wiederholung Chinesischer Restsatz RSA TexPoint fonts used in EMF.
Wiederholung Verband Ungerichtete Graphen Partielle Ordnung
 Präsentation transkript:

Wiederholung TexPoint fonts used in EMF. Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n2) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in sortierte Folge Merge-Sort O(n logn) Rekursives Sortieren von a[1..n/2], a[n/2+1..n] Mergen von zwei sortierten Teilintervallen Quicksort O(n logn) bei geeigneter Wahl des Pivotelements p Partitionierung in 2 Teilarrays mit Elementen größer/kleiner gleich p Rekursives Partitionieren der Teilarrays 08.11.2018 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAA

Entscheidungsbäume a1a2a3 a2a1a3 a1a3a2 a3a1a2 a2a3a1 a3a2a1 a1:a2 Frage: Gibt es einen Algorithmus mit o(n logn) Vergleichen? Sortieren mit Entscheidungsbäumen: Innere Knoten führen Vergleich ai mit aj durch. Linkes Kind: ai · aj, rechtes Kind: ai > aj. Blätter enthalten Permutation a¼(1),…,a¼(n). Pfadlänge von der Wurzel zum Blatt entspricht Anzahl der benötigten Vergleiche. Bsp.:Entscheidungsbaum für 3 Elemente a1:a2 a2:a3 a1:a3 a1a2a3 a1:a3 a2a1a3 a2:a3 a1a3a2 a3a1a2 a2a3a1 a3a2a1 08.11.2018

Untere Schranke ) 2h ¸ n! ) h ¸ log(n!) (Stirling: n! > (n/e)n) Satz: Jeder vergleichsbasierte Sortieralgorithmus benötigt zum Sortieren von n Elementen (n logn) Vergleiche im worst-case. Betrachte Entscheidungsbaum T der Höhe h, der n Elemente sortiert. T hat mindestens n! viele Blätter (alle Permutationen). T hat höchstens 2h viele Blätter (T ist Binärbaum). ) 2h ¸ n! ) h ¸ log(n!) (Stirling: n! > (n/e)n) ) h ¸ n log(n/e) = n logn – n log e = (n logn). 08.11.2018

Berechnung von Binomialkoeffizienten Zur Erinnerung: Lösung mittels Divide and Conquer Algorithmus Rekursiv-Binom Eingabe: n, k If (k=0) return 1; If (n<k) return 0; return Rekursiv-Binom(n-1,k-1) + Rekursiv-Binom(n-1,k); Ausgabe: Korrektheit: folgt aus obiger Formel 08.11.2018

Laufzeit von Rekursiv-Binom Satz: Algorithmus Rekursiv-Binom benötigt zur Berechnung von mindestens 4n/(2n+1) Aufrufe. Rekursiv-Binom hat bei Abbruch als Rückgabewerte 0 und 1. wird als Summe von Rückgabewerten berechnet. ) Man benötigt mindestens Aufrufe. 08.11.2018

Dynamische Programmierung Problem des Divide & Conquer Ansatzes: Subprobleme sind nicht voneinander unabhängig. Zwischenergebnisse werden nicht gespeichert. Dieselben Subprobleme werden mehrfach gelöst. Dynamische Programmierung: Speicherung der Lösungen von Subproblemen Bottom-up Lösungsansatz: Man beginnt bei trivialen Subproblemen. Man kombiniert Subprobleme zu größeren Problemen. Bsp. aus der Vorlesung: Algorithmus von Warschall zur Berechnung der transitiven Hülle 08.11.2018

Binomialkoeffizienten revisited Berechnung der Binomialkoeffizienten mittels Dyn. Programmierung: Algorithmus Dyn-Binom Eingabe: n, k for i à 0 to n a[i,0]=1; a[i,i] = 1; for i à 1 to n for j à 2 to i-1 a[i,j] à a[i-1,j-1] + a[i-1,j]; Ausgabe: a[n,k] = Korrektheit: Schritt 1: Initialisieren Grenze des Pascal‘schen Dreiecks mit Einsen. Schritt 2: Zeilenweise Berechnung des Pascal‘schen Dreiecks Laufzeit: O(n2), d.h. unabhängig von k. 08.11.2018

Optimierungsprobleme Optimierungsprobleme besitzen mehrere Lösungen. Jede Lösung hat einen Wert. Suchen eine Lösung mit optimalem Wert. Minimierungsproblem: Optimale Lösung hat minimalen Wert Maximierungsproblem: Optimale Lösung hat maximalen Wert 08.11.2018

Minimierung Matrizenmuplikation Seien A1,A2,…,An Matrizen. Ziel ist die effiziente Berechnung von A1*A2*…*An. Matrixprodukt M ist vollständig geklammert , M ist eine einzelne Matrix oder M ist geklammertes Produkt von zwei vollständigen Matrixprodukten. Bsp: A1*A2*A3*A4 besitzt fünf vollständige Klammerungen (((A1A2)A3)A4) ((A1(A2A3))A4) (A1((A2A3)A4)) (A1(A2(A3A4))) ((A1A2)(A3A4)) Man kann zeigen: Die Anzahl der vollständigen Klammerungen ist exponentiell in n. Optimierungsproblem Matrizenmultiplikation ¦M: Gegeben: (pi-1£pi)-Matrizen Ai für i=1,…,n Gesucht: Vollständige Klammerung mit minimalen Multiplikationskosten 08.11.2018

Kosten der Matrizenmultiplikation Seien A eine (a,b)-Matrix und B eine (b,c)-Matrix. Für die (a,c)-Matrix C=A*B gilt: Ci,j = bk=1 Ai,k*bk,j für i=1,…,a und j=1,…c. Berechnung von C erfordert a*b*c Multiplikationen. Bsp: A1 ist (10£ 5), A2 ist (5 £ 10) und A3 ist (10 £ 10) (A1A2)A3 benötigt 500+1000=1500 Multiplikationen A1(A2A3) benötigt 500+500=1000 Multiplikationen 08.11.2018

Kosten einer optimalen Lösung Sei L ein optimale Lösung des Problems ¦M. Schreibe A1..n für A1*...*An. Für ein k2 [n-1] berechnet L zunächst A1…k und Ak+1…n. Deren Produkt liefert A1…n Lemma: L liefert eine optimale Lösung für A1…k und Ak+1…n. Annahme: L‘ sei eine bessere Lösung für A1…k. (analog für Ak+1…n) Berechne in L das Produkt A1..k gemäß L‘. Die Berechnung erfordert weniger Multiplikationen als L. (Widerspruch zur optimalen von L) 08.11.2018

Rekursive Lösung Seien m[i,j] die minimalen Kosten zur Berechnung von Ai..j. Triviale Subprobleme Ai..i: m[i,i] = 0 für i=1,…,n Berechnung von Ai..j für i<j: Bestimme k mit i · k < j, das folgende Kosten minimiert: Berechne Ai..k und Ak+1..j: Kosten: m[i,k]+m[k+1,j] Berechne Ai..k*Ak+1..j: Kosten: pi-1*pk*pj ) m[i,j] = min1· k < j {m[i,k] + m[k+1,j] + pi-1*pk*pj} für i < j Gesamtkosten zur Berechnung von A1..n: m[1,n] 08.11.2018

Algorithmus Matrixmultiplikation Algorithmus Matrixmult (Dynamische Programmierung) Eingabe: p0, p1, …, pn for i à 1 to n m[i,i] à 0; for l à 2 to n /* l ist Länge des Intervalls [i,j] */ for i à 1 to n-(l-1) j à i+l-1 m[i,j] à mini· k < j {m[i,k] + m[k+1,j] + pi-1*pk*pj} s[i,j] à k, an dem Minimum angenommen wird. Ausgabe: Arrays m und s Korrektheit: Durch wachsende Intervalllängen werden bei der Minimumsberechnung nur bekannte Werte verwendet. m[1,n] liefert minimale Kosten, s die optimale Klammerung (Übungsaufgabe) Laufzeit: Schleifen für l, i und k: O(n3). 08.11.2018

Das Rucksackproblem Maximierungsproblem Rucksackproblem ¦R: Gegeben: n Gegenstände mit Gewichten wi 2N und Profiten pi 2N, i=1,…,n. Kapazitätsschranke B Gesucht: maxJ µ [n] {j 2 J pj | j 2 J wj · B} bzw. dasjenige Jµ [n], für das das Maximum angenommen wird 08.11.2018

Struktur einer optimalen Lösung Sei I eine optimale Lösung von ¦R und i 2 [n]. Sei ¦i := (¦R ohne Gegenstand i). Fall 1: i  I I ist optimale Lösung von ¦i mit Schranke B. Fall 2: i 2 I Lemma: Sei i 2 I. In{i} ist optimale Lösung von ¦i mit Schranke B-gi. Annahme: I‘ sei eine bessere Lösung von ¦i ) j 2 I‘ pj > j 2 In {i} pj mit j 2 I‘wj · B-gi ) j 2 I‘ [ {i} pj > j 2 I pj mit j 2 I‘ [ {i} wj· B ) I [ {i} ist bessere Lösung für ¦ als I (Widerspruch: I ist optimal) 08.11.2018

Gewichtsfunktion f(i,t) Sei f(i,t) := minJ µ [i] {j 2 J wi | j 2 J pj ¸ t}, d.h. J ist Teilmenge der ersten i Gegenstände mit minimalem Gewicht Gegenstände aus J liefern mindestens Profit t Falls kein solches J existiert, definiere f(i,t) = 1 Falls f(i,t) · B, ist J eine gültige Lösung. Sei P = i 2 [n] pi der maximal erreichbare Profit. Optimale Lösung: max{t 2 [P] | f(n,t) · B}. Lösung der trivialen Subprobleme f(1,t) = w1 für t 2 [p1]. f(1,t) = 1 für p1< t · P 08.11.2018

Rekursive Lösung Lemma: Für i 2 [n] und t 2 [P] gilt f(i,t) = min{ f(i-1, t), wi + f(i-1, t-pi) } falls t>pi f(i,t) = min{ f(i-1, t), wi) sonst f(i,t) nehme für J das minimale Gewicht an. Fall 1: i  J Optimale Lösung für Gegenstände 1,…,i-1 ist optimal für 1,…i, d.h. f(i,t) = f(i-1,t). Fall 2: i in J Optimale Lösung für 1,…,i-1 mit Profit t-pi liefert optimale Lösung für 1,…,i: f(i,t) = wi + f(i-1,t-pi) für t-pi > 0 und f(i,t) = wi sonst. 08.11.2018

Algorithmus Rucksack Algorithmus Rucksack Eingabe: w1,…,wn, p1,…,pn, B P à i 2 [n] pi for t à 1 to P if (t · p1) then f[1,t] à w1; else f[1,t] à 1; for i à 2 to n If (t · pi) then f[i,t] à min{f[i-1,t], wi}; else f[i,t] à min{f[i-1,t], wi + f[i-1,t-pi]}; Ausgabe: max{ t | f[n,t] · B} Korrektheit: folgt aus Lemma auf voriger Folie. Laufzeit: O(np) = O(n i2[n] pi). Beachte: Eingabelänge der pi ist O( i 2 [n] log pi ) Algorithmus ist exponentiell in der Eingabelänge. 08.11.2018