Graphen
Graphentheorie Graphentheorie Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke 2
Was ist ein Graph? Ein Graph ist in der Graphentheorie eine abstrakte Struktur, die eine Menge von Objekten zusammen mit den zwischen diesen Objekten bestehenden Verbindungen repräsentiert. Die mathematischen Abstraktionen der Objekte werden dabei Knoten (auch Ecken) des Graphen genannt. Die paarweisen Verbindungen zwischen Knoten heißen Kanten (manchmal auch Bögen). Die Kanten können gerichtet oder ungerichtet sein. Häufig werden Graphen anschaulich gezeichnet, indem die Knoten durch Punkte und die Kanten durch Linien dargestellt werden. 3
Was sind also Graphen? Strukturen, gebildet aus einer endlichen Anzahl von Knoten (verteces), die durch Kanten (edges) verbunden sein können. 4
Anwendung von Graphen 5 Viele reale Probleme lassen sich durch Graphen darstellen und somit auf graphentheoretische Fragestellungen zurückführen Georg Cantor, 1867: In der Mathematik ist die Kunst des Fragestellens öfter gebräuchlich als die des Lösens! Verkehrswege zwischen Städten kürzeste Wege Transportwege mit Kapazitäten maximale Flüsse Zugmöglichkeiten in Spielen Gewinnstrategien
Anwendung von Graphen 6 In der Graphentheorie interessieren uns ausschließlich die Beziehungen zwischen den Knoten (deren Topologie). Topologie (topos Ort, Platz, logos Lehre, Wissen) Die Lehre von den Eigenschaften von Räumen, die bei Abbildungen, die die Lagebeziehungen zwischen den Elementen des Raumes erhalten, unverändert bleiben (Verzerrungen, die nicht zum Zerreißen führen).
Einschub Topologie Beispiel U-Bahn Karte 7
Graphen; Grundlagen Einschub Topologie Eine Kaffeetasse und ein Donut haben die gleiche Topologie. 8 http://en.wikipedia.org/wiki/topology
Einschub Topologie In der (mengentheoretischen) Topologie untersucht man für jedes Element die Teilmengen, die man als die Umgebungen dieses Elements definiert hat. Hierbei spielt der Abstand der Elemente keine Rolle, ganz generell interessieren hierbei metrische Eigenschaften (wie Streckenlängen, Winkellängen, Krümmungen) in der Regel nicht. 9
Einschub Topologie Zwei topologisch äquivalente Graphen Man kann zum Beispiel die Knoten im rechten Graphen so bewegen, dass er genauso wie der linke aussieht. 10
Einschub Topologie Topologische Grundbegriffe: auf dem Rand, innen, außen, sich schneidend, geschlossen keine topologischen Grundbegriffe: eckig, rund, links, rechts, oben, unten, da sie z.b. bei Achsenspiegelungen nicht unverändert bleiben. 11
Anwendung von Graphen 12 In der Graphentheorie interessiert uns: Welcher Knoten ist mit welchen anderen verbunden? Komme ich über gegebene Verbindungen von einem Knoten zu einem anderen? Wie viele Verbindungen muss ich überqueren, um von einem Knoten zu einem anderen zu kommen? Welches ist der kürzeste Weg, um von einem Knoten zu einem anderen zu gelangen? Gibt es einen Weg der alle Knoten/Kanten genau einmal besucht?
Anwendung von Graphen Königsberger Brückenproblem: Kann man einen Spaziergang durch Königsberg machen und dabei über jede Brücke genau einmal gehen und nach dem Spaziergang wieder zum Ausgangspunkt zurückkehren? 13
Anwendung von Graphen Königsberger Brückenproblem vom Problem zum Graph und dem graphentheoretischen Problem. 14 Euler zeigte, dass ein Rundweg der gesuchten Art genau dann möglich ist, wenn sich an keinem der Ufer (Knoten) eine ungerade Zahl von Brücken (Kanten) befindet. Da aber zu allen vier Gebieten von Königsberg eine ungerade Zahl von Brücken führten, war der gesuchte Rundweg nicht möglich.
Anwendung von Graphen Das Haus vom Nikolaus: Entscheide, ob man das Haus zeichnen kann, ohne den Stift abzusetzen und ohne eine Linie doppelt zu ziehen. 15
Anwendung von Graphen Städtetour: Entscheide, ob man beginnend in einem Knoten (einer Stadt) alle Städte genau einmal bereisen kann und wieder in der ersten Stadt ankommt. 16
Einige spezielle Graphen Graphen dürfen in manchen Fällen auch Mehrfachkanten und Schleifen haben. Parallele Kanten Schleifen 17
Definition: Eine Schleife (oder Schlinge) ist eine Kante der Form {u, u}. u 18
Definition: Ist E eine Multimenge (d. h. Kanten treten mit Vielfachheit auf), dann sind die Kanten mit Vielfachheit 2 oder größer Mehrfachkanten. Ein Graph, der Mehrfachkanten enthält, heißt auch Multigraph. v 19 u
Einige spezielle Graphen Ein Graph heißt einfach, falls er keine Schlingen oder Mehrfachkanten enthält. 20
Vollständige Graphen In vollständigen Graphen K n sind alle n Knoten miteinander verbunden. K1 K2 K3 K4 K5 K6 Frage: Wieviele Kanten gibt es in einem vollständigen Graphen mit n Knoten. 21
Vollständige Graphen K1 K2 K3 K4 K5 K6 22 Für die Anzahl der Kanten in einem vollständigen Graphen mit n Knoten (und damit für die maximale Anzahl von Kanten in einem einfachen Graphen) gilt: E n 2 nn ( 1) 2
Kreise In Kreisen C n sind alle n (n 3) Knoten zyklisch miteinander verbunden. C3 C4 C5 C6 C7 C8 23
Ein Gittergraph besteht aus einem Gitter mit m Zeilen und n Spalten. 24
(fakultativ) (Binärer) Hyperwürfel 25 Definition: Ein Graph G = (V,E) heißt n-dimensionaler binärer Hyperwürfel (Q n ), falls V = V n = {0, 1} n mit E = {{v,w} V n2 : Hamming-Abstand(v,w) = 1}. Hamming-Distanz: Maß für die Unterschiedlichkeit von Zeichenketten - an wie vielen Stellen unterscheiden sich zwei Zeichenketten.
(fakultativ) (Binäre) Hyperwürfel 26
(fakultativ) Q 4 : 4-dimensionaler Hyperwürfel 27
(fakultativ) Q 8 : 8-dimensionaler Hyperwürfel 28
(fakultativ) Hyperwürfel Für die Anzahl der Knoten in Q n gilt: V = 2 n Für die Anzahl der Kanten in Q n gilt: n 2 E n n 2 2 n 1 29
Bipartite Graphen Der Graph kann in zwei Teile zerlegt werden, so dass alle Kanten zwischen diesen Teilen verlaufen. 30 V1 V2
Wege, Pfade, Kreise 31 Ein Weg der Länge k in einem Graphen G = (V,E) ist eine nichtleere Folge w = (v 0,,v k ) von Knoten aus V, so dass {v i,v i+1 } E für alle i = 0,,k-1. (Beachte: (v_0) ist ein Weg der Länge 0.) Ein Pfad in G ist ein Weg in G, in dem alle Knoten paarweise verschieden sind. Ein Kreis der Länge k (k 3) in G ist ein Weg w = (v 0,,v k ) in dem v 0,, v k-1 paarweise verschieden sind und v 0 = v k.
Pfade Definition: Der Graph P n ist der Graph (V,E) mit V = {v 1,,v n } und E = {v i, v i+1 }; i = 1,,n 1. 32
Wege und Pfade Beispiel: Ein Weg der Länge 7, der aber kein Pfad ist. 33
Wenn G = (V,E) ist, dann heißen u und v adjazent, wenn {u,v} E, heißen u und v Endknoten der Kante {u,v} E, heißen u V und e E inzident, wenn u Endknoten der Kante e ist, ist u V erreichbar von v V, falls es einen Pfad P mit Anfangsknoten v und Endknoten u gibt. 34
Wenn G = (V,E) ist, dann heißt G zusammenhängend, wenn er nur eine Komponente hat. 35
Darstellung von Graphen Neben der bisherigen Darstellung können Graphen in Form von Adjazenzmatrizen und Inzidenzmatrizen dargestellt werden. Bei Nummerierung der Ecken (u 1,,u n ) und Kanten (e 1,,e m ) ist die Adjazenzmatrix die n x n-matrix A mit Einträgen a ij 1 falls u u 0 sonst. i K 36
Darstellung von Graphen Neben der bisherigen Darstellung können Graphen in Form von Adjazenzmatrizen und Inzidenzmatrizen dargestellt werden. Adjazenz liegt dann vor, wenn zwei Knoten über eine Kante miteinander verbunden sind. Somit bezeichnet Adjazenz die Beziehungen zwischen gleichartigen Elementen eines Graphen. Ebenso ist Adjazenz bei in einem Knoten endenden Kanten gegeben. Inzidenz ist die Eigenschaft, gemeinsame Punkte zu besitzen, sie ist die Beziehung zwischen einer Geraden und einem auf ihr liegenden Punkt. k 37
Darstellung von Graphen Ajazenzmatrix 38
Darstellung von Graphen Inzidenzmatrix 39
Isomorphe Graphen sind in ihrer Struktur gleich. Graphen in den Spalten sind einander jeweils isomorph. 40
Isomorphe (strukturgleiche) Graphen 3 d 4 2 e c 0 1 Die Abbildung ist: 0 1 2 3 4 a b c d e Die Graphen sind offensichtlich isomorph. a b 41
Isomorphe Graphen Sind die beiden folg. Graphen isomorph? Beachte die Gradfolgen (aufsteigend geordnete Folge der Knotengrade) der beiden Graphen. 42
Zusammenhängende Graphen Definition: Ein Graph G = (V,E) heißt zusammenhängend, wenn für jedes Paar von Knoten u,v V ein Pfad von u nach v in G existiert. Ansonsten heißt der Graph unzusammenhängend. 43
Zusammenhangskomponenten eines Graphen Beispiel: Ein Graph bestehend aus drei Zusammenhangskomponenten 44
Graphkomponenten Satz: Jeder Graph G = (V,E) enthält mindestens V - E viele Zusammenhangskomponenten. Anzahl der Knoten - Anzahl der Kanten Dies ist ein Graph mit 4 starken Zusammenhangskomponenten. In jeder solchen Komponente ist jeder Knoten von jedem anderen aus erreichbar; wird die Komponente verlassen, gibt es keinen Weg mehr zurück. 45
Graphkomponenten Satz: Für jeden zusammenhängenden Graph G = (V,E) 46 gilt: E V - 1. 6 Kanten 7 Knoten -1 Beweis: Da ein zusammenhängender Graph aus genau einer Komponente besteht, folgt aus dem vorherigen Satz, dass V - E 1.
Bisher haben wir ausschließlich ungerichtete Graphen besprochen, d.h. die Kantenmenge besteht aus ungeordneten Paaren {u, v}. Ein gerichteter Graph ist ein Paar (V,E), bestehend aus einer Menge von Knoten und einer Menge gerichteter Kanten. 47
Gerichtete Graphen Ein gerichteter Pfad ist eine Folge von verschiedenen Knoten u 1,,u n mit u i u i+1 (d.h. es existiert eine gerichtete Kante von u i nach u i+1 ) für alle i. Ein gerichteter Kreis wird analog definiert. Ein Graph G, der keinen gerichteten Kreis enthält, heißt azyklisch. 48
Gerichtete Graphen Anwendung Prozessabhängigkeiten: Programm A benötigt Ergebnisse von B und C Programm B benötigt Ergebnisse von D und E Programm C benötigt Ergebnisse von B und D Programm D benötigt keine Ergebnisse Programm E benötigt Ergebnisse von A und C Frage: Funktioniert ein so konstruiertes Programm? 49
Gerichtete Graphen Anwendung Prozessabhängigkeiten Bei Darstellung als Graph erkennen wir einen Zyklus: A wartet auf B B wartet auf E E wartet auf A! 50
Gerichtete Graphen Azyklische gerichtete Graphen G spielen eine zentrale Rolle in Transportproblemen. G enthält immer spezielle Knoten, sog. Quellen, aus denen Kanten nur ausgehen, und sog. Senken, in die Kanten nur eingehen, da jeder azyklische Graph mindestens einen Knoten v mit d + (v) = 0 und mindestens einen Knoten w mit d (w) = 0 besitzt. In Transportproblemen wollen wir möglichst viel von den Quellen zu den Senken transportieren. 51
Beispiel dag (directed acyclic graph) 52