Algorithmen und Datenstrukturen II: Graphenalgorithmen
|
|
- Robert Armbruster
- vor 6 Jahren
- Abrufe
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 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
MehrUniversitä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
MehrProgrammiertechnik 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
MehrProgrammiertechnik 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
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.
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
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:
MehrAlgorithmen 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 /
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),
MehrAlgorithmen 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
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
MehrEinheit 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)
MehrWie 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
Mehr9 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
MehrAlgorithmen 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
MehrBipartite 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
MehrAlgorithmische 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
Mehr1.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
MehrGraphentheorie 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,
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
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
MehrAufgabe 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
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
MehrKap. 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
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
Mehr15. 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
MehrHelmut 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).
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
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
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?
Mehr4.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
MehrTeil 2: Graphenalgorithmen
Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Problemstellung Ungewichtete Graphen Distanzgraphen Gewichtete
MehrKapitel 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
Mehr2. 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
MehrGraphdurchmusterung, 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,
MehrAlgorithmische 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,
MehrBä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
MehrVorlesung 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.
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.
MehrDefinition 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
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
Mehr11. 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
MehrLö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
MehrBemerkung: 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
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
Mehr(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,
MehrMotivation 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
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
MehrProgrammierkurs 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
MehrProgrammierkurs 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
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
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
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
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
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)
MehrAlgorithmen & 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
MehrProgrammierkurs 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
MehrTutoraufgabe 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
MehrRouting 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
MehrEinfü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
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.
MehrDiskrete 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
MehrDiskrete 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
Mehr5. 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
MehrZentralü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
MehrGraphalgorithmen 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
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
MehrGraphalgorithmen 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
MehrFlü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
MehrDiskrete 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
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
MehrAlgorithmen 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
MehrVorlesung 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)
MehrMaximale 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.
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 )
Mehr4. 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
MehrKü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
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
MehrAlgorithmen 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.
MehrSatz 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
MehrMustererkennung: 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:
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
MehrFlü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
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
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
MehrFortgeschrittene 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
MehrAlgorithmen 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
Mehr6. 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
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
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
MehrGrundbegriffe 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
MehrDatenstrukturen 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
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
MehrStudientag 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
MehrDas 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
MehrTheoretische 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
Mehr3. 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),
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
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
MehrFlü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
MehrFerienkurs 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