Algorithmen und Datenstrukturen II: Graphenalgorithmen

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen II: Graphenalgorithmen"

Transkript

1 Algorithmen und Datenstrukturen II: Graphenalgorithmen Prof. Dr. Oliver Braun Letzte Änderung: :41 Algorithmen und Datenstrukturen II: Graphenalgorithmen 1/76

2 Wofür wie komme ich am schnellsten von München nach Hamburg? wie teile ich die Arbeitskräfte in meinem Team am Besten den Tätigkeiten zu für die sie am Besten geeignet sind? wann kann der Hausbau frühestens fertig sein, wenn die einzelnen Arbeiten in der richtigen Reihenfolge ausgeführt werden? wie besuche ich alle meine Kunden mit einer kürzest möglichen Rundreise? Algorithmen und Datenstrukturen II: Graphenalgorithmen 2/76

3 Das Königsberger Brückenproblem Über alle Brücken genau einmal laufen und am Ausgangspunkt ankommen. Unmöglich (1736, Euler). Algorithmen und Datenstrukturen II: Graphenalgorithmen 3/76

4 Gerichteter Graph ein gerichteter Graph (engl: digraph) besteht aus einer Menge V = {1, 2,..., V } von Knoten (engl: vertices) und einer Menge von E V V von Pfeilen (engl: edges, arcs) ein Paar (v, v ) E heißt Pfeil von v nach v v heißt Anfangsknoten von (v, v ) v heißt Endknoten von (v, v ) dann heißen v und v auch adjazent Frage: Kann es nach obiger Definition parallele Pfeile geben? Algorithmen und Datenstrukturen II: Graphenalgorithmen 4/76

5 Speicherung eines Graphen in einer Adjazenzmatrix Ein Graph G = (V, E) wird in einer Boole schen V V -Matrix A G = (a ij ) mit 1 i V, 1 j V gespeichert, wobei a ij = { 0 falls (i, j) E 1 falls (i, j) E Algorithmen und Datenstrukturen II: Graphenalgorithmen 5/76

6 Beispiel: Graph als Adjazenzmatrix Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Speicherung relativ ineffizient (quadratischer Aufwand) Algorithmen und Datenstrukturen II: Graphenalgorithmen 6/76

7 Speicherung in Adjazenzlisten für jeden Knoten eine lineare, verkettete Liste der von diesem ausgehenden Pfeile Beispiel: Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen II: Graphenalgorithmen 7/76

8 Doppelt verkettete Pfeilliste doubly connected arc list (DCAL) Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen II: Graphenalgorithmen 8/76

9 Weitere Definitionen Eingangsgrad indeg(v) ist Anzahl der in v einmündenen Pfeile Ausgangsgrad outdeg(v) ist Anzahl der von v ausgehenden Pfeile Ein Digraph G = (V, E ) ist ein Teilgraph von G = (V, E), geschrieben G G falls V V und E E für V V induziert V den Teilgraphen (V, E (V V )), auch Untergraph genannt ein Weg von v nach v mit v, v V ist der durch eine Folge von (v 0, v 1,..., v k ) von Knoten mit v 0 = v, v k = v und (v i, v i+1 ) E für 0 i < k beschriebene Teilgraph (V, E ) die Anzahl der Pfeile in E sind die Länge des Weges ein Weg heißt einfach, wenn kein Knoten mehrfach besucht wird Algorithmen und Datenstrukturen II: Graphenalgorithmen 9/76

10 Weitere Definitionen (2) ein Zyklus ist ein Weg von v nach v triviale Wege die aus einem Knoten und keinem Pfeil bestehen, werden nicht betrachtet ein Digraph heißt zyklenfrei oder azyklisch wenn er keine Zyklen enthält gibt es einen Weg von v nach v, ist v von v erreichbar Algorithmen und Datenstrukturen II: Graphenalgorithmen 10/76

11 Wälder und Bäume ein Digraph heißt gerichteter Wald, wenn E zyklenfrei und jeder Knoten einen Eingangsgrad von höchstens 1 hat jeder Knoten mit indeg(v) = 0 heißt Wurzel ein gerichteter Wald mit genau einer Wurzel heißt gerichteter Baum (Wurzelbaum) für einen Digraphen G = (V, E) ist ein gerichteter Wald W = (V, F) mit F E ein spannender Wald von G falls W ein Baum ist, heißt er spannender Baum (spanning tree) Algorithmen und Datenstrukturen II: Graphenalgorithmen 11/76

12 Ungerichtete Graphen wenn wir erzwingen, dass zwischen zwei Knoten entweder kein Pfeil oder in jeder Richtung ein Pfeil ist, können wir die Richtung weglassen ein solcher Graph G = (V, E) für den gilt (v, v ) E (v, v) E heißt ungerichteter Graph oder einfach Graph ein Paar ((v, v ), (v, v)) heißt Kante der Grad deg(v) ist dann gleich indeg(v) und auch outdeg(v) ein ungerichteter Graph heißt zyklenfrei oder azyklisch, falls er keinen einfachen Zyklus mit wenigstens 3 Pfeilen enthält Erinnerung: Bei einem einfachen Pfad darf kein Knoten mehrfach besucht werden Algorithmen und Datenstrukturen II: Graphenalgorithmen 12/76

13 Durchlaufen von Graphen für manche Probleme ist es wichtig alle Knoten eines Graphen zu betrachten (zu besuchen) z.b. in einem Labyrinth, Kreuzungen sind Knoten, Wege dazwischen sind Kanten verschiedene Suchstrategien, z.b. im Labyrinth einer alleine: erst einen Weg bis zum Ende und dann zurück (Tiefensuche) mehrere: ausschwärmen an einer Kreuzung (in die Breite) Algorithmen und Datenstrukturen II: Graphenalgorithmen 13/76

14 Gerüst eines Knotenbesuchsalgorithmus gegeben Graph G = (V, E), Menge B von bereits besuchten Knoten beginne bei beliebigem Knoten b, B = {b} markiere alle Pfeile/Kanten e E als unbenutzt solange es unbenutzten Pfeil/Kante (v, v ) E mit v B gibt markiere (v, v ) als benutzt B = B {v } B enthält alle von b aus erreichbaren Knoten Algorithmen und Datenstrukturen II: Graphenalgorithmen 14/76

15 Verfeinerung des Knotenbesuchsalgorithmus zusätzlich Menge R, mit R B, von Knoten von denen noch unbenutzte Pfeile/Kanten ausgehen können R heisst Rand von B Bedingung zum Abbruch ist wenn R leer Algorithmen und Datenstrukturen II: Graphenalgorithmen 15/76

16 Einfache Zusammenhangskomponenten eine der einfachsten Anwendungen des linearen Knotenbesuchsalgorithmus suche Zusammenhangskomponenten Algorithmen und Datenstrukturen II: Graphenalgorithmen 16/76

17 Tiefen- und Breitensuche wird ein neuer Knoten besucht, so werden seine ausgehenden Pfeile/Kanten in die Datenstruktur der unbenutzen Kanten eingefügt Stapel/Stack (last in first out) Schlange/Queue (first in first out) was führt zur Tiefensuche, was zu Breitensuche? Algorithmen und Datenstrukturen II: Graphenalgorithmen 17/76

18 Tiefen- und Breitensuche (2) Stapel Tiefensuche depth first search, DFS Schlange Breitensuche breadth first search, BFS zu was führt ein rekursiver Knotenbesuchsalgorithmus? Algorithmen und Datenstrukturen II: Graphenalgorithmen 18/76

19 Kürzeste Wege bei der Modellierung realer Probleme reicht oft das Vorhandensein oder Fehlen von Knoten und Kanten nicht aus Knoten und Kanten bekommen Eigenschaften zugeordnet, die für die Lösung des Problems wesentlich sind Beispiele Kanalrohre mit maximaler Transportkapazität Arbeiten an einem Haus haben minimale, maximale und erwartete Dauer Bahnstrecken haben Länge und (je nach Tarif) einen Preis Pfeil/Kante werden Kostenwerte zugeordnet, wir interessieren uns für kostengünstigste Wege wird in der Regel dann auch kürzester Weg genannt um Verluste modellieren zu können, dürfen Pfeile/Kanten auch negative Länge haben Algorithmen und Datenstrukturen II: Graphenalgorithmen 19/76

20 Definition bewerteter Graph und Kostenfunktion ein ungerichteter Graph G = (V, E) mit einer reelwertigen Bewertungsfunktion c : E R heißt bewerteter Graph für eine Kante e E heißt c(e) Bewertung (Länge, Gewicht, Kosten) die Länge c(g) des Graphen ist die Summe der Längen aller Kanten, also c(g) = e E c(e) für einen Weg p = (v 0, v 1,..., v k ) ist die Länge des Weges c(p) = k 1 i=0 c((v i, v i+1 )) für unbewertete Graphen setzen wir c(e) = 1, e E Algorithmen und Datenstrukturen II: Graphenalgorithmen 20/76

21 Definition Entfernung die Entfernung d (Distanz, distance) von einem Konten v zu einem Knoten v ist definiert als d(v, v ) = min{c(p) p ist Weg von v nach v } falls es überhaupt einen Weg von v nach v gibt sonst ist d(v, v ) = ein Weg p zwischen v und v mit c(p) = d(v, v ) heißt kürzester Weg (shortest path) zwischen v und v wird mit sp(v, v ) bezeichnet Algorithmen und Datenstrukturen II: Graphenalgorithmen 21/76

22 Definition Bewerteter Digraph ein Digraph G = (V, E) mit Bewertungsfunktion c : E R heißt bewerteter Digraph wenn er keine Knoten ohne inzidente Pfeile hat (Pfeile die in einem Knoten beginnen oder Enden), heißt er Netzwerk Algorithmen und Datenstrukturen II: Graphenalgorithmen 22/76

23 Definition Distanzgraph ist die Länge jeder Kante nicht negativ, also c : E R + 0, so heißt G = (V, E) mit c Distanzgraph Algorithmen und Datenstrukturen II: Graphenalgorithmen 23/76

24 Kürzeste Wege in Distanzgraphen Problem: zu einem gegebenen Distanzgraphen und gegebenen Anfangsknoten s einen kürzesten Weg zu jedem anderen Knoten im Graph finden, Beispiel Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Idee: Wege in einer Art äquidistanter Welle um den Anfangsknoten solange wachsen lassen, bis Zielknoten erreicht ist Algorithmen und Datenstrukturen II: Graphenalgorithmen 24/76

25 Optimalitätsprinzip für jeden kürzesten Weg p = (v 0, v 1,..., v k ) von v 0 nach v k ist auch jeder Teilweg p = (v i,..., v j ), 0 i < j k ein kürzester Weg von v i nach v j warum? Algorithmen und Datenstrukturen II: Graphenalgorithmen 25/76

26 Kürzeste Wege durch Hinzunahme einzelner Kanten länger werdende kürzeste Wege durch Hinzunahme einzelnen Kanten zu bereits bekannten kürzesten Wegen dabei gilt die Invariante 1. Für alle kürzesten Wege sp(s, v) und Kanten (v, v ) gilt: c(sp(s, v)) + c((v, v )) c(sp(s, v )) 2. Für wenigstens einen kürzesten Weg sp(s, v) und eine Kante (v, v ) gilt: c(sp(s, v)) + c((v, v )) = c(sp(s, v )) Algorithmen und Datenstrukturen II: Graphenalgorithmen 26/76

27 Idee zur Realisierung jeder Knoten gehört zu einer der Klassen gewählte Knoten: kürzester Weg von s ist bereits bekannt Randknoten: ein Weg von s bekannt unerreichte Knoten: kein Weg von s bekannt Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen II: Graphenalgorithmen 27/76

28 Idee zur Realisierung (2) wir merken uns zu jedem Knoten v die bisher berechnete, vorläufige Entfernung zum Anfangsknoten s, den Vorgänger von v auf dem bisher berechneten, vorläufig kürzesten Weg von s nach v und eine Markierung, ob der Knoten bereits gewählt ist außerdem speichern wir die Menge R der Randknoten Algorithmen und Datenstrukturen II: Graphenalgorithmen 28/76

29 Dijkstras Algorithmus zur Berechnung kürzester Wege von einem Knoten zu allen anderen (1959, Buch S. 622f) Initialisierung setze s gewählt, Entfernung zu s = 0, Vorgänger = 0 für alle anderen Knoten setze nicht gewählt, Entfernung zu s =, Vorgänger undefiniert alle zu s adjazenten Knoten gehören zum Rand R berechne Wege ab s solange R wiederhole wähle v R mit minimaler Entfernung zu s und entferne v aus R setze v gewählt ergänze Rand R bei v nehme alle unerreichten Knoten mit zu R passe möglicherweise kürzer gewordene Entfernungen an Algorithmen und Datenstrukturen II: Graphenalgorithmen 29/76

30 Aufgabe Berechnen Sie die kürzesten Wege vom Knoten a nach Dijkstras Algorithmus: Distanzgraph Algorithmen und Datenstrukturen II: Graphenalgorithmen 30/76

31 Kürzeste Wege in beliebig bewerteten Graphen wenn wir auch negative Kantenbewertungen zulassen, ändert sich die Berechnung kürzester Wege erheblich ein Weg wird kürzer(!) wenn eine Kante mit einer negativen Länge dazu genommen wird! d.h. wenn man zuläßt das negative Zyklen enthalten sein dürfen, wird der Weg immer kürzer Zusatzbedingung: kürzeste Wege dürfen keine Zyklen enthalten Algorithmen und Datenstrukturen II: Graphenalgorithmen 31/76

32 Auswahlverfahren von Ford kürzeste Wege in G = (V, E) mit c : E R von einem Knoten s V. 1. Initialisierung 1.1 setze für alle Knoten v V \ {s} Vorgänger auf undefiniert und Entfernung auf. 1.2 setze für s Vorgänger auf s und Entfernung auf alle zu s adjazenten Knoten gehören zu R 2. Berechne Wege ab s Solange R wähle v R und entferne v aus R verschiebe R bei v Algorithmen und Datenstrukturen II: Graphenalgorithmen 32/76

33 Rand verschieben bei v Für alle (v, v ) E wird überprüft v.entfernung + c((v, v )) < v.entfernung wenn das gilt, ist v (kürzer) über v erreichbar setze Vorgänger von v auf v und Entfernung entsprechend füge v zum Rand hinzu, falls noch nicht enthalten Algorithmen und Datenstrukturen II: Graphenalgorithmen 33/76

34 Aufgabe Berechnen Sie die kürzesten Wege vom Knoten a nach dem Auswahlverfahren nach Ford: Distanzgraph Algorithmen und Datenstrukturen II: Graphenalgorithmen 34/76

35 Minimal spannende Bäume ein minimaler spannender Baum (minimal spanning tree, MST) eines Graphen G ist ein spannender Baum von G von minimaler Gesamtlänge unter allen spannenden Bäumen von G Ziel: aus einer Vielzahl von Kanten nur diese auszuwählen, die die Knoten mit kürzester Gesamtlänge verbinden notwendige Voraussetzung zusammenhängender, ungerichteter Graph Algorithmen und Datenstrukturen II: Graphenalgorithmen 35/76

36 Verfahren zur Lösung gieriges (greedy) Verfahren Entscheidungen, die den Rechnenprozess der Lösung näher bringt auf Basis der bis dahin gesammelten Informationen werden nicht mehr revidiert vergleichsweise effizient Algorithmen und Datenstrukturen II: Graphenalgorithmen 36/76

37 Algorithmus-Gerüst berechne zu zusammenhängenden, ungerichteten, bewerteten Graphen G = (V, E) mit c : E R einen minimalen spannenden Baum T = (V, E ) von G setze E = solange noch nicht fertig wähle geeignete Kante und füge diese zu E hinzu Algorithmen und Datenstrukturen II: Graphenalgorithmen 37/76

38 Auswahlverfahren für die Kanten alle Kanten sind entweder gewählt, verworfen oder unentschieden zu Beginn alle Kanten unentschieden am Ende des Auswahlverfahrens bilden die gewählten einen minimalen spannenden Baum Auswahlinvariante es gibt einen MST der alle gewählten und keine verworfenen Kanten enthält im Laufe der Jahre verschiedene effiziente Algorithmen vorgeschlagen Algorithmen und Datenstrukturen II: Graphenalgorithmen 38/76

39 Definition Schnitt ein Schnitt in einem Graphen G = (V, E) ist eine Zerlegung von V in S und S = V S eine Kante kreuzt einen Schnitt, wenn sie mit einem Knoten aus S und einem Knoten aus S inzident ist Algorithmen und Datenstrukturen II: Graphenalgorithmen 39/76

40 Entscheidungsregeln die folgenden Regeln entscheiden darüber ob eine unentschiedene Kante gewählt oder verworfen wird Regel 1 (Wähle eine Kante) Wähle einen Schnitt, den keine gewählte Kante kreuzt. Wähle eine kürzeste unter den unentschiedenen Kanten, die den Schnitt kreuzen. Regel 2 (Verwirf eine Kante) Wähle einen einfachen Zyklus, der keine verworfenen Kanten enthält. Verwirf eine längste unter den unentschiedenen Kanten im Zyklus. die verschiedenen Algorithmen unterscheiden sich zum einen in der Reihenfolge in der die beiden Regeln angewandt werden und zum anderen in der Art, wie ein Schnitt oder ein Zyklus gewählt werden Algorithmen und Datenstrukturen II: Graphenalgorithmen 40/76

41 Algorithmus von Boruvka ältester Algorithmus für G = (V, E) ist am Anfang jeder einzelne Knoten ein gewählter Baum in einem Auswahlschritt wird für jeden gewählten Baum eine kürzeste Kante zu einem anderen Baum gewählt gibt es zu einem Baum mehr als eine kürzeste Kante, wird diejenige gewählt, die mit einem Knoten kleinster Nummer indiziert dadurch wird vermieden, dass durch ungeschickte Wahl ein Zyklus entsteht Algorithmen und Datenstrukturen II: Graphenalgorithmen 41/76

42 Algorithmus von Kruskal für G = (V, E) ist am Anfang jeder einzelne Knoten ein gewählter Baum dann wird für jede Kante e E in aufsteigender Kantenlänge folgender Auswahlschritt angewandt: falls e beide Endknoten im selben gewählten Baum hat, verwirf e sonst, wähle e Algorithmen und Datenstrukturen II: Graphenalgorithmen 42/76

43 Algorithmus von Jarník, Prim, Dijkstra ähnlich Dijkstras kürzeste Wege Algorithmus zu jedem Zeitpunkt bilden die gewählten Kanten einen gewählten Baum wir beginnen mit einem beliebigen Anfangsknoten s V und führen folgenden Auswahlschritt ( V 1)-mal aus: wähle eine Kante mit minimaler Länge zu der genau ein Endknoten zum gewählten Baum gehört Algorithmen und Datenstrukturen II: Graphenalgorithmen 43/76

44 Aufgabe Berechnen Sie den MST nach den drei verschiedenen Algorithmen: Distanzgraph Algorithmen und Datenstrukturen II: Graphenalgorithmen 44/76

45 Flüsse in Netzwerken Algorithmen und Datenstrukturen II: Graphenalgorithmen 45/76

46 Flüsse in Netzwerken Wieviele Fahrzeuge pro Minute kann ich höchstens durch eine Stadt leiten? Welche Wassermenge verkraftet die Kanalisation? Algorithmen und Datenstrukturen II: Graphenalgorithmen 46/76

47 Flüsse in Netzwerken (2) sei G = (V, E) ein gerichteter Graph mit einer Kapazitätsfunktion c : E R + und zwei ausgezeichneten Knoten, einer Quelle q und einer Senke s Ziel: maximaler Fluß von q nach s Algorithmen und Datenstrukturen II: Graphenalgorithmen 47/76

48 Fluss ein Fluss durch einen Pfeil muss die Kapazitätsbeschränkung dieses Pfeils einhalten an jedem Knoten muss der Fluß erhalten bleiben, also gleich viel hinein- und hinausfließen (außer an q und s) ein Fluss ist eine Funktion f : E R + 0, wobei gilt: Kapazitätsbeschränkung: Für alle e E ist f(e) c(e) Flusserhaltung: für alle v V {q, s} ist (v,v) E f((v, v)) (v,v ) E f((v, v )) = 0 Algorithmen und Datenstrukturen II: Graphenalgorithmen 48/76

49 Beispiel an jedem Pfeil ist c(e)/f(e) angegeben der Wert w(f) eines Flusses f ist die Summe der Flußwerte aller q verlassenden Pfeile, also im Beispiel w(f) = 3 Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen II: Graphenalgorithmen 49/76

50 Algorithmen zur Berechnung des maximalen Flusses es kann nicht mehr fließen wie unmittelbar aus q heraus und in s hinein genauso begrenzt jeder Schnitt durch den Graphen der q und s teilt ein (q von s trennender) Schnitt ist eine Zerlegung der Knotenmenge V in zwei Teilmengen Q und S, so dass q Q und s S die Kapazität c(q, S) eines Schnittes Q, S ist die Summe der Kapazitäten der Pfeile die von Q nach S führen ein Schnitt mit kleinster Kapazität unter allen möglichen Schnitten heißt minimaler Schnitt für jeden Fluss f und jeden Schnitt Q, S gilt: f(q, S) = w(f) der Fluß über einen beliebigen Schnitt kann dessen Kapazität nicht überschreiten Algorithmen und Datenstrukturen II: Graphenalgorithmen 50/76

51 Maximaler Fluss durch zunehmende Wege Fluss erhöhen, durch Hinzunahme eines Weges Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Fluss ist aber nur 8, obwohl Kapazität des minimalen Schnitts {q, a, b}, {c, d, s} 10 beträgt durch schrittweises Abändern der Flüsse maximieren Algorithmen und Datenstrukturen II: Graphenalgorithmen 51/76

52 Abändern von Flüssen Ausdrücken in Wegen von q nach s Erhöhen eines Flusses entlang eines Pfeiles mit noch freier Restkapazität rest(e) = c(e) f(e) Verringern eines Flusses entlang eines Pfeiles, bzw. Erhöhen in Gegenrichtung Weg ohne Rücksicht auf die Pfeilrichtung wird zunehmender Weg genannt in Pfeilrichtung gilt f(e) > c(e), also rest(e) > 0 entgegen gilt f(e) > 0 Algorithmen und Datenstrukturen II: Graphenalgorithmen 52/76

53 Restgraph der Restgraph beschreibt die Flussvergrößerungsmöglichkeiten er enthält einen Pfeil e, wenn rest(e) > 0 er enthält den zu e entgegengesetzten Pfeil, wenn f(e) > 0 Beispiel für den letzten Fluss Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen II: Graphenalgorithmen 53/76

54 Suche des zunehmenden Weges der einzige zunehmende Weg in dem Beispiel, ist der einzige einfache Weg im Restgraphen von q nach s: q, b, a, c, d, s Flussvergrößerung um 2 auf diesem Weg anschließend kein Weg mehr von q nach s im zugehörigen Restgraphen Algorithmen und Datenstrukturen II: Graphenalgorithmen 54/76

55 Maximaler Fluss Ein Fluss f ist genau dann maximal, wenn es für f keinen zunehmenden Weg mehr gibt. Der Wert des Flusses entspricht dann der Kapazität eines minimalen Schnitts. Algorithmen und Datenstrukturen II: Graphenalgorithmen 55/76

56 Algorithmus: Beliebig zunehmende Wege Initialisiere mit Nullfluss e E : f(e) := 0 solange es einen zunehmenden Weg p gibt: wähle r := min{rest(e) e liegt auf Weg p im Restgraphen} erhöhe f entlang p um r Algorithmen und Datenstrukturen II: Graphenalgorithmen 56/76

57 Kürzeste zunehmende Wege die Laufzeit kann durch weitere Bedingung eingeschränkt werden hängt nur von der Größe des Graphen ab wähle aus allen zunehmenden Wegen immer einen mit möglichst wenigen Pfeilen Algorithmen und Datenstrukturen II: Graphenalgorithmen 57/76

58 Alle kürzesten zunehmenden Wegen zur Bestimmung eines kürzesten zunehmenden Weges von q nach s sind nicht alle Pfeile im Restgraphen von Interesse es genügt für jeden von q aus erreichbaren Knoten v im Restgraph einen kürzesten Weg von q nach v zu kennen die Länge (Anzahl der Pfeile) eines kürzesten Weges von q nach v heisst dann Niveau von v Algorithmen und Datenstrukturen II: Graphenalgorithmen 58/76

59 Beispiel: Fluss- und Restgraph Algorithmen und Datenstrukturen II: Graphenalgorithmen 59/76

60 Niveaugraph der Niveaugraph enthält nur die von q aus erreichbaren Knoten Pfeile die auf einem kürzesten Weg liegen mit einer Breitensuche kann der Niveaugraph in Zeit O( E ) konstruiert werden Beispiel Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen II: Graphenalgorithmen 60/76

61 Abänderung Algorithmus der zweite Schritt zur iterierten Flussvergrößerung im Algorithmus Maximaler Fluss durch zunehmende Wege kann ersetzt werden durch: solange s zum Niveaugraphen für f gehört setze fb := ein blockierender Fluss im Niveaugraphen für f setze f := f f b ein Fluss der einen gesätigten (nicht mehr vergrößerbaren) Pfeil enthält, heisst blockierender Fluss die Operation bezeichnet das bereits erläuterte Addieren zweier Flüsse unter Berücksichtigung der Pfeilrichtung Algorithmen und Datenstrukturen II: Graphenalgorithmen 61/76

62 Zuordnungsprobleme Algorithmen und Datenstrukturen II: Graphenalgorithmen 62/76

63 Zuordnungsprobleme Zuordnungsprobleme bei denen es um eine insgesamt bestmögliche Bildung von Paaren geht die Elemente der Grundmenge sind die Knoten alle möglichen Paarbildungen beschreiben die Kanten Beispiel Knotenmenge: alle Teilnehmer einer Gruppenreise Kanten: Bereitschaft der beiden Teilnehmer in einem Doppelzimmer zu übernachten Fragestellung: Wieviele Doppelzimmer werden insgesamt benötigt? d.h. größtmögliche Kantenmenge, so dass jeder Knoten mit höchstens einer Kante inzidiert Algorithmen und Datenstrukturen II: Graphenalgorithmen 63/76

64 Zuordnungsproblem formalisiert für einen ungerichteten Graphen G = (V, E) ist eine Zuordnung Z (matching) eine Teilmenge der Kanten von G so dass keine zwei Kanten in Z den selben Endknoten haben die Anzahl Z von Kanten in Z heisst Größe der Zuordnung ein Knoten ist bezüglich einer Zuordnung Z alleine (unmatched), wenn er nicht Endknoten einer Kante in Z ist Z ist eine perfekte Zuordnung (perfect matching), wenn mit Z kein Knoten alleine bleibt Algorithmen und Datenstrukturen II: Graphenalgorithmen 64/76

65 Maximale Zuordnung in folgendem Graphen gibt es mehrere perfekte Zuordnungen Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen da es nicht immer eine perfekte Zuordnungen geben muss, definiert man eine Zuordnung Z als nicht erweiterbar (maximal), wenn es keine Kante e E gibt, die man noch hinzu nehmen könnte, z.b. {(Adam, Eva), (Dick, Doof)} eine Zuordnung mit maximaler Größe Z heisst maximale Zuordnung (maximum matching) Algorithmen und Datenstrukturen II: Graphenalgorithmen 65/76

66 Zuordnung mit maximaler Zufriedenheit ordnet man den Kanten noch Werte zu, die die jeweilige Zufriedenheit mit dem Partner ausdrücken, kann nach einer Zuordnung gesucht werden, die die Summe der Zufriedenheiten maximiert Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen anderes Anwendungsbeispiel Mitarbeiter sind verschieden gut geeignet für verschiedene Tätigkeiten, ausgedrückt durch das Kantengewicht Tätigkeiten sollen so Mitarbeitern zugeordnet werden, dass die Summe der Kantengewicht maximal wird Algorithmen und Datenstrukturen II: Graphenalgorithmen 66/76

67 Maximale gewichtete Zuordnung ungerichteter, bewerteter Graph G = (V, E) mit Kantenbewertung w : E R dann ist Gewicht einer Zuordnung Z die Summe der Gewichte der Kanten in Z wir suchen eine maximale gewichtetet Zuordnung (maximal weight matching) Algorithmen und Datenstrukturen II: Graphenalgorithmen 67/76

68 Bipartiter Graph ein Graph G = (V, E) heisst bipartit (bipartite), wenn sich die Knotenmenge so in zwei Teilmengen X und Y zerlegen lässt, also V = X Y und X Y = das gilt E X Y, also keine Kante zwei Knoten in X oder zwei Knoten in Y verbindet Algorithmen und Datenstrukturen II: Graphenalgorithmen 68/76

69 Beispiel Graph G mit X = {x 1,..., x 6 } und Y = {y1,..., y 6 } Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Zuordnung {(x 1, y2), (x 2, y 4 ), (x 4, y 5 ), (x 5, y 6 )} ist nicht maximal besser z.b. statt der Kante (x 1, y 2 ) die beiden Kanten (x 1, y 1 ) und (x 3, y 2 ) Algorithmen und Datenstrukturen II: Graphenalgorithmen 69/76

70 Fortsetzung Beispiel es müssen also zum Maximieren u.u. Kanten aus einer Zuordnung wieder herausgenommen werden Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen manchmal reicht es nicht eine Kante herauszunehmen, z.b. bei (x 2, y 4 ) und (x 4, y 5 ) erinnert an das Konzept der zunehmenden Flüsse Algorithmen und Datenstrukturen II: Graphenalgorithmen 70/76

71 Zuordnungsproblem in bipartiten Graphen Zuordnungsproblem in bipartiten Graphen kann als Flussproblem formuliert werden wir erweitern V mit zwei Knoten q und s zu V wir ändern E zu E jede Kante (xi, y j ) mit x i X, y j Y wird zu einem Pfeil von x i nach y j es gibt für jeden Knoten xi X einen Pfeil (q, x i ) es gibt für jeden Knoten y j Y einen Pfeil (y j, s) der Graph G = (V, E ) ist ein Flussgraph Algorithmen und Datenstrukturen II: Graphenalgorithmen 71/76

72 Beispiel als Flussgraph als Kapazitätsfunktion wählen wir c : E {1} jede Zuordnung entspricht einem Fluss und umgekehrt Algorithmen und Quelle: Datenstrukturen Ottmann II: Graphenalgorithmen & Widmayer, Algorithmen und Datenstrukturen 72/76

73 Zunehmende Wege Ersetzen der Kante (x 1, y 2 ) durch die beiden Kanten (x 1, y 1 ) und (x 3, y 2 ) entspricht dem zunehmenden Weg q, x 3, y 2, x 1, y 1, s Algorithmen und Datenstrukturen II: Graphenalgorithmen 73/76

74 Zurück zu G wir können das Konzept der zunehmenden Flüsse in folgendes Konzept für G übertragen: auf einem zunehmenden Weg transportiert ein Vorwärtspfeil e den aktuellen Fluss f(e) = 0 ein Rückwärtspfeil e den aktuellen Fluss f(e ) = 1 einem zunehmenden Weg q, x i,..., y j, s in G entspricht ein ein Weg xi,..., y j in G Zahl der Vorwärtspfeile ist stets um 1 größer als Zahl der Rückwärtspfeile Weg in G ist Weg in dem abwechselnd Kanten zur Zuordnung gehören bzw. nicht zur Zuordnung gehören Algorithmen und Datenstrukturen II: Graphenalgorithmen 74/76

75 Alternierender Weg für eine gegebenen Zuordnung Z nennen wir die für Z verwendeten Kanten e Z heissen gebunden die Kanten e E \ Z heissen frei jeder Knoten der mit einer gebundenen Kante inzidiert ist, heisst gebundener Knoten jeder andere Knoten ist frei ein Weg in G dessen Kanten abwechselnd gebunden und frei sind, heisst alternierender Weg die Länge des alternierenden Wegs ist die Anzahl seiner Kanten Algorithmen und Datenstrukturen II: Graphenalgorithmen 75/76

76 Vergrößernder alternierender Weg ein alternierender Weg kann nur dann zur Vergrößerung der Zuordnung benützt werden, wenn die beiden Knoten an den Enden frei sind der alternierende Weg heisst dann vergrößernd Beweis, dass man mit vergrößernden Wegen schließlich auch wirklich eine maximale Zuordnung erreicht, steht in Ottmann & Widmayer S. 653ff Algorithmen und Datenstrukturen II: Graphenalgorithmen 76/76

Universität Bremen. Graphenalgorithmen. Thomas Röfer. Begriffe Repräsentationen Kürzeste Wege Minimale spannende Bäume

Universität Bremen. Graphenalgorithmen. Thomas Röfer. Begriffe Repräsentationen Kürzeste Wege Minimale spannende Bäume Graphenalgorithmen Thomas Röfer Begriffe Repräsentationen Kürzeste Wege Minimale spannende Bäume Rückblick Geometrische Algorithmen Scan-Line-Prinzip Graham-Scan Divide and Conquer Voronoi-Diagramm Eigenschaften

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

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

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

Graphen. Leonhard Euler ( )

Graphen. Leonhard Euler ( ) Graphen Leonhard Euler (1707-1783) 2 Graph Ein Graph besteht aus Knoten (nodes, vertices) die durch Kanten (edges) miteinander verbunden sind. 3 Nachbarschaftsbeziehungen Zwei Knoten heissen adjazent (adjacent),

Mehr

Graphen und Bäume. A.1 Graphen

Graphen und Bäume. A.1 Graphen Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt

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

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

Algorithmen und Datenstrukturen 2

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

Mehr

Datenstrukturen. einfach verkettete Liste

Datenstrukturen. einfach verkettete Liste einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten

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

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

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

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

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

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

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

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

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

Flüsse in Netzwerken. Seminar über Algorithmen SoSe 2005. Mike Rohland & Julia Schenk

Flüsse in Netzwerken. Seminar über Algorithmen SoSe 2005. Mike Rohland & Julia Schenk Flüsse in Netzwerken Seminar über Algorithmen SoSe 2005 Mike Rohland & Julia Schenk Inhalt Einführung Definition Maximale Flüsse Schnitte Restgraphen Zunehmende Wege Max-Fluss Min-Schnitt Theorem Ford-Fulkerson

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

Algorithmentheorie. 13 - Maximale Flüsse

Algorithmentheorie. 13 - Maximale Flüsse Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk

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

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

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung. Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines

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

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

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

6. Übung zur Linearen Optimierung SS08

6. Übung zur Linearen Optimierung SS08 6 Übung zur Linearen Optimierung SS08 1 Sei G = (V, E) ein schlichter ungerichteter Graph mit n Ecken und m Kanten Für eine Ecke v V heißt die Zahl der Kanten (u, v) E Grad der Ecke (a) Ist die Anzahl

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

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

Übungsblatt 2 - Lösung

Übungsblatt 2 - Lösung Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 2 - Lösung Vorlesung Algorithmentechnik im WS 08/09 Ausgabe 04. November 2008 Abgabe 8. November, 5:0 Uhr (im Kasten vor Zimmer

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

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

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

9. Übung Algorithmen I

9. Übung Algorithmen I Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der

Mehr

6. Flüsse in Netzwerken Berechnung maximaler Flüsse. dann berechnet der Markierungsalgorithmus für beliebige Kapazitätsfunktionen

6. Flüsse in Netzwerken Berechnung maximaler Flüsse. dann berechnet der Markierungsalgorithmus für beliebige Kapazitätsfunktionen 6. Flüsse in Netzwerken Berechnung maximaler Flüsse Satz 6.4. Ersetzt man in Algorithmus 6.1 den Schritt 2 durch 2a. Wähle den Knoten, der zuerst in eingefügt wurde. Setze. dann berechnet der arkierungsalgorithmus

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

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

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

Formale Grundlagen der Informatik

Formale Grundlagen der Informatik Formale Grundlagen der Informatik / 2015 1 Die Elemente einer (endlichen) Menge sollen den Elementen einer zweiten, gleichmächtigen Menge zugeordnet werden Problemstellung Bipartite Graphen Zuordnungsprobleme

Mehr

Ausarbeitung über den Satz von Menger und den Satz von König

Ausarbeitung über den Satz von Menger und den Satz von König Ausarbeitung über den Satz von Menger und den Satz von König Myriam Ezzedine, 0326943 Anton Ksernofontov, 0327064 Jürgen Platzer, 0025360 Nataliya Sokolovska, 0326991 1. Beweis des Satzes von Menger Bevor

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Pfade. Traveling Salesman Problem. Flüsse in Netzwerken

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

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

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

Algorithmen und Datenstrukturen Kapitel 10

Algorithmen und Datenstrukturen Kapitel 10 Algorithmen und Datenstrukturen Kapitel 10 Flüsse Frank Heitmann heitmann@informatik.uni-hamburg.de 6. Januar 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/8 Flüsse Graphen Grundlagen Definition

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

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

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

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Dr. Hanjo Täubig Lehrstuhl für Eziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester 2007/08

Mehr

Algorithmen und Datenstrukturen 2-2. Seminar -

Algorithmen und Datenstrukturen 2-2. Seminar - Algorithmen und Datenstrukturen 2-2. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 2. Übungsserie: 3 Aufgaben, insgesamt 30 Punkte A4 Flußnetzwerk, Restgraphen

Mehr

Matchings (Paarungen) in Graphen. PS Algorithmen auf Graphen SS `06 Steven Birr

Matchings (Paarungen) in Graphen. PS Algorithmen auf Graphen SS `06 Steven Birr Matchings (Paarungen) in Graphen PS Algorithmen auf Graphen SS `06 Steven Birr 1 Gliederung 1) Definitionen und Beispiele 2) Algorithmus des maximalen Matchings 3) Das Personal-Zuteilungsproblem Ungarischer

Mehr

9. Heuristische Suche

9. Heuristische Suche 9. Heuristische Suche Prof. Dr. Rudolf Kruse University of Magdeburg Faculty of Computer Science Magdeburg, Germany rudolf.kruse@cs.uni-magdeburg.de S Heuristische Suche Idee: Wir nutzen eine (heuristische)

Mehr

Kombinatorische Optimierung

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

Mehr

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

Algorithmen und Datenstrukturen Graphen - Einführung

Algorithmen und Datenstrukturen Graphen - Einführung Algorithmen und Datenstrukturen Graphen - Einführung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Definition / Eigenschaften Anwendungen Repräsentation

Mehr

Anwendungen von Netzwerkfluss. Wojciech Polcwiartek Institut für Informatik FU Berlin

Anwendungen von Netzwerkfluss. Wojciech Polcwiartek Institut für Informatik FU Berlin Anwendungen von Netzwerkfluss Wojciech Polcwiartek Institut für Informatik FU Berlin 13. 01. 2009 Gliederung Einführung Netzwerk, Fluss und Schnitt Max-Flow-Min-Cut Theorem Algorithmen zum Bestimmen vom

Mehr

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen Flüsse, Schnitte, bipartite Graphen Vlad Popa 08.06.2010 Inhaltsverzeihnis 1. Flussnetzwerke und Flüsse 1.1 Ford- Fulkerson 1.2 Edmond Karp 1.3 Dinic 2. Schnitte 3. Maximaler Fluss bei minimalen Kosten

Mehr

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

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

Mehr

Flüsse, Schnitte, bipartite Graphen. Martin Oettinger

Flüsse, Schnitte, bipartite Graphen. Martin Oettinger Flüsse, Schnitte, bipartite Graphen Martin Oettinger Übersicht Einführung Algorithmen für maximalen Fluss Preflow-Push Ford-Fulkerson Spezialfall: Maximaler Fluss bei minimalen Kosten Reduktionen Bipartites

Mehr

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

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

Mehr

Wie findet man den optimalen Weg zum Ziel? Klassische Probleme der Kombinatorischen Optimierung

Wie findet man den optimalen Weg zum Ziel? Klassische Probleme der Kombinatorischen Optimierung Wie findet man den optimalen Weg zum Ziel? Klassische Probleme der Kombinatorischen Optimierung Teilnehmer/innen: Markus Dahinten, Graf Münster Gymnasium Bayreuth Robert Fay, Herder Gymnasium Berlin Falko

Mehr

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal 3. Kreis- und Wegeprobleme Kapitelübersicht 3. Kreis- und Wegeprobleme Eulerweg, Eulerkreis Charakterisierung von eulerschen Graphen Bestimmung von eulerschen Wegen und Kreisen Hamiltonsche Graphen Definition

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

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

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

Mehr

Logistik: Transport. Grundlagen, lineare Transportund Umladeprobleme. Von Dr. Wolfgang Domschke. o. Professor für Betriebswirtschaftslehre

Logistik: Transport. Grundlagen, lineare Transportund Umladeprobleme. Von Dr. Wolfgang Domschke. o. Professor für Betriebswirtschaftslehre Logistik: Transport Grundlagen, lineare Transportund Umladeprobleme Von Dr. Wolfgang Domschke o. Professor für Betriebswirtschaftslehre Zweite, ergänzte Auflage TECHNISCH!: MOC cchule DARiviSTAOT j P e

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

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

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP Kap..1 Heuristiken Kap.. Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 3. VO DAP SS 008 14. Juli 009 Überblick

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

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

6. Flüsse und Zuordnungen

6. Flüsse und Zuordnungen 6. Flüsse und Zuordnungen In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über solch eine Kante pro Zeiteinheit transportiert werden können. Wir können uns einen

Mehr

Verkettete Datenstrukturen: Bäume

Verkettete Datenstrukturen: Bäume Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller

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 6: Graphalgorithmen Gliederung

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

Mehr

3 Klassifikation wichtiger Optimierungsprobleme

3 Klassifikation wichtiger Optimierungsprobleme 3 Klassifikation wichtiger Optimierungsprobleme 3.1 Das MIN- -TSP Wir kehren nochmal zurück zum Handlungsreisendenproblem für Inputs (w {i,j} ) 1 i

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

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

entheoretische Konzepte und Algorithmen

entheoretische Konzepte und Algorithmen Sven Oliver Krumke, Hartmut Noitemeier entheoretische Konzepte und Algorithmen Teubner Inhaltsverzeichnis 1 Einleitung 1 1.1 Routenplanung 1 1.2 Frequenzplanung im Mobilfunk I 1.3 Museumswärter 3 1.4 Das

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

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

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

Flüsse, Schnitte, Bipartite Graphen II

Flüsse, Schnitte, Bipartite Graphen II Flüsse, Schnitte, Bipartite Graphen II Jonathan Hacker 06.06.2016 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 1 / 42 Gliederung Einführung Jonathan Hacker Flüsse, Schnitte, Bipartite

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Datenstrukturen: Anordnung von Daten, z.b. als Liste (d.h. in bestimmter Reihenfolge) Beispiel: alphabetisch sortiertes Wörterbuch... Ei - Eibe - Eidotter... als Baum (d.h.

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

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

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

Durchschnitt von Matroiden

Durchschnitt von Matroiden Durchschnitt von Matroiden Satz von Edmonds Dany Sattler 18. Januar 2007/ Seminar zur ganzzahligen Optimierung / Wallenfels Definition: Unabhängigkeitssystem Definition: Ein Mengensystem (S, J ) nennt

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Guten Morgen und Willkommen zur Saalübung!

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

Mehr

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

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

Lernmodul 2 Graphen. Lernmodul 2: Geoobjekte und ihre Modellierung - Graphen

Lernmodul 2 Graphen. Lernmodul 2: Geoobjekte und ihre Modellierung - Graphen Folie 1 von 20 Lernmodul 2 Graphen Folie 2 von 20 Graphen Übersicht Motivation Ungerichteter Graph Gerichteter Graph Inzidenz, Adjazenz, Grad Pfad, Zyklus Zusammenhang, Trennende Kante, Trennender Knoten

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

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

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

Prüfungsklausur Operations Research,

Prüfungsklausur Operations Research, HTWD, FB Informatik/Mathematik Prof. Dr. M. Voigt Prüfungsklausur Operations Research, 10.7.2008 A Name, Vorname Matr. Nr. Aufgabe 1 : In drei Porzellanwerken W 1, W 2 und W 3 werden Speiseservice hergestellt,

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

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