pdf-File

Werbung
Graphentheorie
Algorithmenorientierte Graphentheorie
1. Grundlegende Definitionen in der Graphentheorie
Gerichtete und ungerichtete Graphen
Def: Ein Digraph (directed graph: gerichteter Graph) G = (V, E) ist eine nichtleere Menge V
von Knoten (oder Ecken), einer eventuell leeren Menge E von gerichteten Kanten (oder Bögen)
und einer Inzidenzfunktion ϕ : E → V × V , damit: ϕ(e) = (v, w) mit e ∈ E und v, w ∈ V .
Merke: (v, w) ist ein geordnetes Knotenpaar.
Def: Enthält ein Digraph mit jeder Kante e = (v, w) auch die Kante e∗ = (w, v), e 6= e∗, so
wird die Kante in der Form e = {v, w} geschrieben, und der Graph heißt ungerichteter Graph
oder einfach Graph.
Merke: {v, w} ist ein ungeordnetes Knotenpaar.
Def: Für den Bogen e = (v, w) ist v der Anfangsknoten und w der Endknoten der Kante e.
v ist direkter Vorgänger von w und w ist direkter Nachfolger von v .
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 1
Graphentheorie
Multigraph, schlichter Graph, Adjazenz und Inzidenz
Def: Im Digraphen haben parallele Kanten den gleichen Anfangs- und den gleichen Endknoten.
Bei einer Schlinge ist der Anfangs- gleich dem Endknoten. Ein Digraph ohne Schlingen heißt
Multigraph, fehlen auch noch parallele Kanten, heißt der Digraph schlicht. Diese Begriffe werden
auch auf ungerichteten Graphen übertragen.
Def: Zwei Knoten, die durch eine (gerichtete bzw. ungerichtete) Kante verbunden sind, heißen
adjazent. Adjazente Kanten haben mindestens einen gemeinsamen Knoten. Die Menge der
Nachbarn N (v) eines Knotens v enthält alle zu v adjazenten Knoten.
Def: Knoten und Kanten, die sich berühren, heißen inzident. Die Anzahl der zu einem Knoten
v ∈ V inzidenten Kanten (gerichtet oder ungerichtet) heißt Valenz von v : val(v ), Schlingen
werden dabei doppelt gezählt.
In einem Digraphen unterscheidet man darüberhinaus Eingangs- und Ausgangsvalenz von v
und schreibt dafür val−(v) bzw. val+ (v).
Def: Ein Knoten v in einem Digraphen G ohne Vorgänger (ohne Nachfolger) heißt Quelle
(Senke). Knoten ohne adjazente Knoten nennt man in Graphen und Digraphen isoliert.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 2
Graphentheorie
Vollständige Graphen, reguläre Graphen, bipartite Graphen
Def: Ein Graph G heißt vollständig, wenn er schlicht ist und je zwei Knoten durch genau eine
Kante verbunden sind. Der vollständige Graph mit n Knoten wird mit Kn bezeichnet.
Def: G heißt r-regulär, wenn val(v) = r ∀v ∈ V gilt.
G heißt kubisch, wenn val(v) = 3 ∀v ∈ V erfüllt ist.
Def: Ein Graph G heißt bipartit, wenn sich seine Knotenmenge so in zwei Teilmengen aufspalten
läßt, daß alle Kanten inzident zu je einem Knoten aus den beiden Teilmengen sind.
Schreibweise: G = (V1 ∪ V2 , E).
Matchings
Def: Ein Matching von G ist eine Teilmenge der Kantenmenge E mit der Eigenschaft, daß je
zwei Kanten der Menge nicht adjazent sind. Ein Matching mit maximaler Kantenanzahl heißt
maximales Matching. Inzidieren alle Knoten des Graphen mit einer Matchingkante, so heißt das
Matching perfekt.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 3
Graphentheorie
Isomorphie, Folgen von Kanten und Bögen
Def: Zwei Graphen G = (V, E) und G∗ = (V ∗, E ∗) heißen isomorph, wenn es eine bijektive
Abbildung f : V → V ∗ mit der Eigenschaft gibt: {v, w} ∈ E ↔ {f (v), f (w)} ∈ E ∗.
Def: In einem Graphen G heißt eine Folge von Knoten [v1 , v2, ..., vk ] Kantenfolge, wenn je
zwei nebeneinanderstehende Knoten der Folge durch eine Kante verbunden sind. Ist vk nicht
adjazent zu v1 , heißt die Kantenfolge offen, sonst heißt die Kantenfolge geschlossen. Tritt kein
Knotenpaar mehrfach auf, heißt die Folge Kantenzug. Tritt kein Knoten mehrfach auf, heißt
die Folge Weg. Die Länge einer Kantenfolge bzw. eines Weges ist die Anzahl ihrer Kanten.
(Gebräuchlich ist auch die Anzahl der Knoten.)
In einem Digraphen unterscheidet man analog gerichtete Kantenfolgen, gerichtete Kantenzüge und gerichtete Wege. Geschlossene Wege werden als Kreise, geschlossene gerichtete
Wege als Zyklen bezeichnet. Cn ist ein Kreis der Länge n.
Def: Werden in einem Digraphen die Richtungen der Kanten nicht betrachtet, wird der entstehende
Graph als der zu G gehörende Semigraph bezeichnet. Die entsprechenden Bezeichnungen für
den Semigraphen sind Semikantenfolge, Semikantenzug und Semiweg.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 4
Graphentheorie
Zusammenhang
Def: Im Graphen G heißen zwei verschiedene Knoten miteinander verbunden, wenn es einen
Weg zwischen ihnen gibt. Im Digraphen sind zwei verschiedene Knoten miteinander verbunden,
wenn zwischen ihnen im zugehörigen Semigraphen ein Weg existiert. Im Digraph ist ein Knoten
v von einem Knoten w aus erreichbar, wenn ein gerichteter Weg von w nach v existiert.
Def: Ein Graph ist zusammenhängend, wenn je zwei verschiedene Knoten aus V miteinander
verbunden sind (entsprechendes gilt für den Digraphen bezüglich des Semigraphen). Ein Digraph
ist stark zusammenhängend, wenn zwischen zwei beliebigen voneinander verschiedenen Knoten
aus V ein gerichteter Weg existiert. Zusätzlich werden Graphen bzw. Digraphen mit nur einem
Knoten auch als zusammenhängend bzw. stark zusammenhängend bezeichnet.
Merke: Die binäre Relation R in der Knotenmenge des Graphen G = (V, E):
∀v, w ∈ V : vRw ⇔ v = w oder v und w sind miteinander verbunden und
die binäre Relation R∗ in der Knotenmenge des Digraphen G = (V, E):
∀v, w ∈ V : vR∗w ⇔ v = w oder (v ist von w erreichbar und w ist von v erreichbar)
sind Äquivalenzrelationen.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 5
Graphentheorie
Untergraphen und Cliquen
Def: G∗ = (V ∗, E ∗) heißt Untergraph oder Teilgraph von G = (V, E), wenn V ∗ ⊆ V und
E ∗ ⊆ E erfüllt ist. Gilt zusätzlich: mit {v, w} ∈ E und v, w ∈ V ∗ auch {v, w} ∈ E ∗, heißt
G∗ induzierter Untergraph von G. Eine Clique von G ist ein vollständiger Untergraph von G.
Bäume und Wälder
Def: Ein Baum ist ein zusammenhängender, schlichter, kreisfreier Graph. Ein Wald besteht aus
mehreren Bäumen. Ein zusammenhängender, alle Knoten des zusammenhängenden Graphen G
enthaltender Teilgraph von G mit minimaler Kantenanzahl heißt Gerüst oder aufspannender
Baum von G. Ein aufspannender Wald auf G ist ein nichtzusammenhängender Teilgraph von
G, der alle Knoten von G enthält und dessen Komponenten Bäume sind.
Komplementgraph
Def: Sei G = (V, E) ein Teilgraph des vollständigen Graphen Kn = (V, E ∗). Dann heißt der
Graph G = (V, E ∗ \ E) Komplementgraph zu G.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 6
Graphentheorie
2. Entscheidungs- und Optimierungsprobleme über Graphen
Entscheidungsprobleme:
Gegeben: Ungerichteter Multigraph G = (V, E);
Frage 1: Gibt es einen Eulerkreis auf G, d.h. eine geschlossene Kantenfolge, die jede Kante
genau einmal enthält?
Frage 2: Gibt es einen Hamiltonkreis auf G, d.h. eine geschlossene Kantenfolge so, daß jeder
Knoten genau einmal vorkommt?
Optimierungsprobleme:
Gegeben: Ungerichteter Multigraph G = (V, E) mit Kantenbewertungen c(e);
Briefträgerproblem: Füge Kanten mit minimaler Gesamtbewertung zu G so hinzu, daß der
Graph G∗ = (V, E ∗) einen Eulerkreis enthält.
Rundreiseproblem: Bestimme einen Hamiltonkreis auf G mit minimalem Gewicht!
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 7
Graphentheorie
Matchingprobleme auf bipartiten Graphen
Entscheidungsproblem:
Gegeben: bipartiter Graph G = (I ∪ J, E);
Frage: Existiert auf G ein Matching mit |I| Kanten?
Optimierungsproblem:
Gegeben: vollständiger bipartiter Graph G = (I ∪ J, E) mit |I| = |J| und
Kantenbewertungen cij ∈ N0 ∀ {ij} ∈ E ;
Zuordnungsproblem: Gesucht ist ein perfektes Matching M ∗ ⊆ E
mit minimaler Gesamtbewertung w(M ∗ ) = min
M
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
P
cij .
{ij}∈M
Folie 8
Graphentheorie
3. Beschreibung von Graphen
Gegeben ist ein (ungerichteter oder gerichteter) Graph G = (V, E) mit n = |V | Knoten und
m = |E| (ungerichteten oder gerichteten) Kanten.
Inzidenzmatrix B = [bi,j ]n×m für ungerichtete Graphen
bi,j =

1, falls vi mit ej inzidiert;
0, sonst.
Inzidenzmatrix B = [bi,j ]n×m für gerichtete Graphen
bi,j
8
< 1, falls ej von vi startet ∨ ej ist Schlinge;
=
-1, falls ej in vi mündet ∧ ej ist keine Schlinge;
:
0, sonst.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 9
Graphentheorie
Beschreibung von Graphen (2)
Adjazenzmatrix A = [ai,j ]n×n für ungerichtete Graphen
ai,j = Anzahl der Kanten {vi , vj }, Schlingen werden doppelt gezählt.
Merke: A ist symmetrisch und es gilt:
P
P
ai,j = val(vj ), j ∈ {1, . . . , n}.
ai,j = val(vi ), i ∈ {1, . . . , n} bzw.
i
j
Adjazenzmatrix A = [ai,j ]n×n für gerichtete Graphen
ai,j = Anzahl der Bögen (vi , vj ).
Merke: A ist nicht symmetrisch und es gilt:
P
P
ai,j = val− (vj ), j ∈ {1, . . . , n}.
ai,j = val+ (vi ), i ∈ {1, . . . , n} bzw.
j
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
i
Folie 10
Graphentheorie
Beschreibung von Graphen (3)
Adjazenztabelle für ungerichtete Graphen
in Zeile i: vi und N (vi ) (geordnet oder ungeordnet).
Merke: Abspeicherung der Tabelle in Liste:
Adjazenzliste N enthält nacheinander alle Nachbarn aus N (v1 ), N (v2 ), . . . , N (vn ),
wobei der Zeiger zi , i ∈ {1, . . . , n}, auf den ersten Nachbarn von vi in N zeigt, d.h.
Pi−1
z1 = 1 und zi =
k=1 |N (vk )| + 1 für 2 ≤ i ≤ n.
Nachfolger- bzw. Vorgängertabelle für gerichtete Graphen
in Zeile i: vi und P RED(vi ) (Menge der unmittelbaren Vorgänger von vi ) bzw.
in Zeile i: vi und SU CC(vi ) (Menge der unmittelbaren Nachfolger von vi ),
wiederum: ungeordnete bzw. geordnete Form möglich.
Merke: Analoge Abspeicherung in Nachfolgerliste bzw Vorgängerliste.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 11
Graphentheorie
Beschreibung von Graphen (4)
Kombinierte Adjazenzliste
Eine kombinierte Adjazenzliste N ∗ enthält die Multimenge aller Nachbarn aus ∪ni=1N (vi ),
wobei zu jedem Nachbarn ein Zeiger z ∗ auf den nächsten Nachbarn des gleichen Knotens gerichtet
ist und der Anfangszeiger zi, i ∈ {1, . . . , n}, auf den ersten Nachbarn von vi in N ∗ zeigt.
Darstellung in Tabellenform:
Zähler
Nachbarknoten
Zeiger z ∗
Anfangszeiger z
1
2
...
r
Eine Liste ist eine Datenstruktur, deren einzelne Elemente durch Zeiger verbunden sind:
Anfang (von Knoten v ) → 1.Nachbar → 2.Nachbar → ...→ letzter Nachbar → Ende ∗
Analog im Digraphen: Kombinierte Vorgänger- bzw. Nachfolgerliste
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 12
Graphentheorie
Vergleich der Beschreibungsmöglichkeiten
Die folgende Tabelle zeigt den Speicherbedarf und den Aufwand für einfachste Graphenoperationen
in Abhängigkeit von der Beschreibung eines ungerichteten Graphen G = (V, E) mit
|V | = n, |E| = m, d = maxv∈V {val(v)}.
Aufwand proportional zu
Sind die Knoten
v, w adjazent?
Markiere alle
Nachbarn von v !
Füge Knoten ein!
Füge Kante ein!
Speicherplatz
bei zeilenweiser bzw.
Inzidenzmatrix
Adjazenzmatrix
m
Adjazenzliste
geordnete
Adjazenzliste
d
log2 d
kombinierte
Adjazenzliste
⋆
mn
m bzw. nm⋆
n
n
1
n×m
n×n
spaltenweiser Speicherung der Inzidenzmatrix
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 13
Graphentheorie
4. Zusammenhang
Gegeben: G = (V, E) durch V = {1, . . . , n} und ∀ v ∈ V : N (v) (Multimengen);
Frage: Ist G zusammenhängend?
Breitensuche:
Idee: Benutze für jeden Knoten v eine Marke α(v) mit:
Wenn α(v) = v : Alle Nachbarn von v sind schon untersucht;
Wenn α(v) = −v : Die Nachbarn von v sind noch nicht untersucht,
aber es steht schon fest, daß v zur Zusammenhangskomponente des Startknotens gehört;
Wenn α(v) = 0: Man weiß noch nichts über v .
Tiefensuche:
Idee: Jeder Knoten v erhält Marke α(v): Nummer des Knotens, von dem der Knoten v das erste
Mal erreicht wird.
Merke: Aufwand ist in beiden Algorithmen proportional zu max{|V |, |E|}.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 14
Graphentheorie
Breitensuche
Algorithmus BFS (breath-first-search)
Eingabe: G = (V, E) durch V = {1, . . . , n} und ∀v ∈ V : N (v), Startknoten 1;
Ausgabe: VH : Knotenmenge VH der Zusammenhangskomponente, die den Startknoten enthält.
BEGIN
Setze ∀ v ∈ V \ {1} : α(v) = 0; α(1) = −1;
WHILE Es gibt ein k mit α(k) < 0 DO
BEGIN
WHILE Es gibt ein l ∈ N (k) mit α(l) = 0 DO α(l) = −l;
α(k) = k;
END;
VH := {v ∈ V | α(v) = v};
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 15
Graphentheorie
Tiefensuche
Algorithmus DFS (depth first search)
Eingabe: G = (V, E) durch V = {1, . . . , n} und ∀v ∈ V : N (v); Startknoten 1;
Ausgabe: VH : Knotenmenge VH der Zusammenhangskomponente, die den Startknoten enthält.
BEGIN
Setze ∀v ∈ V \ {1} : α(v) = 0; α(1) = 1, x := 1;
Marke: WHILE Es gibt ein y ∈ N (x) mit α(y) = 0 DO
BEGIN Markiere y : α(y) = x; x := y ; END;
IF x 6= 1 THEN
BEGIN
x = α(x); GOTO Marke;
END;
ELSE
VH := {v ∈ V | α(v) 6= 0};
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 16
Graphentheorie
5. Topologische Sortierung
Gegeben: Digraph G = (V, E) mit V = {1, . . . , n}, schlicht und zusammenhängend;
Gesucht: Knotennumerierung so, daß jeder Knoten j nur Vorgänger i mit i < j besitzt.
Merke: Diese Numerierung existiert nur, wenn G zyklenfrei ist!
Der Graph wird gleichzeitig auf Zyklenfreiheit überprüft!
Die Adjazenzmatrix eines zyklenfreien Digraphen nach topologischer Sortierung der
Knoten ist eine obere Dreiecksmatrix!
Idee:
1. Ordne allen Quellen eine Nummer zu.
2. Entferne alle Quellen und die mit ihnen inzidierenden Kanten.
3. Falls noch unnumerierte Knoten vorhanden sind, suche erneut Quellen, falls keine existieren,
dann besitzt der Digraph mindestens einen Zyklus.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 17
Graphentheorie
Algorithmus TOPSORT1
Algorithmus TOPSORT1
Eingabe: G = (V, E) durch V = {1, . . . , n} und Adjazenzmatrix A;
Ausgabe: lk , k = 1, .., n (neue Knotennummer des Knotens k).
BEGIN
FOR j ∈ V DO
BEGIN val− (j) := 0; FOR i ∈ V DO val−(j) := val− (j) + ai,j
END;
FOR i := 1 TO n DO
BEGIN wähle ein k ∈ V mit val−(k) = 0;
IF (ein solches existiert nicht) THEN STOP (Digraph enthält Zyklus)
ELSE BEGIN lk := i; V := V \ {k};
FOR j ∈ V DO val− (j) := val− (j) − ak,j
END;
END;
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 18
Graphentheorie
Algorithmus TOPSORT2
Algorithmus TOPSORT 2
Eingabe: G = (V, E) durch V = {1, . . . , n} und ∀v ∈ V : Menge der Nachfolger S(v);
Ausgabe: ∀j ∈ {1, . . . , n}: neue Knotennummer lj des Knotens j .
BEGIN M := ∅; v := 0; FOR i := 1 TO n DO val− (i) := 0;
FOR i := 1 TO n DO FOR j ∈ S(i) DO val− (j) := val− (j) + 1;
FOR i := 1 TO n DO
IF val− (i) = 0 THEN BEGIN M := M ∪ {i}; v := v + 1; li := v
END;
WHILE M 6= ∅ DO
BEGIN wähle ein k ∈ M ; M := M \ {k};
FOR j ∈ S(k) DO
BEGIN val− (j) := val−(j) − 1;
IF val−(j) = 0 THEN BEGIN M := M ∪ {j}; v := v + 1; lj := v
END;
END;
END; If v < n THEN STOP (Digraph enthält Zyklus)
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 19
Graphentheorie
6. Aufwand von Algorithmen
Bei der Abarbeitung eines Algorithmus werden die elementaren Rechenschritte gezählt. Elementare
Rechenschritte sind u.a. Grundrechenarten, Vergleiche, ein Element aus einer Menge wählen. Man
setzt voraus, das jeder der elementaren Rechenschritte die gleiche Zeit benötigt.
Ein Maß für das Wachstum dieser Anzahl g(n) in Abhängigkeit von der Größe n des Problems
wird durch das Landausche Symbol O(.) definiert:
Def: Gegeben sind die Abbildungen f, g : N → R+. Dann ist
O(f (n)) = {g(n)|∃ eine Konstante c > 0 so, daß g(n) ≤ cf (n) ∀n ≥ n0 gilt.}
Schreibweise: Statt g(n) ∈ O(f (n)) schreibe g(n) = O(f (n)) (Keine Gleichung!)
Def: Ein Algorithmus heißt polynomial, wenn g(n) = O(f (n)) und f (n) ein Polynom in n ist
und exponentiell, wenn f (n) eine Exponentialfunktion ist.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 20
Graphentheorie
Vergleich des Aufwandes von Algorithmen
Sprechweise: Der Algorithmus braucht O(f (n)) Zeit, oder der Algorithmus hat eine Zeitkomplexität von O(f (n)).
In der folgenden Tabelle werden die Rechenzeiten für verschiedene Zeitkomplexitäten in
Abhängigkeit von der Problemgröße dargestellt. Dabei wird angenommen, daß ein Rechenschritt
eine Länge von 10−6 Sekunden hat.
Zeit
n
nlogn
n2
n3
n5
2n
3n
n!
10
0.00001
0.00001
0.0001
0.001
0.1
0.001
0.059
3.63
Problemgröße n
50
20
sec
sec
sec
sec
sec
sec
sec
sec
0.00002
0.00009
0.0004
0.008
3.2
1
58
77000
sec
sec
sec
sec
sec
sec
min
Jahre
100
1000
0.00005
0.0003
0.0025
0.125
5.2
35.7
sec
sec
sec
sec
min
Jahre
0.0001
0.0007
0.01
1
2.67
4 · 1016
sec
sec
sec
sec
h
Jahre
1051
Jahre
3 · 10144
Jahre
0.001
0.01
1
16,66
1111.1
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
sec
sec
sec
sec
Tage
Folie 21
Graphentheorie
Lösen schnellere Rechner das Problem?
Die folgende Tabelle gibt an, wie sich - in Abhängigkeit von der Zeitkomplexität - unter dem
Einfluß schnellerer Rechner die Problemgröße verändert, die in einer Stunde zu bewältigen ist.
Zeitkomplexität
n
n2
n3
n5
2n
3n
mit dem gegenwärtigen Computer
n1
n2
n3
n4
n5
n6
mit einem 100-mal
schnelleren Computer
100 · n1
10 · n2
4, 64 · n3
2, 5 · n4
n5 + 6, 64
n6 + 4, 19
mit einem 1000-mal
schnelleren Computer
1000 · n1
31, 6 · n2
10 · n3
3, 98 · n4
n5 + 9, 97
n6 + 6, 29
Polynomiale Algorithmen werden als gutartig, exponentielle Algorithmen werden als bösartig
bezeichnet.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 22
Graphentheorie
7. Zur Komplexität von Problemen
Betrachtet werden Entscheidungsprobleme, diese haben nur die Antworten “ja” oder “nein”.
Die Klassen P und NP
Def: P ist die Menge aller deterministisch in polynomialer Zeit lösbaren Entscheidungsprobleme.
Merke: Ein nichtdeterministischer Algorithmus besteht aus einem Rateteil und einem Prüfteil. Im
Rateteil wird ein Lösungselement des Problems geraten und im Prüfteil wird in polynomialer Zeit
überprüft, ob das Lösungselement zu einer ’ja’ Antwort des Entscheidungsproblems führt.
Def: NP ist die Menge aller nichtdeterministisch in polynomialer Zeit lösbaren Entscheidungsprobleme.
Merke: Es gilt: P ⊆ NP. Frage P = NP ist bis heute ungelöst.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 23
Graphentheorie
Die Klasse NP-complete
Def: Ein Problem A heißt reduzierbar auf ein Problem B , (AαB), wenn jede Instanz (Eingabeparameter) von A mit polynomialen Aufwand so in eine Instanz von B überführt werden kann,
daß beide Instanzen gleiche Antworten ’ja’ oder ’nein’ liefern.
Merke: Die Relation α ist reflexiv und transitiv.
Def: Die Menge aller Probleme aus NP, auf die jedes Problem aus NP reduziert werden kann,
heißt NP-complete:
A ∈ NP-complete ⇔ (A ∈ NP) ∧ (∀B ∈ NP : BαA).
Merke: Es genügt zu zeigen: A ∈ NP ∧ (∃B ∈ NP-complete: BαA).
Def: Die Probleme A und B heißen zeitkomplexitätstheoretisch äquivalent, wenn AαB ∧ BαA
gilt.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 24
Graphentheorie
Erste gefundene Probleme der Klasse NP-complete (1)
Erfüllbarkeitsprobleme der Logik
SATISFIABILITY (SAT)
• Gegeben: Eine Menge U = {u1 , .., un } von boolschen Variablen und eine Menge C =
{c1, .., cm} von Klauseln über U .
• Frage: Lassen sich den Variablen aus U Wahrheitswerte so zuweisen, daß jede der Klauseln
den Wahrheitswert true hat?
3-SATISFIABILITY (3-SAT)
• Dieses Problem unterscheidet sich von SATISFIABILITY nur dadurch, daß jede Klausel nur
drei Variable enthält.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 25
Graphentheorie
Erste gefundene Probleme der Klasse NP-complete (2)
Graphentheoretische Probleme
3-DIMENSIONAL MATCHING (3DM)
• Gegeben: Eine natürliche Zahl q , drei durchschnittsfremde Mengen X, Y, Z mit |X| =
|Y | = |Z| = q und eine Menge M ⊆ X × Y × Z .
• Frage: Gibt es eine Menge M ′ ⊆ M mit |M | = q , in der gilt:
(x1 , y1, z1), (x2 , y2, z2) ∈ M ′ ⇒ x1 6= x2 ∧ y1 6= y2 ∧ z1 6= z2?
VERTEX COVER (CV)
• Gegeben: Ein Graph G = (V, E) und ein k ∈ N mit k ≤ |V |.
• Frage: Gibt es eine Knotenüberdeckungsmenge nicht größer als k, das heißt eine Menge
V ∗ ⊆ V mit |V ∗| ≤ k, so daß jede Kante aus E mindestens einen Endknoten in V ∗ hat?
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 26
Graphentheorie
Erste gefundene Probleme der Klasse NP-complete (3)
HAMILTONIAN CIRCUIT (HC)
• Gegeben: Ein Graph G = (V, E).
• Frage: Gibt es auf G einen Hamiltonkreis, d.h. eine Folge v1 , v2 , .., vn von Knoten mit
|V | = n und {vi , vi+1 } ∈ E für 1 ≤ i ≤ n − 1 und {vn , v1 } ∈ E ?
CLIQUE
• Gegeben: Ein Graph G = (V, E) und eine Zahl k ∈ N, k ≤ |V |.
• Frage: Gibt es auf G eine Clique mit mindestens k Knoten, d.h. eine Menge paarweiser
adjazenter Knoten V ′ ⊆ V mit |V ′| ≥ k?
STABLE SET
• Gegeben: Sei ein Graph G = (V, E) und eine Zahl k ∈ N .
• Frage: Hat G eine stabile Knotenmenge V ∗ ⊆ V , d.h. eine Menge paarweiser nicht adjazenter
Knoten, mit |V ∗| ≥ k?
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 27
Graphentheorie
Probleme aus NP-complete
Satz 1.
Das Problem HC liegt in NP-complete.
Satz 2. Gegeben ist ein Graph G = (V, E) und V ∗ ⊆ V . Dann sind die folgenden Aussagen
äquivalent:
1. V ∗ spannt eine Clique auf G auf.
2. V ∗ ist eine stabile Knotenmenge im Komplementärgraphen Ḡ.
3. V \ V ∗ ist Knotenüberdeckungsmenge in Ḡ.
Folgerung: Die Probleme VC,CLIQUE und STABLE SET sind komplexitätstheoretisch
äquivalent. Mit VC ∈ NP-complete sind auch die anderen in NP-complete.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 28
Graphentheorie
8. Bäume, Wälder und Gerüste
Satz 3. Die folgenden Aussagen sind für einen Graphen G = (V, E) mit n Knoten und m
Kanten äquivalent:
(1) Zwei beliebige Knoten aus G sind genau durch einen Weg verbunden.
(2) G ist ein Baum.
(3) G ist zusammenhängend und hat m = n − 1 Kanten.
(4) G ist kreisfrei und hat m = n − 1 Kanten.
(5) G ist kreisfrei und verbindet man zwei nichtadjazente Knoten aus G durch eine zusätzliche
Kante, so entsteht ein Graph mit genau einem Kreis.
Folgerung:
Sei G′ ein Teilgraph eines Graphen G = (V, E) mit n Knoten. G′ habe n′ = n Knoten und
m′ Kanten.
Dann sind die Aussagen (1) bis (5) äquivalent, wenn G durch G′ und m durch m′ ersetzt wird.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 29
Graphentheorie
Eigenschaften
Satz 4. Jeder Baum G = (V, E) hat mindestens zwei Blätter, d.h. Knoten mit Valenz 1.
Satz 5. Ein schlichter, zusammenhängender Graph G = (V, E) mit n Knoten und m Kanten
enthält mindestens (m − n + 1) Kreise.
Def: Die Menge aller Kreise, die man durch Hinzunahme einer Kante zu einem gegebenen Gerüst
H erhält, heißt Fundamentalsystem von Kreisen bezüglich H .
Zyklus- und Cozyklusrang
Def: Es sei G = (V, E) ein schlichter Graph mit k Komponenten.
Dann heißt ν(G) = |E| − |V | + k Zyklusrang und ν ∗(G) = |V | − k Cozyklusrang von G,
d.h. es gilt: ν(G) + ν ∗(G) = |E|.
Satz 6. (a) Ein Graph G ist ein Wald. ⇔ ν(G) = 0.
(b) Ein Graph G hat einen einzigen Kreis. ⇔ ν(G) = 1.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 30
Graphentheorie
Anzahl der Gerüste eines Graphen
Satz 7. Satz von Cayley
Der vollständige Graph Kn mit n ≥ 2 Knoten besitzt genau nn−2 Gerüste.
Def: Valenzmatrix von G: V = [vij ]n,n mit vij =

val(i),
0,
für i = j
.
für i =
6 j
Admittanzmatrix von G: A = V − A, wobei A die Adjazenzmatrix von G ist.
Satz 8. Matrix-Gerüstsatz von Kirchhoff-Trent
Der Graph G = (V, E) mit mehr als einem Knoten habe die Admittanzmatrix A.
Sei i ∈ {1, ..., |V |} beliebig gewählt. Die Matrix Ai entstehe aus A durch Streichen der Zeile
i und der Spalte i. Dann gilt für die Anzahl der Gerüste h(G) auf G:
h(G) = |Ai | = det(Ai ).
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 31
Graphentheorie
Das Minimalgerüstproblem
Gegeben: Schlichter zusammenhängender Graph G = (V, E) mit Kantenbewertungsmatrix
C = [cij ], d.h. - jeder Kante e = {i, j} ∈ E wird eine positive reelle Zahl cij zugeordnet und
- wenn {i, j} ∈
/ E , wird cij = ∞ gesetzt.
Gesucht: Minimalgerüst auf G, d.h. ein Gerüst H = (V, EH ) mit
f = min {
H∈M H
X
cij },
{i,j}∈EH
wobei mit M H die Menge aller Gerüste auf G bezeichnet wird.
Satz 9. Sei G = (V, E) ein kantenbewerteter zusammenhängender schlichter Graph, V ∗ ⊂ V
und {v, w} eine Kante mit minimaler Bewertung mit v ∈ V ∗ und w ∈ V \ V ∗.
Dann existiert ein Minimalgerüst, das die Kante {v, w} enthält.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 32
Graphentheorie
Algorithmus MINGERÜST 1 (Prim/Dijkstra)
Idee:
• Wähle einen beliebigen Startknoten v , setze V ∗ := {v} und EH = ∅.
• Wiederhole, bis V ∗ = V erfüllt ist:
Suche unter allen Kanten {v, w} ∈ E mit v ∈ V ∗, w 6∈ V ∗ diejenige mit kleinster
Bewertung, diese sei {v ∗ , w∗}, aktualisiere: EH := EH ∪ {v ∗ , w∗}, V ∗ := V ∗ ∪ {w∗ }.
Merke: Die Exaktheit des Algorithmusses ist durch Satz 9 gesichert.
Der Aufwand beträgt O(|V |2).
Beachte: Im folgenden Algorithmus bezeichnet {w, Anschluß(w)} die Kante mit kleinster
Bewertung mit Anschluß(w) ∈ V ∗ und w ∈ V \ V ∗ im jeweils aktuellen Schritt.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 33
Graphentheorie
Algorithmus nach Prim/Dijkstra
Algorithmus MINGERÜST 1
Eingabe: G = (V, E), G zusammenhängend, ungerichtet; Kantenbewertungen C = [c(i, j)];
Ausgabe: Kantenmenge EH des Minimalgerüstes H = (V, EH ).
BEGIN Wähle Startknoten v , beliebig; V ∗ := {v}; EH := ∅;
FORALL w ∈ V \ V ∗ DO Anschluß(w) := v ;
WHILE V ∗ 6= V DO
BEGIN min := ∞;
FORALL w ∈ V \ V ∗ DO
IF c(w, Anschluß(w)) < min THEN
BEGIN min := c(w, Anschluß(w)); w∗ := w; END;
∗
V := V ∗ ∪ {w∗ }; EH := EH ∪ {{w∗ , Anschluß(w∗)}};
FORALL w ∈ V \ V ∗ DO IF c(w, Anschluß(w)) > c(w, w∗ ) THEN Anschluß(w) := w∗;
END;
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 34
Graphentheorie
Algorithmus MINGERÜST 2 (Sollin)
Voraussetzung: Kantenbewertungen paarweise verschieden.
Idee: Wie MINGERÜST 1, aber: starte mit allen Knoten gleichzeitig!
• Setze Si := {vi }, i = 1, ..., n und S = {S1 , S2 , ..., Sn}, EH = ∅.
• Wiederhole, bis |S| = 1 gilt:
Verbinde jeden Knoten vi mit seinem nächstgelegenen Nachbarn, nimm die ausgewählten
Kanten in EH auf. Bestimme die Knotenmengen Sk der Zusammenhangskomponenten von
(V, EH ) und komprimiere die Zusammenhangskomponenten auf einen Knoten, aktualisiere
die Daten.
Merke: Die Exaktheit des Algorithmusses ist durch Satz 9 gesichert.
Der Aufwand beträgt O(|E| log |V |).
Beachte: Im folgenden Algorithmus bezeichnet kK(i) die kürzeste Kante, die aus der Knotenmenge Si herausführt.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 35
Graphentheorie
Algorithmus nach Sollin
Algorithmus MINGERÜST 2
Eingabe: G = (V, E), G zusammenhängend, ungerichtet; Kantenbewertungen C = [cij ];
Ausgabe: Kantenmenge EH des Minimalgerüstes H = (V, EH ).
BEGIN EH := ∅; S := {{v1 }, {v2 }, ..., {vn }} = {S1 , ..., Sn };
WHILE |S| 6= 1 DO
BEGIN FOR i := 1 TO |S| DO min(i) := ∞;
FORALL {u, v} ∈ E mit u ∈ Si und v ∈ Sj DO IF i 6= j THEN
BEGIN
IF cu,v < min(i) THEN BEGIN min(i) := cu,v ; kK(i) := {u, v}; END;
IF cu,v < min(j) THEN BEGIN min(j) := cu,v ; kK(j) := {u, v}; END;
END;
FORALL Sj ∈ S DO EH := EH ∪ {kK(j)}; Bestimme die neue Menge S
der Knotenmengen der Zusammenhangskomponenten von (V, EH );
END;
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 36
Graphentheorie
Algorithmus nach Kruskal (Greedy Algorithmus)
Algorithmus MINGERÜST 3
Eingabe: G = (V, E), zusammenhängend, ungerichtet, Kantenbewertung C = [cij ];
Ausgabe: Kantenmenge EH des Minimalgerüstes H = (V, EH ).
BEGIN Sortiere die Kanten nach nichtfallenden Bewertungen; EH := ∅;
WHILE |EH | < |V | − 1 DO
BEGIN es sei {u, v} die Kante aus E mit minimaler Bewertung;
E := E \ {{u, v}};
IF (V, EH ∪ {{u, v}}) enthält keinen Kreis) THEN EH := EH ∪ {{u, v}};
END;
END.
Satz 10. MINGERÜST 3 liefert ein Minimalgerüst auf G.
Merke: MINGERÜST 3 läßt sich mit einem Aufwand von O(m log m) umsetzen.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 37
Graphentheorie
MINGERÜST 4
Algorithmus MINGERÜST 4
Eingabe: G = (V, E), zusammenhängend, ungerichtet, Kantenbewertung C = [cij ];
Ausgabe: Kantenmenge EH des Minimalgerüstes H = (V, EH ).
BEGIN Sortiere die Kanten nach nichtsteigenden Bewertungen; EH := ∅;
WHILE |EH | < |V | − 1 DO
BEGIN es sei {u, v} die Kante aus E \ EH mit maximaler Bewertung;
E := E \ {{u, v}};
IF (V, E) ist nicht zusammenhängend THEN
BEGIN EH := EH ∪ {{u, v}}; E := E ∪ {{u, v}}; END;
END;
END.
Satz 11. MINGERÜST 4 liefert ein Minimalgerüst auf G.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 38
Graphentheorie
Problemerweiterungen
Def: Die Knotenzusammenhangszahl κ(G) eines Graphen G = (V ; E) ist die Mächtigkeit einer
kleinsten Knotenmenge V ∗ ⊆ V mit: G \ V ∗ ist nicht mehr zusammenhängend.
Merke: κ(G) ist in polynomialer Zeit bestimmbar. (später!)
Problem: MINIMALER ZWEIFACH-ZUSAMMENHÄNGENDER TEILGRAPH:
Gegeben: Zusammenhängender schlichter Graph G = (V, E) mit Kantenbewertungen;
Gesucht: Aufspannender Teilgraph G′ = (V, E ′ ) von G mit κ(G′) = 2 und minimaler Summe
der zugehörenden Kantenbewertungen.
Satz 12. Das zum Problem MINIMALER ZWEIFACH-ZUSAMMENHÄNGENDER TEILGRAPH gehörende Entscheidungsproblem liegt in NP-complete.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 39
Graphentheorie
Das Steinerbaumproblem
Def: Ein Baum auf einem Graphen G = (V, E), der alle Knoten aus einer vorgegebenen Menge
V ∗ ⊆ V enthält, heißt Steinerbaum auf G bezüglich V ∗.
Problem: STEINERBAUMPROBLEM:
Gegeben: Zusammenhängender schlichter Graph G = (V, E), V ∗ ⊆ V ;
Gesucht: Steinerbaum auf G bezüglich V ∗ mit minimaler Kantenanzahl.
Satz 13. Das zum Problem STEINERBAUMPROBLEM gehörende Entscheidungsproblem
liegt in NP-complete.
Merke: Die Suche nach minimal gewichteten Steinerbäumen auf einem kantengewichteten Graphen G = (V, E) bezüglich V ∗ ⊆ V ist ebenfalls schwierig!
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 40
Graphentheorie
9. Wegealgorithmen
Def: Auf einem kantenbewerteten Digraphen ist ein kürzester Weg vom Knoten vi zu Knoten vj
ein gerichteter vi − vj Weg mit minimaler Summe der Kantenbewertungen. Die Bewertung eines
kürzesten vi − vj Weges heißt Entfernung (Distanz) dij von vi nach vj (oder von vj zu vi ).
Sind alle Kantenbewertungen 1, heißt dij Abstand von vj zu vi .
Def: Ein negativer Zyklus auf einem Digraphen G = (V, E) mit Kantenbewertungen cij ∈ R
für alle (vi , vj ) ∈ E ist ein Zyklus auf diesem Graphen mit negativer Summe der zugehörenden
Kantenbewertungen.
Satz 14. Wenn W (v1 , vk ) = [v1 , . . . , vk ] ein kürzester Weg von v1 nach vk auf einem
kantenbewerteten Digraphen G = (V, E) ohne negative Zyklen ist, dann ist jeder Teilweg
W (vi , vj ) mit 1 ≤ i ≤ j ≤ k ein kürzester vi − vj Weg.
Eigenschaft: Auf einem kantenbewerteten Digraphen G = (V, E) ohne negative Zyklen gilt
für die Distanz die Dreiecksungleichung: dij ≤ dik + dkj für alle vi , vj , vk ∈ V , die die
zugehörenden Erreichbarkeiten gewährleisten.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 41
Graphentheorie
Wegbaum
Merke: Für einen zusammenhängenden kantenbewerteten Digraphen ohne negative Zyklen lassen
sich kürzesten Wege von einem gegebenen Startknoten in einem gerichteten Baum (Wegbaum)
veranschaulichen.
Tripelalgorithmus
Gegeben: Zusammenhängender schlichter kantenbewerteter Digraph G = (V, E), |V | = n,
ohne negative Zyklen.
Gesucht: Bestimmung kürzester Wege von jedem Knoten zu jeden anderen Knoten.
8
wenn i = j
< 0,
Def: Bewertungsmatrix: C = [cij ]n,n mit cij :=
cij , wenn i 6= j, (vi , vj ) ∈ E;
:
∞, sonst.
Def: Vorgängermatrix: U = [uij ]n,n mit uij :=
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel

i,
0,
wenn i = j oder (vi , vj ) ∈ E;
sonst.
Folie 42
Graphentheorie
Entfernungs- und Wegematrix für den Tripelalgorithmus
Def: Entfernungsmatrix D = [dij ]n,n mit
8
< 0,
dij :=
Entfernung von vi nach vj ,
:
∞,
für i = j;
wenn vj von vi erreichbar ist;
wenn vj nicht von vi erreichbar ist.
Def: Wegematrix W = [wij ]n,n mit
wij
8
0,
>
>
<
i,
:=
j ∗,
>
>
:
wenn vj nicht von vi erreichbar ist;
wenn i = j;
wobei vj ∗ direkter Vorgänger von vj auf einem kürzesten Weg
von vi nach vj ist.
Idee: Man versucht im Schritt r die bis zum Schritt r − 1 ermittelten Wegbewertungen von
vi nach vj weiter zu verkürzen, indem man zusätzliche gerichtete Wege über den Knoten vr
betrachtet.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 43
Graphentheorie
Tripelalgorithmus (1)
Algorithmus: Tripelalgorithmus
Eingabe: schlichter Digraph mit nichtnegativen reellen Kantenbewertungen,
Bewertungsmatrix C = [cij ] und Vorgängermatrix U = [uij ] ;
Ausgabe: Entfernungsmatrix D = [dij ] und Wegematrix W = [wij ].
BEGIN
D := C; W := U ; I := {1, .., n};
FOR r := 1 TO n DO
FOR i := 1 TO n DO
BEGIN IF dir < ∞ THEN
BEGIN FOR j := 1 TO n DO
IF drj < ∞ AND dir + drj < dij THEN
BEGIN dij := dir + drj ; wij := wrj ; END;
END;
END; Ausgabe der Matrizen D und W ;
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 44
Graphentheorie
Tripelalgorithmus (2)
Merke: Der Aufwand des Tripelalgorithmusses beträgt O(n3 ).
Satz 15.
Der Tripelalgorithmus ist korrekt.
Beweisidee: Man berechnet schrittweise die Matrizen
Cr = [crij ] und Ur = [urij ] , r = 0, 1, .., n, mit C0 = C und U0 = U durch folgende
Vorschrift:
 r−1
cij ,
für i = r oder j = r;
r
cij :=
r−1
r−1
r−1
min{ cij , cir + crj }, sonst.
urij
:=

r−1
urj
,
r−1
uij ;
r−1
wenn crij < cij
sonst.
und zeigt, daß Cn = D und Un = W gilt.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 45
Graphentheorie
Algorithmus von Dijkstra
Gegeben: Schlichter Digraph G = (V, E) mit nichtnegativen Kantenbewertungen und Startknoten v ∗ ;
Gesucht: Entfernungen d(v ∗ , v) vom Knoten v ∗ zu jedem von v ∗ erreichbaren Knoten v .
Idee des Algorithmusses:
Schrittweise Bestimmung der von v1 = v ∗ erreichbaren Knoten v2 , .., vk ∈ V \ {v1 } mit den
zugehörenden Entfernungen d(v1 , v2 ), . . . , d(v1 , vk ) mit folgender Eigenschaft:
d(v1 , v2 ) ≤ d(v1 , v3 ) ≤ . . . ≤ d(v1 , vk ).
Merke: Im folgenden Algorithmus bezeichnet S die Menge der Knoten, für die schon ein kürzester
Weg von v1 bekannt ist und SUCC(v) die Menge der unmittelbaren Nachfolger von v .
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 46
Graphentheorie
Algorithmus von Dijkstra
Algorithmus: Dijkstra
Eingabe: Schlichter Digraph G = (V, E) mit nichtnegativen reellen Kantenbewertungen c(v, w)
für alle (v, w) ∈ E , die Mengen SUCC(v) für alle v ∈ V und der Startknoten v ∗.
Ausgabe: Parameter δ(v) mit δ(v) = d(v ∗ , v).
BEGIN
S := ∅; T := V ; δ(v ∗ ) := 0;
FORALL v ∈ V \ {v ∗ } DO δ(v) := ∞ ;
WHILE T 6= ∅ DO
BEGIN Bestimme einen Knoten v so, daß δ(v) = min{δ(u) | u ∈ T };
Setze T := T \ {v} und S := S ∪ {v};
FORALL u ∈ T ∩ SUCC(v) DO δ(u) := min{δ(u), δ(v) + c(v, u)};
END;
END.
Satz 16.
Der Dijkstra-Algorithmus ist korrekt und hat die Zeitkomplexität O(n2 ).
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 47
Graphentheorie
Algorithmus von Bellmann-Ford-More
Algorithmus: Bellmann-Ford-More
Eingabe: Schlichter kantenbewerteter Digraph G = (V, E) ohne negative Zyklen und
ein Startknoten v ∗.
Ausgabe: Für alle v ∈ V : Parameter δ(v) mit δ(v) = d(v ∗ , v).
BEGIN
Setze δ(v ∗ ) := 0 und δ(v) := ∞ für alle v ∈ V \ {v ∗ };
FOR i = 1 TO n − 1 DO
FORALL (v, u) ∈ E aktualisiere den Parameter δu durch
δ(u) := min{δ(u), δ(v) + c(v, u)};
END.
Satz 17.
Der Bellmann-Ford-More Algorithmus ist korrekt und hat die Zeitkomplexität O(nm).
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 48
Graphentheorie
Einige Algorithmen im Überblick
Verfahren
Voraussetzungen
Kürzeste Wege
Bellmann
keine Zyklen
Dijkstra
nichtnegative
Bewertungen
keine Zyklen
negativer Länge
keine Zyklen
negativer Länge
vom Startknoten v zu allen
Nachfolgern von v
vom Startknoten v zu allen
Nachfolgern von v
vom Startknoten v zu allen
Nachfolgern von v
von allen zu allen Knoten
Bellmann-Ford-More
Tripelalgorithmus
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Komplexität
O(m)
O(n2 )
(O(n log n + m))
O(nm)
O(n3 )
Folie 49
Graphentheorie
Kritische Wege in Netzplänen
Def: Ein Netzplan ist ein azyklischer Digraph mit genau einer Quelle v0, einer Senke vn und Knotenbewertungen (Ereignisnetzplan: Tätigkeiten entsprechen den Knoten) oder Kantenbewertungen
(Tätigkeitennetzplan: Tätigkeiten entsprechen den Kanten).
Def: Ein kritischer (oder längster) Weg in einem Netzplan ist ein gerichteter Weg mit maximaler
Summe der zu ihm gehörenden Knoten- bzw. Kantenbewertungen z .
Jetzt: Ereignisnetzplan mit gegebenen Bewertungen ti ≥ 0 für alle vi ∈ V , wobei die
Knoten topologisch sortiert sind: v0, v1 , . . . , vn, durch die Mengen der unmittelbaren Nachfolger
P RED(v) und Vorgänger SU CC(v) für alle v ∈ V . Falls Quelle und Senke zusätzlich
eingeführt werden müssen, wird t0 = 0 und tn = 0 gesetzt.
Def: Zur Beschreibung von Netzplänen werden für alle vi ∈ V definiert:
E
frühestmögliche Anfangszeit tA
f (vi ) und frühestmögliche Endzeit tf (vi );
E
spätestmögliche Anfangszeit tA
s (vi ) und spätestmögliche Endzeit ts (vi ).
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 50
Graphentheorie
Vorwärtsrechnung
Algorithmus: Vorwärtsrechnung zur Bestimmung des kritischen Weges
Eingabe: Für alle vi ∈ V : P RED(vi ) und Bewertung ti .
E
Ausgabe: Für alle vi ∈ V : frühestmögliche Anfangs- und Endzeit tA
f (vi ), tf (vi );
Gewicht des kritischen Weges z .
E
BEGIN tA
f (vo ) = tf (vo ) = 0;
FOR i := 1 TO n DO
BEGIN
E
E
A
tA
f (vi ) := max{ tf (vj ) | vj ∈ P RED(vi ) }; tf (vi ) := tf (vi ) + ti ;
END;
z := tE
f (vn );
Der kritische Weg hat die Länge: z = tE
f (vn );
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 51
Graphentheorie
Rückwärtsrechnung
Algorithmus: Rückwärtsrechnung zur Bestimmung des kritischen Weges
Eingabe: Für alle vi ∈ V : SU CC(vi ), tA
f (vi ) und Bewertung ti , Gewicht des kritischen Weges z ;
E
Ausgabe: Für alle vi ∈ V : spätestmögliche Anfangs- und Endzeit tA
s (vi ) und ts (vi );
Menge M der Knoten, über die mindestens ein kritischer Weg führt.
A
BEGIN tE
s (vn ) = z; ts (vn ) = z − tn ; M := {vo , vn };
FOR i := n − 1 DOWNTO 1 DO
BEGIN
A
A
E
tE
s (vi ) := min{ ts (vj ) | vj ∈ SU CC(vi ) }; ts (vi ) := ts (vi ) − ti ;
A
IF tA
s (vi ) = tf (vi ) THEN M := M ∪ {vi };
END;
E
tA
(v
o ) := ts (vo ) = 0;
s
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 52
Graphentheorie
Pufferzeiten
Def: Jedem Knoten vi werden folgende Pufferzeiten zugeordnet:
A
totale Pufferzeit: P total (vi ) = tA
s (vi ) − tf (vi )
E
freie Pufferzeit: P f rei (vi ) = min{tA
f (vj ) − tf (vi ) | vj ∈ SU CC(vi )}
Satz 18. Ein gerichteter Weg von der Quelle v0 zu der Senke vn ist genau dann kritisch, wenn
alle in dem Weg enthaltenen Knoten die totale Pufferzeit 0 haben.
Merke: Eine Veränderung von ti um die totale Pufferzeit P total (vi ) hat keinen Einfluß auf den
kritischen Weg.
Merke: Der kritische Weg muß nicht eindeutig sein. Alle kritischen Wege lassen sich durch gezielte
Suche in der Menge M bestimmen.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 53
Graphentheorie
10. Matchings auf bipartiten Graphen
Gegeben: bipartiter Graph G = (I ∪ J, E);
Gesucht: maximales Matching M ⊆ E .
Satz 19. Heiratssatz von Philip Hall
Auf einem bipartiten Graphen G = (I ∪ J, E) existiert genau dann ein Matching M mit
|M | = |I|, wenn für alle I ∗ ⊆ I gilt:
˛
˛
˛S
˛
˛
˛
N (i)˛ ≥ |I ∗| (Hall-Bedingung).
˛
˛i∈I ∗
˛
Def: Die Matchingzahl β(G) und die Knotenüberdeckungszahl α(G) eines Graphen G = (V, E)
sind definiert durch:
β(G) = max{|M | | M ⊆ E ist Matching auf G} und
α(G) = min{|V ∗| | V ∗ ⊆ V mit e ∩ V ∗ 6= ∅ ∀e ∈ E}.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 54
Graphentheorie
Satz von König
Satz 20. Für jeden Graphen gilt: β(G) ≤ α(G).
Satz 21. Satz von König
Für bipartite Graphen gilt: β(G) = α(G).
Satz 22. Es sei G = (V, E) = (I ∪ J, E) ein bipartiter Graph und M ein Matching auf G.
Weiter seien I ∗ ⊆ I, J ∗ ⊆ J Mengen von Knoten, die nicht mit einer Matchingkante inzidieren.
Ferner sei F ⊆ G ein maximaler Wald (maximal als Teilgraph) mit den folgenden Eigenschaften:
1. Jeder Knoten j ∈ J , der in F liegt, hat in F die Valenz 2 und eine der beiden inzidierenden
Kanten gehört zu M .
2. Jede Komponente aus F enthält einen Knoten aus I ∗.
Dann gilt:
M ist maximales Matching ⇔ kein Knoten aus J ∗ ist adjazent zu einem Knoten aus F .
Bezeichnung: Im folgenden Algorithmus MAXMATCH bezeichne α(v) die Knotennummer von
einem Knoten aus F , von dem v aus markiert wird.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 55
Graphentheorie
Algorithmus MAXMATCH
Algorithmus MAXMATCH
Eingabe: bipartiter Graph G = (I ∪ J, E), Startmatching M ,
I ∗ ⊆ I : Menge der ungematchten Knoten in I , J ∗ ⊆ J : Menge der ungematchten Knoten in J ;
Ausgabe: maximales Matching.
BEGIN MARKE: Jeder Knoten i ∈ I ∗ bekommt Markierung α(i) = 0;
REPEAT markiere j mit α(j) = i, wenn {i, j} ∈ E und i markiert ist;
markiere i mit α(i) = j , wenn {i, j} ∈ M und j markiert ist;
UNTIL ein Knoten j ∈ J ∗ wird gefunden OR kein Knoten kann mehr markiert werden;
IF kein Knoten kann mehr markiert werden THEN maximales Matching liegt vor und STOP.
ELSE
BEGIN bilde zunehmenden Weg von j ∈ J ∗: j − α(j) − α(α(j)) − ... − 0;
tausche im Weg Matching- und Nichtmatchingkanten;
aktualisiere I ∗ und J ∗ und gehe zu MARKE
END;
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 56
Graphentheorie
Bestimmung eines maximal gewichteten perfekten Matchings
Gegeben: vollständiger bipartiter Graph G = (I ∪ J, E) mit |I| = |J| und Kantenbewertungen
C = [cij ]n×n, wobei cij ∈ N0 Bewertung der Kante {i, j} ∈ E ist;
Gesucht: maximal gewichtetes perfektes Matching M ∗: w(M ∗ ) = max{
M
P
cij }
{i,j}∈M
Def: Eine zulässige Knotenmarkierung des Kn,n = (I ∪ J, E) mit Kantenbewertungen cij ∀i ∈
I ∧ j ∈ J ist eine Funktion f : (I ∪ J) → N0 mit f (i) + f (j) ≥ cij ∀i ∈ I ∧ j ∈ J .
Merke: einfachste zulässige Knotenmarkierung: f (i) = max{cij } ∀i ∈ I , f (j) = 0 ∀j ∈ J .
j
Def: Gf = (I ∪ J, E ∗) ist der Teilgraph des Kn,n mit: {ij} ∈ E ∗ ↔ f (i) + f (j) = cij .
Satz 23. Sei f eine zulässige Knotenmarkierung des Kn,n mit gegebener Matrix C . Wenn Gf
ein perfektes Matching M ∗ enthält, dann ist M ∗ maximal gewichtetes Matching auf Kn,n.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 57
Graphentheorie
Algorithmus MAXGEWMATCH
Algorithmus MAXGEWMATCH
Eingabe: vollständiger bipartiter Graph G = (I ∪ J, E) mit |I| = |J| = n und C = [cij ]n,n;
Ausgabe: maximal gewichtetes perfektes Matching auf G.
BEGIN bestimme eine zulässige Knotenmarkierung f , den Graphen Gf
und ein maximales Matching M auf Gf ;
While M ist nicht perfekt DO
S
BEGIN bestimme I ′ ⊆ I mit |I ′| > | i∈I ′ N (i)| (Verletzung der Hall-Bedingung);
S
setze: S := I ′ und T := i∈I ′ N (i);
bestimme df = min {f (i) + f (j) − cij } > 0 und ändere f (v):
i∈S,j6∈T
8
für v ∈ S;
< f (v) − df ,
f (v) + df ,
für v ∈ T ;
f (v) =
:
f (v),
sonst;
aktualisiere Gf und bestimme ein maximales Matching M auf Gf
END;
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 58
Graphentheorie
Matchings auf allgemeinen Graphen
Satz 24. Satz von Tutte:
Ein Graph G = (V, E) hat genau dann ein perfektes Matching, wenn
q(G − S) ≤ |S| ∀S ⊆ V
gilt, wobei q(G − S) die Anzahl der Komponenten mit ungerader Knotenanzahl (ungerade
Komponenten) im Graphen G − S bezeichnet.
Satz 25. Jeder 2-fach kantenzusammhängender kubischer Graph hat ein perfektes Matching.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 59
Graphentheorie
Gallai-Edmonds Struktursatz
Satz 26. Gallai-Edmonds Struktursatz:
Es sei G = (V, E) ein schlichter Graph. DG sei die Menge aller Knoten aus V , zu denen es
mindestens ein maximales Matching (M M ) gibt, das diesen Knoten nicht überdeckt.
S
Setze: AG = (
N (v)) \ DG und CG = V \ {AG ∪ DG }.
Dann gilt:
v∈DG
a) ∀v ∈ AG : DG−v = DG und CG−v = CG .
(Bei Entfernung des Knotens v ∈ AG ändert sich nichts an den Mengen CG−v , DG−v .)
b) Der Graph G(CG ) besitzt ein perfektes Matching.
c) Jede Komponente Di von G(DG ) ist ”faktorkritisch”, d.h. wenn man einen beliebigen Knoten
v solcher Komponente Di wegläßt, so besitzt Di − v ein perfektes Matching.
d) Jedes M M von G enthält ein perfektes Matching von G(CG ) und ein M M jeder Komponente von G(DG ).
e) β(G) = 1/2 ∗ (|V | + |AG | − q(G − AG)).
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 60
Graphentheorie
Berge-Formel
Satz 27. Berge-Formel:
Für einen schlichten Graphen G = (V, E) bezeichne q(G) die Anzahl der Komponenten von G
mit ungerader Knotenzahl. Dann gilt:
|V | − 2 ∗ β(G) = max(q(G − S) − |S|).
S⊆V
Komprimierung von G = (V, E)
Satz 28. Gegeben seien G = (V, E) und ein Matching M0 in G. C sei ein Kreis der Länge
2k + 1, der k Kanten von M0 enthält, aber mit keiner weiteren Kante von M0 inzidiert.
Weiter sei G′ der Graph, der entsteht, indem C zu einem Knoten komprimiert wird, d.h.
V (G′ ) = V (G) \ V (C) ∪ {v0 }, v0 6∈ V (C) und
E(G′ ) = E(G(V (G) \ V (C)) ∪ {{u, v0 }|u ∈ V (G) \ V (C) ∧ ∃{u, w} : w ∈ V (C)}).
Dann gilt: M0 ist ein maximales Matching auf G ⇐⇒ M0′ := M0 \ E(C) ist ein M M in G′ .
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 61
Graphentheorie
Optimalitätskriterium
Satz 29. Es sei G = (V, E) gegeben. M0 sei ein Matching auf G und F ein maximaler Wald
(maximal als Teilgraph) mit den folgenden Eigenschaften:
1. Jede Komponente von F enthält genau einen Knoten, der nicht von M0 überdeckt ist. Dieser
heißt Wurzel der Komponente.
2. Knoten von F mit ungeradem Abstand von ihrer Wurzel heißen innere Knoten, die anderen
heißen äußere Knoten. Jeder innere Knoten hat Valenz 2 in F und eine der beiden inzidierenden
Kanten gehört zu M0 .
Dann gilt:
a) Es gibt keine Kante, die einen äußeren Knoten von F mit V (G) \ V (F ) verbindet.
b) Falls zwei äußere Knoten in verschiedenen Komponenten von F adjazent sind, so ist M0 kein
maximales Matching.
c) Falls zwei äußere Knoten aus der gleichen Komponente von F adjazent sind, so läßt sich ein
Kreis C in G finden, der nach Satz 28 komprimiert werden kann.
d) Falls keine zwei äußeren Knoten von F in G adjazent sind, so ist M0 ein M M .
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 62
Graphentheorie
Algorithmus nach Edmonds
Algorithmus nach Edmonds
Eingabe: G = (V, E) und Ausgangsmatching M0 auf G = (V, E);
Ausgabe: maximales Matching M M .
BEGIN Setze M M := M0 ; Konstruiere den zu M M gehörenden Wald F ;
WHILE Es gibt nicht nur Kanten, die äußere Knoten mit inneren Knoten verbinden DO
BEGIN IF Eine Kante verbindet zwei äußere Knoten in verschiedenen Komponenten von F
THEN Vergrößere M M ;
IF Eine Kante verbindet zwei äußere Knoten in der gleichen F -Komponente
THEN Bestimme M0′ und C wie in Satz 28, kontrahiere G zu G′
und starte Algorithmus neu mit G′ und M M := M0′ ;
END;
IF Kontraktion des Graphen war notwendig THEN Erweitere M M auf G′ zu M M auf G;
Gib M M aus;
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 63
Graphentheorie
11. Flüsse in Netzwerken
Def: Ein Netzwerk N = (V, E, C) ist ein Digraph G = (V, E) mit einer Quelle q und einer
Senke s, wobei jeder Kante e eine Kapazität c(e) ∈ R+
0 zugeordnet ist. Dabei soll s von q aus
erreichbar sein.
Merke. Ein Netzwerk N = (V, E, C) kann Zyklen enthalten.
Def: Ein Fluß auf einem Netzwerk N ist eine Abbildung f : E → R+
0 mit den folgenden
Eigenschaften:
a) Durch jeden Bogen fließt ein nichtnegativer Fluß, d.h. 0 ≤ f (e) ≤ c(e) ∀e ∈ E .
P
P
b) Erhaltungssatz für Flüsse: ∀v ∈ V \ {q, s} gilt:
f (e) =
f (e).
e=(a,v)
e=(v,b)
Merke: Der Gesamtfluß aus q ist gleich dem Gesamtfluß, der in s mündet:
X
X
Wert des Flusses: w(f ) =
f (e) =
f (e).
e=(q,a)
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
e=(b,s)
Folie 64
Graphentheorie
Max-Flow-Problem
Def: Ein Max-Flow-Problem besteht in der Bestimmung eines maximalen Flusses, d.h. einem Fluß
mit maximalem Wert, auf einem gegebenen Netzwerk N = (V, E, C).
Min-Cut-Problem
Def: Es sei V = S ∪ S , S ∩ S = ∅ eine Partition der Knotenmenge V mit q ∈ S , s ∈ S . Ein
Schnitt (S, S) ist die Menge aller Kanten (u, v) ∈ E mit u ∈ S , v ∈ S .
Kapazität eines Schnittes: c(S, S) =
P
c(e).
e=(u,v)
u∈S,v∈S
Ein Schnitt mit kleinster Kapazität heißt Minimalschnitt.
Def: Ein Min-Cut-Problem besteht in der Bestimmung eine Minimalschnittes auf einem gegebenen
Netzwerk N = (V, E, C).
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 65
Graphentheorie
Augmentierende Wege
Satz 30. Gegeben sei ein Netzwerk N . Dann gilt für jeden Fluß f und jeden Schnitt (S, S):
w(f ) ≤ c(S, S).
Def: Ein augmentierender Weg von der Quelle q zu einem Knoten v ∈ V \ q auf einem Netzwerk
N mit einem Fluß f ist ein Semiweg von q nach v , auf dem sich der Fluß f vergrößern läßt.
Ein Semiweg auf N von der Quelle q zum Knoten v enthält Vorwärtskanten und Rückwärtskanten.
Berechne:

ff
c(e) − f (e), wenn e Vorwärtskante ist;
d = min
.
f (e),
wenn e Rückwärtskante ist.
Größerer Fluß ist konstruierbar durch:
8
< f (e) + d, wenn e Vorwärtskante ist;
f (e) :=
f (e) − d, wenn e Rückwärtskante ist;
:
f (e),
sonst.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 66
Graphentheorie
Max-Flow - Min-Cut - Theorem
Def: Die Mengen X, Y ⊆ V werden definiert durch:
X = {q ∪ {v ∈ V | ∃ augmentierender Weg von q nach v} } und Y = V \ X .
Satz 31. Max-Flow - Min-Cut - Theorem:
Es sei N = (V, E, C) mit Quelle q und Senke s gegeben. Dann sind für einen Fluß f auf N
folgende Beziehungen äquivalent:
a) f ist ein maximaler Fluß.
b) Es existiert kein augmentierender Weg von q nach s.
c) (X, Y ) ist ein Schnitt.
Wenn f maximal ist, so gilt w(f ) = c(X, Y ).
Merke: Keine Aussage über die Existenz eines maximalen Flußes!
Folgerung: Es sei N = (V, E, C) ein Netzwerk mit ganzzahligen Kapazitäten. Dann existiert
ein maximaler Fluß f : E → N0 und ein minimaler Schnitt (X, Y ) mit w(f ) = c(X, Y ).
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 67
Graphentheorie
Matchings und Flüsse
Gegeben: Bipartiter Graph G = (I ∪ J, EB ).
Gesucht: Maximales Matching auf G.
Konstruiere das Netzwerk N = (V, E, C), wobei c(e) = 1 ∀e ∈ E und
V = I ∪ J ∪ {q, s}, E = {
S
{(q, i)}} ∪ {
i∈I
S
i∈I,j∈J
{(i, j)}} ∪ {
S
{(j, s)}}.
j∈J
Dann gilt:
a) Ein maximales Matching auf G entspricht einem maximalen Fluß auf N mit:
{i, j} ist Matchingkante auf G ↔ f (e = (i, j)) = 1 auf N .
b) Eine minimale Knotenüberdeckung auf G entspricht einem minimalem Schnitt (X, Y ) auf N .
Im folgendem Algorithmus werden die Knoten mit (µ, d(v)) markiert, wenn von q nach v ein
augmentierender Weg existiert. Dabei ist µ der direkte Nachbar von v , von dem aus v markiert
wurde und d(v) die Flußvergrößerung auf dem Semiweg von q nach v . Die Quelle q erhält die
Markierung (−, ∞).
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 68
Graphentheorie
Algorithmus von Ford/Fulkerson
Algorithmus von Ford/Fulkerson
Eingabe: Netzwerk N = (V, E, C); Ausgangsfluß f .
Ausgabe: Maximaler Fluß f auf N .
S1 : Markiere die Quelle q mit (−, ∞).
S2 : Suche einen Knoten v , der entweder Eigenschaft a) oder b) hat:
a) e = (i, v) und i ist bereits markiert und c(e) − f (e) > 0.
b) e = (v, j) und j ist bereits markiert und f (e) > 0.
Wenn kein solcher Knoten existiert =⇒ S3, sonst markiere v mit:
im Fall a) (i, d(v)), d(v) = min{d(i), c(e) − f (e)} oder
im Fall b) (j, d(v)), d(v) = min{d(j), f (e)}; gehe zu S2;
S3 : Falls die Senke s nicht markiert wurde: maximaler Fluß liegt vor =⇒STOP. sonst:
S4 : Bestimme8
einen augmentierenden Weg rückwärts von s 9
nach q , berechne neuen Fluß:
f
(e)
+
d(s)
,
falls
e
Vorwärtskante
<
=
f (e) =
und gehe zu S1;
f (e) − d(s) , falls e Rückwärtskante
:
;
f (e)
,
sonst
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 69
Graphentheorie
Edmonds/Karp Algorithmus
Merke: Der Algorithmus von Ford/Fulkerson ist pseudopolynomial, d.h. die Zeitkomplexität hängt
von den Werten der Eingabeparameter ab.
Verbesserung nach Edmonds/Karp:
Im Algorithmus von Ford/Fulkerson wird nur S2 abgeändert:
Falls mehrere Knoten mit der Eigenschaft a) oder b) existieren, wähle denjenigen, der selbst am
frühesten markiert wurde.
Idee zur Verbesserung
Es gehen zu viele Informationen wieder verloren:
Wie ist es möglich, in einem Schritt mehrere augmentierende Wege zu berücksichtigen?
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 70
Graphentheorie
Konstruktion eines Hilfsnetzwerkes NH (f ) = (V ∗, E ∗, C ∗)
Eigenschaft: Alle augmentierenden Wege auf NH haben nur Vorwärtskanten.
∗
N = (V, E, C), f −→ NH
(f ) = (V ∗, E ∗, C ∗).
S1: Setze V ∗ = V ;
S2: Konstruiere zu jedem Bogen e = (i, j) ∈ E Bögen e∗ ∈ E ∗ nach folgender Vorschrift:
a) Wenn 0 < f (e) < c(e), dann setze e∗1 = (i, j) ∈ E ∗ mit c∗(e∗1 ) = c(e) − f (e) und
e∗2 = (j, i) ∈ E ∗ mit c∗(e∗2 ) = f (e).
b) Wenn f (e) = 0, dann setze e∗ = (i, j) ∈ E ∗ mit c∗(e∗ ) = c(e).
c) Wenn f (e) = c(e), dann setze e∗ = (j, i) ∈ E ∗ mit c∗(e∗ ) = f (e).
′
Weiter: Reduziere NH (f ) auf das geschichtete Netzwerk NH
(f ), das alle Bögen auf kürzesten
augmentierenden Wegen und die mit ihnen inzidierenden Knoten enthält. Die Menge aller Knoten
′
mit Abstand k von der Quelle q wird als Schicht k in NH
(f ) bezeichnet.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 71
Graphentheorie
Konstruktion des geschichteten Netzwerkes
′
Algorithmus zur Bestimmung von NH
(f )
Eingabe: Hilfsnetzwerk NH (f ) = (V ∗, E ∗, C ∗);
′
Ausgabe: Geschichtetes Netzwerk NH
(f ) = (V ′ , E ′, C ′ ).
BEGIN S0 := {q}; k = 0; E ′ = ∅;
REPEAT k := k + 1;
Setze Sk als Menge der unmittelbaren Nachfolger aller Knoten aus Sk−1 in NH (f ) an;
′
Nimm die Knoten aus Sk und alle Bögen zwischen Sk−1 und Sk in NH
(f ) auf;
′
UNTIL (s ∈ V oder Sk = ∅)
IF s ∈ V ′ THEN
BEGIN Markiere s;
REPEAT Markiere alle Vorgänger der bereits markierten Knoten UNTIL q ist markiert;
′
Lösche alle nichtmarkierten Knoten und die inzidierenden Kanten aus NH
(f ) ;
END;
END.
Merke: Wenn s ∈
/ V ′, dann ist der Fluß f maximal.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 72
Graphentheorie
′
Bestimmung eines blockierenden Flußes f ′ auf NH
(f )
′
Def: Ein Fluß f ′ auf NH
(f ) heißt blockierender Fluß, wenn es nach Entfernung aller Kanten e
′
′
mit c (e) = f (e) (gesättigte Kanten) keinen Weg mehr von q → s gibt.
′
′
Merke: Ein blockierender Fluß auf NH
(f ) ist nicht notwendig maximal auf NH
(f ).
Algorithmus: Suche nach blockierendem Fluß
′
Eingabe: NH
(fi ) = (V ′ , E ′, C ′ );
′
Ausgabe: blockierender Fluß f ′ auf NH
(f ).
′
BEGIN Setze f (e) := 0 für alle e ∈ E ′;
REPEAT Bestimme einen Weg W von q nach s; d := min{c′ (e)|e ∈ W }:
FORALL e ∈ W DO BEGIN c′(e) := c′(e) − d; f ′ (e) := f ′ (e) + d;
IF c′(e) = 0 THEN Entferne e aus E ′; END;
FOR k := 1 TO Anzahl der Schichten DO
Entferne alle Knoten aus Sk mit Eingangsvalenz 0 und alle davon ausgehenden Kanten.
UNTIL Knoten s wird entfernt;
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 73
Graphentheorie
Dinic Algorithmus zur Lösung des Max-Flow-Problems
Dinic-Algorithmus für das Flußproblem
Eingabe: Netzwerk N = (V, E, C);
Ausgabe: maximaler Fluß auf N .
′
BEGIN Bestimme Ausgangsfluß f0,w(f0 ) und NH
(f0 ); k := 0;
′
WHILE s gehört zu NH (fk ) DO
BEGIN
′
Bestimme einen blockierenden Fluß f ′ auf NH
(fk ) mit w′ (f ′ );
′
fk+1 wird durch Summierung von fk und f erhalten;
w(fk+1 ) := w(fk ) + w′ (f ′ ); k := k + 1;
′
Bestimme das zu fk gehörende geschichtete Netzwerk NH
(fk );
END; Aktueller Fluß ist maximal;
END.
′
′
Merke: NH
(fi ) hat mehr Schichten als NH
(fi−1).
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 74
Graphentheorie
Ideen von Malhotra/Kumar/Maheswari
Ziel: Algorithmus für das Flußproblem mit Zeitaufwand O(n3 ).
′
Ausgang: Geschichtetes Netzwerk NH
(f ) zu einem Ausgangsfluß f
′
Def: Das Potential p(v) eines Knotens v in NH
(f ) ist definiert durch
in
out
in
p(v) := min{p (v), p (v)}, wobei p (v) die Summe der Kapazitäten aller in v eingehenden
Bögen und pout(v) die Summe der Kapazitäten aller aus v ausgehenden Bögen ergibt.
Bestimmung des blockierenden Flusses durch Wiederholung der Schritte:
- Bestimme einen Knoten v ∗ mit kleinstem Potential p(v ∗ );
- Bestimme durch Vorwärts- und Rückwärtsrechnung von v ∗ aus einen Fluß auf einem Weg von
der Quelle q über v ∗ zur Senke s mit dem Wert p(v ∗ );
- Aktualisiere dabei die Kapazitäten und die Potentiale (Streichung von Kanten mit 0-Kapazität
und Knoten mit 0-Potential, überflüssige Knoten werden gestrichen);
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 75
Graphentheorie
Übersicht zu den Flußalgorithmen
Algorithmus
Aufwand
Idee
Ford/Fulkerson
pseudopolynomial
augmentierende Wege
Edmonds/Karp
O(|V ||E|2)
kürzeste augmentierende Wege
Dinic
O(|V |2|E|)
kürzeste augmentierende Wege,
geschichtetes Hilfsnetzwerk,
blockierende Flüsse
Malhotra/Kumar/Maheswari
O(|V |3)
wie Dinic, dabei aber blockierenden
Fluß durch Potentiale effizienter
ermitteln
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 76
Graphentheorie
12. Die Mengerschen Sätze
Satz 32. Es sei N = (V, E, C) ein Netzwerk mit einer Quelle q und einer Senke s, mit
cij = 1 ∀(i, j) ∈ E . Dann gilt:
a) Der Wert des maximalen Flußes w(f ∗ ) in N ist gleich der maximalen Anzahl r von
kantendisjunkten q − s Wegen.
∗
b) Die Kapazität eines minimalen Schnittes c(S ∗, S ) in N ist gleich der minimalen Anzahl t
von Kanten, deren Entfernung alle q − s Wege in N zerstört.
Satz 33. 1. Mengerscher Satz:
Es seien u und v zwei nichtadjazente Knoten in einem Digraphen G = (V, E). Dann ist die
maximale Anzahl von kantendisjunkten u − v Wegen in G gleich der minimalen Anzahl von
Kanten, deren Entfernung alle u − v Wege in G zerstört.
Satz 34. 2. Mengerscher Satz:
Es seien u, v zwei nichtadjazente Knoten eines (ungerichteten) Graphen G = (V, E). Dann ist
die maximale Anzahl kantendisjunkter u − v Wege in G gleich der minimalen Anzahl von Kanten,
deren Entfernung auf G alle u − v Wege in G zerstört.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 77
Graphentheorie
Knotenversionen der Mengerschen Sätze
Satz 35. 3. Mengerscher Satz:
Es seinen u, v zwei nichtadjazente Knoten in einem Digraphen G = (V, E). Dann ist die
maximale Anzahl von knotendisjunkten u − v Wegen in G gleich der minimalen Anzahl von
Knoten, deren Entfernung alle u − v Wege in G zerstört.
Satz 36. 4. Mengerscher Satz:
Es seien u, v zwei nichtadjazente Knoten in einem (ungerichteten) Graphen. Dann ist die maximale
Anzahl von knotendisjunkten u − v Wegen in G gleich der minimalen Anzahl von Knoten, deren
Entfernung alle u − v Wege in G zerstört.
Def: Die Mächtigkeit der kleinsten Knotenmenge (Kantenmenge), die alle u − v Wege in G
zerstört, heißt lokale Knotenzusammenhangszahl (Kantenzusammenhangszahl) von G.
Knotenzusammenhangszahl von G: kleinste lokale Knotenzusammenhangszahl von G.
Kantenzusammenhangszahl von G: kleinste lokale Kantenzusammenhangszahl von G.
Def: Ein Graph G heißt r -fach knoten- bzw. kantenzusammenhängend, wenn er für beliebige
nichtadjazente Knoten u, v mindestens r Wege von u nach v enthält.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 78
Graphentheorie
13. Färbungen auf Graphen
Ausgang: Schlichter Graph G = (V, E), Farbmenge F = {1, 2, . . . , r}.
Def: Eine Knotenfärbung ist eine Funktion f : V → F so, daß für alle v ∈ V mit {u, v} ∈ E
gilt: f (u) 6= f (v).
Eine Kantenfärbung ist eine Funktion f : E → F so, daß für alle e1 , e2 ∈ E mit e1 adjazent
zu e2 gilt: f (e1 ) 6= f (e2 ).
Die chromatische Zahl χ(G) von G ist die kleinste Anzahl von Farben einer Knotenfärbung.
Der chromatische Index χ′(G) von G ist die kleinste Anzahl von Farben einer Kantenfärbung.
Merke: Eine Kantenfärbung von G geht in eine Knotenfärbung im Kantengraphen L(G) über:
χ′(G) = χ(L(G)), d.h. G ist genau dann k-kantenfärbbar, wenn L(G) k-knotenfärbbar ist.
Satz 37. Die Bestimmung von χ(G) und χ′(G) liegt in NP-hard.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 79
Graphentheorie
Das chromatische Polynom
Gegeben: Schlichter Graph G = (V, E);
Gesucht: Anzahl von Knotenfärbungen von G mit k Farben: PG(k).
Lemma 1.
Für G = Kn mit |V | = n gilt: PG(k) = k(k − 1) . . . (k − n + 1).
Lemma 2.
Für G = (V, E) mit |E| = 0, |V | = n gilt: PG(k) = kn .
Satz 38.
Gegeben sei ein schlichter Graph G = (V, E) und k ∈ N. Die Anzahl der
Knotenfärbungen von G mit k Farben ist ein Polynom in k: PG (k).
Eigenschaft: Die Bestimmung des chromatischen Polynoms liegt in NP-hard.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 80
Graphentheorie
Exakte Algorithmen zur Bestimmung von χ(G) (1)
Knotensequenzielle Enumeration
Eingabe: Schlichter Graph G = (V, E) und Knotensequenz v1 , . . . , vn;
Ausgabe: Alle zulässigen Färbungen der Knoten;
BEGIN
WHILE Nicht alle Knoten sind gefärbt DO
BEGIN
Nimm den nächsten Knoten der Sequenz und weise ihm
nacheinander alle schon benutzten Farben und eine neue Farbe zu;
Streiche alle unzulässigen Färbungen;
END;
END.
Merke: Tiefe des Baumes: Anzahl der Knoten;
Maximale Anzahl der Nachfolger in Stufe k: k + 1.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 81
Graphentheorie
Exakte Algorithmen zur Bestimmung von χ(G) (2)
Farbsequenzielle Enumeration
Eingabe: Schlichter Graph G = (V, E) und Farbsequenz 1,2,..,k;
Ausgabe: Alle zulässigen Färbungen der Knoten.
BEGIN j := 1; Es sei Wj die Menge der ungefärbten Knoten in Stufe j ;
WHILE Wj 6= ∅ DO
BEGIN
Bestimme alle maximal unabhängigen Knotenmengen in dem von Wj induzierten
Teilgraphen mit den Knoten v1j , v2j , .., vrj ;
j
Färbe alle Knoten einer solchen Menge mit der Farbe j ;
Bestimme für jede dieser Möglichkeiten Wj+1 ; j := j + 1;
END;
END.
Merke: Die Tiefe des Baumes ist χ(G).
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 82
Graphentheorie
Eigenschaften der Knotenfärbung
Satz 39.
Es gilt: χ(Kn) = n, χ(Km,n) = 2,
χ(C2n ) = 2 für n ≥ 1,
χ(C2n+1 ) = 3 für n ≥ 1.
Satz 40. Ein Graph ist genau dann 2-färbbar, wenn er keine Kreise ungerader Länge enthält.
Merke: Ist der Graph G nicht zusammenhängend, so gilt χ(G) = max {χ(Gi )}, wobei
1≤i≤l
G1 , .., Gl die Komponenten von G sind.
Analoge Überlegung:
• G sei zusammenhängend, und es existiert eine trennende Knotenmenge S , die einen
vollständigen Untergraphen Kr aufspannt. Nach Entfernung der Knotenmenge S aus V
entstehen l Komponenten mit den Knotenmengen V1, . . . Vl . Gi sei der von Vi ∪ {S}
induzierte Untergraph von G, i = 1, . . . , l. Dann gilt: χ(G) = max {χ(Gi )}.
1≤i≤l
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 83
Graphentheorie
Naiver Knotenfärbealgorithmus
Naive Knotenfärbung
Eingabe: Schlichter Graph G = (V, E) und Knotensequenz v1 , v2 , . . . , vn;
Ausgabe: Für alle Knoten v ∈ V : Farbe f (v).
BEGIN
FOR j := 1 TO n DO
Färbe vj mit der kleinsten zur Verfügung stehenden Farbe:
f (vj ) = min{i ∈ N | f (vk ) 6= i für alle vk mit vk ∈ N (vj ) ∧ k < j};
END.
Def: δ(G) ist die Minimal- und ∆(G) ist die Maximalvalenz der Knoten von G.
Folgerung: Es gilt: χ(H) ≤ χ(G) ≤ ∆(G) + 1, wobei H ein beliebiger induzierter Teilgraph
von G ist.
Satz 41. Sei G ein schlichter Graph und H ein beliebiger induzierter Teilgraph von G. Dann
gilt χ(G) ≤ max{ δ(H) } + 1.
H
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 84
Graphentheorie
Schranken für die chromatische Zahl eines Graphen
Satz 42. Brooks:
Es sei G ein zusammenhängender Graph mit |V | = n ≥ 2 Knoten und Maximalgrad △(G).
Dann gilt:
1. χ(G) = △(G) + 1 für G = Kn und G = C2n−1 ,
2. χ(G) ≤ △(G) sonst.
Einfachste Schranken für χ(G):
a) χ(G) ≥ ω(G), wobei ω(G) die Anzahl der Knoten einer größten Clique in G ist.
b) χ(G) ≥
ist.
|V |
α(G) ,
wobei α(G) die Anzahl der Knoten einer größten unabhängigen Knotenmenge
Merke: Beide Schranken können beliebig schlecht werden!
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 85
Graphentheorie
Sequenzielle Heuristiken zur Knotenfärbung
Greedy-Methode: Bestimme eine Knotensequenz v1 , .., vn und
wende naive Knotenfärbung an! Zeitaufwand: O(|V |2)
Lemma 3. Sei W eine Sortierung der Knoten und χ(G, W ) sei die mit der Greedy-Methode
erhaltene Anzahl von Farben. Dann gilt: χ(G) ≤ χ(G, W ) ≤ △(G) + 1.
Merke: Es gibt eine Sortierung W ∗ mit χ(G, W ∗) = χ(G).
Einige statische und dynamische Sortierungen:
RO:
LFD:
SLD:
SD:
GSD:
zufällig,
zuerst der Knoten mit der größten Valenz,
Knoten mit kleinster Anzahl schon gefärbter Nachbarn,
Knoten mit größter Anzahl verschieden gefärbter Nachbarn,
Knoten mit größter Farbanzahl bereits gefärbter Nachbarn.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 86
Graphentheorie
Algorithmus AMIS (approximately maximum independent set)
Algorithmus AMIS
Eingabe: Schlichter Graph G = (V, E) und Farbsequenz 1,2,..,k;
Ausgabe: Für alle Knoten v ∈ V : Farbe f (v).
BEGIN i := 0; Es sei W die Menge der ungefärbten Knoten; W := V ;
WHILE W 6= ∅ DO
BEGIN i := i + 1; U := W ;
WHILE U 6= ∅ DO
BEGIN Wähle einen Knoten u ∈ U ; f (u) := i;
W := W \ {u}; U := U \ {u} \ N (v);
END;
END;
END.
Merke: Der Zeitaufwand beträgt O(n2 ).
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 87
Graphentheorie
Gewichtete Knotenfärbung (1)
Gegeben: Schlichter Graph G = (V, E), Farbmenge F = {1, . . . , k}, für alle v ∈ V : Gewicht
w(v) ∈ N;
Gesucht: Für alle v ∈ V : Farbmenge F ∗(v) ⊆ F mit |F ∗| = w(v) und F ∗(v) ∩ F ∗ (u) = ∅,
wenn {u, v} ∈ E .
Die minimale Anzahl der benötigten Farben wird mit χweight bezeichnet.
Sequenzielle gewichtete Knotenfärbung
Eingabe: Schlichter Graph G = (V, E), Knotensequenz v1 , . . . , vn , für alle v ∈ V : w(v);
Ausgabe: Farbmengen F ∗(v) für alle Knoten v ∈ V .
BEGIN
FOR j := 1 TO n DO
Bestimme F ∗(vj ) mit kleinstmöglichem größten Element so,
daß F ∗(vj ) ∩ F ∗(vk ) = ∅ ∀ k ∈ N (vj ) ∧ k < j ;
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 88
Graphentheorie
Gewichtete Knotenfärbung (2)
Weight Coloring
Eingabe: Schlichter Graph G = (V, E), Farbsequenz 1, 2, . . . , b, für alle v ∈ V : w(v);
Ausgabe: Farbmengen F ∗(v) für alle Knoten v ∈ V .
BEGIN k := 1; l1 := 1;
REPEAT
BEGIN Bestimme eine unabhängige Knotenmenge in dem durch die Knoten
mit positivem Gewicht induzierten Untergraphen von G wie im Algorithmus AMIS,
wähle dabei bevorzugt Knoten mit größtem Gewicht; Berechne r := min w(v);
v∈Sk
Färbe alle Knoten aus Sk mit den Farben lk , lk + 1, . . . , lk + r − 1;
Aktualisiere für alle Knoten v ∈ Sk : w(v) := w(v) − r ;
k := k + 1; lk := lk−1 + r ;
END;
P
UNTIL
w(v) = 0;
v∈V
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 89
Graphentheorie
Intervallknotenfärbung (1)
Gegeben: Schlichter Graph G = (V, E), Farbmenge F = {1, . . . , k}, für alle v ∈ V : Gewicht
w(v) ∈ N;
Gesucht: Für alle v ∈ V : Farbmenge I(v) = {l(v), l(v) + 1, . . . , l(v) + w(v) − 1} ⊆ F
mit I(v) ∩ I(u) = ∅, wenn {u, v} ∈ E .
Die minimale Anzahl der benötigten Farben wird mit χintcol bezeichnet.
Sequenzielle Intervallfärbung der Knoten
Eingabe: Schlichter Graph G = (V, E), Knotensequenz v1 , . . . , vn , für alle v ∈ V : w(v);
Ausgabe: Für alle Knoten v ∈ V : Farbmengen I(v).
BEGIN
FOR j := 1 TO n DO
Bestimme I(vj ) mit kleinstmöglichem größten Element so,
daß I(vj ) ∩ I(vk ) = ∅ ∀ k ∈ N (vj ) ∧ k < j ;
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 90
Graphentheorie
Intervallknotenfärbung (2)
Interval Coloring
Eingabe: Schlichter Graph G = (V, E), Farbsequenz 1, 2, . . . , b, für alle v ∈ V : w(v);
Ausgabe: Farbmengen I(v) für alle Knoten v ∈ V .
BEGIN k := 1; l1 := 1;
REPEAT
BEGIN Bestimme eine unabhängige Knotenmenge Sk in dem durch die Knoten
mit positivem Gewicht induzierten Untergraphen von G wie im Algorithmus AMIS,
wähle dabei bevorzugt Knoten mit größtem Gewicht; Berechne r := max w(v);
v∈Sk
Färbe alle Knoten v ∈ Sk mit den Farben lk , lk + 1, . . . , lk + w(v) − 1;
Aktualisiere für alle Knoten v ∈ Sk : w(v) := 0;
k := k + 1; lk := lk−1 + r ;
END;
P
UNTIL
w(v) = 0;
v∈V
END.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 91
Graphentheorie
Spezielle Knotenfärbungsprobleme
Problem HARMCOL (harmonic coloring):
Gegeben: Ein schlichter Graph G = (V, E) und k ∈ N.
Frage: Existiert eine k-Färbung der Knoten so, daß jedes Paar von Farben der Endknoten jeder
Kante höchstens einmal auftritt?
Problem LINEDISCOL (line-distinguishing coloring):
Gegeben: Ein schlichter Graph G = (V, E) und k∗ ∈ N.
Frage: Existiert eine nicht notwendig zulässige k∗-Färbung der Knoten so, daß jedes Paar von
Farben der Endknoten jeder Kante höchstens einmal auftritt?
Lemma 4. In jeder LINEDISCOL-Färbung eines Graphen G sind zwei Knoten mit derselben
Farbe entweder adjazent oder sie besitzen mindestens den Abstand drei.
Satz 43. LINEDISCOL liegt in NP-complete.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 92
Graphentheorie
Kantenfärbungsprobleme
Eigenschaft: Sind die Kanten eines schlichten Graphen (zulässig) gefärbt, dann gehören alle
gleichgefärbten Kanten zu einem Matching.
Idee einer Heuristik: Bestimme Schritt für Schritt elementefremde Matchings und färbe die
Kanten jedes Matchings mit einer anderen Farbe.
Satz 44. Vising: Für einen schlichten Graphen G gilt: △(G) ≤ χ′ (G) ≤ ∆(G) + 1.
Merke: Die Menge aller schlichten Graphen zerfällt in die Klasse aller Graphen mit χ′(G) =
△(G) und in die Klasse aller Graphen mit χ′(G) = △(G) + 1.
Merke: Sind die Kanten mit einer natürlichen Zahl gewichtet, werden analog zur Knotenfärbung
auch gewichtete Kantenfärbung und Intervallkantenfärbung betrachtet.
Eigenschaft: Das gewichtete Kantenfärbungsproblem auf bipartiten Graphen ist in polynomialer
Zeit lösbar. Das Intervallkantenfärbungsproblem auf bipartiten Graphen liegt in NP-hard.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 93
Graphentheorie
Totale Färbung von Graphen
Def: Eine Färbung der Knoten und Kanten eines schlichten Graphen G , wobei sowohl adjazente
Knoten, als auch adjazente Kanten als auch inzidierende Knoten und Kanten verschieden gefärbt
sind, heißt totale Färbung von G.
Die kleinste Zahl notwendiger Farben wird mit χ′′ (G) bezeichnet.
Merke: Es gilt: ∆(G) + 1 ≤ χ′′(G).
Vermutung: △(G) + 1 ≤ χ′′(G) ≤ △(G) + 2.
Satz 45. Sei G = (V, E) ein schlichter Graph und k ≥ 1, k! ≥ |V |.
Dann gilt: χ′′ (G) ≤ ∆(G) + 2 + k.
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 94
Graphentheorie
Perfekte Graphen
Def: Ein Graph G = (V, E) heißt perfekt, wenn ω(H) = χ(H) für alle induzierten Untergraphen H von G gilt.
Merke: - Bipartite Graphen und ihre Komplementgraphen sind perfekt.
- Alle Kantengraphen bipartiter Graphen und ihre Komplementgraphen sind perfekt.
- Ungerade Kreise mit |V | ≥ 5 und ihre Komplementgraphen sind nicht perfekt.
Perfekte Graphen - Vermutung von Berge: Ein Graph ist genau dann perfekt, wenn sein
Komplementgraph perfekt ist.
Beweis der Richtigkeit von Lovasz (1972)
Starke Perfekte Graphen - Vermutung: Ein Graph ist genau dann perfekt, wenn weder er noch
sein Komplementgraph Kreise ungerader Länge ≥ 5 als induzierte Untergraphen enthalten.
War seit 40 Jahren offen, im Mai 2002: Maria Chudnovsky und Paul Seymour
(Beweis auf 148 Seiten)
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 95
Graphentheorie
Comparability Graphen
Def: Unter der Orientierung eines ungerichteten Graphen G = (V, E) versteht man einen
spannenden Teilgraphen von G, der von jeder Kante e = {i, j} ∈ E genau einen der Bögen
(i, j), (j, i) enthält.
Def: Ein Graph G = (V, E) ist ein Vergleichbarkeitsgraph oder Comparability Graph, wenn er
eine transitive Orientierung besitzt, d.h. im Digraphen gilt: mit (u, v), (v, w) ∈ E ist auch
(u, w) ∈ E .
Merke: Aus einem azyklischen Digraphen G = (V, E) läßt sich sofort ein Vergleichbarkeitsgraph
konstruieren:
1. Bilde die transitive Hülle, d.h. füge für alle u, v aus V , bei denen ein gerichteter Weg von
u → v existiert, die Kante (u, v) hinzu.
2. Der zugehörende Semigraph ist ein Vergleichbarkeitsgraph.
Satz 46. Vergleichbarkeitsgraphen sind perfekt, d.h. es gilt: ω(G) = χ(G).
Otto-von-Guericke Universität Magdeburg/FMA/IAG/Bräsel
Folie 96
Herunterladen