Algorithmen und Datenstrukturen

Ähnliche Dokumente
Wie wird ein Graph dargestellt?

Algorithmen und Datenstrukturen

Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

NAME, VORNAME: Studiennummer: Matrikel:

Übung Algorithmen und Datenstrukturen

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Datenstrukturen und Algorithmen (SS 2013)

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Graphdurchmusterung, Breiten- und Tiefensuche

Algorithmen und Datenstrukturen 2-1. Seminar -

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Institut für Programmierung und Reaktive Systeme 31. Mai Programmieren II. 12. Übungsblatt

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Programmiertechnik II

Programmiertechnik II

Algorithmen und Datenstrukturen

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

9 Minimum Spanning Trees

Algorithmen und Datenstrukturen 1-5. Seminar -

Algorithmische Graphentheorie

Graphen: Datenstrukturen und Algorithmen

Algorithmen und Datenstrukturen II

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

Minimal spannende Bäume

Algorithmen I - Tutorium 28 Nr. 11

Quicksort ist ein Divide-and-Conquer-Verfahren.

Algorithmen und Datenstrukturen I AVL-Bäume

Tutoraufgabe 1 (Suchen in Graphen):

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

1 Exploration geordneter Wurzelbäume

Datenstrukturen & Algorithmen

10. Übungsblatt zu Algorithmen I im SS 2010

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Graphen. Leonhard Euler ( )

Übung: Algorithmen und Datenstrukturen SS 2007

Algorithmen und Datenstrukturen VO UE 2.0 Nebentermin Vorlesungsprüfung / 4. Übungstest SS

Graphalgorithmen I. Simon Regnet. May 16, Universität Erlangen. Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56

Algorithmen und Datenstrukturen 1 VL Übungstest SS Juni 2011

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 12, Donnerstag, 22.

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Institut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt

Minimale Spannbäume. Übersicht. 1 Spannbäume. 2 Minimale Spannbäume. 3 Greedy Algorithmen. 4 Die Algorithmen von Kruskal und Prim

Einführung in die Informatik 2

Berechnung minimaler Spannbäume. Beispiel

Programmierkurs Python II

Datenstrukturen und Algorithmen D-INFK

Programmierkurs Python

Programmierkurs Python II

Algorithmen und Datenstrukturen

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Informatik II, SS 2014

Datenstrukturen. einfach verkettete Liste

1.Aufgabe: Minimal aufspannender Baum

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y

WS 2009/10. Diskrete Strukturen

Vorlesung Datenstrukturen

Aufgabe 1 O-Notation (2+3+5=10 Punkte)

Vorlesung Datenstrukturen

1 topologisches Sortieren

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume

11. Übungsblatt zu Algorithmen I im SS 2010

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für "balanciert":

Graphen und Bäume. A.1 Graphen

Datenstrukturen und Algorithmen SS07

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Teil XII. Datenstrukturen: Bäume, Stacks und Queues. Scientific Computing in Computer Science, Technische Universität München

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Klausur WS 2006/07 Software-Engineering und Technische Informatik Bachelor

Vorname:... Matrikel-Nr.:... Unterschrift:...

Grundlagen: Algorithmen und Datenstrukturen

WS 2009/10. Diskrete Strukturen

Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.

Logische Datenstrukturen

Algorithmen & Komplexität

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

DATENSTRUKTUREN UND ALGORITHMEN

Rekurrenzen T(n) = T(n 1) + N beschreibt Laufzeitverhalten eines rekursiven Algorithmus

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

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

B-Bäume, speziell (2,4)-Bäume / Externe Suche: BBaum- Varianten 5.7 (Rot-Schwarz-Bäume) 5.8 Streuspeicherverfahren (Hash-Verfahren)

Informatik II Prüfungsvorbereitungskurs

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich. Graphen (2)

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

Algorithmen und Datenstrukturen Balancierte Suchbäume

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.

Wege, Pfade und Kreise

ADS: Algorithmen und Datenstrukturen 2

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Minimal spannender Baum

WS 2013/14. Diskrete Strukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Transkript:

Algorithmen und Datenstrukturen 13. Übung minimale Spannbäume, topologische Sortierung, AVL-Bäume Clemens Lang Übungen zu AuD 4. Februar 2010 Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 1 / 14

Organisatorisches Klausur 2. Februar, :00 Uhr spätestens :4 Uhr da sein Raumeinteilung auf der AuD-Seite Terminplan Nächste Woche: Klausurvorbereitung Klausur aus dem SS 200 oder WS 200/0 Letzter Vorlesungstermin: Vorstellung einer Beispielklausur Heute: Besprechung der Evaluationsergebnisse Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 2 / 14

Organisatorisches Klausur 2. Februar, :00 Uhr spätestens :4 Uhr da sein Raumeinteilung auf der AuD-Seite Terminplan Nächste Woche: Klausurvorbereitung Klausur aus dem SS 200 oder WS 200/0 Letzter Vorlesungstermin: Vorstellung einer Beispielklausur Heute: Besprechung der Evaluationsergebnisse Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 2 / 14

Minimale Spannbäume: Algorithmus von Prim Minimale Spannbäume Teilmenge von Kanten eines Graphen, die alle Knoten untereinander verbindet, dabei aber die minimale Summe von Kantengewichten hat Algorithmus von Prim Auf ungerichteten, zusammenhängenden, gewichteten Graphen Vorgehensweise: Wähle beliebigen Knoten als Startknoten Solange der Teilgraph noch nicht alle Knoten erreicht: Wähle billigste erreichbare Kante, die zu einem neuen Knoten führt Füge Kante und Knoten dem Graphen hinzu Laufzeit je nach Implementierung zwischen O( E + V log V ) und O(( V + E ) log V ) a a V ist die Menge der Knoten aus dem Englischen vertices, Plural von vertex E ist die Menge der Kanten aus dem Englischen edges Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 3 / 14

Minimale Spannbäume: Algorithmus von Prim Minimale Spannbäume Teilmenge von Kanten eines Graphen, die alle Knoten untereinander verbindet, dabei aber die minimale Summe von Kantengewichten hat Algorithmus von Prim Auf ungerichteten, zusammenhängenden, gewichteten Graphen Vorgehensweise: Wähle beliebigen Knoten als Startknoten Solange der Teilgraph noch nicht alle Knoten erreicht: Wähle billigste erreichbare Kante, die zu einem neuen Knoten führt Füge Kante und Knoten dem Graphen hinzu Laufzeit je nach Implementierung zwischen O( E + V log V ) und O(( V + E ) log V ) a a V ist die Menge der Knoten aus dem Englischen vertices, Plural von vertex E ist die Menge der Kanten aus dem Englischen edges Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 3 / 14

Minimale Spannbäume: Algorithmus von Prim (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 4 / 14

Minimale Spannbäume: Algorithmus von Prim (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 4 / 14

Minimale Spannbäume: Algorithmus von Prim (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 4 / 14

Minimale Spannbäume: Algorithmus von Prim (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 4 / 14

Minimale Spannbäume: Algorithmus von Prim (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 4 / 14

Minimale Spannbäume: Algorithmus von Prim (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 4 / 14

Minimale Spannbäume: Algorithmus von Prim (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 4 / 14

Minimale Spannbäume: Algorithmus von Prim (2) A D 6 1 B F E 11 C G Gesamtgewicht des Spannbaums: 3 Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 4 / 14

Minimale Spannbäume: Algorithmus von Kruskal Algorithmus von Kruskal Ebenfalls auf ungerichteten, zusammenhängenden, gewichteten Graphen Wähle aus den noch nicht ausgewählten Kanten die leichteste Kante, die keinen Zyklus mit den bereits gewählten Kanten erzeugt Aufwand O( E log E ) oder O( E log V ) Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 / 14

Minimale Spannbäume: Algorithmus von Kruskal (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 6 / 14

Minimale Spannbäume: Algorithmus von Kruskal (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 6 / 14

Minimale Spannbäume: Algorithmus von Kruskal (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 6 / 14

Minimale Spannbäume: Algorithmus von Kruskal (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 6 / 14

Minimale Spannbäume: Algorithmus von Kruskal (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 6 / 14

Minimale Spannbäume: Algorithmus von Kruskal (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 6 / 14

Minimale Spannbäume: Algorithmus von Kruskal (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 6 / 14

Minimale Spannbäume: Algorithmus von Kruskal (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 6 / 14

Minimale Spannbäume: Algorithmus von Kruskal (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 6 / 14

Minimale Spannbäume: Algorithmus von Kruskal (2) A D 6 1 B F E 11 C G Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 6 / 14

Minimale Spannbäume: Algorithmus von Kruskal (2) A D 6 1 B F E 11 C G Gesamtgewicht des Spannbaums: 3 Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 6 / 14

AVL-Bäume (13.2, 13.4) Begriffe Grundidee: Binärer Suchbaum Vermeidung von Ungleichgewichten durch automatisches Balancieren AVL-Eigenschaft: hoehe(linkerteilbaum) hoehe(rechterteilbaum) 1 AVL-Eigenschaft gilt für jeden beliebigen Teilbaum Baum ist AVL-Baum keine unbalancierten Bäume möglich, Operationen bleiben schnell Balancieren braucht nur Konstanten zusätzlichen Aufwand Höhe Anzahl der Ebenen unter dem Knoten Balancefaktor h links h rechts Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 / 14

AVL-Bäume (13.2, 13.4) Begriffe Grundidee: Binärer Suchbaum Vermeidung von Ungleichgewichten durch automatisches Balancieren AVL-Eigenschaft: hoehe(linkerteilbaum) hoehe(rechterteilbaum) 1 AVL-Eigenschaft gilt für jeden beliebigen Teilbaum Baum ist AVL-Baum keine unbalancierten Bäume möglich, Operationen bleiben schnell Balancieren braucht nur Konstanten zusätzlichen Aufwand Höhe Anzahl der Ebenen unter dem Knoten Balancefaktor h links h rechts Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 / 14

AVL-Bäume: Rotation (13.2, 13.4) Einfachrotation Balancefaktoren von letztem balanciertem und erstem unbalancierten Knoten haben gleiches Vorzeichen Rotiere letzten balancierten Knoten Balancefaktor < 0: Linksrotation Balancefaktor > 0: Rechtsrotation Doppelrotation Balancefaktoren von letztem balanciertem und erstem unbalancierten Knoten haben unterschiedliches Vorzeichen Rotiere zwei mal um vorletzten balancierten Knoten Beispiel-Applet tinyurl.com/avltreeapplet Achtung! Balancefaktoren sind in diesem Applet invertiert! Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 / 14

AVL-Bäume: Rotation (13.2, 13.4) Einfachrotation Balancefaktoren von letztem balanciertem und erstem unbalancierten Knoten haben gleiches Vorzeichen Rotiere letzten balancierten Knoten Balancefaktor < 0: Linksrotation Balancefaktor > 0: Rechtsrotation Doppelrotation Balancefaktoren von letztem balanciertem und erstem unbalancierten Knoten haben unterschiedliches Vorzeichen Rotiere zwei mal um vorletzten balancierten Knoten Beispiel-Applet tinyurl.com/avltreeapplet Achtung! Balancefaktoren sind in diesem Applet invertiert! Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 / 14

AVL-Bäume: Rotation (13.2, 13.4) Einfachrotation Balancefaktoren von letztem balanciertem und erstem unbalancierten Knoten haben gleiches Vorzeichen Rotiere letzten balancierten Knoten Balancefaktor < 0: Linksrotation Balancefaktor > 0: Rechtsrotation Doppelrotation Balancefaktoren von letztem balanciertem und erstem unbalancierten Knoten haben unterschiedliches Vorzeichen Rotiere zwei mal um vorletzten balancierten Knoten Beispiel-Applet tinyurl.com/avltreeapplet Achtung! Balancefaktoren sind in diesem Applet invertiert! Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 / 14

Topologische Sortierung Nur auf gerichteten azyklischen Graphen, sog. DAGs a möglich Auflösung von Abhängigkeiten zwischen Knoten Vorgehensweise: 1 Suche Knoten ohne Eingangskante 2 Markiere und entferne Knoten 3 Wiederhole bis Graph leer a engl. directed acyclic graph Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 / 14

Topologische Sortierung (2) J Ho Sch Sh So He Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 10 / 14

Topologische Sortierung (2) J Ho Sch 1 Sh So He Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 10 / 14

Topologische Sortierung (2) J Ho Sch 1 Sh 2 So He Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 10 / 14

Topologische Sortierung (2) J Ho Sch 1 Sh 2 So 3 He Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 10 / 14

Topologische Sortierung (2) J 4 Ho Sch 1 Sh 2 So 3 He Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 10 / 14

Topologische Sortierung (2) J 4 Ho Sch 1 Sh 2 So 3 He Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 10 / 14

Topologische Sortierung (2) 6 J 4 Ho Sch 1 Sh 2 So 3 He Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 10 / 14

Topologische Sortierung (2) 6 J 4 Ho Sch 1 Sh 2 So 3 He Mögliche Reihenfolge: Sh, So, He, Ho, Sch, J Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 10 / 14

Traversierung von Graphen Tiefensuche Vorgehensweise zur Traversierung eines Knotens und seiner Kindknoten: 1 d f s ( node ) : 2 i f ( node i s n u l l ) r e t u r n ; 3 p r e f i x W o r k ( node ) ; 4 d f s ( node >l e f t C h i l d ) ; i n f i x W o r k ( node ) ; 6 d f s ( node >r i g h t C h i l d ) ; p o s t f i x W o r k ( node ) ; Mit einem Stack auch iterativ implementierbar Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 11 / 14

Traversierung von Graphen (2) Breitensuche 1 b f s ( node ) : 2 // r e p l a c e queue by s t a c k to g e t depth f i r s t s e a r c h 3 queue := { node } 4 w h i l e ( not queue >empty ( ) ) : elem := queue >pop ( ) 6 dowork ( elem ) f o r e a c h ( c h i l d i n elem >c h i l d r e n ) : queue >add ( c h i l d ) Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 12 / 14

Nachbesprechung von Blatt 10, 11, 12 10 ADTs, Freies Programmieren: Quilt 11 Simple Scheduler, Radixsort, Mergesort 12 Hashes, dynamische Reihung, Quicksort, RingBuffer Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 13 / 14

Nachbesprechung von Blatt 10, 11, 12 10 ADTs, Freies Programmieren: Quilt 11 Simple Scheduler, Radixsort, Mergesort 12 Hashes, dynamische Reihung, Quicksort, RingBuffer Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 13 / 14

Nachbesprechung von Blatt 10, 11, 12 10 ADTs, Freies Programmieren: Quilt 11 Simple Scheduler, Radixsort, Mergesort 12 Hashes, dynamische Reihung, Quicksort, RingBuffer Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 13 / 14

Ende Guten Appetit! Spaghetti Bolognese mit Reibekäse 1,60 Fränkischer Sauerbraten R 1,0 Sellerieschnitzel mit Brokkolisoße V 1,60 Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen 4. Februar 2010 14 / 14