Algorithmen und Datenstrukturen II: Graphenalgorithmen
|
|
- Siegfried Holzmann
- vor 6 Jahren
- Abrufe
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
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
MehrAlgorithmen 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
MehrDefinition 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.
MehrWiederholung 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:
MehrGraphen. 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),
MehrGraphen 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
MehrEin 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
MehrADS: 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
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche
MehrDatenstrukturen. 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
MehrGraphen: Datenstrukturen und Algorithmen
Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?
MehrGrundlagen 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
MehrMinimal 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
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
MehrTechnische 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
MehrVollstä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
MehrAufgabe 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.
MehrFlü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
MehrDiskrete 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
MehrAlgorithmentheorie. 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
MehrRouting 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
MehrGrundbegriffe 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
MehrGraphentheorie. 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
MehrProseminar 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
MehrAusarbeitung 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,
MehrC++, 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
Mehr6. Ü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
MehrKapitel 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
MehrAnmerkungen zur Übergangsprüfung
DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung
MehrÜ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
MehrEffiziente 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
MehrKapitel 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
MehrGraph 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
Mehr9. Ü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
Mehr6. 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
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
Mehrf 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
MehrKapitel 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
MehrFormale 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
MehrAusarbeitung ü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
MehrKapitel 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
Mehr3. 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
MehrGrundbegriffe 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
Mehr4.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
MehrAlgorithmen 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
MehrKapitel 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
MehrMinimal 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
Mehr4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
MehrFortgeschrittene 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
MehrAlgorithmen 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
MehrMatchings (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
Mehr9. 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)
MehrKombinatorische Optimierung
Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 1 Programm des
MehrAlgorithmen 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
MehrAlgorithmen 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
MehrAnwendungen 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
MehrFlü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
MehrKürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik
Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus
MehrFlü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
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
MehrWie 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
MehrEulerweg, 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
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
MehrMaximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de
Maximaler Fluß und minimaler Schnitt Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Wasist das? Maximaler Fluss Minimaler Schnitt Warumtut man das? Logistische
MehrLogistik: 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
MehrTECHNISCHE 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,
Mehr8 Diskrete Optimierung
8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von
MehrÜ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
Mehr1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
Mehr3.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
Mehr6. 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
MehrVerkettete 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
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
MehrKapitel 6: Graphalgorithmen Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
Mehr3 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).
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
MehrADS: 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
Mehrentheoretische 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
MehrKombinatorische Optimierung
Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 4 Programm des
MehrAlgorithmen 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
MehrGraphenalgorithmen 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
MehrFlü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
MehrAlgorithmen 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.
MehrGraphen: 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.
MehrMinimal 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
MehrAlgorithmen und Datenstrukturen (WS 2007/08) 63
Kapitel 6 Graphen Beziehungen zwischen Objekten werden sehr oft durch binäre Relationen modelliert. Wir beschäftigen uns in diesem Kapitel mit speziellen binären Relationen, die nicht nur nur besonders
MehrDurchschnitt 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
MehrKonzepte 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
MehrGuten Morgen und Willkommen zur Saalübung!
Guten Morgen und Willkommen zur Saalübung! 1 Wie gewinnt man ein Spiel? Was ist ein Spiel? 2 Verschiedene Spiele Schach, Tic-Tac-Toe, Go Memory Backgammon Poker Nim, Käsekästchen... 3 Einschränkungen Zwei
MehrGliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten
Gliederung Zusammenhang von Graphen Stark Zusammenhängend K-fach Zusammenhängend Brücken Definition Algorithmus zum Finden von Brücken Anwendung Zusammenhangskomponente Definition Wichtige Aussagen und
Mehr4. 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
MehrLernmodul 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
MehrTheoretische 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
Mehr2. 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
MehrInformatik 11 Kapitel 2 - Rekursive Datenstrukturen
Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange
MehrPrü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,
Mehr2 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
MehrGraphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007
Graphentheorie Rainer Schrader Organisatorisches Zentrum für Angewandte Informatik Köln 23. Oktober 2007 1 / 79 2 / 79 Organisatorisches Organisatorisches Dozent: Prof. Dr. Rainer Schrader Weyertal 80
Mehr