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