Minimale Spannbäume. Organisatorisches. VL-16: Minimale Spannbäume. (Datenstrukturen und Algorithmen, SS 2017) Walter Unger. Spannbaum Probleme
|
|
- Pamela Pfeiffer
- vor 6 Jahren
- Abrufe
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 EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36
MehrGraphen: 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.
MehrWS 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
MehrDatenstrukturen & 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
Mehr4 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
MehrAnmerkungen 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
MehrAlgorithmen 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
MehrEffiziente 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
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
Mehr8 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
MehrAlgorithmen 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
MehrBreiten- 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
MehrS=[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
MehrKapitel 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:
MehrDatenstrukturen. 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
MehrVorlesung 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
MehrVorlesung 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
MehrGliederung. 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
MehrDie 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
MehrAlgorithmen 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
MehrDatenstrukturen 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
MehrBä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:
MehrAVL-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
MehrDer 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
MehrLiteratur. 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,
Mehr13. 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),
MehrBabeș-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
MehrDatenstruktur, 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)
MehrMaximaler 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
MehrBä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
MehrCodierung, 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
MehrWiederholung 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
MehrFully 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
MehrUndirected 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
MehrAlgorithmen 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
MehrKü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
Mehr1 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
MehrSteinerbä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
MehrAlgorithmen 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
MehrName: 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?
Mehr1. 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
MehrStatistische 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
MehrSuchen 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
MehrSeminarvortag 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:
MehrTutorium 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
Mehr5.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!
MehrDatenstrukturen 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
MehrKombinatorische 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
MehrKap. 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
MehrAlgorithmen 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:
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)
MehrEine 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
Mehr15 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
Mehr16. 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
MehrProgrammiertechnik 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,...
MehrAlgorithmen 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
MehrVorlesung 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?
MehrAlgorithmen & 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
MehrWissensbasierte 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?
MehrLernziele: 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
Mehr4. 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.
MehrGrundlagen 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.
MehrGraphentheorie. 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
Mehr9.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
MehrInformatik 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
MehrSuchbä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
MehrProgrammierung 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.
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
MehrGuten 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
MehrDatenbankanwendung. 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
Mehr1. 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
MehrAlgorithmen 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
Mehr6. 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
MehrAbschnitt: 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
MehrKurs 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
MehrHighway 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
Mehr368 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
MehrTutoren 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
MehrSuche 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:
MehrKapitel 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
MehrKONSTRUKTION 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
Mehr1. 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
MehrAlgorithmen 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
Mehrw 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
MehrKapitel 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
MehrDATENSTRUKTUREN 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
MehrTutoren 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
MehrAlgorithms & Datastructures Midterm Test 1
Algorithms & Datastructures Midterm Test 1 Wolfgang Pausch Heiko Studt René Thiemann Tomas Vitvar
MehrGrundlagen 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)
MehrKomplexe 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
MehrAlgorithmen 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
MehrKapitel 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
MehrModelle 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
MehrFolge 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
MehrZeichnen 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 =
Mehrt 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)
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
MehrSortierte 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:
MehrKap. 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:
MehrPrä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