Algorithmen und Datenstrukturen (WS 2008/09) 79

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen (WS 2008/09) 79"

Transkript

1 Kapitel 6 raphen 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 anschaulich sind, sondern auch in zahllosen Anwendungen auftreten. Eine symmetrische und irreexive binäre Relation E V V kann auch als Menge von zweielementigen Teilmengen {u, v} V aufgefasst werden, da (u, v) E (v, u) E (Symmetrie) und E {(v, v) : v V } = (Irreexivität). 6.1 Definition (raph) Ein Paar = (V, E) aus Mengen V und E ( V 2) heiÿt (endlicher, ungerichteter) raph. Die Elemente von V heiÿen Knoten, die von E Kanten. Wenn keine Missverständnisse zu befürchten sind, schreiben wir kurz n = n() = V und m = m() = E für deren Anzahl. raphen können sehr anschaulich dargestellt werden, indem man die Knoten durch Punkte und die Kanten durch Kurven, welche die Punkte ihrer beiden Knoten verbinden, repräsentiert. Die folgenden Beispiele sind Darstellungen einiger wichtiger Familien von raphen. 78

2 Algorithmen und Datenstrukturen (WS 2008/09) 79 vollständige raphen K n V = {1,..., n} E = ( ) {1,...,n} 2 Hyperwürfel Q d V = {0, 1} d { d E = {(a 1,..., a d ), (b 1,..., b d )} : i=1 } a i b i = 1 Zykel (auch: Kreise) C n Wege P n V = {0,..., n 1} V = {0,..., n} E = {{i, i + 1 mod n} : i = 0,..., n 1} E = {{i, i + 1} : i = 0,..., n 1} 6.2 Bemerkung In der raphentheorie werden auch allgemeinere binäre Relationen behandelt, in denen man auf Symmetrie ( gerichtete raphen), Irreexivität ( raphen mit Schleifen) oder beides verzichtet. elegentlich werden auch Multiteilmengen (d.h. Mengen von so genannten Mehrfachkanten) von V V ( Multigraphen) oder Kanten mit beliebiger Knotenzahl ( Hypergraphen) betrachtet. gerichteter Multigraph Hypergraph raph (mit Schleifen (mit drei Hyperkanten) und Mehrfachkanten) Wir beschränken uns jedoch auf den Fall ungerichteter raphen ohne Schleifen oder Mehrfachkanten; diese werden zur besseren Unterscheidung oft als

3 Algorithmen und Datenstrukturen (WS 2008/09) 80 schlichte raphen bezeichnet. 6.3 Definition (Adjazenz, Inzidenz, rad) Ist = (V, E) ein raph, dann heiÿen zwei Knoten u, v V adjazent (auch: benachbart), falls es eine Kante {u, v} E gibt, und die Matrix A() = (a v,w ) v,w V mit a v,w = { 1 falls {v, w} E 0 sonst Adjazenzmatrix des raphen. Ein Knoten v V und eine Kante e E heiÿen inzident, falls v e, und die Matrix I() = (i v,e ) v V mit e E { 1 falls v e i v,e = 0 sonst Inzidenzmatrix des raphen. Die Menge N (v) = {w V : {v, w} E} der zu v V adjazenten Knoten heiÿt Nachbarschaft von v und wir nennen deren Kardinalität d (v) = N (v) = a v,w = i v,e, w V e E d.h. die Zeilensumme von v in A() oder I(), den rad von v. Der minimale und maximale rad werden mit δ() = min v V d (v) bzw. () = max v V d (v) bezeichnet. Adjazenz- und Inzidenzmatrix sind einfach zu handhabende Datenstrukturen zur Speicherung von raphen. Wie wir in Kürze sehen werden, gehört zu den wichtigsten Operationen auf einem raphen z.b. das Aufzählen der Nachbarn eines Knotens, und gerade dafür eignen sich die beiden Matrixdarstellungen nicht besonders gut, insbesondere nicht, wenn sie viele Nullen enthalten. Auÿerdem würde in diesem Fall auch viel Speicherplatz verschwendet. Für die Implementation von raphenalgorithmen nehmen wir daher an, dass als raphdatenstruktur eine Adjazenzlistendarstellung verwendet wird. Diese besteht aus einem Knotenarray, in dem zu jedem Knoten eine lineare Liste mit seinen Nachbarn gespeichert wird, und entspricht somit einer komprimierten Darstellung der Adjazenzmatrix, in der alle Nullen übersprungen werden. Die zu einem Knoten inzidenten Kanten und dessen Nachbarn erhalten wir dann durch einfaches Durchlaufen seiner Adjazenzliste.

4 Algorithmen und Datenstrukturen (WS 2008/09) 81 Nachteil der Adjazenzlisten ist der zusätzliche Speicherplatzbedarf für die Listenzeiger (was allerdings erst bei fast vollständigen raphen ins ewicht fällt) und die höhere Laufzeit für den Test, ob zwei gegebene Knoten adjazent sind. Es sei noch angemerkt, das raphen gelegentlich auch als Liste ihrer Knoten und Kanten gespeichert werden. Die Kantenliste ist eine komprimierte Darstellung der Inzidenzmatrix; die Knotenliste ist dann u.a. deshalb nötig, weil isolierte Knoten (Knoten ohne inzidente Kante) sonst nicht repräsentiert wären. 6.4 Lemma (Handschlaglemma) Für alle raphen = (V, E) gilt d (v) = 2m. v V Beweis. Prinzip des doppelten Abzählens: auf der linken Seite der leichung wird über alle Zeilen der Inzidenzmatrix summiert. Da jede Spalte einer Kante entspricht und jede Kante genau zwei verschiedene Knoten enthält, ergibt die Summe über alle Spalten gerade zweimal die Anzahl der Kanten. 6.5 Folgerung Die Anzahl der Knoten ungeraden rades ist gerade. Beweis. Sei V i = {v V : d (v) i mod 2}, i = 0, 1, die Menge der Knoten mit geradem bzw. ungeradem rad. Mit dem Handschlaglemma 6.4 gilt 2m = d (v) = d (v) + d (v), v V v V } 0 v V {{} 1 gerade also ist auch die hinterste Summe gerade, sodass, weil jeder ihrer Summanden ungerade ist, deren Anzahl gerade sein muss. 6.6 Satz Es gibt immer zwei Knoten mit gleichem rad. Beweis. Für alle v V gilt 0 d (v) n 1. ibt es einen Knoten mit rad 0, dann gibt es keinen mit rad n 1, und umgekehrt (ein Knoten vom rad 0 ist mit keinem anderen benachbart, einer vom rad n 1 mit allen

5 Algorithmen und Datenstrukturen (WS 2008/09) 82 anderen Knoten; beides zusammen geht nicht). Also gilt in einem raphen sogar 0 d (v) n 2 oder 1 d (v) n 1 für alle v V. Mit dem Taubenschlagprinzip folgt, dass von den n Knoten mindestens zwei den gleichen der n 1 möglichen rade haben. 6.7 Definition (Teilgraphen) Sind = (V, E) ein raph sowie V V und E E Teilmengen seiner Knoten und Kanten, dann ist = (V, E ) ein Teilgraph von. falls E ( V ) 2. Wir sagen dann enthält und schreiben. Die Teilgraphen [V ] = ( V, E ( V 2 ) ) und [E ] = ( e E e, E heiÿen der von V knoten- bzw. von E kanteninduzierte Teilgraph. Ein Teilgraph heiÿt aufspannend, falls er alle Knoten enthält. Wir werden auÿerdem Schreibweisen wie z.b. v für [V \ {v}] oder + e für den raphen = (V, E {e}) verwenden. Um die Knoten- und Kantenmenge eines raphen von anderen zu unterscheiden, schreiben wir auch V () und E(). 6.8 Definition (raphenisomorphismus) ibt es zu zwei raphen 1 = (V 1, E 1 ) und 2 = (V 2, E 2 ) eine bijektive Abbildung α : V 1 V 2 mit {u, v} E 1 {α(u), α(v)} E 2, dann heiÿen die raphen 1 und 2 isomorph, 1 = 2, und α (raphen)isomorphismus. Wir interessieren uns vor allem für strukturelle Eigenschaften und werden isomorphe raphen daher nicht unterscheiden. Dadurch können wir z.b. von dem vollständigen raphen mit 7 Knoten sprechen, auch wenn seine Knotenmenge nicht {1,..., 7} ist. 6.9 Definition (Wege und Kreise in einem raphen) Ein raph = (V, E) mit s, t V enthält einen (s, t)-weg der Länge k, falls er einen zu P k isomorphen Teilgraphen mit Endknoten s und t enthält, d.h. es gibt einen Teilgraphen P = (V (P ), E(P )) mit s, t V (P ) und )

6 Algorithmen und Datenstrukturen (WS 2008/09) 83 einen Isomorphismus α : {0,..., k} V (P ) von P k so, dass α(0) = s und α(k) = t. Die Länge eines kürzesten (s, t)-weges heiÿt Abstand (auch: Distanz) von s und t und wird mit d (s, t) bezeichnet. Der raph enthält einen Kreis der Länge k, falls er einen zu C k isomomorphen Teilgraphen enthält Definition (Zusammenhang) Ein raph = (V, E) heiÿt zusammenhängend, wenn er zu je zwei Knoten s, t V einen (s, t)-weg enthält. Die inklusionsmaximalen zusammenhängenden Teilgraphen eines raphen sind seine (Zusammenhangs)komponenten und ihre Anzahl wird mit κ() bezeichnet. 6.1 Bäume und Wälder Die folgende spezielle Klasse von raphen ist uns schon begegnet und eine zentrale Struktur der Informatik Definition (Baum) Ein zusammenhängender raph ohne Kreise heiÿt Baum. Ein raph, dessen sämtliche Zusammenhangskomponenten Bäume sind, heiÿt Wald Satz Für jeden raphen = (V, E) gilt m n κ(). leichheit gilt genau dann, wenn ein Wald ist. Beweis. Induktion über die Anzahl m der Kanten bei fester Anzahl n von Knoten. Enthält ein raph keine Kante, sind keine zwei Knoten durch einen Weg verbunden, jeder bildet also seine eigene Komponente (und damit einen trivialen Baum) und es gilt m = 0 = n κ(). Fügt man zu einem raphen eine Kante zwischen bestehenden Knoten hinzu, verbindet sie zwei Knoten, die entweder in derselben oder in zwei verschiedenen Komponenten (die dann vereinigt werden) liegen.

7 Algorithmen und Datenstrukturen (WS 2008/09) 84 Die Zahl der Komponenten verringert sich also um maximal eins, sodass die Ungleichung weiterhin gilt. Wenn durch die neue Kante zwei Komponenten vereinigt werden, entsteht kein neuer Kreis, denn sonst müsste es zwischen den beiden neu verbundenen Knoten vorher schon einen Weg gegeben haben Satz Für einen raphen = (V, E) sind folgende Aussagen äquivalent: (i) ist ein Baum. (ii) Zwischen je zwei Knoten in existiert genau ein Weg. (iii) ist zusammenhängend und hat n 1 Kanten. (iv) ist minimal zusammenhängend, d.h. ist zusammenhängend und für alle e E ist e unzusammenhängend. (v) ist maximal kreisfrei (azyklisch), d.h. ist kreisfrei und für alle e ( V 2) \ E enthält + e einen Kreis. Beweis. (i) (ii): Da Bäume zusammenhängend sind, gibt es zwischen je zwei Knoten mindestens einen Weg. äbe es zwei verschiedene, so enthielte deren Vereinigung einen Kreis. ibt es umgekehrt immer genau einen Weg, dann ist der raph kreisfrei, weil es andernfalls zwei Wege zwischen je zwei Knoten des Kreises gäbe. (i) (iii): Folgt unmittelbar aus Satz (iii) = (iv): Wegen Satz 6.12 kann ein raph mit n 2 Kanten nicht zusammenhängend sein. (iv) = (v): Enthielte einen Kreis, so könnte eine beliebige Kante des Kreises entfernt werden und wäre immer noch zusammenhängend. Könnte man eine Kante hinzufügen, ohne einen Kreis zu erzeugen, kann es vorher

8 Algorithmen und Datenstrukturen (WS 2008/09) 85 keinen Weg zwischen den beiden Knoten der neuen Kante gegeben haben, der raph wäre also nicht zusammenhängend gewesen. (v) = (i): Da kreisfrei ist, müssen wir nur zeigen, dass auch zusammenhängend ist. Wäre nicht zusammenhängend, so könnte zwischen zwei Knoten in verschiedenen Komponenten eine Kante eingefügt werden, ohne einen Kreis zu erzeugen Folgerung Jeder zusammenhängende raph enthält einen aufspannenden Baum. Die Anzahl µ() = m n + κ() der Kanten, die man aus einem raphen entfernen muss/kann, um einen aufspannenden Wald mit gleicher Anzahl von Komponenten zu erhalten, heiÿt auch zyklomatische Zahl des raphen. 6.2 Durchläufe In diesem Abschnitt werden wir raphen durchlaufen, um Eigenschaften zu testen oder Teilgraphen zu identizieren. Durchlaufen bedeutet dabei, an einem Knoten zu starten und jeweils von einem bereits besuchten Knoten über eine Kante den benachbarten Knoten aufzusuchen. Dazu werden zunächst die Denitionen von Wegen und Kreisen verallgemeinert Definition (raphenhomomorphismus) ibt es zu zwei raphen 1 = (V 1, E 1 ) und 2 = (V 2, E 2 ) eine Abbildung α : V 1 V 2 mit {u, v} E 1 = {α(u), α(v)} E 2, dann heiÿt α (raphen)homomorphismus und wir nennen den Teilgraphen α( 1 ) = (α(v 1 ), {{α(u), α(v)} E 2 : {u, v} E 1 }) 2 homomorphes Bild von 1 in 2.

9 Algorithmen und Datenstrukturen (WS 2008/09) Definition (Kantenzug und Tour) Ist = (V, E) ein raph und α : V (P k ) V () ein Homomorphismus, dann heiÿt α(p k ) Kantenzug der Länge k. Ein Kantenzug heiÿt geschlossen oder Tour, falls α(0) = α(k) (in diesem Fall ist α(p k ) auch homomorphes Bild des Kreises C k ). Eine Kante {v, w} E ist {{i, i + 1} E(P k ) : {α(i), α(i + 1)} = {v, w}} mal im Kantenzug α(p k ) enthalten. s s t t Kantenzug Kantenzug geschlossener und P 5 der Länge 5; der Länge 5; Kantenzug (eine Kante gleichzeitig (s, t)-weg aber kein Weg zweimal enthalten) Eulertouren Manche raphenprobleme unterscheiden sich nur geringfügig in der Denition, aber erheblich im Schwierigkeitsgrad. Wir beginnen mit einem leichten, dass sogar als Beginn der raphentheorie angesehen wird Definition (Eulertour) Eine Tour heiÿt Eulertour, falls sie jede Kante genau einmal enthält Satz Ein zusammenhängender raph enthält genau dann eine Eulertour, wenn alle Knoten geraden rad haben. Beweis. Der raph = (V, E) enthalte eine Eulertour, d.h. es gebe eine homomorphe Abbildung von C m, dem Kreis mit m Kanten, auf. Da jede Kante nur einmal in der Tour vorkommt, sorgt jeder Knoten des Kreises dafür, dass zwei zum selben Knoten von inzidente Kanten in der Tour enthalten sind. Da aber alle Kanten in der Tour vorkommen, muss die Anzahl der zu einem Knoten von inzidente Kanten gerade sein. Euler, 1736

10 Algorithmen und Datenstrukturen (WS 2008/09) 87 Betrachte nun umgekehrt einen zusammenhängenden raphen, in dem jeder Knoten geraden rad hat. Beginne bei irgendeinem Knoten und wählen eine Kante. Am benachbarten Knoten wähle eine noch nicht gewählte Kante und fahre so fort. Dies geht solange, bis man wieder den ersten Knoten erreicht, denn an jedem anderen gibt es wegen des geraden rades immer eine noch nicht gewählte Kante. Die gewählten Kanten sind homomorphes Bild eines Kreises und an jedem Knoten ist die Anzahl der gewählten und ungewählten Kanten gerade. Falls es noch einen Knoten mit ungewählten Kanten gibt, dann wegen des Zusammenhangs auch einen, der zu schon gewählten Kanten inzident ist. Wiederhole die Konstruktion von diesem Knoten aus und füge die beiden homomorphen Bilder von Kreisen zu einem zusammen (Anfangsstück des ersten bis zum gemeinsamen Knoten, dann der zweite Kantenzug und schlieÿlich das Endstück des ersten), bis alle Kanten einmal gewählt wurden Beispiel (Königsberger Brückenproblem) Der unten stehende raph stellt sieben Brücken (helle Knoten) über den durch Königsberg iessenden Fluss Pregel dar. Da nicht alle Knoten geraden rad haben, gibt es keine Eulertour (und damit keinen Rundgang, der jede der Brücken genau einmal überquert). Algorithmus von Hierholzer C A D B raphenmodell Originalskizze

11 Algorithmen und Datenstrukturen (WS 2008/09) Beispiel (Haus vom Nikolaus) Wenn man sich mit einem (nicht notwenig geschlossenen) Kantenzug, der alle Kanten genau einmal enthält, begnügt, dann funktioniert die Konstruktion aus dem Beweis von Satz 6.18 auch dann noch, wenn es zwei Knoten ungeraden rades gibt. Man muss dann allerdings bei einem davon anfangen und wird beim anderen aufhören Tiefensuche Der Algorithmus zur Konstruktion einer Eulertour durchläuft solange Kanten vom jeweils zuletzt besuchten Knoten, bis dieser nicht mehr zu unbesuchten Kanten inzident ist. In diesem Fall wird an irgendeinem zu unbesuchten Kanten inzidenten Knoten weitergemacht. In der Variante in Algorithmus 26 wird immer vom zuletzt gefundenen (statt besuchten) Knoten aus weitergesucht. Auf diese Weise können z.b. ein aufspannender Baum, ein Kreis oder ein Weg zwischen zwei Knoten konstruiert

12 Algorithmen und Datenstrukturen (WS 2008/09) 89 werden. Algorithmus 26: Tiefensuche (depth-rst search, DFS ) Eingabe : raph = (V, E), Wurzel s V Daten : Knotenstack S, Zähler d Ausgabe : Tiefensuchnummern DFS (anfänglich ) Vorgänger parent (anfänglich nil) DFS[s] 1; d 2 markiere s; push s S while S nicht leer do v top(s) if es ex. unmarkierte Kante {v, w} E then markiere {v, w} if w nicht markiert then DFS[w] d; d d + 1 markiere w; push w S parent[w] v else pop v S Durch die Speicherung von raphen in Adjazenzlisten ist die Laufzeit der Tiefensuche in O(n + m), denn an die jeweils nächste unmarkierte inzidente Kante kommen wir so in O(1) und jeder Knoten und jede Kante werden nur einmal markiert. Oensichtlich erhalten alle Knoten eines raphen, die im Verlauf des Algorithmus' markiert werden, eine endliche Tiefensuchnummer DFS[v]. Falls nach Ablauf des Algorithmus' parent[w] = v gilt, heiÿt die Kante {v, w} Baumkante, alle anderen markierten Kanten heiÿen Nichtbaumkanten (auch: Rückwärtskanten) Beispiel Tiefensuche vom hellen Knoten aus: die Knoten sind mit ihren Tiefensuchnummern und die Kanten in Reihenfolge ihres Durchlaufs beschriftet.

13 Algorithmen und Datenstrukturen (WS 2008/09) Beobachtung: Die Tiefensuche liefert einen aufspannenden Baum (Baumkanten durchgezogen). Die Knoten einer Nichtbaumkante (gestrichelt) sind durch einen monoton nummerierten Weg im Baum verbunden Lemma Wenn v V auf S abgelegt wird, sei M (V \ {v}) die Menge aller anderen bereits markierten Knoten. Der Knoten v wird erst von S entfernt, nachdem alle Knoten t V \ M, für die es einen (v, t)-weg in [V \ M] gibt, ebenfalls markiert wurden. Beweis. Angenommen, es gibt einen Knoten, für den die Aussage falsch ist. Wähle unter allen diesen dasjenige v V mit maximaler DFS[v] und einen Knoten t V, der bei Entfernen von v aus S noch nicht markiert ist. ibt es einen (v, t)-weg über unmarkierte Knoten, dann beginnt er mit einem unmarkierten Nachbarn von v. In der while-schleife werden alle Nachbarn von v markiert, bevor v aus S entfernt wird, und wegen der Maximalität von DFS[v] wird t markiert, bevor dieser Nachbar aus S entfernt wird. Das ist ein Widerspruch Satz Ist T E die Menge der Baumkanten nach einer Tiefensuche auf = (V, E) mit Wurzel s V, dann ist ([T ] + s) ein aufspannender Baum der Zusammenhangskomponente, die s enthält. Beweis. Wir stellen zunächst fest, dass alle zu Baumkanten inzidenten Knoten markiert werden. Der von den Baumkanten induzierte raph ist zusammenhängend, da jede neue Baumkante immer inzident zu einem bereits markierten Knoten ist. Er ist auÿerdem kreisfrei, denn jede neue Baumkante enthält genau einen Knoten, der zuvor nicht markiert war (ein Kreis kann also niemals geschlossen werden).

14 Algorithmen und Datenstrukturen (WS 2008/09) 91 Weil Lemma 6.22 insbesondere für die Wurzel selbst gilt, werden alle Knoten der Zusammenhangskomponente von s markiert. Durch mehrfache Tiefensuche können daher alle Zusammenhangskomponenten bestimmt werden. Der folgende Satz besagt, dass Nichtbaumkanten immer nur zwischen Knoten verlaufen, die mit der Wurzel auf einem gemeinsamen Weg liegen. Daher kann man die Tiefensuche z.b. auch benutzen, um in Komponenten, die keine Bäume sind, als Zertikat dafür einen Kreis zu konstruieren Satz Ist T E die Menge der Baumkanten nach einer Tiefensuche auf = (V, E), {v, w} E \ T eine Nichtbaumkante mit DFS[w] < DFS[v] und v = v 1, v 2,..., v k = w der eindeutige (v, w)-weg in [T ], dann gilt parent[v i ] = v i+1 für alle i = 1,..., k 1. Beweis. Die Existenz der Nichtbaumkante zeigt, dass v und w in der selben Zusammenhangskomponente liegen, und DFS[w] < DFS[v] bedeutet, dass v später als w gefunden wird. Die Nichtbaumkante wird daher markiert während v (und nicht w) oben auf dem Stack liegt (andernfalls wäre sie eine Baumkante). Das bedeutet aber, dass w zu diesem Zeitpunkt noch in S ist, weil ein Knoten erst entfernt wird, nachdem alle inzidenten Kanten markiert wurden. Die Behaupung folgt damit aus der Beobachtung, dass für einen Knoten u, der auf dem Stack unmittelbar auf einen Knoten u gelegt wird, parent[u] = u gilt Breitensuche Wir ändern die Durchlaufreihenfolge nun so, dass immer vom zuerst gefundenen Knoten aus weitergesucht wird. Dadurch kann nicht nur wieder ein aufspannender Wald konstruiert werden, sondern auch kürzeste Wege von einem Anfangsknoten zu allen anderen in seiner Komponente. Auch die Breitensuche benötigt nur Zeit O(n + m), weil die Adjazenzliste jedes Knoten nur einmal durchlaufen werden muss. Oensichtlich erhalten alle Knoten, die im Verlauf des Algorithmus' markiert werden, eine endliche Breitensuchnummer BFS[v]. Falls nach Ablauf des Algorithmus' parent[w] = v gilt, heiÿt die Kante {v, w} Baumkante, alle anderen markierten Kanten heiÿen Nichtbaumkanten.

15 Algorithmen und Datenstrukturen (WS 2008/09) 92 Algorithmus 27: Breitensuche (breadth-rst search, BFS ) Eingabe : raph = (V, E), Wurzel s V Daten : Knotenwarteschlange Q Ausgabe : Breitensuchnummern BFS (anfänglich ) Vorgänger parent (anfänglich nil) BFS[s] 0 markiere s; enqueue Q s while Q nicht leer do dequeue v Q for unmarkierte Kanten {v, w} E do markiere {v, w} if w nicht markiert then BFS[w] BFS[v] + 1 markiere w; enqueue Q w parent[w] v Man beachte, dass für Baumkanten BFS[w] = BFS[v]+1 gilt. ilt dies für eine Nichtbaumkante, nennen wir sie auch Vorwärtskante, andernfalls Querkante Beispiel Breitensuche vom hellen Knoten aus: die Knoten sind mit ihren Breitensuchnummern und die Kanten in Reihenfolge ihres Durchlaufs beschriftet Beobachtung: Die Breitensuche liefert einen aufspannenden Baum (Baumkanten sind durchgezogen, Vorwärtskanten gestrichelt, Querkanten gepunktet). Die Breitensuchnummern sind gerade die Längen kürzester Wege von der Wurzel aus.

16 Algorithmen und Datenstrukturen (WS 2008/09) Lemma Alle Knoten und Kanten der Zusammenhangskomponente der Wurzel werden markiert. Für jede markierte Kante {v, w} gilt BFS[v] BFS[w] 1. Beweis. Wird ein Knoten markiert, dann auch alle seine inzidenten Kanten und alle seine Nachbarn. Eine nicht markierte Kante kann also nicht zu einem markierten Knoten inzident sein. Angenommen, es gibt einen nicht markierten Knoten v in der Zusammenhangskomponente der Wurzel s. Nach Denition des Zusammenhangs gibt es einen (v, s)-weg. Da s markiert wird, muss es auf diesem Weg zwei adjazente Knoten geben, von denen genau einer markiert ist. Das ist ein Widerspruch. Die Breitensuchnummern der Knoten in der Warteschlange unterscheiden sich um höchstens 1 und die Knoten mit kleinerer Nummer werden zuerst entnommen, denn wenn ein Knoten w markiert und eingefügt wird, wurde zuvor ein Knoten v mit um 1 kleinerer Nummer entnommen. Wird eine weitere zu w inzidente Kante von einem Knoten v aus markiert, dann ist w selbst noch in der Warteschlange (sonst wären alle inzidenten Kanten bereits markiert), sodass der Nachbar v nach v und vor w eingefügt wurde und seine Breitensuchnummer zwischen denen von v und w liegt Satz Ist T E die Menge der Baumkanten nach einer Breitensuche auf = (V, E) mit Wurzel s V, dann ist ([T ] + s) ein aufspannender Baum der Zusammenhangskomponente, die s enthält. Beweis. Ist n s die Anzahl der Knoten in der Zusammenhangskomponente von s, dann ist T = n s 1, denn nach Lemma 6.26 werden alle n s Knoten markiert, und eine Baumkante kommt genau dann hinzu, wenn ein anderer Knoten als s markiert wird. Wegen Satz 6.13 brauchen wir also nur noch zu zeigen, dass [T ] für T zusammenhängend ist. Ein anderer Knoten als s wird aber nur dann markiert, wenn er einen bereits markierten Nachbarn hat Satz Der eindeutige Weg von der Wurzel s zu einem Knoten v V in [T ] + s ist ein kürzester (s, v)-weg in und BFS[v] = d (s, v). Beweis. Wenn in der Breitensuche eine Baumkante {parent[w], w} durchlaufen wird, erhält w die Breitensuchnummer BFS[parent[w]] + 1. Der ein-

17 Algorithmen und Datenstrukturen (WS 2008/09) 94 deutige (s, v)-weg im Baum hat daher die Länge BFS[v]. Sind s = v 0, v 1,..., v k = v die Knoten auf einem (s, v)-weg in, dann gilt BFS[v i ] BFS[v i 1 ] 1 für alle i = 1,..., k wegen Lemma Weil BFS[s] = 0 hat jeder solche Weg mindestens BFS[v] Kanten. 6.3 Kürzeste Wege Das am Ende des letzen Abschnitts gelöste Problem ist Spezialfall eines der wichtigsten raphenprobleme, für die es eziente Algorithmen gibt. Wir wollen es abschlieÿend in gröÿerer Allgemeinheit behandeln und führen daher noch Richtungen und Bewertungen für die Kanten eines raphen ein. Wie in Bemerkung 6.2 bereits angedeutet, unterscheidet sich ein gerichteter raph von einem ungerichteten dadurch, dass die Kantenpaare geordnet sind. Es gilt also nicht mehr E ( V 2), sondern E (V V ) \ {(v, v) : v V }. Für eine Kante (v, w) E heiÿt v Anfangs- oder Startknoten, und w heiÿt End- oder Zielknoten der Kante. Die Kante (v, w) heiÿt ausgehende Kante von w und eingehende Kante von w. Die meisten der oben denierten Konzepte übertragen sich in nahe liegender Weise. Hier interessieren uns vor allem Wege: damit ein Weg ein gerichteter Weg ist, muss für alle Paare aufeinander folgender Kanten der Zielknoten der vorangehenden Kante Startknoten der nachfolgenden Kante sein. Zur genaueren Modellierung ungleicher Beziehungen zwischen Objekten können die Kanten gerichteter wie ungerichteter raphen bewertet (gelabelt) werden. Diese Bewertungen können z.b. Typen von Beziehungen unterscheiden (ER-Diagramme) oder die Ähnlichkeit bzw. Distanz zweier Objekten ausdrücken. Wir beschränken uns hier auf reellwertige Kantenlabel, die als Distanz interpretiert werden. In diesem Fall ist die Länge eines Weges deniert als die Summe der Distanzen, mit denen seine Kanten beschriftet sind (alternativ könnte etwa das Produkt von Funktionswahrscheinlichkeiten für Übertragungsleitungen von Interesse sein) Problem (Single-Source Shortest-Paths Problem, SSSP) gegeben: gerichteter raph = (V, E; λ) mit Kantenlängen λ : E R

18 Algorithmen und Datenstrukturen (WS 2008/09) 95 gesucht: kürzeste Wege von s zu allen anderen Knoten Mit Satz 6.28 haben wir oben gezeigt, dass in ungerichteten raphen = (V, E; λ) mit uniformer Kantenbewertung λ(e) = 1 für alle e E eine Breitensuche von s aus zur Lösung des SSSP ausreicht, und es ist leicht zu sehen, wie die Breitensuche für gerichtete raphen mit uniformer Kantenbewertung abzuwandeln ist (wir müssen uns bei der Schleife über alle unmarkierten inzidenten Kanten lediglich auf die ausgehenden beschränken) Algorithmus von Dijkstra Wir verallgemeinern die Breitensuche zunächst dahin gehend, dass das SSSP- Problem in gerichteten raphen mit nicht-negativen (statt uniformen) Kantenlängen λ : E R 0 gelöst wird. Algorithmus 28: Algorithmus von Dijsktra Eingabe : gerichteter raph = (V, E; λ) mit λ : E R 0 Startknoten s V Daten : Prioritätswarteschlange Q Ausgabe : Distanzen d (anfänglich ) Vorgänger parent (anfänglich nil) d[s] 0 insert Q V while Q do extractmin v Q for (v, w) E do if d[v] + λ(v, w) < d[w] then d[w] d[v] + λ(v, w) parent[w] v Die wesentliche Änderung in Algorithmus 28 gegenüber der Breitensuche besteht im Austausch der Warteschlange gegen eine Prioritätswarteschlange, die es erlaubt, kürzere, aber später gefundene Alternativen zu berücksichtigen, indem ein noch in Q bendlicher Knoten w weiter nach vorne geholt wird. Dies geschieht immer dann, wenn die Distanz des nächsten Knotens v

19 Algorithmen und Datenstrukturen (WS 2008/09) 96 zusammen mit der Länge der Kante (v, w) kleiner ist als die bisherige Schätzung für die Distanz, die w von s hat. Wir sagen dann, die Kante (v, w) (deren Endknoten bisher als weiter entfernt angenommen wurden, als es die Länge der Kante möglich macht) werde relaxiert Satz Algorithmus 28 löst das SSSP-Problem auf gericheten raphen mit nichtnegativen Kantenlängen. Beweis. Wir beweisen die folgende Invariante. Bei Ausführung von extractmin v Q gilt d[v] = d (s, v). Da der Algorithmus erst abbricht, wenn alle Knoten aus Q entfernt wurden, folgt daraus die Korrektheit. Angenommen, die Invariante gelte nicht immer, und v V wäre der erste aus Q zu entnehmende Knoten, für den sie nicht gilt. Dann ist v s, weil d[s] = 0 = d [s]. Sei P ein kürzester (s, v)-weg (ein solcher exisitert, da andernfalls d[v] = = d [v]), z der erste Knoten auf P, der noch in Q ist, und y dessen Vorgänger. Die Anfangsstücke nach y bzw. z sind kürzeste (s, y)- und (s, z)-wege, da sie sonst durch kürzere ersetzt werden könnten und wir so einen kürzeren (s, v)-weg als P erhielten. Da y bereits aus Q entnommen ist, gilt d (s, v) }{{} d[v] d[z] d[y] + λ(y, z) d (s, z) d (s, y) d (z, v) }{{} 0 Das heisst, entweder ist d[z] < d[v] (im Widerspruch zu removemin v Q) oder d[z] = d[v] = d (s, v) (und die Invariante somit gar nicht verletzt). Die Ezienz hängt wesentlich von der für die Prioritätswarteschlange verwendeten Datenstruktur ab. Mit den in Kapitel 2 besprochenen Heaps ergibt sich eine Laufzeit von O(n + m log n), da jede Kante zu einer Relaxation führen kann.

20 Algorithmen und Datenstrukturen (WS 2008/09) 97 Für m Θ(n 2 ) ist ein einfaches Knotenarray für Q sogar besser, denn dann können die maximal m Relaxationen in jeweils konstanter Zeit ausgeführt werden. Zusammen mit n linearen Suchen nach dem jeweils kleinsten d[ ] ergibt also sich eine Laufzeit von O(n 2 ). Es gibt aber auch Heap-Implementationen, die im Allgemeinen zu besseren Laufzeiten führen. In der Vorlesung Entwurf und Analyse von Algorithmen (im Vertiefungs- bzw. Master-Studium) werden z.b. Fibonacci-Heaps eingeführt, mit denen Relaxationen in amortisiert konstanter sowie Extraktionen in logarithmischer Zeit realisiert werden können. Die esamtlaufzeit ist dann O(m + n log n). Wie bei der Breitensuche kann ein kürzester Weg jeweils durch Rückverfolgen der parent-zeiger bis nach s ermittelt werden Algorithmus von Bellman/Ford Da im allgemeinen Fall λ : E R die Kanten und somit auch Wege und sogar Zykel negative Länge haben können, kann das SSSP-Problems schlecht gestellt sein, d.h. keine vernünftige Lösung haben. Enthält ein raph nämlich einen Kreis negativer Länge als Teil eines Weges von s nach t, dann könnte der Kreis beliebig oft durchlaufen und die Länge des Weges damit immer noch kürzer gemacht werden. Der Bellman/Ford-Algorithmus führt die Relaxationen anders als der Algorithmus von Dijkstra nicht während eines raphendurchlaufs, sondern schematisch in fester Reihenfolge aus. Aus dem Korrektheitsbeweis erkennt man, dass nach n 1 Relaxationsrunden keine Verkürzungen mehr möglich sind es sei denn, es gibt einen Zykel negativer Länge Satz Algorithmus 29 löst das SSSP-Problem in Zeit O(nm), falls es keine Zykel negtiver Länge gibt, und liefert andernfalls proper = false. Beweis. Sei d (i) (v, w) die Länge ein kürzesten (v, w)-weges mit maximal i Kanten. Wir beweisen die folgende Invariante durch Induktion über i. Nach der i-ten Iteration gilt d[v] d (i) (s, v) für alle v V.

21 Algorithmen und Datenstrukturen (WS 2008/09) 98 Algorithmus 29: Algorithmus von Bellman/Ford Eingabe : gerichteter raph = (V, E; λ) mit λ : E R Startknoten s V Ausgabe : Flag proper (anfänglich true) Distanzen d (anfänglich ) Vorgänger parent (anfänglich nil) d[s] 0 for i = 1,..., n 1 do for (v, w) E do if d[v] + λ(v, w) < d[w] then d[w] d[v] + λ(v, w) parent[w] v for (v, w) E do if d[v] + λ(v, w) < d[w] then proper false i = 0 : d[v] = { = d (0) (s, v) für v s 0 = d (0) (s, s) für v = s i i + 1 : Die Behauptung folgt unmittelbar aus d (i+1) (s, v) = und d[v] min (u,v) E { d (i) d (i) (s, v) oder (s, u) + λ(u, v) { d (i) (s, u) }{{} d[u] nach Ind. Vor. für ein u V + λ(u, v)} { d (i) (s, v) }{{} d[v] nach Ind. Vor. Wenn nach n 1 Iterationen immer noch eine Kante (v, w) mit d[w] > d[v] + λ(v, w) existiert, dann gilt d (n) (s, w) d(n 1) (s, v) }{{} =d[v] + λ(v, w) < d[w] = d (n 1) (s, w). Es gibt also einen (s, w)-weg mit n Kanten, der kürzer ist als jeder (s, w)- Weg mit n 1 Kanten. Da es nur n Knoten gibt, muss der Weg einen Knoten zweimal enthalten und der dazwischenliegende Kreis negative Länge haben. Die Laufzeit wird oensichtlich von der Doppelschleife dominiert. }

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

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

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V. Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.

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

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie Referenzen zum Nacharbeiten: Diskrete Mathematik Sebastian Iwanowski FH Wedel Kap. 6: Graphentheorie Lang 6 Beutelspacher 8.1-8.5 Meinel 11 zur Vertiefung: Aigner 6, 7 (7.4: Algorithmus von Dijkstra) Matousek

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

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

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

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 23. November 2011 Betweenness Centrality Closeness Centrality H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 Betweenness Centrality Grundlegende Idee: Ein Knoten ist wichtig, wenn er auf

Mehr

Wiederholung zu Flüssen

Wiederholung zu Flüssen Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:

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

Vollständiger Graph. Definition 1.5. Sei G =(V,E) ein Graph. Gilt {v, w} E für alle v, w V,v w, dann heißt G vollständig (complete).

Vollständiger Graph. Definition 1.5. Sei G =(V,E) ein Graph. Gilt {v, w} E für alle v, w V,v w, dann heißt G vollständig (complete). Vollständiger Graph Definition 1.5. Sei G =(V,E) ein Graph. Gilt {v, w} E für alle v, w V,v w, dann heißt G vollständig (complete). Mit K n wird der vollständige Graph mit n Knoten bezeichnet. Bemerkung

Mehr

3. Musterlösung. Problem 1: Boruvka MST

3. Musterlösung. Problem 1: Boruvka MST Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines

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

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

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 5. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Wdhlg.: Dijkstra-Algorithmus I Bestimmung der

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965). 5. Graphenprobleme Im folgenden bezeichnen G = (E, K) einen endlichen Graphen mit der Eckenmenge E und der Kantenmenge K. G kann ungerichtet, gerichtet, schlicht oder nicht schlicht sein. 5.1 Spannende

Mehr

2. Repräsentationen von Graphen in Computern

2. Repräsentationen von Graphen in Computern 2. Repräsentationen von Graphen in Computern Kapitelinhalt 2. Repräsentationen von Graphen in Computern Matrizen- und Listendarstellung von Graphen Berechnung der Anzahl der verschiedenen Kantenzüge zwischen

Mehr

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld Westfählische Wilhelms-Universität Eulersche Graphen Autor: 21. Mai 2015 Inhaltsverzeichnis 1 Das Königsberger Brückenproblem 1 2 Eulertouren und Eulersche Graphen 2 3 Auffinden eines eulerschen Zyklus

Mehr

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

MafI I: Logik & Diskrete Mathematik (F. Hoffmann) Lösungen zum 14. und letzten Aufgabenblatt zur Vorlesung MafI I: Logik & Diskrete Mathematik (F. Hoffmann) 1. Ungerichtete Graphen (a) Beschreiben Sie einen Algorithmus, der algorithmisch feststellt, ob

Mehr

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege Kürzeste Wege Zentrale Frage: Wie komme ich am schnellsten von A nach B? B A Kürzeste Wege Zentrale Frage: Wie komme ich am schnellsten von A nach

Mehr

4. Kreis- und Wegeprobleme Abstände in Graphen

4. Kreis- und Wegeprobleme Abstände in Graphen 4. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 4.4. Es sei G = (V,E) ein Graph. Der Abstand d(v,w) zweier Knoten v,w V ist die minimale Länge eines Weges von v nach w. Falls

Mehr

1. Einleitung wichtige Begriffe

1. Einleitung wichtige Begriffe 1. Einleitung wichtige Begriffe Da sich meine besondere Lernleistung mit dem graziösen Färben (bzw. Nummerieren) von Graphen (speziell von Bäumen), einem Teilgebiet der Graphentheorie, beschäftigt, und

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

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 15: Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

Mehr

Graphenalgorithmen I

Graphenalgorithmen I enalgorithmen I Tobias Pröger 21. Dezember 2016 Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch auf Vollständigkeit und Korrektheit. Wir sind froh über

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/59 Graphische Darstellung von Zusammenhängen schon

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

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

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

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

Minimal spannende Bäume

Minimal spannende Bäume http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität 2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende Algorithmen

Mehr

2 Tiefen- und Breitensuche

2 Tiefen- und Breitensuche 2 Tiefen- und Breitensuche Übersicht 2.1 SpannendeBäume... 21 2.2 WiefindetmanspannendeBäume?... 24 2.3 AnwendungenvonBFSundDFS... 29 2.4 Aufgaben... 33 2.1 Spannende Bäume Vor nicht allzu langer Zeit

Mehr

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.

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

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

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University

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

C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume

C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume Fachbereich IV, Informatik Softwarepraktikum C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume Wintersemester 2004/2005 Dokumentation Algorithmen zur Lösung von MST - Problemen Nicolas

Mehr

Einführung in die Graphentheorie. Monika König

Einführung in die Graphentheorie. Monika König Einführung in die Graphentheorie Monika König 8. 11. 2011 1 Vorwort Diese Seminararbeit basiert auf den Unterkapiteln 1.1-1.3 des Buches Algebraic Graph Theory von Chris Godsil und Gordon Royle (siehe

Mehr

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale

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

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

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 4 Programm des

Mehr

Institut für Mathematik Geometrie und Lineare Algebra J. Schönenberger-Deuel. Aufgabe 1. Wir geben nur zwei von sehr vielen möglichen Strategien.

Institut für Mathematik Geometrie und Lineare Algebra J. Schönenberger-Deuel. Aufgabe 1. Wir geben nur zwei von sehr vielen möglichen Strategien. Lösungen Übung 13 Aufgabe 1. Wir geben nur zwei von sehr vielen möglichen Strategien. a) Strategie 1 (nächster Nachbar): Jedes Mal reist der Reisende vom Punkt, wo er gerade ist, zur nächstgelegenen Stadt,

Mehr

f h c 7 a 1 b 1 g 2 2 d

f h c 7 a 1 b 1 g 2 2 d ) Man bestimme mit Hilfe des Dijkstra-Algorithmus einen kürzesten Weg von a nach h: c 7 a b f 5 h 3 4 5 i e 6 g 2 2 d Beim Dijkstra-Algorithmus wird in jedem Schritt von den noch unmarkierten Knoten jener

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April

Mehr

2. Optimierungsprobleme 6

2. Optimierungsprobleme 6 6 2. Beispiele... 7... 8 2.3 Konvexe Mengen und Funktionen... 9 2.4 Konvexe Optimierungsprobleme... 0 2. Beispiele 7- Ein (NP-)Optimierungsproblem P 0 ist wie folgt definiert Jede Instanz I P 0 hat einen

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

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 11 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

4.7 Der Algorithmus von Dinic für maximalen Fluss

4.7 Der Algorithmus von Dinic für maximalen Fluss 4.7 Der Algorithmus von Dinic für maximalen Fluss Wir kennen bereits den Algorithmus von Ford Fulkerson zur Suche nach einem maximalen Fluss in einem Graphen. Wir lernen nun einen Algorithmus für maximalen

Mehr

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

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben

Mehr

Minimal spannender Baum

Minimal spannender Baum Minimal spannender Baum 16 1 2 21 5 11 19 6 6 3 14 33 10 5 4 18 Die Kreise zeigen die vorgesehenen Standorte neu zu errichtender Filialen einer Bank. Entlang der bestehenden Straßen sollen Telefonleitungen

Mehr

Studientag zur Algorithmischen Mathematik

Studientag zur Algorithmischen Mathematik Studientag zur Algorithmischen Mathematik Eulertouren, 2-Zusammenhang, Bäume und Baumisomorphismen Winfried Hochstättler Diskrete Mathematik und Optimierung FernUniversität in Hagen 22. Mai 2011 Outline

Mehr

Graph Paar (V,E) V: nichtleere Menge von Knoten (vertex) E: Menge von Kanten (edges): Relation (Verbindung) zwischen den Knoten

Graph Paar (V,E) V: nichtleere Menge von Knoten (vertex) E: Menge von Kanten (edges): Relation (Verbindung) zwischen den Knoten Graphentheorie Graph Paar (V,E) V: nichtleere Menge von Knoten (vertex) E: Menge von Kanten (edges): Relation (Verbindung) zwischen den Knoten gerichteter Graph (DiGraph (directed graph) E: Teilmenge E

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Prioritätswarteschlangen Mariano Zelke Datenstrukturen 2/28 Der abstrakte Datentyp Prioritätswarteschlange : Füge Elemente (mit Prioritäten) ein und entferne

Mehr

Kapitel 3. Kombinatorische Optimierung. 3.1 Begriffe aus der Graphentheorie

Kapitel 3. Kombinatorische Optimierung. 3.1 Begriffe aus der Graphentheorie Kapitel 3 Kombinatorische Optimierung 3 Begriffe aus der Graphentheorie Zur Beschreibung vieler Optimierungsprobleme eignet sich besonders die Sprache der Graphentheorie Das erste graphentheoretisch beschriebene

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

Universität des Saarlandes

Universität des Saarlandes Universität des Saarlandes FR 6.2 Informatik Prof. Dr. Kurt Mehlhorn WiSe 2015/2016 Übungen zu Ideen der Informatik http://www.mpi-inf.mpg.de/departments/algorithms-complexity/teaching/winter15/ideen/

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

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

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung Kapitel : Minimal spannende Bäume Gliederung der Vorlesung. Fallstudie Bipartite Graphen 2. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Wege. Traveling

Mehr

14. Rot-Schwarz-Bäume

14. Rot-Schwarz-Bäume Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).

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

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung Kapitel : Minimale spannende Bäume Gliederung der Vorlesung. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen. Kürzeste Wege. Minimale spannende Bäume. Färbungen und Cliquen. Traveling Salesman

Mehr

Graphen und Algorithmen

Graphen und Algorithmen Graphen und Algorithmen Vorlesung #7: Matchingtheorie Dr. Armin Fügenschuh Technische Universität Darmstadt WS 2007/2008 Übersicht Matchings und erweiternde Wege Satz von Berge Das Heiratsproblem und der

Mehr

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung Martin Dietzfelbinger Juni/Juli 2011 FG KTuEA, TU Ilmenau Effiziente Algorithmen SS11 Kapitel 5 Kapitel 5: Dynamische Programmierung Typische

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 22. Vorlesung Tiefensuche und Topologische Sortierung Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Vorlesungsumfrage Nutzen Sie die Vorlesungsbefragung

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I H 10. Präsenzaufgabenblatt, Wintersemester 2015/16 Übungstunde am 18.01.2015 Aufgabe Q Ein Reiseveranstalter besitzt ein Flugzeug, das maximal p Personen aufnehmen kann. Der Veranstalter bietet einen Flug

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

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen . Graphen viele praktische (Optimierungs-)Probleme sind als graphentheoretische Probleme formulierbar z.b. in Produktionsplanung, Personaleinsatzplanung,.... Grundlagen gerichteter, ungerichteter und gewichteter

Mehr

Graphalgorithmen 2. Oleksiy Rybakov. 3. Juni Betreuer: Tobias Werth, Daniel Brinkers

Graphalgorithmen 2. Oleksiy Rybakov. 3. Juni Betreuer: Tobias Werth, Daniel Brinkers Graphalgorithmen 2 Oleksiy Rybakov 3. Juni 2015 Betreuer: Tobias Werth, Daniel Brinkers 1 / 40 Inhaltsverzeichnis 1 Minimale Spannbäume und Datenstrukturen 2 Kürzeste Wege 3 Spezielle Graphen 2 / 40 Minimale

Mehr

Vorlesung 4 BETWEENNESS CENTRALITY

Vorlesung 4 BETWEENNESS CENTRALITY Vorlesung 4 BETWEENNESS CENTRALITY 101 Aufgabe! Szenario: Sie arbeiten bei einem sozialen Online-Netzwerk. Aus der Netzwerk-Struktur Ihrer Benutzer sollen Sie wichtige Eigenschaften extrahieren. [http://www.fahrschule-vatterodt.de/

Mehr

Methoden der Netzwerkanalyse

Methoden der Netzwerkanalyse Methoden der Netzwerkanalyse Skript zur Vorlesung Ulrik Brandes Sommersemester 005 (letzte Änderung:. August 006) Prolog Methoden der Netzwerkanalyse (Spezialvorlesung Algorithmen) [AKTIV: wo treten Netzwerke

Mehr

Algorithmen zur Berechnung von Matchings

Algorithmen zur Berechnung von Matchings Algorithmen zur Berechnung von Matchings Berthold Vöcking 1 Einleitung Matchingprobleme sind Zuordnungsprobleme. Es geht darum z.b. Studierenden Plätze in Seminaren zuzuordnen, Bewerber auf freie Stellen

Mehr

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer

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. Hashing 6. Algorithmische Geometrie 4/6, Folie 1 2014 Prof. Steffen Lange - HDa/FbI

Mehr

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,

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

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

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Werner Struckmann Wintersemester 2005/06 8. Graphen 8.1 Mathematische Grundlagen 8.2 Darstellung von Graphen 8.3 Ausgewählte Algorithmen für ungewichtete Graphen 8.4 Ausgewählte

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

Minimal spannende Bäume

Minimal spannende Bäume Minimal spannende Bäume Ronny Harbich 4. Mai 006 (geändert 19. August 006) Vorwort Ich danke Patrick Bahr und meinem Bruder Steffen Harbich für die Unterstützung bei dieser Arbeit. Sie haben sowohl zu

Mehr

Geometrische Algorithmen

Geometrische Algorithmen Geometrische Algorithmen Thomas Röfer Motivation Scan-line-Prinzip Konvexe Hülle Distanzprobleme Voronoi-Diagramm Rückblick Manipulation von Mengen Vorrangwarteschlange Heap HeapSort swap(a, 0, 4) 1 5

Mehr

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege. Minimale spannende Bäume. Färbungen und Cliquen. Traveling Salesman Problem. Flüsse in Netzwerken

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

Definition 7.1. Der Coxeter Graph zu W ist der ungerichtete gewichtete Graph Γ W = (V, E), mit Eckenmenge V und Kantenmenge E, gegeben durch V = und

Definition 7.1. Der Coxeter Graph zu W ist der ungerichtete gewichtete Graph Γ W = (V, E), mit Eckenmenge V und Kantenmenge E, gegeben durch V = und 7. Coxeter Graphen Um die endlichen Spiegelungsgruppen zu klassifizieren, wollen wir ihnen nun Graphen zuordnen, die die Gruppen bis auf Isomorphie eindeutig bestimmen. Im Folgenden sei wie vorher Π Φ

Mehr

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide Dipl-Math. Wolfgang Kinzner 3.4.2012 Kapitel 3: Minimal aufspannende Bäume und Matroide Minimal aufspannende

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Algorithmen und Datenstrukturen 22.08.2013

Mehr

Klausur Informatik B April Teil I: Informatik 3

Klausur Informatik B April Teil I: Informatik 3 Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.

Mehr

Graphentheorie Mathe-Club Klasse 5/6

Graphentheorie Mathe-Club Klasse 5/6 Graphentheorie Mathe-Club Klasse 5/6 Thomas Krakow Rostock, den 26. April 2006 Inhaltsverzeichnis 1 Einleitung 3 2 Grundbegriffe und einfache Sätze über Graphen 5 2.1 Der Knotengrad.................................

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität

Mehr

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone Was bisher geschah Motivation, Beispiele geometrische Objekte im R 2 : Punkt, Gerade, Halbebene, Strecke, Polygon, ebene Zerlegung in Regionen (planare Graphen) maschinelle Repräsentation geometrischer

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

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

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales

Mehr