Minimale Spannbäume. Organisatorisches. VL-16: Minimale Spannbäume. (Datenstrukturen und Algorithmen, SS 2017) Walter Unger. Spannbaum Probleme

Größe: px
Ab Seite anzeigen:

Download "Minimale Spannbäume. Organisatorisches. VL-16: Minimale Spannbäume. (Datenstrukturen und Algorithmen, SS 2017) Walter Unger. Spannbaum Probleme"

Transkript

1 Organisatorisches VL-1: Minimale Spannbäume (Datenstrukturen und Algorithmen, SS 2017) Walter Unger Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Sprechstunde: Mittwoch 11:15 12:00 Übungen: Tim Hartmann, David Korzeniewski, Björn Tauer Webseite: SS 2017, RWTH Nächste Vorlesung: Donnerstag, Jun 2, 10:15 11:45 Uhr, Aula 1 DSAL/SS 2017 VL-1: Minimale Spannbäume 1/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 2/4 Spannbaum Probleme Minimale Spannbäume Spannbaum Ein Spannbaum eines ungerichteten, zusammenhängenden Graphen G = (V, E) ist ein Teilgraph von G, der (i) ein ungerichteter Baum ist und (ii) alle Knoten von G enthält. Bäume & Spannbäume Algorithmus von Kruskal Algorithmus von Prim Implementierung & Komplexität Beispiel (Spannbaum Probleme) Alle Kunden durch Glasfaserkabel verbinden Computernetzwerke verkabeln Verdrahtung von Schaltungen beim Chipdesign Den Strassenbelag zwischen allen Flughafenterminals erneuern DSAL/SS 2017 VL-1: Minimale Spannbäume 3/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 4/4

2 Beispiel: Glasfasernetz Beispiel: Telefonleitungsnetz Müssen alle Leitungen erneuert werden? Wie wählt man die zu erneuernden Abschnitte aus? Gibt es eine eindeutige Lösung? so dass Alle Kunden profitieren Jeder mit jedem über Glasfaser kommunizieren kann Sparsamkeit: keine doppelte Verbindungen DSAL/SS 2017 VL-1: Minimale Spannbäume 5/4 DSAL/SS 2017 VL-1: Minimale Spannbäume /4 Beispiel: Zwei Abdeckungen Ein wenig Mathematik Alle Kunden sind angeschlossen... und sind miteinander verbunden DSAL/SS 2017 VL-1: Minimale Spannbäume 7/4 DSAL/SS 2017 VL-1: Minimale Spannbäume /4

3 Einige Fakten über Bäume (1) Einige Fakten über Bäume (2) Die folgenden vier Aussagen sind für T = (V, E) äquivalent: (1) T ist ein Baum (2) Je zwei Knoten sind durch genau einen Weg verbunden (3) E = V 1 und T ist zusammenhängend (4) E = V 1 und T ist kreis-frei Ein Baum ist (i) maximal kreisfrei und (ii) minimal zusammenhängend. (1) (2): T zusammenhängend mindestens ein Pfad zwischen u und v T kreis-frei höchstens ein Pfad zwischen u und v (1) (3) und (1) (4) folgen mit ähnlichen Argumenten Fügt man eine Kante zu einem Baum hinzu, so entsteht ein Kreis. Löscht man eine Kante, so erhält man zwei Zusammenhangskomponenten. DSAL/SS 2017 VL-1: Minimale Spannbäume /4 DSAL/SS 2017 VL-1: Minimale Spannbäume 10/4 Einige Fakten über Bäume (3) Anzahl der Spannbäume (1) 1. Ein Baum mit n Knoten hat n 1 Kanten 2. In einem Baum mit n Knoten gilt v V deg(v) = 2n 2 3. Jeder Baum (mit n 2 Knoten) hat mindestens 2 Blätter (Austauschsatz) Es sei T = (V, E ) ein spannender Baum von G = (V, E). Es sei e E E. Der Graph (V, E {e}) enthält einen einzigen Kreis C. Für jede Kante f C gilt: (V, E {e} {f }) ist ein Baum. Drei Spannbäume für n=3 Knoten Die Cayley Formel Der vollständige Graph mit n Knoten hat n n 2 Spannbäume. Beweis: Bijektion zwischen der Menge der Bäume mit Knotenmenge {1, 2,..., n} und der Menge der (n 2)-Tupel über {1, 2,..., n} DSAL/SS 2017 VL-1: Minimale Spannbäume 11/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 12/4

4 Anzahl der Spannbäume (2) Anzahl der Spannbäume (3) 5 Wie man einen Baum in einen Prüfer-Code übersetzt 1 Repeat 2 Bestimme Blatt x mit kleinster Nummer 3 Loesche x und inzidente Kante {x, y} 4 Speichere y im Tupel 5 Until ( nur noch eine einzige Kante uebrig ) Knoten mit Grad d kommt genau (d 1)-mal im Prüfer-Code vor Verschiedene Bäume führen zu verschiedenen Prüfer-Codes Prüfer-Code: 7, 4, 4, 1, 7, 1 DSAL/SS 2017 VL-1: Minimale Spannbäume 13/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 14/4 Anzahl der Spannbäume (4) Prüfer-Code = (t(1), t(2),..., t(n 2)) Wie man einen Prüfer-Code in einen Baum zurückübersetzt 1 Setze t(n -1) := n; 2 3 For i=1 to n -1 do { 4 Bestimme die kleinste Zahl b( i), die 5 weder unter b (1),...,b(i -1) noch unter t(i),...,t(n -1) vorkommt 7 } Bilde Baum aus den n -1 Kanten { b( i), t( i)} Minimale Spannbäume DSAL/SS 2017 VL-1: Minimale Spannbäume 15/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 1/4

5 Nun kommen die Kosten ins Bild Beispiel: Leitungskosten Beispiel Finde den kostengünstigsten Weg, um eine Menge von Flughafenterminals, Städten,... zu verbinden Verdrahtung von Schaltungen mit geringstem Energieverbrauch Verbinde alle Kunden kostengünstigst durch Glasfaserkabeln Computernetzwerke verkabeln Das ist unsere Motivation für (kosten-)minimale Spannbäume! Verschiedene Umgebungen verursachen verschiedene Kosten für die Verlegung von Kabeln. DSAL/SS 2017 VL-1: Minimale Spannbäume 17/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 1/4 Geschichtlicher Rückblick (1) 120s: Elektrifizierung von Süd-West-Mähren 125/2: Jindřich Saxel von Západomoravské Elektrárny (West-Moravian Powerplants) kontaktiert Otakar Borůvka Otakar Borůvka (1 15): Tschechischer Mathematiker aus Brno Problem Gegeben n Punkte/Orte in der Euklidischen Ebene, verbinde sie durch ein Netz von minimaler Länge sodass je zwei Punkte entweder direkt oder über eine Folge anderer Punkte mit einander verbunden sind Geschichtlicher Rückblick (2) It is evident that a solution of this problem could have some importace in electricity power-line network design; hence I present the solution briefly using an example. The reader with a deeper interest in the subject is referred to the above quoted paper. I shall give a solution of the problem in the case of 40 points given in Fig. 1. I shall join each of the given points with the nearest neighbor. Thus, for example, point 1 with point 2, point 2 with point 3, point 3 with point 4 (point 4 with point 3), point 5 with point 2, point with point 5, point 7 with point, point with point, (point with point ), etc. I shall obtain a sequence of polygonal strokes 1, 2,..., 13 (Fig. 2). I shall join each of these strokes with the nearest stroke in the shortest possible way. Thus, for example, stroke 1 with stroke 2, (stroke 2 with stroke 1), stroke 3 with stroke 4, (stroke 4 with stroke 3), etc. I shall obtain a sequence of polygonal strokes 1, 2,..., 4 (Fig. 3) I shall join each of these strokes in the shortest way with the nearest stroke. Thus stroke 1 with stroke 3, stroke 2 with stroke 3 (stroke 3 with stroke 1), stroke 4 with stroke 1. I shall finally obtain a single polygonal stroke (Fig. 4), which solves the given problem. DSAL/SS 2017 VL-1: Minimale Spannbäume 1/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 20/4

6 Geschichtlicher Rückblick (3) Was ist ein minimaler Spannbaum? Kantengewichteter ungerichteter Graph Ein (kanten-)gewichteter Graph G ist ein Tripel (V, E, w), wobei: (V, E) ein ungerichteter Graph ist, und w : E R Gewichtsfunktion. w(e) ist das Gewicht der Kante e. Gewicht eines Graphen Das Gewicht w(g ) eines Teilgraphens G = (V, E ) des gewichteten Graphen G ist: w(g ) = e E w(e). Minimaler Spannbaum (MST) Ein Spannbaum des (ungerichteten, gewichteten, zusammenhängenden) Graphens G mit minimalem Gewicht heisst Minimaler Spannbaum (minimum spanning tree, MST) von G. DSAL/SS 2017 VL-1: Minimale Spannbäume 21/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 22/4 Minimaler Spannbaum: Beispiel (1) Minimaler Spannbaum: Beispiel (2) A C 5 4 F G A C 5 4 F G B 3 E 15 H B 3 E 15 H D D Wie sieht der minimale Spannbaum aus? Die roten Kanten zeigen einen MST mit Gesamtgewicht 4. In diesem Fall ist der MST eindeutig. DSAL/SS 2017 VL-1: Minimale Spannbäume 23/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 24/4

7 Tiefensuche? Breitensuche? A C 5 4 F G A C 5 4 F G B 3 D E 15 H B 3 D E 15 H Prim und Kruskal Tiefensuchbaum (von A gestartet) Gesamtgewicht: 55 Breitensuchbaum (von A gestartet) Gesamtgewicht: 7 Der Tiefensuchbaum und der Breitensuchbaum sind zwar Spannbäume, aber nicht notwendigerweise minimale Spannbäume. DSAL/SS 2017 VL-1: Minimale Spannbäume 25/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 2/4 Zwei Algorithmen für MST (1) Eingabe: ein gewichteter zusammenhängender Graph G mit n Knoten Ausgabe: ein minimaler Spannbaum von G Kruskal s Algorithmus So lange noch keine n 1 Kanten markiert sind: 1. Wähle eine billigste unmarkierte Kante 2. Markiere sie, falls sie keinen Kreis mit anderen markierten Kanten schliesst Prim s Algorithmus 1. Wähle einen Startknoten. 2. Markiere die billigste vom bereits konstruierten Baum ausgehende Kante, die keinen Kreis mit anderen markierten Kanten schliesst 3. Wiederhole Schritt 2., so lange noch keine n 1 Kanten markiert sind. Zwei Algorithmen für MST (2) Kruskal s Algorithmus wurde entdeckt: 15 von Joseph Kruskal (Amerikanischer Mathematiker) Prim s Algorithmus wurde entdeckt: 130 von Vojtech Jarnik (Tschechischer Mathematiker) 157 von Robert Clay Prim (Amerikanischer Mathematiker) 15 von Edsger Wybe Dijkstra (Niederländischer Mathematiker) Ist auch unter den Namen Prim-Jarnik und Prim-Dijkstra bekannt. DSAL/SS 2017 VL-1: Minimale Spannbäume 27/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 2/4

8 Beispiel: Das Inselreich der Algolaner Korrektheit von Prim und Kruskal Welche Fährverbindungen sollen durch Brücken ersetzt werden? DSAL/SS 2017 VL-1: Minimale Spannbäume 2/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 30/4 Das Hauptwerkzeug Korrektheit des Algorithmus von Kruskal Definition Eine Kantenmenge F E in Graphen G = (V, E, w) heisst tschechisch, falls es einen MST gibt, der alle Kanten in F enthält. Es sei F E eine tschechische Kantenmenge von G = (V, E, w). Es sei U V eine Zusammenhangskomponente von (V, F ). Es sei e eine Kante mit kleinstem Gewicht zwischen U und V U. Dann gilt: F {e} ist ebenfalls tschechisch Beweisskizze: Betrachte MST (V, F ) mit F F. (V, F {e}) enthält Kreis C. Kreis C verwendet mindestens zwei Kanten e und f zwischen U und V U. w(f ) w(e) Austauschsatz: (V, F {e} {f }) ist Baum Ergo: w(f ) = w(e) und (V, F {e} {f }) ist MST Ergo: F {e} ist tschechisch Der Algorithmus von Kruskal bestimmt einen minimalen Spannbaum. Beweis: Wir zeigen mit vollständiger Induktion über k 0, dass die ersten k von Kruskal ausgewählten Kanten jeweils eine tschechische Kantenmenge bilden. k = 0: Die leere Kantenmenge ist tschechisch. Induktionsschritt: Die bisher ausgewählten Kanten bilden tschechische Kantenmenge F. Kruskal gibt die billigste Kante e zu F dazu, die mit F keinen Kreis schliesst. Hauptwerkzeug impliziert dass F {e} ebenfalls tschechisch ist DSAL/SS 2017 VL-1: Minimale Spannbäume 31/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 32/4

9 Korrektheit des Algorithmus von Prim Der Algorithmus von Prim bestimmt einen minimalen Spannbaum. Beweis: Wir zeigen mit vollständiger Induktion über k 0, dass die ersten k von Prim ausgewählten Kanten jeweils eine tschechische Kantenmenge bilden. Implementierung & Komplexität k = 0: Die leere Kantenmenge ist tschechisch. Induktionsschritt: Die bisher ausgewählten Kanten bilden tschechische Kantenmenge F. Es sei U die Zusammenhangskomponente in (V, F ), die den Startknoten enthält. Prim gibt die billigste Kante e zu F dazu, die U mit V U verbindet. Hauptwerkzeug impliziert dass F {e} ebenfalls tschechisch ist DSAL/SS 2017 VL-1: Minimale Spannbäume 33/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 34/4 Der Algorithmus von Prim: Übersicht Prim s Algorithmus: Grundgerüst Wir klassifizieren Knoten in drei Kategorien (BLACK, GRAY, WHITE): Baumknoten: Knoten, im bis jetzt konstruierten Baum (BLACK) Randknoten: Nicht im Baum; adjazent zu Knoten im Baum (GRAY) Ungesehen: Alle anderen Knoten (WHITE) Grundkonzept von Prim: Fange mit einem Baum an, der nur aus Startknoten besteht Finde billigste Kante, die den bisherigen Baum verlässt. Füge den über diese Kante erreichten Randknoten dem Baum hinzu, zusammen mit der Kante. Fahre fort, bis keine weiteren Randknoten mehr vorhanden sind. 1 // ungerichteter Graph G mit n Knoten 2 void primmst ( Graph G, int n) { 3 initialisiere alle Knoten als ungesehen/ WHITE ; 4 waehle Startknoten s und markiere s als Baum/ BLACK ; 5 reklassifiziere alle Nachbarn von s als Rand/ GRAY ; 7 while ( es gibt Randknoten ) { waehle unter allen Kanten zwischen Baumknoten t und Randknoten v die billigste ; 10 reklassifiziere v als Baum/ BLACK ; 11 fuege Kante (t, v) zum Baum hinzu ; 12 reklassifiziere alle zu v adjazenten ungesehenen 13 Knoten als Rand/ GRAY ; 14 } 15 } DSAL/SS 2017 VL-1: Minimale Spannbäume 35/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 3/4

10 Prim s Algorithmus: Beispiel ADT zum Verhalten der Randknoten Die benötigten Operationen für den Algorithmus von Prim lauten: Finde billigste Kante zu einem Randknoten (Kantenkandidat) Reklassifiziere Randknoten als Baumknoten (füge Kantenkandidaten zum Baum hinzu). Ändere Kosten (Randgewicht) eines Randknotens, wenn günstigerer Kantenkandidat gefunden wird Idee: Ordne Randknoten immer nach ihrem Randgewicht (= Priorität) Wir entscheiden uns für Prioritätswarteschlange als Datenstruktur Prioritätswarteschlange (priority queue) PriorityQueue pq; pq.insert(int e, int k), int pq.getmin(), pq.delmin() void pq.decrkey(int e, int k) setzt Schlüssel von Element e auf k; dabei muss k kleiner als der bisherige Schlüssel von e sein. DSAL/SS 2017 VL-1: Minimale Spannbäume 37/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 3/4 Komplexitätsanalyse (1) Komplexitätsanalyse (2) Im Worst-Case passiert folgendes: Jeder Knoten muss zur Prioritätswarteschlange hinzugefügt werden. Auf jeden Knoten muss wieder zugegriffen werden und er muss wieder gelöscht werden. Die Priorität eines Randknotens muss nach jeder gefundenen Kante angepasst werden. Für einen Graphen mit n Knoten und m Kanten ergibt sich dann für die Zeitkomplexität T (n, m) von Prim s Algoritmus: T (n, m) O (n T (insert)+n T (getmin)+n T (delmin)+m T (decrkey)) n T (insert)+n T (getmin)+n T (delmin)+m T (decrkey) Die Prioritätswarteschlange kann so organisiert werden (VL-0), dass die Operation insert, getmin, delmin, decrkey jeweils nur O(log n) Zeit benötigen. Der Algorithmus von Prim findet für einen Graphen mit n Knoten und m Kanten den MST in O(m log n) Zeit. DSAL/SS 2017 VL-1: Minimale Spannbäume 3/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 40/4

11 Algorithmus von Prim: Implementierung Der Algorithmus von Kruskal: Übersicht 1 Prim - MST (G,w, start ) { 2 for each u in V( G) do { 3 key [u] = infty ; 4 parent [ u] = nil 5 } 7 key [ start ] = 0; insert all vertices u in V( G) into pq 10 while (! pq. isempty ()) { 11 u = pq. getmin (); 12 pq. delmin (); 13 for each neighbor v of u do { 14 if (w(u,v) < key [v]) { 15 pq. decrkey (v, w(u,v)); 1 parent [ v] = u; 17 } 1 } 1 } 20 } Wir sortieren die Kanten zuerst ansteigend nach ihrem Gewicht. Das kostet O(m log m) Zeit. Dann beginnen wir mit den n Knoten (ohne Kanten) und versuchen der Reihe nach die Kanten in den Baum einzufügen Falls Kante zwei Knoten in zwei verschiedenen Zusammenhangskomponenten verbindet: Kante einfügen Falls Kante zwei Knoten in derselben Zusammenhangskomponente verbindet: Kante überspringen Wichtiges Unterproblem: Wir müssen schnell testen können, ob (im bisher konstruierten Wald) zwei Knoten zur selben Zusammenhangskomponente gehören oder nicht DSAL/SS 2017 VL-1: Minimale Spannbäume 41/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 42/4 Union-Find Datenstruktur Union-Find Datenstruktur: Implementierung (1) Zur Verwaltung der Zusammenhangskomponenten brauchen wir eine Datenstruktur, die die folgenden Operationen unterstützt: Operationen: Find: Bestimme Zusammenhangskomponente für Knoten v. Union: Vereinige die beiden Zusammenhangskomponenten für Knoten v und für Knoten v in eine einzige Zusammenhangskomponente Implementierung der Union-Find Datenstruktur Für jede Zusammenhangskomponente werden die Knoten in einem Baum gespeichert. Dieser Baum ist (im allgemeinen) kein Binärbaum; jeder Knoten kann beliebig viele Kinder haben. Jeder Knoten (innerer Knoten oder Blatt) hat Zeiger zu Vater. Wir brauchen keine Zeiger zu den Kindern. Name der Zusammenhangskomponente ist Knoten in Wurzel DSAL/SS 2017 VL-1: Minimale Spannbäume 43/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 44/4

12 Union-Find Datenstruktur: Implementierung (2) Implementierung von Find(u) Starte in Knoten u, und laufe bis zur Wurzel. Implementierung von Union(u,v) 1. Starte in Knoten u, und laufe bis zur Wurzel w u. 2. Starte in Knoten v, und laufe bis zur Wurzel w v. 3. Mache w u zum Kind von w v. Laufzeit: Hängt stark von der Höhe der Bäume ab. Falls Baum aus einem einzigen Ast besteht: Laufzeit = Θ(n) Lineare Laufzeit ist zu langsam Union-Find Datenstruktur: Implementierung (3) Bessere Implementierung: Speichere für jeden Baum Anzahl der Knoten in Wurzel Hänge immer kleinen Baum unter grossen Baum Bessere Implementierung von Union(u,v) 1. Starte in Knoten u, und laufe bis zur Wurzel w u mit Knotenzahl n u. 2. Starte in Knoten v, und laufe bis zur Wurzel w v mit Knotenzahl n v. 3. Falls n u n v : Mache w u zum Kind von w v. Falls n u > n v : Mache w v zum Kind von w u. 4. Knotenzahl des neuen Baumes = n u + n v Es seien H u und H v die Höhen der beiden Bäume. Beobachtung Falls H u H v : Höhe des neuen Baumes = max{h u, H v } Falls H u = H v : Höhe des neuen Baumes = H u + 1 DSAL/SS 2017 VL-1: Minimale Spannbäume 45/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 4/4 Union-Find Datenstruktur: Implementierung (4) Organisatorisches Baum mit Höhe H enthält mindestens 2 H Knoten. Beweis: Induktion über H plus Beobachtung Folgerung In der besseren Implementierung braucht jede Find Operation und jede Union Operation nur O(log n) Zeit. Nächste Vorlesung: Donnerstag, Jun 2, 10:15 11:45 Uhr, Aula 1 Webseite: Der Algorithmus von Kruskal findet für einen Graphen mit n Knoten und m Kanten den MST in O(m log n) Zeit. DSAL/SS 2017 VL-1: Minimale Spannbäume 47/4 DSAL/SS 2017 VL-1: Minimale Spannbäume 4/4

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

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

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

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

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

Algorithmen und Datenstrukturen (WS 2007/08) 63

Algorithmen und Datenstrukturen (WS 2007/08) 63 Kapitel 6 Graphen Beziehungen zwischen Objekten werden sehr oft durch binäre Relationen modelliert. Wir beschäftigen uns in diesem Kapitel mit speziellen binären Relationen, die nicht nur nur besonders

Mehr

Breiten- und Tiefensuche in Graphen

Breiten- und Tiefensuche in Graphen Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen

Mehr

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

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

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

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen

Mehr

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011 Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei

Mehr

Vorlesung 3 MINIMALE SPANNBÄUME

Vorlesung 3 MINIMALE SPANNBÄUME Vorlesung 3 MINIMALE SPANNBÄUME 72 Aufgabe! Szenario: Sie arbeiten für eine Firma, die ein Neubaugebiet ans Netz (Wasser, Strom oder Kabel oder...) anschließt! Ziel: Alle Haushalte ans Netz bringen, dabei

Mehr

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten Gliederung Zusammenhang von Graphen Stark Zusammenhängend K-fach Zusammenhängend Brücken Definition Algorithmus zum Finden von Brücken Anwendung Zusammenhangskomponente Definition Wichtige Aussagen und

Mehr

Die in den Suchverfahren konstruierten Graphen waren zusammenhängend und enthielten keine Kreise. Also vereinbaren wir:

Die in den Suchverfahren konstruierten Graphen waren zusammenhängend und enthielten keine Kreise. Also vereinbaren wir: Kapitel 4 Bäume und Matchings Wir haben im letzten Kapitel Bäume implizit als Ergebnis unserer Suchverfahren kennengelernt. In diesem Kapitel wollen wir diese Graphenklasse ausführlich untersuchen. 4.1

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Bäume und Wälder. Bäume und Wälder 1 / 37

Bäume und Wälder. Bäume und Wälder 1 / 37 Bäume und Wälder Bäume und Wälder 1 / 37 Bäume Ein (ungerichteter) Baum ist ein ungerichteter Graph G = (V, E), der zusammenhängend ist und keine Kreise enthält. Diese Graphen sind Bäume: Diese aber nicht:

Mehr

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

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

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

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

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Wasist das? Maximaler Fluss Minimaler Schnitt Warumtut man das? Logistische

Mehr

Bäume und Wälder. Bäume und Wälder 1 / 37

Bäume und Wälder. Bäume und Wälder 1 / 37 Bäume und Wälder Bäume und Wälder 1 / 37 Bäume Ein (ungerichteter) Baum ist ein ungerichteter Graph G = (V, E), der zusammenhängend ist und keine einfachen Kreise enthält. Bäume und Wälder 2 / 37 Bäume

Mehr

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

Mehr

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

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Fully dynamic algorithms for the single source shortest path problem.

Fully dynamic algorithms for the single source shortest path problem. Fully dynamic algorithms for the single source shortest path problem. Michael Baur Wintersemester 2001/2002 Zusammenfassung Im folgenden Paper werde ich Algorithmen für das dynamische Kürzeste-Wege-Problem

Mehr

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time Universität Konstanz Mathematisch-naturwissenschaftliche Sektion Fachbereich Mathematik und Statistik Wintersemester 2001/02 Mikkel Thorup: Undirected Single-Source Shortest Paths with Positive Integer

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

Mehr

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Steinerbäume Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Verfasser Flamur Kastrati Betreuer Prof. Dr. habil. Thomas

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?

Mehr

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

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Statistische Untersuchungen zu endlichen Funktionsgraphen

Statistische Untersuchungen zu endlichen Funktionsgraphen C# Projekt 1 Name: Statistische Untersuchungen zu endlichen Funktionsgraphen Aufgabe: Basierend auf dem Abschnitt 2.1.6. Random mappings, Kap.2, S 54-55, in [1] sollen zunächst für eine beliebige Funktion

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

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

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Ein 5.55-Approximationsalgorithmus für das VPND-Problem Lars Schäfers Inhalt Einführung:

Mehr

Tutorium Algorithmen & Datenstrukturen

Tutorium Algorithmen & Datenstrukturen June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten

Mehr

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

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

Datenstrukturen und Algorithmen SS07

Datenstrukturen und Algorithmen SS07 Datenstrukturen und Algorithmen SS07 Datum: 27.6.2007 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Online Algorithmen Update von Listen Move to Front (MTF) Transpose Approximationen

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 1 Programm des

Mehr

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen: 6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Wissensbasierte Systeme

Wissensbasierte Systeme WBS3 Slide 1 Wissensbasierte Systeme Sebastian Iwanowski FH Wedel Kap. 3: Algorithmische Grundlagen der KI WBS3 Slide 2 Suchstrategien Warum sind Suchstrategien so wichtig in Wissensbasierten Systemen?

Mehr

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

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum 4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007 Graphentheorie Rainer Schrader Organisatorisches Zentrum für Angewandte Informatik Köln 23. Oktober 2007 1 / 79 2 / 79 Organisatorisches Organisatorisches Dozent: Prof. Dr. Rainer Schrader Weyertal 80

Mehr

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen 9.4 Binäre Suchbäume Erweiterung: Einfügen an der Wurzel Standardimplementierung: Der neue Schlüssel wird am Ende des Suchpfades angefügt (natürlich, weil zuerst festgestellt werden muss, ob der Schlüssel

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

Mehr

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind. Unterschiede von DBMS und files Speichern von Daten! DBMS unterstützt viele Benutzer, die gleichzeitig auf dieselben Daten zugreifen concurrency control.! DBMS speichert mehr Daten als in den Hauptspeicher

Mehr

Guten Morgen und Willkommen zur Saalübung!

Guten Morgen und Willkommen zur Saalübung! Guten Morgen und Willkommen zur Saalübung! 1 Wie gewinnt man ein Spiel? Was ist ein Spiel? 2 Verschiedene Spiele Schach, Tic-Tac-Toe, Go Memory Backgammon Poker Nim, Käsekästchen... 3 Einschränkungen Zwei

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2015/16 12. Vorlesung Hashing Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Übungen Begründen Sie grundsätzlich alle Behauptungen außer die Aufgabe

Mehr

6. Algorithmen der Computer-Geometrie

6. Algorithmen der Computer-Geometrie 6. Algorithmen der Computer-Geometrie 1. Einführung 2. Schnitt von zwei Strecken 3. Punkt-in-Polygon-Test 4. Schnitt orthogonaler Strecken 5. Punkteinschlussproblem Geo-Informationssysteme 146 6.1 Computer-Geometrie

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i

Mehr

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel Highway Hierarchies Kristian Dannowski, Matthias Hoeschel Gliederung Einleitung / Bidirektional Dijkstra Intuition / Naive Strategie Konstruktion der Highway Hierarchie Suche in der Highway Hierarchie

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte]

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte] UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Bernoullistrasse 16 CH 4056 Basel Assistenten Bernhard Egger Andreas Forster Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha

Mehr

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

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20 Suche in Spielbäumen Suche in Spielbäumen KI SS2011: Suche in Spielbäumen 1/20 Spiele in der KI Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche Einschränkung von Spielen auf: 2 Spieler:

Mehr

Kapitel MK:IV. IV. Modellieren mit Constraints

Kapitel MK:IV. IV. Modellieren mit Constraints Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren

Mehr

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume

Mehr

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

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung 1 Kapitel III Skalierbare Peer to Peer-Netzwerke Tapestry von Zhao, Kubiatowicz und Joseph (2001) Netzw erke 2 Tapestry

Mehr

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

Kapitel 9 Suchalgorithmen

Kapitel 9 Suchalgorithmen Kapitel 9 Suchalgorithmen Technische Universität München Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für

Mehr

DATENSTRUKTUREN UND ZAHLENSYSTEME

DATENSTRUKTUREN UND ZAHLENSYSTEME DATENSTRUKTUREN UND ZAHLENSYSTEME RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: ralf@cs.uu.nl Homepage: http://www.cs.uu.nl/~ralf/ March, 2001 (Die Folien finden

Mehr

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Assistenten Brian Amberg Andreas Forster Tutoren Simon Andermatt Lukas Beck Webseite http://informatik.unibas.ch/lehre/hs10/cs101/index.html

Mehr

Algorithms & Datastructures Midterm Test 1

Algorithms & Datastructures Midterm Test 1 Algorithms & Datastructures Midterm Test 1 Wolfgang Pausch Heiko Studt René Thiemann Tomas Vitvar

Mehr

Grundlagen der Programmierung 2. Bäume

Grundlagen der Programmierung 2. Bäume Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)

Mehr

Komplexe Softwaresysteme 2 - SS 2014. Dominik Korner

Komplexe Softwaresysteme 2 - SS 2014. Dominik Korner Komplexe Softwaresysteme 2 - SS 2014 Dominik Korner 24. März 2014 Inhaltsverzeichnis 1 Übung 1 2 1.1 Heap.............................................. 2 A Zeichnen Sie den (min)-heap, der durch Einfügen

Mehr

Algorithmen und Datenstrukturen SS09

Algorithmen und Datenstrukturen SS09 Foliensatz 8 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 29 TU Ilmenau Seite / 54 Binärbäume TU Ilmenau Seite 2 / 54 Binäre Bäume Bäume und speziell

Mehr

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Modelle und Statistiken

Modelle und Statistiken Kapitel 4 Modelle und Statistiken In letzter Zeit werden vermehrt Parameter (Gradfolgen, Kernzahlfolgen, etc.) empirischer Graphen (Internet, WWW, Proteine, etc.) berechnet und diskutiert. Insbesondere

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

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 )

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 ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

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

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

Mehr

Sortierte Folgen 250

Sortierte Folgen 250 Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:

Mehr

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

Präfx Trie zur Stringverarbeitung. Cheng Ying Sabine Laubichler Vasker Pokhrel

Präfx Trie zur Stringverarbeitung. Cheng Ying Sabine Laubichler Vasker Pokhrel Präfx Trie zur Stringverarbeitung Cheng Ying Sabine Laubichler Vasker Pokhrel Übersicht: Einführung Eigenschaften von Tries Verwendung von Tries Allgemeine Defnition von Patricia Tries Eigenschaften von

Mehr