Einführung in die Graphentheorie Modellierung mit Graphen

Werbung
Einführung in die Graphentheorie
Modellierung mit Graphen
Aufgabe
Ein Mann steht mit einem Wolf, einer Ziege und einem Kohlkopf
am einen Ufer eines Flusses, den er überqueren will.
• Motivation
Er hat ein Boot, das groß genug ist, ihn und ein weiteres Objekt zu
transportieren, so dass er immer nur eins der drei mit sich
hinübernehmen kann.
• Ungerichtete Graphen
• Gerichtete Graphen
Falls der Mann allerdings den Wolf und die Ziege oder die Ziege
und den Kohlkopf unbewacht an einem Ufer zurücklässt, so wird
einer gefressen werden.
Credits:
Ist es möglich, den Fluss zu überqueren, ohne dass die Ziege oder
der Kohlkopf gefressen werden? Wie viele Fahrten benötigt man
mindestens?
D. Jungnickel: Graphen, Netzwerke und Algorithmen, BI 1994
G. Goos: Vorlesungen über Informatik, Springer 2000
www.easy-mod.de
www.fh-bochum.de
www.usa.de
www.matheprisma.uni-wuppertal.de
ag-kastens.upb.de/lehre/material/model/
(Alkuin, Abt des Klosters St. Martin in Tours, Lehrer und Ratgeber Karls des Großen)
Man fängt natürlich sofort an, im Kopf die verschiedenen
Möglichkeiten zum Transport durchzuspielen und die sich
ergebenden Verteilungen von Mann, Wolf, Ziege und Kohlkopf auf
die beiden Ufer zu überprüfen.
Wie kann man die Möglichkeiten systematisch durchsuchen?
• Modellierung der Situationen
• Modellierung der Übergänge von Situation zu Situation
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-1
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-2
Eine Modellierung des Rätsels
Modellierung mit Graphen
Eine Situation ist eine mögliche Verteilung von Mann, Wolf, Ziege,
Kohlkopf auf die beiden Flussufer.
symbol.
Modell
Situationen können modelliert werden durch Paare von Teilmengen
von S := {M, W, Z, K}:
:= {(S1, S2) | S1 ∪ S2 = S, S1 ∩ S2 = ∅}
Simulation
Verhalten
Transfer
Abstraktion
Durch Überqueren des Flusses ggf. mit einem Objekt kann der
Mann die Situation verändern.
graph.
Modell
Überquerungen können modelliert werden durch Verbindungen
zwischen Zuständen. Die Verbindungen werden beschriftet mit den
transportierten Elementen aus S.
({M,W,Z,K},{})
({W,Z,K},{M})
({Z,K},{M,W})
({W,K},{M,Z})
({M,K},{W,Z})
({W},{M,Z,K})
({M,Z,K},{W})
({M,W,Z},{K})
Verhalten
Abstraktion
Transfer
({W,Z},{M,K})
System
({M,W,K},{Z})
({K},{M,W,Z})
Simulation
Experiment
Verhalten
Domäne
({M,W},{Z,K})
({Z},{M,W,K})
({M,Z},{W,K})
({},{M,W,Z,K})
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-3
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-4
Ungerichteter Graph
Beispiele für Graphen
Definition
Ein (ungerichteter) Graph G = (V, E) ist ein Paar bestehend aus
• V einer endlichen Menge von Knoten (vertices) und
• E ⊂ P(V ) einer Menge von Kanten (edges), i.e.
zweielementigen Teilmengen von V .
Knoten modellieren Zustände, Situationen, Positionen, . . .
Kanten modellieren Relationen zwischen den Knoten.
Für eine Kante e = {v, w} ∈ E zwischen den Knoten v ∈ V und
w ∈ V verwendet man folgende Bezeichnungen:
Knoten = Staat; Kante = gemeinsame Grenze
• v und w heißen inzident zu e,
• e heißt inzident zu v und w und
• v und w heißen adjazent.
3
2
6
4
1
5
Knoten = Bauteil oder Leitungsknoten; Kante = Leitung
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-5
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-6
Verallgemeinerungsmöglichkeiten für ungerichtete
Graphen
Maximale Kantenanzahl ungerichteter Graphen
Lemma
Für jeden ungerichteten Graphen G = (V, E) gilt:
• Schlaufen oder Schlingen
Eine Kante führt von einem Knoten zu diesem selbst zurück.
|E| ≤ |V | · (|V | − 1)
3
2
Die Kantenanzahl für Graphen ohne Schlingen ist höchstens
|V | · (|V | − 1), da jeder Knoten von V als Anfangs- oder als
Endpunkt auftreten kann, aber nicht gleichzeitig Anfangs- und
Endpunkt sein darf.
6
4
1
5
• Mehrfachkanten
Die Kantenanzahl für Graphen mit Schlingen ist höchstens |V |2, da
jeder Knoten von V als Anfangs- und als Endpunkt auftreten kann.
Zu zwei Knoten gibt es (eventuell) mehrere Kanten, die sie
miteinander verbinden.
Die Kantenanzahl für Multigraphen ist nicht beschränkt, da zu zwei
Knoten von V beliebig viele Kanten inzident sein können.
3
2
6
Die Kantenanzahl für Hypergraphen ist höchstens 2|V |, da jede
Teilmenge von V als Kante auftreten kann.
4
1
5
• Hypergraphen
Kanten sind Paare von Mengen von Knoten.
3
2
6
4
1
5
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-7
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-8
Datenstrukturen zur Verarbeitung von Graphen
Teilgraphen ungerichteter Graphen
Für einen Graphen G = (V, E) sei eine lineare Sortierung der
Knoten gegeben:
V = {v1, . . . , vn }
Definition
Ein Graph G = (V , E ) ist ein Teilgraph eines Graphen G = (V, E),
wenn gilt V ⊆ V und E ⊆ E mit E ⊂ P(V ).
3
3
2
2
Adjazenzmatrix :
mit ai,j =
6
MG = (ai,j )i,j∈{1,...,n}
6
4
4
1
1 {vi , vj } ∈ E
0 1
5
5
Definition
Ein Teilgraph G = (V , E ) eines Graphen G = (V, E) mit V = V
heißt erzeugender Teilgraph (spanning subgraph).
Adjazenzliste:
LG = ((v1, al1), . . . , (vn, aln))
3
mit ali sortierte Liste der zu vi adjazenten Knoten (bzgl. E) in V .
3
2
2
6
6
Beispiel:
1
1
G = ({a, b, c, d}, {{a, b}, {a, d}, {b, c}, {c, d}})

0

1
MG = 
0
1
4
4
1
0
1
0
0
1
0
1

1

0

1
0
b
5
5
Definition
Für einen Graphen G = (V, E) und V ⊆ V heißt der Graph
G = (V , E ) mit E := {{v1, v2} ∈ E | v1, v2 ∈ V } der von V induzierte Teilgraph von G.
d
3
3
2
LG = ( a,
b,
c,
d,
c LETTMANN 2003/04
(b, d)
(a, c)
(b, d)
(a, c) )
2
6
6
4
4
1
a
1
c
5
Modellierung — Graphentheorie
VI-9
c LETTMANN 2003/04
5
Modellierung — Graphentheorie
VI-10
Isomorphie von Graphen
Knoten- und Kantenmarkierungen
Definition
Für zwei Graphen G1 = (V1, E1) und G2 = (V2, E2) sei eine totale
und bijektive Abbildung f : V1 → V2 gegeben. f heißt
Isomorphismus von V1 auf V2 genau dann, wenn für alle Knoten
v, w ∈ V gilt:
{v, w} ∈ E1
⇐⇒
Definition
Eine Knotenmarkierung eines Graphen G = (V, E) ist eine
Abbildung
m:V →M
die jedem Knoten v eine Markierung m(v) ∈ M zuordnet.
{f (v), f (w)} ∈ E2
Definition
Eine Kantenmarkierung eines Graphen G = (V, E) ist eine
Abbildung
m:E→M
Offenes Problem der Komplexitätstheorie
Gibt es ein effizientes (d.h. polynomielles) Verfahren, um zu
entscheiden, ob zwei Graphen G1 und G2 isomorph sind?
die jeder Kante e eine Markierung m(e) ∈ M zuordnet.
Durch Verwendung von Kantenmarkierungen lassen sich
Multigraphen auf einfache Graphen zurückführen:
Kantenmarkierung = Anzahl paralleler Kanten
Dies Problem tritt meist in (vielleicht?) schärferer Form als
Teilgraph-Isomorphismus-Problem auf:
Gibt es einen Teilgraphen in G1, der isomorph zu G2 ist?
Identifiziere in einer hydraulischen Anlage die Linearachsen.
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-11
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-12
Knotengrade
Beispiel: Landkarte
Definition
Für einen Graphen G = (V, E) und einen Knoten v ∈ V heißt
(v) := |{v ∈ V | {v, v } ∈ E}|
der (Knoten-)Grad von v in G.
Der Knotengrad von v in G ist die Anzahl der mit v inzidenten
Kanten.
Definition
Für einen Graphen G = (V, E) heißt
(G) := max (v)
v∈V
der (Knoten-)Grad von G.
Satz
Die Anzahl der Punkte mit ungeradem Grad in einem Graphen ist
gerade.
Knoten = Autobahnkreuze/-dreiecke, nächste Städte
Kanten = Autobahnteilstücke
Knotenmarkierungen:
Name des Autobahnkreuzes/-dreiecks, Name der Stadt,...
Die Summe der Knotengrade aller Knoten ist 2∗(Anzahl Kanten),
also gerade.
Kantenmarkierungen:
Nummer der Autobahn, Entfernung in Straßenkilometern, Anzahl
der parallelen Spuren,...
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-13
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-14
Wege
Wege und Adjazenzmatrix
Beispiel: G = ({a, b, c, d}, {{a, b}, {a, d}, {b, c}, {c, d}})
Induktive Definition
Sei G = (V, E) ein Graph.

0

1
MG = 
0
1
• Für jeden Knoten v0 ∈ V ist (v0) ein Weg in G von v0 nach v0.
• Für Knoten v0, . . . , vn, vn+1 ∈ V , eine Kante e = {vn, vn+1} ∈ E
ist mit einem Weg (v0, . . . , vn) von v0 nach vn in G auch
(v0, . . . , vn , vn+1) ein Weg in G und zwar von v0 nach vn+1.

2
0

MG2 = MG · MG = 
2
0
Ein Weg ist also eine nicht-leere Folge von Knoten, die durch
Kanten miteinander verbunden sind.
1
0
1
0
0
1
0
1

1

0

1
0
0
2
0
2
2
0
2
0

0
2


0
2
b
d
a
c
Sei G = (V, E) ein Graph mit |V | = n und Adjazenzmatrix MG.
Meistens findet man die folgende Definition:
Definition
Für einen Graphen G = (V, E), n ∈ N und Knoten v0, . . . , vn ∈ V mit
{vi, vi+1} ∈ E für 0 ≤ i < n ist
(v0, . . . , vn) ein Weg von v0 nach vn in G.
Die Induktion steckt hier in der Verwendung der (induktiv
definierten) endlichen Folgen (v0, . . . , vn ) von Knoten.
• Das Matrixelement ai,j von MG gibt die Anzahl der Wege der
Länge 1 von vi nach vj an.
• Das Matrixelement ai,j von MG gibt die Anzahl der Wege der
Länge 2 von vi nach vj an.
Satz
Für einen Graphen G = (V, E) mit Adjazenzmatrix MG gibt die
Matrix MGk die Anzahl der Wege an zwischen Knoten aus V mit
genau der Länge k.
Definition
Die Länge l eine Weges (v0, . . . , vn) in einem GraphenG ist die
Anzahl der Kanten auf dem Weg:
l((v0, . . . , vn)) = n
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-15
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-16
Königsberger Brückenproblem
Spezielle Wege
Königsberg liegt an den Ufern und zwei Inseln des Pregel. Inseln
und Ufer sind mit sieben Brücken miteinander verbunden.
Gibt es eine Rundweg in Köningsberg, auf dem man die sieben
Brücken jeweils genau einmal überschreitet?
Definition
Ein Eulerscher Weg in einem Graphen G = (V, E) ist ein Weg, der
jede Kante von E genau einmal enthält.
Definition
Ein Hamiltonscher Weg in einem Graphen G = (V, E) ist ein Weg,
der jeden Knoten von V genau einmal enthält.
Definition
Ein Kreis in einem Graphen G = (V, E) ist ein Weg (v, . . . , v) von v
nach v der Länge l(v, . . . , v) ≥ 1.
Definition
Ein Eulerscher Kreis in G = (V, E) ist ein Kreis, der jede Kante von
E genau einmal enthält.
Die Untersuchung dieser Frage durch Euler im Jahre 1736 stellt
den Anfangspunkt der modernen Graphentheorie dar.
Definition
Ein Hamiltonscher Kreis in G = (V, E) ist ein Kreis, der jeden
Knoten von V genau einmal enthält (ausser Anfangspunkt).
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-17
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-18
Beispiele für Wege
Aussagen über Wege
Kreis in einem Graphen:
Lemma
Die Länge jedes Weges in einem Graphen G = (V, E) ist
beschränkt durch |E|.
3
2
6
Lemma
Jeder Wege w in einem Graphen G = (V, E) mit Länge l(w) ≥ |V |
enthält einen Kreis.
4
1
5
Satz
Jeder kreisfreie Graph mit n Knoten enthält höchstens n − 1
Kanten.
Eulerweg in einem Graphen:
3
1
2
2
9
Satz
Ist in einem Graph mit mindestens drei Knoten der Grad jedes
Knotens grösser gleich der halben Anzahl von Knoten, dann
enthält der Graph einen Hamiltonschen Kreis.
3
6
10
4
6
1
4
8
5
7
5
Hamiltonweg in einem Graphen:
3
2
6
4
1
5
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-19
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-20
Traveling Salesman Problem
Zusammenhang
Optimierungsproblem
Gegeben ist ein Menge von Städten, die durch Straßen bekannter
Längen verbunden sind. Gesucht ist ein kürzester Rundweg durch
alle Städte.
Definition
Ein Knoten w ∈ V eines Graphen G = (V, E) ist erreichbar vom
Knoten v ∈ V aus genau dann, wenn es einen Weg (v, . . . , w) in G
gibt.
Entscheidungsproblem
Gegeben ist ein Menge von Städten, die durch Straßen bekannter
Längen verbunden sind. Gesucht ist ein Rundweg durch alle
Städte, der höchstens eine vorgegebene Länge B hat.
Definition
Ein Graph G = (V, E) heißt zusammenhängend, wenn für alle
v, w ∈ V gilt, w ist von v aus erreichbar.
Entscheidungsproblem
Gegeben ist ein Gitter von n × n Prozessoren. Eine Nachricht soll
eine sequentiell von Prozessor zu Prozessor weitergegeben
werden. Sie soll jeden Prozessor erreichen und zum Initiator
zurückkehren. Für welche n ist das möglich?
Entscheidungsproblem
Gegeben ist ein Graph G = (V, E). Enthält G einen Hamiltonschen
Kreis?
Definition
Eine Zusammenhangskomponente eines Graphen G = (V, E) ist
der von einer maximalen Knotenmenge V ⊆ V induzierte
Teilgraph von G, so dass G zusammenhängend ist, d.h. der durch
Hinzufügen eines weiteren Knotens v ∈ V \ V von V ∪ {v }
induzierte Teilgraph von G ist nicht zusammenhängend.
Definition
Eine Zusammenhangskomponente eines Graphen, die nur aus
einem Knoten besteht, heißt auch isolierter Knoten.
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-21
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-22
Existenz von Eulerwegen
Sätze zum Zusammenhang
Beispiel: Das Haus vom Nikolaus
Satz
Jeder zusammenhängende Graph mit n Knoten enthält
mindestens n − 1 Kanten.
Satz
Ein Graph G = (V, E) enthält genau dann einen Eulerschen Weg,
wenn G zusammenhängend ist und höchstens zwei Knoten mit
ungeradem Grad enthält.
Satz
Für einen zusammenhängenden Graphen G = (V, E) sind folgende
Aussagen äquivalent:
Nicht nur ein Eulerweg existiert, sondern sogar mehrere.
Was ist, wenn das Haus vom Nikolaus einen Anbau erhält?
• G enthält einen Eulerschen Kreis.
• Jeder Knoten in G hat einen geraden Grad.
• Die Kantenmenge von G kann in Kreise zerlegt werden.
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-23
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-24
Verbindungen und Zusammenhang
Bäume
Definition
Ein Knoten v ∈ V eines zusammenhängenden Graphen G = (V, E)
heißt Schnittknoten in G, falls der von V \ {v} induzierte Teilgraph
nicht zusammenhängend ist.
Definition
Eine Kante e ∈ E eines zusammenhängenden Graphen G = (V, E)
heißt Schnittkante in G, falls der Graph (V, E \ {e}) nicht
zusammenhängend ist.
Schnittknoten und Schnittkanten sind also kritische Knoten bzw.
Kanten, da der Graph durch ihre Entfernung in verschiedene
Zusammenhangskomponenten zerfällt. Schnittkanten spielen bei
der Orientierung von Graphen eine Rolle.
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-25
Definition
Ein Baum ist ein zusammenhängender, kreisfreier Graph
G = (V, E).
Die Klassenhierarchie des Pakets java.lang in Java bildet einen
Baum mit Wurzelklasse Object.
Definition
Ein Wald ist ein kreisfreier Graph G = (V, E), d.h. die
Zusammenhangskomponenten von G sind Bäume.
Definition
Ein erzeugender Baum (spanning tree) für einen Graphen
G = (V, E) ist ein Teilgraph G = (V, E ), der ein Baum ist, d.h. ein
Baum, der alle Knoten von G enthält.
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-26
Beispiele für Bäume
Sätze über Bäume
Vollständiger binärer Baum der Tiefe 3
Satz
Für einen Graphen G = (V, E) sind folgende Aussagen äquivalent:
• G ist eine Baum.
• G ist zusammenhängend und für jede Kante e ∈ E ist der
Teilgraph G = (V, E \ {e}) nicht zusammenhängend.
• G ist kreisfrei und für zwei Knoten v, w ∈ V mit {v, w} ∈ E ist
der
Wald von vollständigen binären Bäumen
Graph G = (V, E ∪ {{v, w}}) nicht kreisfrei.
• Zwischen je zwei Knoten aus V gibt es genau einen Weg.
Korollar
Für einen Baum G = (V, E) mit |V | ≥ 1 gilt:
• |V | = |E| + 1
• G hat mindestens einen Knoten v ∈ V mit Grad (v) < 2.
Erzeugender Baum für das Nikolaushaus mit Anbau
Vom Wurzelknoten des Spannbaumes aus erreicht man jeden
Knoten des Graphen über Kanten des Spannbaumes! Meist
werden Spannbäume mit zusätzlichen Eigenschaften gesucht,
beispielsweise minimales Gesamtgewicht aller Kanten.
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-27
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-28
Gewurzelte Bäume (1)
Beispiele für Bäume
Wurzel
Induktive Definition
• Für jeden Knoten v ist der Graph G = ({v}, { }) ein Baum mit
Wurzel v.
• Für ein k ∈ N seinen G1 = (V1, E1), ..., Gk = (Vk , Ek ) Bäume mit
Wurzeln v1, ..., vk und paarweise disjunkten Knotenmengen
V1, ..., Vk und sei v ∈ V1 ∪ ... ∪ Vk . Dann ist
G = ({v} ∪ V1 ∪ ... ∪ Vk , {{v, vi}|1 ≤ i ≤ k} ∪ E1 ∪ ... ∪ Ek )
innere Knoten

























Blätter
ein Baum mit Wurzel v.
Mit einer anderen Wurzel
ergibt sich der folgende
Baum:
• Nur so gebildete Graphen sind Bäume.
Schränkt man in der Definition die Wahl für k weiter ein, so erhält
man spezielle Bäume:
• Für k ≤ 2 erhält man die Menge der binären Bäume.
• Für k ≤ 3 erhält man die Menge der ternären Bäume.
• Für festes k ∈ N erhält man die Menge der k-ären Bäume.
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-29
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-30
Gewurzelte Bäume (2)
Kantorowitsch-Baum
Beobachtung
Für einen Baum G = (V, E) kann man jeden Knoten w ∈ V als
Wurzel von G festlegen.
Definition
Ein Kantorowitsch-Baum ist ein Baum G = (V, E) mit Wurzel w ∈ V
sowie einer Knotenmarkierung m : V → F ∪ V , so dass
Definition
In einen Baum G = (V, E) mit Wurzel w heißen für einen Knoten
v ∈ V sind alle die Knoten v ∈ V Nachfolger von v, für die v im
kürzesten Weg von w nach v enthalten ist. Knoten ohne
Nachfolger heißen Blätter, Knoten mit Nachfolgern heißen innere
Knoten. Die Nachfolger v von v mit {v, v } ∈ E heißen unmittelbare
oder direkt Nachfolger von v.
• jeder innere Knoten als Markierung einen Operator hat mit
einer Stelligkeit k > 0, sowie genau k unmittelbare
Nachfolgerknoten hat und
• jeder Blattknoten als Markierung eine Variabe hat oder einen
nullstelligen Operator.
Kantorowitsch-Baum für die Formel ∀x(∃yP (x, f (y, a)) → P (x, a))
Definition
Für einen Baum G = (V, E) mit Wurzel w ∈ V und einen Knoten
v ∈ V heißt die Länge eines kürzesten Weges von w nach v die
Tiefe von v in G. Die Tiefe des Baumes G mit Wurzel w ist die
maximale Tiefe eines Knotens in G.
A
x
Die Tiefe eines Baumes richtet sich also danach, welcher Knoten
im Baum als Wurzel festgelegt worden ist. Die Tiefe ist die
maximale Länge eines kürzesten Weges von der Wurzel zu einem
Knoten.
Modellierung — Graphentheorie
VI-31
P
y P
x a
x f
Definition
Für n-ärer Baum G = (V, E) mit Wurzel w ∈ V heißt vollständiger
n-ärer Baum genau dann, wenn jeder innere Knoten genau n
Nachfolger besitzt und alle Blätter die gleiche Tiefe haben.
c LETTMANN 2003/04
E
y a
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-32
Sätze über k-äre Bäume
Bipartite Graphen
Satz
Ein vollständiger k-ärer Baum G = (V, E) mit Wurzel w ∈ V und
i
Tiefe n, k, n ∈ N, k > 0 hat genau k n Blätter und genau k−1
i=0 k
innere Knoten.
Definition
Ein Graph G = (V, E) heißt bipartit, wenn es zwei disjunkte
Knotenmengen V1, V2 ⊆ V (also V1 ∩ V2 = ∅ gibt, so dass
E ⊆ {{v1, v2} | v1 ∈ V1, v2 ∈ V2} gilt.
Die Gesamtzahl der Knoten ist also für k ∈ N, k > 1
Die Knotenmenge von G kann also in zwei disjunkte Mengen
aufgeteilt werden, so dass Kanten immer mit je einem Knoten aus
jeder dieser Mengen inzident sind.
n−1
i=0
ki + kn =
n
i=0
ki =
k n+1 − 1
k−1
Ein bipartiter Graph wird auch mit (V1 V2, E) beschrieben, wenn
gilt E ⊆ {{v1, v2} | v1 ∈ V1, v2 ∈ V2} und zusätzlich |V1| ≥ |V2|.
Der Beweis des Satzes wird durch eine Induktion über den Aufbau
k-ärer Bäume geführt.
Satz
Ein k-ärer Baum G = (V, E) mit Wurzel w ∈ V und Tiefe n,
n+1
k, n ∈ N, k > 0 hat höchstens k k−1−1 Knoten.
Definition
Ein Matching (Korrespondenz) in einem bipartiten Graph
G = (V1 ∪ V2, E) ist eine Menge von Kanten, die paarweise keine
gemeinsamen Knoten haben.
Für jeden Knoten aus vi ∈ Vi gehört also maximal eine mit vi
inzidente Kante zu einem Matching (i = 1, 2).
Definition
Ein Matching in einem bipartiten Graph G = (V1 V2, E) heißt
vollständig, wenn jeder Knoten aus V2 mit einer Kante des
Matching inzident ist. (Beachte hierbei |V1| ≥ |V2|.)
Definition
Ein Matching heißt perfekt, wenn alle Knoten aus V1 ∪ V2 mit einer
Kante des Matchings inzident sind.
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-33
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-34
Modellierung mit bipartiten Graphen
Färbung von Graphen
Satz (P. Hall 1935)
In einem bipartiten Graph G = (V1 V2, E) mit |V1| ≥ |V2| gibt es
genau dann ein vollständiges Matching, wenn es für jede Menge
J ⊆ V2 gilt
|{v1 ∈ V1|∃v2 ∈ J : {v1, v2} ∈ E}| ≥ |J|
Definition
Eine Färbung eines Graphen G = (V, E) ist eine Knotenmarkierung
m : V → M , die jedem Knoten eine Farbe aus M zuordnet, so
dass für adjazente Knoten v, w ∈ V gilt m(v) = m(w).
also mindestens |J| Knoten aus V1 zu den Knoten aus J adjazent
sind.
Definition
Ein Graph heißt k-färbbar, falls eine Färbung des Graphen mit k
Farben existiert, d.h. mit |M | = k.
Falls |V1| = |V2| gilt, dann ist ein vollständiges Matching auch ein
perfektes Matching und umgekehrt.
Eine Färbung eines Graphen mit einer beschränkten Anzahl
Farben nennt man auch eine konfliktfreie Knotenmarkierung.
Anwendungen sind:
Beispiel: Heiratsproblem
Es sei eine endliche Menge V1 von Damen und eine endliche
Menge V2 von Herren gegeben. Die Funktion : V2 → P gibt zu
jedem Herren die Menge der Damen an, die zu ehelichen er bereit
ist. Außerdem sei |V1| ≥ |V2|. Nach dem Satz von Hall gibt es ein
vollständiges Matching, wenn für jede Teilmenge J von Herren die
Menge v∈J (v) mindestens |J| Elemente enthält.
“Wenn die Herren nicht zu wählerisch sind,
bekommt jeder eine Dame ab.”
Knoten
Staat auf
Partygast
Kursus
Prozess
Variable im Programm
Kante
gemeinsame Grenze
verfeindet
haben gemeinsame Teilnehmer
benötigen gleiche Ressource
gleichzeitig lebendig
Farbe / Marke
Farbe
Zuordnung auf Tisch
Termin
Ausführungszeitpunkt
Registerspeicher
Definition
Die chromatische Zahl χ(G) ist die minimale Anzahl von Farben,
mit der eine Färbung des Graphen G möglich ist.
Satz
Für jeden Graphen G gilt χ(G) ≤ 1 + (G).
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-35
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-36
Vierfarbenproblem
Ist jede Landkarte mit maximal vier Farben färbbar?
(Länder = Knoten, Kante = gemeinsame Grenze)
Ja! (Appel & Haken 1977)
c LETTMANN 2003/04
Modellierung — Graphentheorie
VI-37
Herunterladen