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



Ähnliche Dokumente
Wiederholung. Divide & Conquer Strategie

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

Abschnitt: Algorithmendesign und Laufzeitanalyse

16. All Pairs Shortest Path (ASPS)

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Algorithmen II Vorlesung am

Kapitel 5: Dynamisches Programmieren Gliederung

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Die Verbindung von Linearer Programmierung und Graphentheorie

15 Optimales Kodieren

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140

Numerische Verfahren und Grundlagen der Analysis

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Analysis I für Studierende der Ingenieurwissenschaften

Kapiteltests zum Leitprogramm Binäre Suchbäume

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Kostenmaße. F3 03/04 p.188/395

7 Die Determinante einer Matrix

Musterlösungen zur Linearen Algebra II Blatt 5

Die Komplexitätsklassen P und NP

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

WS 2008/09. Diskrete Strukturen

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

Alignment-Verfahren zum Vergleich biologischer Sequenzen


Datenstrukturen und Algorithmen

Lineare Algebra und Lösung linearer zeitinvarianter Differentialgleichungssysteme

Bestimmung einer ersten

Lineare Gleichungssysteme

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Schranken für zulässige Lösungen

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester

Informatik-Sommercamp Mastermind mit dem Android SDK

Absolute Stetigkeit von Maßen

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Stackelberg Scheduling Strategien

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Rekursionen. Georg Anegg 25. November Methoden und Techniken an Beispielen erklärt

WS 2013/14. Diskrete Strukturen

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Das Briefträgerproblem

Wortproblem für kontextfreie Grammatiken

Teile und Herrsche Teil 2

6.2 Perfekte Sicherheit

Matrizennorm. Definition 1. Sei A M r,s (R). Dann heißt A := sup die Matrixnorm. Wir wissen zunächst nicht, ob A eine reelle Zahl ist.

Lineare Gleichungssysteme

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Anmerkungen zur Übergangsprüfung

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

Nichtlineare Optimierung ohne Nebenbedingungen

Algorithmen & Datenstrukturen 1. Klausur

Beispiel Zusammengesetzte Zufallsvariablen

Grundbegriffe der Informatik

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Planen mit mathematischen Modellen 00844: Computergestützte Optimierung. Autor: Dr. Heinz Peter Reidmacher

Suchen und Sortieren Sortieren. Heaps

Algorithmische Mathematik

(Lineare) stochastische Optimierung

Theoretische Grundlagen der Informatik

DAP2-Klausur

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Algorithmische Methoden für schwere Optimierungsprobleme

Effizienten MAC-Konstruktion aus der Praxis: NMAC Idee von NMAC:

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

(λ Ri I A+BR)v Ri = 0. Lässt sich umstellen zu

Wie Google Webseiten bewertet. François Bry

W-Rechnung und Statistik für Ingenieure Übung 11

Im Jahr t = 0 hat eine Stadt Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b

Algorithmen und Datenstrukturen

Guten Morgen und Willkommen zur Saalübung!

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Einführung in die Algebra

Datenstrukturen & Algorithmen

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

3.3 Eigenwerte und Eigenräume, Diagonalisierung

3. Ziel der Vorlesung

Algorithmentheorie Maximale Flüsse

Lineare Gleichungssysteme

4. Dynamische Optimierung

Primzahlen und RSA-Verschlüsselung

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Codierungstheorie Rudolf Scharlau, SoSe

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

Grundlagen der Künstlichen Intelligenz

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Programmierkurs Java

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes

4 Vorlesung: Matrix und Determinante

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

Teil II. Nichtlineare Optimierung

Transkript:

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 für A, falls 1 innere Knoten einen Vergleich von a i, a j A enthalten. Falls a i < a j wird nach links verzweigt, sonst nach rechts. 2 Blätter eine Permutation a π(1),..., a π(n) enthalten, die direkt aus den Vergleichen folgt. Beispiel: Entscheidungsbaum T für a 1, a 2, a 3 3 paarweise Vergleiche genügen, um 3 Elemente zu sortieren. Damit besitzt T Tiefe 3. Ferner besitzt T als Blätter die 3! = 6 Permutationen von A. DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 284 / 320

Untere Schranke für die Anzahl Vergleiche Satz Untere Schranke für die Anzahl Vergleiche Jeder vergleichsbasierte Sortieralgorithmus benötigt zum Sortieren von n Elementen Ω(n log n) Vergleiche im worst-case. Beweis: Sei T ein Entscheidungsbaum für A, A = n der Höhe h. Damit muss T als Blätter alle Permutationen von A enthalten. D.h. T besitzt mindestens n! Blätter. Jeder Binärbaum der Höhe h besitzt andererseits höchstens 2 h Blätter. Daher gilt 2 h n! bzw. h log 2 (n!). Aus der Stirling-Formel folgt n! > ( n e ) n und damit h n log 2 ( n e ) = n log n n log e = Ω(n log n). D.h. es gibt einen Pfad in T mit Ω(n log n) Vergleichen. DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 285 / 320

Berechnung von Binomialkoeffizienten Problem: Berechne aus n, k N 0 effizient ( n k). Wir kennen bereits die Rekursion ( ) ( n k = n 1 ) ( k 1 + n 1 ) k. Berechnen Binomialkoeffizienten mittels Divide and Conquer. Algorithmus DIV-BINOM EINGABE: n, k N 0 1 If (k = 0) return 1; 2 If (n < k) return 0; 3 return DIV-BINOM(n 1, k 1) + DIV-BINOM(n 1, k ); AUSGABE: ( ) n k Korrektheit: Folgt aus obiger Rekursionsformel. DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 286 / 320

Laufzeit von DIV-BINOM Satz Laufzeit von DIV-BINOM DIV-BINOM benötigt zur Berechnung von ( 2n n ) mindestens 4 n 2n+1 Aufrufe. Beweis: DIV-BINOM bricht die Rekursion mit Werten 0 und 1 ab. ( n ) k wird als Summe der Rückgabewerte 0 und 1 berechnet. Damit benötigt man mindestens ( n k) viele Aufrufe. Es gilt ( ) ( 2n n 2n ) i für i = 0,..., 2n. Daraus folgt (2n + 1) ( ) 2n n 2n i=0 D.h. DIV-BINOM benötigt mindestens ( 2n ) i = 2 2n = 4 n. 4n 2n+1 Aufrufe. DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 287 / 320

Dynamische Programmierung Nachteile des Divide and Conquer Ansatzes Subprobleme sind nicht unabhängig voneinander. Zwischenergebnisse werden nicht gespeichert. Damit werden die Subprobleme oft mehrfach gelöst. Definition Paradigma Dynamische Programmierung Dynamische Programmierung verwendet die Strategien 1 Bottom-up Ansatz: Man beginnt bei trivialen Subproblemen. 2 Kombination gespeicherter Lösungen von Subproblemen: Setze Lösungen zu Lösungen größerer Probleme zusammen. Beispiel aus der Vorlesung Warschall-Algorithmus berechnet Erreichbarkeit in (V, E). Bottom-up: W 0 [u, v] = 1 falls (u, v) E. Sonst W 0 [u, v] = 0. Kombination: W k [u, v] = max{w k 1 [u, v], W k 1 [u, k] W k 1 [k, v]}. DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 288 / 320

Binomialkoeffizienten revisited Algorithmus DYN-BINOM EINGABE: n, k N 0 1 If (k > n) return 0; 2 For i 0 to n 1 a[i, 0] = 1; a[i, i] = 1; 3 For i 1 to n 1 For j 1 to i 1 4 return a[n, k]; AUSGABE: ( ) n k 1 a[i, j] a[i 1, j 1] + a[i 1, j]; Korrektheit: Zeilenweise Berechnung des Pascal schen Dreiecks. Schritt 1 initialisiert die Grenzen des Pascal schen Dreiecks. Schritt 2 berechnet die i-te Zeile des Pascal schen Dreiecks. Laufzeit: O(nk) für k n, d.h. O(n 2 ). DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 289 / 320

Motivation von Optimierungsproblemen Definition Vollständig geklammertes Matrixprodukt Sei M = A 1... A n ein Produkt von Matrizen. M heißt vollständig geklammertes Matrixprodukt, falls n = 1 oder M ein geklammertes Produkt von zwei vollständig geklammerten Matrixprodukten ist. Beispiel: n = 4 Es existieren die 5 vollständig geklammerten Matrixprodukte (((A 1 A 2 )A 3 )A 4 ), ((A 1 (A 2 A 3 ))A 4 ), (A 1 ((A 2 A 3 )A 4 )), (A 1 (A 2 (A 3 A 4 ))), ((A 1 A 2 )(A 3 A 4 )). Man kann zeigen, dass die Anzahl der vollständig geklammerten Matrixprodukte exponentiell in n ist. DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 290 / 320

Kosten einer Lösung Definition Kosten einer Matrixmultiplikation Sei A 1 = (a i,j ) eine (n 1, n 2 )-Matrix und A 2 eine (n 2 n 3 )-Matrix. Dann definieren wir die Kosten der Berechnung von A 1 A 2 als n 1 n 2 n 3. Die Kosten eines vollständigen geklammerten Matrixprodukts sind definiert als die Summe der Kosten aller Matrixprodukte. Begründung: Seien a (1) i,j, a (2) i,j die Einträge von A 1 bzw. A 2 Sei m i,j = n 2 k=1 a(1) i,k a(2) k,j für i [n 1 ], j [n 3 ]. Die Berechnung aller m i,j erfordert n 1 n 2 n 3 Multiplikationen. Beispiel: A 1 Z 10 5, A 2 Z 5 10 und A 3 Z 10 10 ((A 1 A 2 )A 3 ) liefert Kosten von 500 + 1000 = 1500. (A 1 (A 2 A 3 )) liefert dagegen nur Kosten von 500 + 500 = 1000. DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 291 / 320

Optimierungsprobleme Definition Optimierungsproblem Sei Π ein Problem mit Lösungsraum L und c : L R eine Kostenfunktion. Wir bezeichnen Π als Optimierungsproblem, falls eine Lösung l L mit optimalen Kosten c(l) gesucht wird. 1 Falls c(l) maximiert wird, nennen wir Π ein Maximierungsproblem. 2 Falls c(l) minimiert wird, nennen wir Π ein Minimierungsproblem. Problem Minimierungsproblem Matrizenklammerung Π M Gegeben: (p i p i+1 )-Matrizen für i [n]. Gesucht: Vollständige Klammerung mit minimalen Kosten. DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 292 / 320

Aufsplitten einer optimalen Lösung Sei l eine optimale vollständige Klammerung für Π M. Wir verwenden die Notation A 1...n für A 1... A n. In l werden A 1...k und A k+1...n für ein k [n 1] berechnet. Lemma Optimalität der Subprobleme Sei Π M ein Matrizenklammerungs-Problem mit M = A 1... A n und l eine optimale Lösung, die A 1...k, A k+1...n berechnet. Dann liefert l für diese Subprobleme optimale Lösungen. Beweis: Annahme: Sei l eine bessere Lösung für A 1...k. Seien c(l(a i...j )) die Kosten der Lösung l für A i...j. Berechne in l das Produkt A 1...k gemäß l mit c(l ) < c(l(a 1...k )). Dann gilt c(l ) + c(l(a k+1...n )) < c(l(a 1...k )) + c(l(a k+1...n )) = c(l). (Widerspruch zur Minimalität der Lösung l für Π M ) Beweis liefert analog die Optimalität von l für A k+1...n. DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 293 / 320

Dynamische Programmierung für Π M Lösung mittels Dynamischer Programmierung Seien m[i, j] die minimalen Kosten zur Berechnung von A i...j. Bottom-up: m[i, i] = 0 für i = 1,..., n. Kombination: Berechnung von A i...j für alle i < j. Bestimme k mit i k < j, das folgende Kosten minimiert: Berechne A i...k und A k+1...j mit Kosten m[i, k] + m[k + 1, j]. Berechne A i...k A k+1...j mit Kosten p i p k+1 p j+1 D.h. wähle m[i, j] = min 1 k<j {m[i, k] + m[k + 1, j] + p i p k+1 p j+1 }. Die Gesamtkosten für M = A 1... A n sind m[1, n]. DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 294 / 320

Algorithmus DYN-MATRIXKLAMMERUNG Algorithmus DYN-MATRIXKLAMMERUNG EINGABE: p 1,..., p n+1 N 1 For i 1 to n 1 m[i, i] 0; 2 For l 2 to n //l ist die Länge des Intervalls [i, j] 1 For i 1 to n (l 1) 1 j i + l 1; 2 m[i, j] min i k<j {m[i, k] + m[k + 1, j] + p i p k+1 p j+1 }. 3 s[i, j] k, an dem das Minimum angenommen wird. AUSGABE: Arrays m und s Korrektheit: Die Intervalllängen l wachsen stetig. Dadurch werden in Schritt 2.1.2 nur bekannte Werte verwendet. Bei Terminierung stehen in m[1, n] die minimalen Kosten. Übung: s liefert die optimale Klammerung. Laufzeit für die Schleifen über l, i, k : O(n 3 ). DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 295 / 320

Beispiel für ein Maximierungsproblem Problem Maximierungsproblem Rucksack Π R Gegeben: n Gegenstände mit Gewichten w i N und Profiten p i N für i [n]. Kapazitätsschranke B Gesucht: max J [n] { j J p j j J w j B}, bzw. dasjenige J, an dem das Maximum angenommen wird. Anmerkungen: Lösung von Rucksack mit Dynamischer Programmierung möglich. Liefert einen Algorithmus mit Laufzeit O(n i [n] p i). Man beachte: Eingabelänge der p i ist nur Θ( i [n] log p i). D.h. der Algorithmus ist exponentiell in der Eingabelänge. Π R gehört zu den algorithmisch schweren Problemen (s. DiMa II). DiMa I - Vorlesung 24-14.01.2009 Entscheidungsbaum, Dynamische Programmierung, Optimierungsproblem 296 / 320