Graphen Graphentheorie • Graphentheorie – Grundlagen – Bäume – Eigenschaften von Graphen – Graphen-Algorithmen – Matchings und Netzwerke 2 Graphen; Grundlagen • 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 Graphen; Grundlagen • Was sind also Graphen? – Strukturen, gebildet aus einer endlichen Anzahl von Knoten (verteces), die durch Kanten (edges) verbunden sein können. 4 Graphen; Grundlagen • Anwendung von Graphen – 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 5 Graphen; Grundlagen • Anwendung von Graphen – 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). 6 Graphen; Grundlagen • 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 Graphen; Grundlagen • 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 Graphen; Grundlagen • 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 Graphen; Grundlagen • 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 Graphen; Grundlagen • Anwendung von Graphen – In der Graphentheorie interessiert uns: 12 • 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? Graphen; Grundlagen • 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 Graphen; Grundlagen • 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. Graphen; Grundlagen • 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. Lösung 15 Graphen; Grundlagen • 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 Lösung für den Dodekaeder Graphen; Grundlagen • Einige spezielle Graphen – Graphen dürfen in manchen Fällen auch Mehrfachkanten und Schleifen haben. Schleifen Parallele Kanten 17 Graphen; Grundlagen • Definition: Eine Schleife (oder Schlinge) ist eine Kante der Form {u, u}. u 18 Graphen; Grundlagen • 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 Graphen; Grundlagen • Einige spezielle Graphen – Ein Graph heißt einfach, falls er keine Schlingen oder Mehrfachkanten enthält. 20 Graphen; Grundlagen • Vollständige Graphen – In vollständigen Graphen Kn 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 Graphen; Grundlagen • Vollständige Graphen K1 K2 K4 K3 K5 K6 – 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: n n(n 1) E 22 2 2 Graphen; Grundlagen • Kreise – In Kreisen Cn sind alle n (n miteinander verbunden. C3 23 C4 C5 3) Knoten zyklisch C6 C7 C8 Graphen; Grundlagen • Ein Gittergraph besteht aus einem Gitter mit m Zeilen und n Spalten. 24 Graphen; Grundlagen (fakultativ) • (Binärer) Hyperwürfel Definition: Ein Graph G = (V,E) heißt n-dimensionaler binärer Hyperwürfel (Qn), falls V = Vn = {0, 1}n mit E = {{v,w} Vn2: Hamming-Abstand(v,w) = 1}. – Hamming-Distanz: Maß für die Unterschiedlichkeit von Zeichenketten - an wie vielen Stellen unterscheiden sich zwei Zeichenketten. 25 Graphen; Grundlagen (fakultativ) • (Binäre) Hyperwürfel 26 Graphen; Grundlagen (fakultativ) • Q4: 4-dimensionaler Hyperwürfel 27 Graphen; Grundlagen (fakultativ) • Q8: 8-dimensionaler Hyperwürfel 28 Graphen; Grundlagen (fakultativ) • Hyperwürfel Für die Anzahl der Knoten in Qn gilt: |V| = 2n Für die Anzahl der Kanten in Qn gilt: E 2n n 2 n 2n animierter Hyperwürfel 29 1 Graphen; Grundlagen • Bipartite Graphen Der Graph kann in zwei Teile zerlegt werden, so dass alle Kanten zwischen diesen Teilen verlaufen. 30 V1 V2 Graphen; Grundlagen • Wege, Pfade, Kreise 31 – Ein Weg der Länge k in einem Graphen G = (V,E) ist eine nichtleere Folge w = (v0,…,vk) von Knoten aus V, so dass {vi,vi+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 = (v0,…,vk) in dem v0, …, vk-1 paarweise verschieden sind und v0 = vk. Graphen; Grundlagen • Pfade Definition: Der Graph Pn ist der Graph (V,E) mit V = {v1,…,vn} und E = {vi, vi+1}; i = 1,…,n−1. 32 Graphen; Grundlagen • Wege und Pfade Beispiel: Ein Weg der Länge 7, der aber kein Pfad ist. 33 Graphen; Grundlagen • 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 Graphen; Grundlagen • Wenn G = (V,E) ist, dann heißt G zusammenhängend, wenn er nur eine Komponente hat. 35 Graphen; Grundlagen • Darstellung von Graphen – Neben der bisherigen Darstellung können Graphen in Form von Adjazenzmatrizen und Inzidenzmatrizen dargestellt werden. – Bei Nummerierung der Ecken (u1,…,un) und Kanten (e1,…,em) ist die Adjazenzmatrix die n x n-Matrix A mit Einträgen aij 36 1 falls ui u 0 K sonst. Graphen; Grundlagen • 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 Graphen; Grundlagen • Darstellung von Graphen Ajazenzmatrix 38 Graphen; Grundlagen • Darstellung von Graphen Inzidenzmatrix 39 Graphen; Grundlagen • Isomorphe Graphen sind in ihrer Struktur gleich. Graphen in den Spalten sind einander jeweils isomorph. 40 Graphen; Grundlagen • Isomorphe (strukturgleiche) Graphen 3 d 4 2 e c 0 1 a b Die Abbildung ist: 01234 abcde Die Graphen sind offensichtlich isomorph. 41 Graphen; Grundlagen • Isomorphe Graphen Sind die beiden folg. Graphen isomorph? – Beachte die Gradfolgen (aufsteigend geordnete Folge der Knotengrade) der beiden Graphen. 42 Graphen; Grundlagen • 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 Graphen; Grundlagen • Zusammenhangskomponenten eines Graphen Beispiel: Ein Graph bestehend aus drei Zusammenhangskomponenten 44 Graphen; Grundlagen • 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 Graphen; Grundlagen • Graphkomponenten Satz: Für jeden zusammenhängenden Graph G = (V,E) gilt: |E| |V| - 1. 6 Kanten ≤ 7 Knoten -1 46 Beweis: Da ein zusammenhängender Graph aus genau einer Komponente besteht, folgt aus dem vorherigen Satz, dass |V| - |E| 1. Graphen; Grundlagen • 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 Graphen; Grundlagen • Gerichtete Graphen Ein gerichteter Pfad ist eine Folge von verschiedenen Knoten u1,…,un mit ui ui+1 (d.h. es existiert eine gerichtete Kante von ui nach ui+1) für alle i. Ein gerichteter Kreis wird analog definiert. Ein Graph G, der keinen gerichteten Kreis enthält, heißt azyklisch. 48 Graphen; Grundlagen • 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 Graphen; Grundlagen • 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 Graphen; Grundlagen • 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 Graphen; Grundlagen • Beispiel dag (directed acyclic graph) 52