Algorithmen und Datenstrukturen II: Graphenalgorithmen

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen II: Graphenalgorithmen"

Transkript

1 Algorithmen und Datenstrukturen II: Graphenalgorithmen Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: :41 Inhaltsverzeichnis Wofür Das Königsberger Brückenproblem Gerichteter Graph Speicherung eines Graphen in einer Adjazenzmatrix Beispiel: Graph als Adjazenzmatrix Speicherung in Adjazenzlisten Doppelt verkettete Pfeilliste Weitere Definitionen Weitere Definitionen (2) Wälder und Bäume Ungerichtete Graphen Durchlaufen von Graphen Gerüst eines Knotenbesuchsalgorithmus Verfeinerung des Knotenbesuchsalgorithmus Einfache Zusammenhangskomponenten Tiefen- und Breitensuche Tiefen- und Breitensuche (2) Kürzeste Wege Definition bewerteter Graph und Kostenfunktion Definition Entfernung Definition Bewerteter Digraph Definition Distanzgraph Kürzeste Wege in Distanzgraphen Optimalitätsprinzip

2 Kürzeste Wege durch Hinzunahme einzelner Kanten Idee zur Realisierung Idee zur Realisierung (2) Dijkstras Algorithmus Aufgabe Kürzeste Wege in beliebig bewerteten Graphen Auswahlverfahren von Ford Rand verschieben bei v Aufgabe Minimal spannende Bäume Verfahren zur Lösung Algorithmus-Gerüst Auswahlverfahren für die Kanten Definition Schnitt Entscheidungsregeln Algorithmus von Boruvka Algorithmus von Kruskal Algorithmus von Jarník, Prim, Dijkstra Aufgabe Flüsse in Netzwerken 17 Flüsse in Netzwerken Flüsse in Netzwerken (2) Fluss Beispiel Algorithmen zur Berechnung des maximalen Flusses Maximaler Fluss durch zunehmende Wege Abändern von Flüssen Restgraph Suche des zunehmenden Weges Maximaler Fluss Algorithmus: Beliebig zunehmende Wege Kürzeste zunehmende Wege Alle kürzesten zunehmenden Wegen Beispiel: Fluss- und Restgraph Niveaugraph Abänderung Algorithmus Zuordnungsprobleme 23 Zuordnungsprobleme Zuordnungsproblem formalisiert Maximale Zuordnung Zuordnung mit maximaler Zufriedenheit Maximale gewichtete Zuordnung Letzte Änderung: :41 2

3 Bipartiter Graph Beispiel Fortsetzung Beispiel Zuordnungsproblem in bipartiten Graphen Beispiel als Flussgraph Zunehmende Wege Zurück zu G Alternierender Weg Vergrößernder alternierender Weg 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? Das Königsberger Brückenproblem Über alle Brücken genau einmal laufen und am Ausgangspunkt ankommen. Unmöglich (1736, Euler). Gerichteter Graph ein gerichteter Graph (engl: digraph) besteht aus einer Menge V = {1, 2,..., V } von Knoten (engl: vertices) und Letzte Änderung: :41 3

4 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? Speicherung eines Graphen in einer Adjazenzmatrix Ein Graph G = (V, E) wird in einer Boole schen V V -Matrix A G 1 i V, 1 j V gespeichert, wobei = (a ij ) mit a ij = { 0 falls (i, j) E 1 falls (i, j) E Beispiel: Graph als Adjazenzmatrix Speicherung relativ ineffizient (quadratischer Aufwand) Letzte Änderung: :41 4

5 Speicherung in Adjazenzlisten für jeden Knoten eine lineare, verkettete Liste der von diesem ausgehenden Pfeile Beispiel: Doppelt verkettete Pfeilliste doubly connected arc list (DCAL) Letzte Änderung: :41 5

6 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 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 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) Letzte Änderung: :41 6

7 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 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) 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 Letzte Änderung: :41 7

8 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 Einfache Zusammenhangskomponenten eine der einfachsten Anwendungen des linearen Knotenbesuchsalgorithmus suche Zusammenhangskomponenten 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? Tiefen- und Breitensuche (2) Stapel Tiefensuche depth first search, DFS Schlange Breitensuche breadth first search, BFS zu was führt ein rekursiver Knotenbesuchsalgorithmus? 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 Letzte Änderung: :41 8

9 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 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 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 Letzte Änderung: :41 9

10 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 Definition Distanzgraph ist die Länge jeder Kante nicht negativ, also c : E R + 0, so heißt G = (V, E) mit c Distanzgraph 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 Idee: Wege in einer Art äquidistanter Welle um den Anfangsknoten solange wachsen lassen, bis Zielknoten erreicht ist 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? Letzte Änderung: :41 10

11 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 )) 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 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 Letzte Änderung: :41 11

12 eine Markierung, ob der Knoten bereits gewählt ist außerdem speichern wir die Menge R der Randknoten 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 Aufgabe Berechnen Sie die kürzesten Wege vom Knoten a nach Dijkstras Algorithmus: Letzte Änderung: :41 12

13 Distanzgraph 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 Auswahlverfahren von Ford kürzeste Wege in G = (V, E) mit c : E R von einem Knoten s V. 1. Initialisierung 1. setze für alle Knoten v V \{s} Vorgänger auf undefiniert und Entfernung auf. 2. setze für s Vorgänger auf s und Entfernung auf 0 3. alle zu s adjazenten Knoten gehören zu R 2. Berechne Wege ab s Solange R Letzte Änderung: :41 13

14 wähle v R und entferne v aus R verschiebe R bei v 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 Aufgabe Berechnen Sie die kürzesten Wege vom Knoten a nach dem Auswahlverfahren nach Ford: Distanzgraph Minimal spannende Bäume ein minimaler spannender Baum (minimal spanning tree, MST) eines Graphen G ist ein spannender Baum von G von Letzte Änderung: :41 14

15 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 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 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 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 Letzte Änderung: :41 15

16 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 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 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 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 Letzte Änderung: :41 16

17 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 Aufgabe Berechnen Sie den MST nach den drei verschiedenen Algorithmen: Distanzgraph Flüsse in Netzwerken Flüsse in Netzwerken Wieviele Fahrzeuge pro Minute kann ich höchstens durch eine Stadt leiten? Welche Wassermenge verkraftet die Kanalisation? Letzte Änderung: :41 17

18 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 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 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 Letzte Änderung: :41 18

19 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 Maximaler Fluss durch zunehmende Wege Fluss erhöhen, durch Hinzunahme eines Weges 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 Abändern von Flüssen Ausdrücken in Wegen von q nach s Letzte Änderung: :41 19

20 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 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 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 Letzte Änderung: :41 20

21 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. 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 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 Alle kürzesten zunehmenden Wegen zur Bestimmung eines kürzesten zunehmenden Weges von q nach s sind nicht alle Pfeile im Restgraphen von Interesse Letzte Änderung: :41 21

22 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 Beispiel: Fluss- und Restgraph 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 Letzte Änderung: :41 22

23 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 f b := 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 Zuordnungsprobleme 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 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 Letzte Änderung: :41 23

24 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 Maximale Zuordnung in folgendem Graphen gibt es mehrere perfekte Zuordnungen 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) 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 Letzte Änderung: :41 24

25 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 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) 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 Beispiel Graph G mit X = {x 1,..., x 6 } und Y = {y1,..., y 6 } 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 ) Letzte Änderung: :41 25

26 Fortsetzung Beispiel es müssen also zum Maximieren u.u. Kanten aus einer Zuordnung wieder herausgenommen werden 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 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 (x i, 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 x i 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 Beispiel als Flussgraph als Kapazitätsfunktion wählen wir c : E {1} jede Zuordnung entspricht einem Fluss und umgekehrt Letzte Änderung: :41 26

27 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 Letzte Änderung: :41 27

28 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 x i,..., 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 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 Letzte Änderung: :41 28

29 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 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 Letzte Änderung: :41 29

Algorithmen und Datenstrukturen II: Graphenalgorithmen

Algorithmen und Datenstrukturen II: Graphenalgorithmen Algorithmen und Datenstrukturen II: Graphenalgorithmen Prof. Dr. Oliver Braun Letzte Änderung: 23.05.2017 13:41 Algorithmen und Datenstrukturen II: Graphenalgorithmen 1/76 Wofür wie komme ich am schnellsten

Mehr

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

Programmiertechnik II

Programmiertechnik II Graph-Algorithmen Anwendungsgebiete "Verbundene Dinge" oft Teilproblem/Abstraktion einer Aufgabenstellung Karten: Wie ist der kürzeste Weg von Sanssouci nach Kunnersdorf? Hypertext: Welche Seiten sind

Mehr

Programmiertechnik II

Programmiertechnik II Graph-Algorithmen Anwendungsgebiete "Verbundene Dinge" oft Teilproblem/Abstraktion einer Aufgabenstellung Karten: Wie ist der kürzeste Weg von Sanssouci nach Kunnersdorf? Hypertext: Welche Seiten sind

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

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

Wiederholung zu Flüssen

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /

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

Algorithmen und Datenstrukturen 2-1. Seminar -

Algorithmen und Datenstrukturen 2-1. Seminar - Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8

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

Einheit 11 - Graphen

Einheit 11 - Graphen Einheit - Graphen Bevor wir in medias res (eigentlich heißt es medias in res) gehen, eine Zusammenfassung der wichtigsten Definitionen und Notationen für Graphen. Graphen bestehen aus Knoten (vertex, vertices)

Mehr

Wie wird ein Graph dargestellt?

Wie wird ein Graph dargestellt? Wie wird ein Graph dargestellt? Für einen Graphen G = (V, E), ob gerichtet oder ungerichtet, verwende eine Adjazenzliste A G : A G [i] zeigt auf eine Liste aller Nachbarn von Knoten i, wenn G ungerichtet

Mehr

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik Foliensatz 16 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 45 Graphen TU Ilmenau Seite 2 / 45 Graphen 1 2 3 4 5 6 7 8

Mehr

Bipartite Graphen. Beispiele

Bipartite Graphen. Beispiele Bipartite Graphen Ein Graph G = (V, E) heiÿt bipartit (oder paar), wenn die Knotenmenge in zwei disjunkte Teilmengen zerfällt (V = S T mit S T = ), sodass jede Kante einen Knoten aus S mit einem Knoten

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES

Mehr

1.Aufgabe: Minimal aufspannender Baum

1.Aufgabe: Minimal aufspannender Baum 1.Aufgabe: Minimal aufspannender Baum 11+4+8 Punkte v 1 v 2 1 3 4 9 v 3 v 4 v 5 v 7 7 4 3 5 8 1 4 v 7 v 8 v 9 3 2 7 v 10 Abbildung 1: Der Graph G mit Kantengewichten (a) Bestimme mit Hilfe des Algorithmus

Mehr

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke Graphen Graphentheorie Graphentheorie Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke 2 Was ist ein Graph? Ein Graph ist in der Graphentheorie eine abstrakte Struktur,

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

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

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1 Lösungen zu den Übungsaufgaben im Kapitel 4 des Lehrbuches Operations Research Deterministische Modelle und Methoden von Stephan Dempe und Heiner Schreier Aufgabe 1: Berechnen Sie für den in Abbildung

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

Kap. 5: Graphen. Carsten Gutwenger Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund. 17. VO DAP2 SS

Kap. 5: Graphen. Carsten Gutwenger Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund. 17. VO DAP2 SS Kap. 5: Graphen Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 17. VO DAP2 SS 2009 23. Juni 2008 1 Motivation Warum soll ich heute hier bleiben? Graphen sind wichtig und

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

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich. Graphen (2)

Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich. Graphen (2) Graphen (2) 1 Topologisches Sortieren (1) Die Kanten eines gerichteten zyklenfreien Graphen bilden eine Halbordnung (die Ordnungsrelation ist nur für solche Knoten definiert die am gleichen Pfad liegen).

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

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

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

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1 Allgemeines. Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition.. (a) Ein Graph G =(V, E) heißt kreisfrei, wenn er keinen Kreis besitzt. Beispiel: Ein kreisfreier Graph: FG KTuEA, TU Ilmenau

Mehr

Teil 2: Graphenalgorithmen

Teil 2: Graphenalgorithmen Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Problemstellung Ungewichtete Graphen Distanzgraphen Gewichtete

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 1. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 2. November 2011 Gradfolgen Zusammenhang Kürzeste Wege H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 Satz von Erdős und Gallai Eine Partition einer natürlichen Zahl ist genau dann die Gradfolge

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 13: Flüsse und Zuordnungen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 9. Juni 2017 DURCHSATZ D(e) ist die maximale Flussmenge,

Mehr

Bäume und Wälder. Definition 1

Bäume und Wälder. Definition 1 Bäume und Wälder Definition 1 Ein Baum ist ein zusammenhängender, kreisfreier Graph. Ein Wald ist ein Graph, dessen Zusammenhangskomponenten Bäume sind. Ein Knoten v eines Baums mit Grad deg(v) = 1 heißt

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphdurchläufe Maike Buchin 22. und 27.6.2017 Graphexploration Motivation: Für viele Zwecke will man den gesamten Graphen durchlaufen, zb. um festzustellen ob er (stark) zusammenhängt.

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

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind. 3.5 Gerichteter Pfad Definition 291 Eine Folge (u 0, u 1,..., u n ) mit u i V für i = 0,..., n heißt gerichteter Pfad, wenn ( i {0,..., n 1} ) [ (u i, u i+1 ) A]. Ein gerichteter Pfad heißt einfach, falls

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

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen 11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Algorithmen und Datenstrukturen 11.1. BERECHNUNG MAXIMALER FLÜSSE

Mehr

Lösungen zu Kapitel 5

Lösungen zu Kapitel 5 Lösungen zu Kapitel 5 Lösung zu Aufgabe : (a) Es gibt derartige Graphen: (b) Offensichtlich besitzen 0 der Graphen einen solchen Teilgraphen. Lösung zu Aufgabe : Es sei G = (V, E) zusammenhängend und V

Mehr

Bemerkung: Der vollständige Graph K n hat n(n 1)

Bemerkung: Der vollständige Graph K n hat n(n 1) Bemerkung: Der vollständige Graph K n hat n(n 1) 2 Kanten. Bew: Abzählen! Definition 111. Graphen mit n paarweise zyklisch verbundenen Kanten heißen Kreise (vom Grad n) und werden mit C n bezeichnet. Beispiel

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

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. (a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,

Mehr

Motivation Kap. 6: Graphen

Motivation Kap. 6: Graphen Motivation Kap. 6: Graphen Warum soll ich heute hier bleiben? Graphen sind wichtig und machen Spaß! Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund Was gibt es

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

Programmierkurs Python

Programmierkurs Python Programmierkurs Python Stefan Thater Michaela Regneri 2010-0-29 Heute Ein wenig Graph-Theorie (in aller Kürze) Datenstrukturen für Graphen Tiefen- und Breitensuche Nächste Woche: mehr Algorithmen 2 Was

Mehr

Programmierkurs Python II

Programmierkurs Python II Programmierkurs Python II Stefan Thater & Michaela Regneri FR.7 Allgemeine Linguistik (Computerlinguistik) Universität des Saarlandes Sommersemester 011 Heute Ein wenig Graph-Theorie (in aller Kürze) Datenstrukturen

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

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

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

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2 1 Graphen Definition: Ein Graph G = (V,E) setzt sich aus einer Knotenmenge V und einer (Multi)Menge E V V, die als Kantenmenge bezeichnet wird, zusammen. Falls E symmetrisch ist, d.h.( u,v V)[(u,v) E (v,u)

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

Programmierkurs Python II

Programmierkurs Python II Programmierkurs Python II Stefan Thater & Michaela Regneri Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Übersicht Topologische Sortierung (einfach) Kürzeste Wege finden

Mehr

Tutoraufgabe 1 (Suchen in Graphen):

Tutoraufgabe 1 (Suchen in Graphen): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS14 F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe 1 (Suchen in Graphen): a) Geben Sie die Reihenfolge an, in der die Knoten besucht werden, wenn

Mehr

Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung

Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung 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

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Bäume & Graphen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v. Sommersemester

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

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen) WS 2015/16 Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15

Mehr

5. Bäume und Minimalgerüste

5. Bäume und Minimalgerüste 5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein

Mehr

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) WS 2013/14 Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2013ws/ds/uebung/ 22. Januar 2014 ZÜ DS ZÜ XIII

Mehr

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47 Graphalgorithmen Dominik Paulus.0.01 Dominik Paulus Graphalgorithmen.0.01 1 / 7 1 Spannbäume Kruskal Prim Edmonds/Chu-Liu Datenstrukturen Fibonacci-Heap Union/Find Kürzeste Pfade Dijkstra Bellman-Ford

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

Graphalgorithmen I. Simon Regnet. May 16, Universität Erlangen. Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56

Graphalgorithmen I. Simon Regnet. May 16, Universität Erlangen. Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56 Graphalgorithmen I Simon Regnet Universität Erlangen May 16, 2008 Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, 2008 1 / 56 Inhalt 1 Motivation 2 Terminologie 3 Datenstrukturen 4 Suche

Mehr

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen Flüsse, Schnitte, bipartite Graphen Thomas Fersch mail@t-fersch.de 11.06.2010 Seminar "Hallo Welt!" für Fortgeschrittene 1 Übersicht Maximale Flüsse in Netzwerken Worum geht s? Lösung nach Ford-Fulkerson

Mehr

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008 Technische Universität München Fakultät für Informatik Lehrstuhl für Informatik 15 Computergraphik & Visualisierung Prof. Dr. Rüdiger Westermann Dr. Werner Meixner Wintersemester 2007/08 Lösungsblatt 9

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Graphen 9/1 Begriffsdefinitionen Ein Graph besteht aus Knoten und Kanten. Ein Knoten(Ecke) ist ein benanntes Objekt. Eine Kante verbindet zwei Knoten. Kanten haben ein Gewicht

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr

Maximale s t-flüsse in Planaren Graphen

Maximale s t-flüsse in Planaren Graphen Maximale s t-flüsse in Planaren Graphen Vorlesung Algorithmen für planare Graphen 6. Juni 2017 Guido Brückner INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg

Mehr

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E. Das Komplement Ḡ = (V, ( V ) \ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E. Ein Graph H = (V, E )

Mehr

4. Welchen Zusammenhang gibt es zwischen den Eckengraden und der Anzahl der Kanten eines ungerichteten Graphen?

4. Welchen Zusammenhang gibt es zwischen den Eckengraden und der Anzahl der Kanten eines ungerichteten Graphen? Kapitel 7 Graphentheorie Verständnisfragen Sachfragen 1. Was ist ein ungerichteter Graph? 2. Erläutern Sie den Begriff Adjazenz! 3. Erläutern Sie den Eckengrad in einem Graphen! 4. Welchen Zusammenhang

Mehr

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring Kürzeste Wege in Graphen Orte mit Straßenverbindungen Orte als Knoten eines Graphen Straßenverbindungen als Kanten eines Graphen Ungerichteter Graph G = (V,E) Kanten Knoten Knotenmenge V = {,,n} oder {,,n

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

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 12, Donnerstag, 22.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 12, Donnerstag, 22. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 014 / 015 Vorlesung 1, Donnerstag,. Januar 015 (Graphen, Breiten/Tiefensuche, Zusammenhangskomponenten) Junior-Prof.

Mehr

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,... Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,..., k, so dass gilt M = k c i P i i=1 k c i = r. i=1 Diskrete Strukturen 7.1 Matchings

Mehr

Mustererkennung: Graphentheorie

Mustererkennung: Graphentheorie Mustererkennung: Graphentheorie D. Schlesinger TUD/INF/KI/IS D. Schlesinger () ME: Graphentheorie 1 / 9 Definitionen Ein Graph ist ein Paar G = (V, E) mit der Menge der Knoten V und der Menge der Kanten:

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

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen Flüsse, chnitte, bipartite Graphen Matthias Hoffmann 5.5.009 Matthias Hoffmann Flüsse, chnitte, bipartite Graphen 5.5.009 / 48 Übersicht Einführung Beispiel Definitionen Ford-Fulkerson-Methode Beispiel

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

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

Fortgeschrittene Netzwerk- und Graph-Algorithmen

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 13. Übung minimale Spannbäume, topologische Sortierung, AVL-Bäume Clemens Lang Übungen zu AuD 4. Februar 2010 Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen

Mehr

6. Flüsse und Zuordnungen

6. Flüsse und Zuordnungen 6. Flüsse und Zuordnungen Flußnetzwerke 6. Flüsse und Zuordnungen In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über diese Kante pro Zeiteinheit transportiert

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

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/42 Graphische Darstellung von Zusammenhängen schon an vielen Stellen

Mehr

Datenstrukturen und Algorithmen SS07

Datenstrukturen und Algorithmen SS07 Datenstrukturen und Algorithmen SS0 Datum:.6.200 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Minimaler Spannbaum (MST) Challenge der Woche Fibonacci Heap Minimaler Spannbaum

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

Studientag zur Algorithmischen Mathematik

Studientag zur Algorithmischen Mathematik Studientag zur Algorithmischen Mathematik Minimale aufspannende Bäume und Matchings Winfried Hochstättler Diskrete Mathematik und Optimierung FernUniversität in Hagen 22. Mai 2011 Outline Minimale aufspannende

Mehr

Das Steinerbaumproblem

Das Steinerbaumproblem Das Steinerbaumproblem Natalie Richert Fakultät für Elektrotechnik, Informatik und Mathematik, Universität Paderborn 4. Februar 008 / 3 Überblick Problembeschreibung Vorstellung von zwei Approimationsalgorithmen

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Approximierbarkeit David Kappel Institut für Grundlagen der Informationsverarbeitung Technische Universität Graz 10.06.2016 Übersicht Das Problem des Handelsreisenden TSP EUCLIDEAN-TSP

Mehr

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt: 3. Minimale Spannbäume Sei G = (V, E) ein einfacher ungerichteter Graph, der o.b.d.a. zusammenhängend ist. Sei weiter w : E R eine Gewichtsfunktion auf den Kanten von G. Wir setzen E E: w(e ) = e E w(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

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

Flüsse, Schnitte, Bipartite Graphen

Flüsse, Schnitte, Bipartite Graphen Flüsse, Schnitte, Bipartite Graphen Sebastian Hahn 4. Juni 2013 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 1 / 48 Überblick Flussnetzwerke Ford-Fulkerson-Methode Edmonds-Karp-Strategie

Mehr

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 6: Matchings und TSP-Problem

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 6: Matchings und TSP-Problem Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 6: Matchings und TSP-Problem Dipl-Math. Wolfgang Kinzner 4.4.2012 Kapitel 6: Matchings und TSP-Problem Matching und Matchingproblem Flussalgorithmus

Mehr