Kapitel 6 Graphentheorie Graphen: Allgemeines Eulersche Graphen Hamiltonsche Graphen Graph- und Subgraphisomorphismus Planare Graphen Färben von Graphen Matchings von Graphen Bäume und Wälde Kapitel 6 “Graphentheorie” – p.1/42 Graphen: Allgemeines (1) Graphen gehen auf den Mathematiker Leonhard Euler zurück, der im 18. Jahrhundert versuchte, das Königsberger Brückenproblem zu lösen. Gibt es in der Stadt Königsberg einen Rundweg, bei dem man alle sieben Brücken der Stadt über den Pregel genau einmal überquert und wieder zum Ausgangspunkt gelangt? Euler bewies, dass es keinen solchen Rundweg geben kann. Kein klassisches geometrisches Problem, sondern ein topologisches Problem, da es nicht auf die genaue Lage der Brücken ankommt, sondern nur darauf, welche Brücke welche Inseln miteinander verbindet. Kapitel 6 “Graphentheorie” – p.2/42 Graphen: Allgemeines (2) Definition Ein (ungerichteter) Graph G ist ein Tupel (V, E), wobei V eine endliche nichtleere Menge von Knoten ist. Die Menge E = {(x, y) | x, y ∈ V } spezifiziert die Kanten zwischen Knoten. Es gilt: (x, y) := (y, x). Beispiel: Repräsentation eines Strassennetzes Die Knoten entsprechen den Ortschaften. Zwei Orte sind durch eine Kante verbunden, wenn es eine Strasse gibt, die diese beiden Orte auf direktem Wege verbindet. Wichtiges Problem: den kürzesten Weg zwischen zwei Orten A und B bestimmen. Beispiel: Modellierung von Bekanntschaften Die Knoten entsprechen den Personen. Zwei Personen sind durch eine Kante verbunden, wenn sie sich kennen. Hier wird angenommen, dass die Relation “kennen” symmetrisch ist. Kapitel 6 “Graphentheorie” – p.3/42 Graphen: Allgemeines (3) Definition Der Grad deg(v) eines Knotens v ∈ V ist die Anzahl von Knoten, die durch eine Kante mit v verbunden sind. Beispiel: Ein vollständiger Graph Kn besteht aus n Knoten, die alle paarweise miteinander verbunden sind. In Kn haben alle Knoten v den Grad deg(v) = n − 1. Kapitel 6 “Graphentheorie” – p.4/42 Graphen: Allgemeines (4) Satz Für jeden Graphen gibt es mindestens zwei Knoten mit demselben Grad. Beweis: Siehe Beispiel auf Folie 3 dieses Kapitels und Folie 13, Kapitel “Kombinatorik” Satz Für jeden Graphen G = (V, E) gilt: X deg(v) = 2|E| v∈V Beweis: In der Summe links wird jede Kante genau zweimal gezählt, zwar bei den beiden durch diese Kante verbundenen Knoten. Kapitel 6 “Graphentheorie” – p.5/42 Graphen: Allgemeines (5) Satz Für jeden Graphen G = (V, E) gilt: Die Anzahl der Knoten mit ungeradem Grad ist gerade. Beweis: Wir partitionieren die Knotenmenge V in Vg (Knoten mit geradem Grad) und Vu (Knoten mit ungeradem Grad). Es gilt: Vg ∪ Vu = V, Vg ∩ Vu = ∅ und somit 2|E| = X v∈V deg(v) = X deg(v) + v∈Vg | X deg(v) v∈Vu {z } gerade Die zweite Summe müsste auch gerade sein. Also ist |Vu | gerade. Kapitel 6 “Graphentheorie” – p.6/42 Eulersche Graphen (1) Definition Eine Eulertour in einem Graphen G = (V, E) ist ein Weg, der jede Kante genau einmal enthält und dessen Anfangs- und Endknoten identisch sind. Enthält ein Graph eine Eulertour, so nennt man ihn eulersch. Ist G eulersch, so ist der Grad deg(v) aller Knoten v ∈ V gerade, denn aus jedem Knoten geht man genauso oft “hinein” und “hinaus”. Es gilt sogar die Umkehrung. Definition Ein Graph G = (V, E) heisst zusammenhängend, wenn jeder Knoten u mit jedem Knoten v über eine Kette von Kanten miteinander verbunden ist. Satz (Euler) Ein zusammenhängender Graph G = (V, E) ist genau dann eulersch, wenn der Grad aller Knoten gerade ist. Kapitel 6 “Graphentheorie” – p.7/42 Eulersche Graphen (2) Beweis: Die eine Richtung ist bereits gegeben. Für die andere skizzieren wir einen algorithmischen Beweis. Man wählt einen Knoten v1 beliebig. Ausgehend von v1 durchläuft man Kanten in beliebiger Reihenfolge – mit der Einschränkung, dass man keine Kante mehr als einmal benutzt. Zu jedem Knoten 6= v1 , den wir auf unserem Weg betreten, gibt es mindestens eine bisher unbenutzte Kante, über die wir ihn wieder verlassen können. Der so konstruierte Weg W1 muss daher irgendwann wieder in v1 enden. Es könnte allerdings sein, dass wir dann noch nicht alle Knoten durchlaufen haben. Da der Graph zusammenhängend ist, muss es in diesem Fall aber mindestens einen Knoten v2 in W1 geben, von dem eine noch nicht benutzte Kante ausgeht. In diesem Knoten starten wir den obigen Prozess erneut. Wir finden dann einen anderen Weg W2 , der in v2 beginnt und endet. Die beiden Wege W1 und W2 können wir jetzt zu einem neuen Weg verschmelzen, indem wir erst in W1 das Teilstück von v1 zu v2 durchlaufen, dann nach W2 überschwenken, diesen Weg komplett durchlaufen, und nach Rückkehr zu v2 das verbliebene Teilstück von W1 durchlaufen. Enthält der so gefundene Weg noch immer nicht alle Knoten, wählen wir analog zu v2 einen Knoten v3 und wiederholen obiges Verfahren solange, bis der Weg alle Knoten enthält. Kapitel 6 “Graphentheorie” – p.8/42 Eulersche Graphen (3) Beispiel: b c a d f e Wählen wir v1 = a, so könnte man als Weg W1 beispielsweise W1 = (a, b, e, f, a) finden. Der erste Knoten dieses Wegs, von dem eine Kante ausgeht, die sich nicht auf W1 befindet, ist b = v2 . Als Weg W2 kann man dann W2 = (b, c, f, b) wählen. Die Verschmelzung von W1 und W2 führt zu dem Weg (a, b, c, f, b, e, f, a). Dieser enthält noch immer nicht alle Kanten. Wählt man v3 = c und W3 = (c, d, e, c), so erhält man die Eulertour (a, b, c, d, e, c, f, b, e, f, a). Kapitel 6 “Graphentheorie” – p.9/42 Eulersche Graphen (4) Beispiel: Das Königsberger Brückenproblem hat keine Lösung. Achtung: Hier sind Multikanten zwischen zwei Knoten zugelassen. Quiz: Wie viele Brücken müssten mindestens nachgebaut werden (und wo), damit eine Eulertour möglich ist? Kapitel 6 “Graphentheorie” – p.10/42 Eulersche Graphen (5) Definition Eine offene Eulertour oder Eulerweg ist dann gegeben, wenn die Identität von Start- und Endknoten nicht verlangt wird, d.h. statt eines Zyklus wird lediglich ein Weg verlangt, der jede Kante des Graphen genau einmal enthält. Satz (Euler) Ein zusammenhängender Graph G = (V, E) hat genau dann eine offene Eulertour, wenn der Grad aller Knoten bis auf zwei gerade ist. Die beiden Knoten mit ungeradem Grad dienen als Start- und Endknoten der offenen Eulertour. Beispiel: Das Königsberger Brückenproblem hat auch keine offene Eulertour. Beispiel: “Haus vom Nikolaus” Kann man diese Figur zeichnen, ohne den Stift abzusetzen und ohne eine Linie doppelt zu ziehen? Kapitel 6 “Graphentheorie” – p.11/42 Hamiltonsche Graphen (1) Definition Ein Hamiltonkreis in einem Graphen G = (V, E) ist ein Kreis (Startknoten = Endknoten), der alle Knoten von V genau einmal durchläuft. Enthält ein Graph einen Hamiltonkreis, so nennt man ihn hamiltonsch. Sir William Rowan Hamilton (1805–1865) Hamilton was ein irisches Universalgenie: In seiner Jugend entwickelte er den Ehrgeiz, genaue soviele Sprachen zu sprechen wie er Jahre alt war (dies hat er angeblich bis zu seinem 17ten Lebensjahr durchgehalten). Schon vor Beendigung seines Studiums wurde er zum Königlichen Irischen Astronomen ernannt. Die nach ihm benannten Kreise untersuchte er im Zusammenhang mit einem von ihm entwickelten Geschicklichkeitsspiel. Kapitel 6 “Graphentheorie” – p.12/42 Hamiltonsche Graphen (2) Hamiltonsche Graphen werden zur Modellierung vieler praktischer Probleme verwendet Beispiel: Problem des Handlungsreisenden Ein Handlungsreisender möchte eine Reihe von Städten besuchen, die untereinander durch Strassen verbunden sind. Es gibt genau dann eine Rundreise, bei der keine Stadt mehrfach besucht wird, wenn das Strassennetz hamiltonsch ist. Realistischere Variante: Man versieht die Kanten des Graphen mit Kosten (Entfernung, Fahrtkosten, etc.) und sucht nach einem Hamiltonkreis, der die Gesamtkosten minimiert. Kapitel 6 “Graphentheorie” – p.13/42 Hamiltonsche Graphen (3) Beispiel: Alle vollständigen Graphen Kn sind hamiltonsch Beispiel: Der Petersen-Graph enthält keinen Hamiltonkreis Satz (R. Karp, 1972) Das Entscheidungsproblem “Gegeben ein Graph G = (V, E), enthält G einen Hamiltonkreis?” ist N P-vollständig. Man kann wohl keinen Algorithmus finden, der entscheidet, ob ein Graph hamiltontsch ist und dessen Laufzeit polynomiell in der Grösse des Graphen (also in der Anzahl Knoten und Kanten) ist. Kapitel 6 “Graphentheorie” – p.14/42 Hamiltonsche Graphen (4) Intuitiv: Die Existenz eines Hamiltonkreises ist umso wahrscheinlicher, je mehr Kanten pro Knoten der Graph hat. Extremes Beispiel: Kn . Definition Bei einem Schlingenfreien Graphen gibt es keinen Knoten, der durch eine Kante mit sich selbst verbunden ist. Satz Erfüllt ein schlingenfreier Graph G = (V, E) die Bedingung deg(x) + deg(y) ≥ |V |, für alle x, y ∈ V mit x 6= y und (x, y) 6∈ E so ist G hamiltonsch. Korollar Ein schlingenfreier Graph G = (V, E) mit deg(v) ≥ Knoten v ∈ V ist hamiltonsch. Korollar Ein schlingenfreier Graph G = (V, E) mit |E| ≥ hamiltonsch. |V | 2 |V |−1 2 für alle + 2 ist Kapitel 6 “Graphentheorie” – p.15/42 Graph- und Subgraphisomorphismus (1) Definition Zwei Graphen G1 = (V1 , E1 ) und G2 = (V2 , E2 ) sind isomorph, wenn es eine bijektive Abbildung f : V1 → V2 gibt, so dass (a, c) ∈ E1 ⇔ (f (a), f (b)) ∈ E2 . Dann ist f ein Isomorphismus zwischen G1 und G2 . Intuitiv: Zwei Graphen mit der gleichen Knotenzahl, die gleichartig verbunden sind, sind isomorph. Beispiel: Erkennung von Isomorphismen ist nicht immer einfach Kapitel 6 “Graphentheorie” – p.16/42 Graph- und Subgraphisomorphismus (2) Definition Ein Graph G1 = (V1 , E1 ) heisst Teilgraph (Subgraph) von G = (V, E), falls V1 ⊆ V und E1 ⊆ E. G1 , G2 und G3 sind Subgraphen von G. G3 ist Subgraph von G2 . Kapitel 6 “Graphentheorie” – p.17/42 Graph- und Subgraphisomorphismus (3) Definition Ein Subgraphisomorphismus von Graph G1 = (V1 , E1 ) nach G2 = (V2 , E2 ) ist ein Isomorphismus zwischen G1 und einem Teilgraphen von G2 . Beispiel: Erkennung von Subgraphisomorphismen ist noch schwieriger Kapitel 6 “Graphentheorie” – p.18/42 Graph- und Subgraphisomorphismus (4) Komplexität: Subgraphisomorphismus: N P-vollständig Graphisomorphismus: höchstwahrscheinlich nicht N P-vollständig; Es existiert jedoch kein Algorithmus in polynomieller Zeit (ausser für Spezialklassen von Graphen). Anwendungen: Vergleich von strukturellen Beschreibungen Vergleich von Molekülen Anwendungen im Bildverstehen (Vergleich zwischen Modell- und Szenenbeschreibung) Kapitel 6 “Graphentheorie” – p.19/42 Planare Graphen (1) Formal ist ein Graph durch (V, E) vollständig beschrieben. Anschaulich erst dann, wenn ein Graph gezeichnet wird. Übersichtliche Zeichnung: Anzahl der Schnittpunkte von Kanten möglichst gering halten. Besonders übersichtlich wird die Zechnung, wenn solche Überkreuzungen total vermieden werden. Definition Ein Graph heisst planar, wenn man ihn so zeichnen (man sagt auch: in die Ebene einbetten) kann, dass sich keine Kanten kreuzen. Ein ebener Graph ist ein planarer Graph zusammen mit seiner Darstellung in der Ebene. Beispiel: Ein planarer Graph (links) mit seiner Eintettung (rechts) Kapitel 6 “Graphentheorie” – p.20/42 Planare Graphen (2) Beispiel: Vollständiger Graph K4 (links) ist planar. K5 (rechts) nicht planar: Sämtliche Versuche, ihn planar darzustellen, schlagen spätestens an der letzten Kante fehl. Quiz: Ist Kn eulersch? Kapitel 6 “Graphentheorie” – p.21/42 Planare Graphen (3) Definition Ein Graph G = (V, E) ist bipartit, wenn die Knotenmenge V in zwei Mengen A und B partitioniert werden kann, so dass alle Kanten einen Knoten aus A mit einem Knoten aus B verbinden. Definition Ein vollständiger bipartiter Graph Km,n besteht aus zwei Mengen A und B mit m bzw. n Knoten, wobei jeder Knoten aus A mit jedem Knoten aus B durch eine Kante verbunden ist. Beispiel: K2,n , n beliebig, ist planar (links K2,3 ). K3,3 (rechts) nicht planar. Kapitel 6 “Graphentheorie” – p.22/42 Planare Graphen (4) Ebene Darstellungen planarer Graphen sind i.A. nicht eindeutig. Allerdings gelten gewisse Invarianzen. Beispielsweise ist in jeder beliebigen ebenen Darstellung die Anzahl der Gebiete (das äussere Gebiet zählt man mit) konstant. Satz (Eulersche Polyederformel) Sei G = (V, E) ein zusammenhängender Graph. Dann gilt: #Gebiete = |E| − |V | + 2 Beweis: Durch Induktion über Anzahl der Knoten. Der Fall mit einem Knoten ist trivial. Für einen Graphen Gn = (Vn , En ) mit n Knoten wählen wir einen beliebigen Knoten vn aus Vn : Gn = (Vn , En ) = (Vn−1 ∪ {vn }, En−1 ∪ E ∗ ) wobei Vn−1 = Vn \{vn }, E ∗ die von vn ausgehenden Kanten und En−1 die restlichen Kanten enthält. Jede beliebige ebene Darstellung von Gn beinhaltet eine ebene Darstellung von Gn−1 plus vn und E ∗ , wobei das Letztere deg(vn ) − 1 zusätzliche Gebiete hervorbringt. Somit gilt: #Gebiete(Gn ) = #Gebiete(Gn−1 ) + deg(vn ) − 1 = (|En−1 | − |Vn−1 | + 2) + |E ∗ | − 1 = |En | − |Vn | + 2 Kapitel 6 “Graphentheorie” – p.23/42 Planare Graphen (5) Satz Für jeden planaren Graphen G = (V, E) mit |V | ≥ 3 Knoten gilt: |E| ≤ 3|V | − 6 Beweis: Seien R die durch die Einbettung von G entstehenden Gebiete. Jedes Gebiet wird on mindestens 3 Kanten begrenzt und jede Kante begrenzt höchstens zwei Gebiete. Daraus folgt, dass 3|R| ≤ 2|E|. Und zusammen mit der eulerschen Formel erhalten wir: 2 |E| ≥ |R| = |E| − |V | + 2 3 woaus das gewünschte Resultat folgt. Beispiel: K5 ist nicht planar (|V | = 5, |E| = 5 2 = 10) Beispiel: Mit dem obigen Satz können wir nicht zeigen, dass K3,3 (|V | = 6, |E| = 9) nicht planar ist. Dafür wird eine strengere Schranke für die Anzahl Kanten eines planaren Graphen benötigt. Kapitel 6 “Graphentheorie” – p.24/42 Planare Graphen (6) Definition Ein Graph G1 wird Minor des Graphen G2 genannt, falls G1 isomorph zu einem durch Knotenverschmelzung entstandenen Untergraphen von G2 ist. Knotenverschmelzung bedeutet hier, dass zwei benachbarte Knoten v1 und v2 unter Entfernung einer diese beiden Knoten verbindenden Kante zu einem Knoten v12 verschmolzen werden, wobei alle restlichen Kanten beibehalten werden. Beispiel: Der rechte Graph ist jeweils ein Minor des linken Graphen Kapitel 6 “Graphentheorie” – p.25/42 Planare Graphen (7) Satz (Kuratowski) Ein Graph G ist genau dann planar, wenn G keinen Teilgraphen G′ enthält, so dass K5 oder K3,3 ein Minor von G′ ist. Beispiel: Der Petersen-Graph ist nicht planar. Der Petersen-Graph steht im Titelblatt von Journal of Graph Theory, Discrete Mathematics, und dem Buch “Graph Theory” von Harary. Kapitel 6 “Graphentheorie” – p.26/42 Planare Graphen (8) Bei Anwendungen planarer Graphen (z.B. Visualisierung von Strukturen oder Objekten) steht der algorithmische Aspekt im Vordergrund. Es exisitieren Verfahren, die in O(|V | + |E|) Zeit testen, ob ein Graph G = (V, E) planar ist, und falls ja, diesen auch in die Ebene einzubetten. Will man zusätzlich ästhetische Aspekte berücksichtigen, stösst man auf ein Forschungsgebiet mit zahlreichen unigelösten Problemen. Ein Grund liegt in der Schwierigkeit, überhaupt zu beschreiben, was man gerne hätte. Bsp. vier verschiedene Einbettungen desselben Graphen: Welches hiervon die richtige, schönste oder anschaulichste ist, hängt vom Kontext und nicht zuletzt auch vom Geschmack des Betrachters ab. Kapitel 6 “Graphentheorie” – p.27/42 Färben von Graphen (1) Definition Eine Knotenfärbung eines Graphen G = (V, E) mit k Farben ist eine Abbildung c : V → [k], so dass gilt: c(u) 6= c(v) für alle Kanten (u, v) ∈ E Die chromatische Zahl χ(G) ist die minimale Anzahl Farben, die für eine Knotenfärbung von G benötigt wird. Beispiel: Der vollständige Graph Kn hat chromatische Zahl n. Kreise Cn gerader Länge n haben chromatische Zahl 2, Kreise Cn ungerader Länge n haben chromatische Zahl 3. 1 1 2 5 3 4 K5 2 2 1 1 1 2 C6 2 3 1 2 C5 Kapitel 6 “Graphentheorie” – p.28/42 Färben von Graphen (2) Satz Ein Graph ist genau dann bipartit, wenn die chromatische Zahl 2 ist. Bipartiter Graph mit Knotenteilmengen A und B schreibt man mit (A ⊎ B, E). Satz Ein zusammenhängender Graph G = (V, E) ist genau dann bipartit, wenn er keinen Kreis ungerader Länge als Teilgraphen enthält. Beweis: Die eine Richtung folgt daraus, dass ungerade Kreis chromatische Zahl 3 haben, sie können daher in einem bipartiten Graphen nicht enthalten sein. Um die andere Richtung zu zeigen wählen wir einen beliebigen Knoten v aus. Alle Knoten, die einen geraden Abstand mit v haben (einschliesslich v selbst mit Abstand 0), werden mit 1 und alle anderen Knoten mit 2 gefärbt. Da keine Kreise ungerader Länge existieren, ist diese Färbung zulässig. Definition Der Abstand zwischen zwei Knoten u und v ist die minimale Anzahl von aufeinander folgenden Kanten, um von u aus v zu erreichen. Kapitel 6 “Graphentheorie” – p.29/42 Färben von Graphen (3) Anwendungen von Knotenfärbung: Färben von politischen Landschaften: benachbarte Länder bekommen unterschiedliche Farben Visualisierung von Segmentierungsergebnissen in der Bildverarbeitung Kapitel 6 “Graphentheorie” – p.30/42 Färben von Graphen (4) Satz (Vierfarbensatz) Für jeden planaren Graphen G gilt χ(G) ≤ 4. Ken Appel und Wolfgang Haken fanden 1977 einen Beweis mit Hilfe des Computers. Der Beweis reduzierte die Anzahl der problematischen Fälle von Unendlich auf 1.936 (eine spätere Version sogar 1.476), die durch einen Computer einzeln geprüft wurden. 1996 konnten Neil Robertson, Daniel Sanders, Paul Seymour und Robin Thomas einen modifizierten Beweis finden, der die Fälle auf 633 reduzierte. Auch diese mussten per Computer geprüft werden. Der Vierfarbensatz war das erste grosse mathematische Problem, das mit Hilfe von Computern gelöst wurde. Deshalb wurde der Beweis von einigen Mathematikern nicht anerkannt, da er nicht direkt durch einen Menschen nachvollzogen werden kann. Schliesslich muss man sich auf die Korrektheit des Compilers und der Hardware verlassen. Auch die mathematische Eleganz des Beweises wurde kritisiert (“Ein guter Beweis liest sich wie ein Gedicht – dieser sieht aus wie ein Telefonbuch!”). Kapitel 6 “Graphentheorie” – p.31/42 Färben von Graphen (5) Es existiert ein einfacher Beweis für: Satz (Fünffarbensatz) Für jeden planaren Graphen G gilt χ(G) ≤ 5. Es existiert ein Algorithmus mit Laufzeit O(|V |2 ), der einen planaren Graphen mit höchstens vier Farben färbt. I.A. ist das Färben von Graphen ein schwieriges Problem. Schon die scheinbar einfache Frage “Gegeben ein Graph G = (V, E), gilt χ(G) ≤ 3?” ist N P-vollständig. Greedy-Algorithmus: Wir besuchen die Knoten des Graphen in einer beliebigen Reihenfolge v1 , v2 , . . . , vn und ordnen dem aktuellen Knoten jeweils die kleinste Farbe zu, die noch nicht für einen benachbarten, bereits besuchten Knoten verwendet wird. Kapitel 6 “Graphentheorie” – p.32/42 Färben von Graphen (6) Definition Eine Kantenfärbung eines Graphen G = (V, E) mit k Farben ist eine Abbildung c : E → [k], so dass gilt: c(e1 ) 6= c(e2 ) für zwei beliebige benachbarte Kanten e1 und e2 Der chromatische Index χ′ (G) ist die minimale Anzahl Farben, die für eine Kantenfärbung von G benötigt wird. Beispiel: Desargues-Grap: 3-regulärer Graph (alle Knoten mit Grad 3) mit 20 Knoten und 30 Kanten Kapitel 6 “Graphentheorie” – p.33/42 Färben von Graphen (7) Satz (Vizing) Sei ∆(G) der maximale Grad aller Knoten eines Graphen G. Es gibt einen Algorithmus, der die Kanten eines Graphen G = (V, E) in Zeit O(|V | · |E|) so färbt, dass es gilt: ∆(G) ≤ χ′ (G) ≤ ∆(G) + 1 Beispiel: Petersen-Graph. χ = 3 und χ′ = 4. Kapitel 6 “Graphentheorie” – p.34/42 Matchings von Graphen (1) Definition Eine Kantenmenge M ⊆ E eines Graphen G = (V, E) heisst Matching (Paarung), wenn je zwei beliebige verschiedene Kanten aus M disjunkt sind, d.h. sie besitzen keine gemeinsamen Knoten. Ist ein Knoten in einer Kante einer Paarung enthalten, so nennt man ihn von der Paarung überdeckt. Eine Paarung M nennt man maximal oder nicht erweiterbar, wenn man keine weitere Kante e aus E zu M hinzufügen kann, so dass M ∪ {e} eine Paarung ist. Gibt es in G keine Paarung, die mehr Elemente als M enthält, so nennt man M grösste Paarung. Ist jeder Knoten von V Element einer Kante von M (also von M überdeckt), so nennt man M eine perfekte Paarung. Beispiel: M = {e} für jede Kanten e ∈ E ist ein Matching Beispiel: Matching (links), perfektes Matching (Mitte) Kapitel 6 “Graphentheorie” – p.35/42 Matchings von Graphen (2) Beispiel: Nicht jeder Graph enthält ein perfektes Matching; insb. bei Graphen mit ungerader Anzahl von Knoten. Es gibt sogar Graphen mit beliebig vielen Knoten, deren grösstes Matching aus einer einzigen Kante besteht. Dies sind z.B. die sog. Sterngraphen Sn . Kapitel 6 “Graphentheorie” – p.36/42 Matchings von Graphen (3) Beispiel: Heiratsproblem Es gibt sieben heiratswillige Frauen und auch sieben Männer, die als Ehepartner in Erwägung kommen. Jede Frau stellte eine Liste von potentiellen Ehepartnern zusammen und man stellte sich die Frage, ob alle Frauen verheiraten können, ohne Bigamie zu betreiben. Die potentiellen Ehepartner sind in Tabellenform angegeben. Rechts: Der Graph für dieses Problem mit der rot markierten Lösung. F1 F2 F3 F4 F5 F6 F7 M2 , M3 M2 , M3 M1 , M3 , M4 , M5 , M6 M2 , M3 , M4 , M7 M4 , M6 M5 , M7 M2 , M3 , M7 Kapitel 6 “Graphentheorie” – p.37/42 Matchings von Graphen (4) Beispiel: Stellenvermittlung beim Arbeitsamt Dem Arbeitsamt liegen vier Stellenangebote und ebenso viele Stellengesuche vor. Bipartiter Graph (links): Jeder Knoten in der linken Teilmenge steht für einen Arbeitssuchenden und jeder in der rechten für eine offene Stelle. Eine Kante zwischen einem Arbeitssuchenden und einem Stellenangebot bedeutet, dass er für den entsprechenden Beruf qualifiziert ist. Mitte: Matching. Rechts: Grösstes Matching. Kapitel 6 “Graphentheorie” – p.38/42 Matchings von Graphen (5) Nachbarschaft eines Knotens v ∈ V : Γ(v) = { u ∈ V | (u, v) ∈ E } Nachbarschaft einer Knotenmenge X ⊆ V : Γ(X) = ∪v∈X Γ(v) Satz (Hall) Für einen bipartiten Graphen G = (A ⊎ B, E) gibt es genau dann eine Matching M der Kardinalität |M | = |A|, wenn gilt: |Γ(X)| ≥ |X| für alle X ⊆ A Korollar Erfüllt ein bipartiter Graph G = (V, E) die Bedingungen des Satzes von Hall, so kann man ein Matching M der Kardinalität |M | = |A| in Zeit O(|V | · |E|) bestimmen. Kapitel 6 “Graphentheorie” – p.39/42 Bäume und Wälde (1) Definition Ein Baum ist ein zusammenhängender, kreisfreier Graph. Ein Wald ist Graph, dessen Komponenten Bäume sind. Ein Knoten v eines Baumes mit Grad deg(v) = 1 heisst Blatt. Lemma Jeder Baum T = (V, E) mit |V | ≥ 2 Knoten enthält mindestens zwei Blätter. Lemma Ist T = (V, E) ein Baum mit |V | ≥ 2 Knoten und u ∈ V ein Blatt, so bleibt der Graph nach Entfernung von u und von u ausgehenden Kanten ein Baum. Satz Ist T = (V, E) ein Baum, dann gilt: |E| = |V | − 1 Kapitel 6 “Graphentheorie” – p.40/42 Bäume und Wälde (2) Lemma Sei T = (V, E) ein Baum und v ∈ V ein beliebiger Knoten. Nach Entfernung von v und von v ausgehenden Kanten entstehen k = deg(v) Bäume. Lemma Nach Entfernung einer Kante in einem Baum entstehen genau zwei Bäume. Das folgende Lemma zeigt, dass der Grund für das Zerfallen des Baumes die Kreisfreiheit ist. Wenn ein Graph einen Kreis enthält, kann man eine Kante aus dem Kreis entfernen, ohne dass der Zusammenhang verloren geht. Lemma Sei G = (V, E) ein zusammenhängender Graph und C ein Kreis in G. Dann gilt für alle im Kreis C enthaltenen Kanten e: Ge = (V, E\{e}) ist zusammenhängend Kapitel 6 “Graphentheorie” – p.41/42 Bäume und Wälde (3) Wieviele Bäume mit 3 Knoten gibt es? 2 1 2 3 1 2 3 1 3 Diese drei Bäume haben dieselbe Form, unterscheiden sich nur in den Namen; sie sind also isomorph zueinander. Bei der Untersuchung der Anzahl Bäume mit n Knoten muss man sich unterscheiden: Die Namen der Knoten sollen berücksichtigt werden (markierte Bäume) Nur die verschiedenen Formen zählen, also die Anzahl nicht-isomorpher Bäume Anzahl Bäume n=2 n=3 n=4 n=5 n=6 n=7 n=8 markiert 1 3 16 125 1296 16807 262144 nicht-isomorph 1 1 2 3 6 11 23 Obwohl es wesentlich mehr markierte Bäume gibt, ist es viel einfacher, ihre Anzahl zu bestimmen, als die der nicht-isomorphen Bäume. Satz (Cayley) Für n ≥ 2 Knoten gibt es genau nn−2 markierte Bäume. Kapitel 6 “Graphentheorie” – p.42/42