Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007



Ähnliche Dokumente
Das Briefträgerproblem

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

8 Diskrete Optimierung

Kombinatorische Optimierung

WS 2009/10. Diskrete Strukturen

Anmerkungen zur Übergangsprüfung

Algorithmen und Datenstrukturen 2

Primzahlen und RSA-Verschlüsselung

Konzepte der Informatik

1 topologisches Sortieren

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Informationsblatt Induktionsbeweis

Graphentheorie Mathe-Club Klasse 5/6

1 Mathematische Grundlagen

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

WS 2013/14. Diskrete Strukturen

Algorithmentheorie Maximale Flüsse

7 Rechnen mit Polynomen

Algorithmische Mathematik

3. Zusammenhang. 22 Andreas Gathmann

Einführung in die Algebra

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Grundlagen der Theoretischen Informatik, SoSe 2008

Guten Morgen und Willkommen zur Saalübung!

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Mathematische Grundlagen

Kapitel 6: Graphalgorithmen Gliederung

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

8. Quadratische Reste. Reziprozitätsgesetz

Algorithmen II Vorlesung am

WS 2008/09. Diskrete Strukturen

Minimale Darstellungen, Kommutator- und Fixräume, projektive Geometrie

Informatik I WS 07/08 Tutorium 24

Aus Knoten und Kanten, die Bezeichnungen haben können. Ein Graph, bei dem die Kanten Richtungen haben.

Zwischenablage (Bilder, Texte,...)

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

Expander Graphen und Ihre Anwendungen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Information Systems Engineering Seminar

Hochschule Karlsruhe Klausur EAI Prof. Dr. Christian Pape. Klausur EAI WS 05/06. Note: Bearbeitungszeit 90 Minuten Keine Hilfsmittel

Der Zwei-Quadrate-Satz von Fermat

Datenaufbereitung in SPSS. Daten zusammenfügen

Korrelation (II) Korrelation und Kausalität

Zeichen bei Zahlen entschlüsseln

Algorithmen und Datenstrukturen (WS 2007/08) 63

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Beispiel Zusammengesetzte Zufallsvariablen

Periodische Fahrpläne und Kreise in Graphen

Kapitel 15. Lösung linearer Gleichungssysteme

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Informatik IC2. Balazs Simon

Frohe Weihnachten und ein gutes neues Jahr!

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Wie Sie mit Mastern arbeiten

!(0) + o 1("). Es ist damit möglich, dass mehrere Familien geschlossener Orbits gleichzeitig abzweigen.

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen

Absolute Stetigkeit von Maßen

Programmiersprachen und Übersetzer

Data Mining: Einige Grundlagen aus der Stochastik

Algebraische Kurven. Vorlesung 26. Die Schnittmultiplizität

Beweisbar sichere Verschlüsselung

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Beispiellösungen zu Blatt 111

Anwendungshinweise zur Anwendung der Soziometrie

Erzeugung zufälliger Graphen und Bayes-Netze

Einführung in. Logische Schaltungen

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester gehalten von Harald Baum

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Mathematischer Vorbereitungskurs für Ökonomen

5 Graphen. Repräsentationen endlicher Graphen. 5.1 Gerichtete Graphen. 5.2 Ungerichtete Graphen. Ordnung von Graphen

2. Mathematik Olympiade 2. Stufe (Kreisolympiade) Klasse 7 Saison 1962/1963 Aufgaben und Lösungen

Musterlösungen zur Linearen Algebra II Blatt 5

Datenstrukturen & Algorithmen

Grundbegriffe der Informatik

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Erstellen von x-y-diagrammen in OpenOffice.calc

Seminar Analyse von Petrinetz-Modellen

Anleitung über den Umgang mit Schildern

Lineare Gleichungssysteme

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Hilfedatei der Oden$-Börse Stand Juni 2014

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

6.2 Scan-Konvertierung (Scan Conversion)

Auf der linken Seite wählen Sie nun den Punkt Personen bearbeiten.

WinVetpro im Betriebsmodus Laptop

Elexis-BlueEvidence-Connector

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

18. Magnetismus in Materie

Transkript:

Graphentheorie Rainer Schrader Organisatorisches Zentrum für Angewandte Informatik Köln 23. Oktober 2007 1 / 79 2 / 79 Organisatorisches Organisatorisches Dozent: Prof. Dr. Rainer Schrader Weyertal 80 Tel.: 470-6030 email: schrader@zpr.uni-koeln.de Übungen: Dipl.-Math. Stavros Kousidis Weyertal 80 Tel.: 470-6050 email: kousidis@zpr.uni-koeln.de Ort: Hörsaal Pohligstraße Zeit: Di 10 11.30, Mi 10 11.30 Teilnehmerkreis: Mathematik Wirtschaftsmathematik Wirtschaftsinformatik Naturwissenschaften.. url: www.zaik.uni-koeln.de/afs/teachings/courses/graph/index.html 3 / 79 4 / 79

Organisatorisches Organisatorisches Voraussetzungen: Grundkenntnisse in Mathematik (z.b. Mathematik für Chemiker und Wirtschaftsinformatiker) Vorlesungen Informatik I und Informatik II Grundkenntnisse in Komplexitätstheorie hilfreich, aber nicht notwendig Vorlesung weitgehend aus sich selbst heraus verständlich Folien hängen im Netz (jeweils am Ende der Woche) Übungsorganisation: Stavros Kousidis Anmeldung zu den Übungen über Homepage Scheinerwerb über Übungsteilnahme und Klausur Voraussetzungen für die Teilnahme an der Abschlussprüfung: 50% der Punkte aus den Übungen 5 / 79 6 / 79 Organisatorisches Literatur: R. Diestel: Graphentheorie, Springer B. Korte und J. Vygen: Combinatorial Optimization, Springer L. Lovász und M. Plummer: Matching Theory, North-Holland A. Schrijver: Combinatorial Optimization, Springer D. West: Introduction to Graph Theory, Prentice Hall Gliederung der Inhalte 1. 2. Komplexitätstheorie (light) 3. Zusammenhang 4. Planarität und Dualität 5. Eulersche Graphen 6. Kürzeste Wege 7. Flüsse 8. Matchings 9. Färbungen 10. prefekte Graphen 11. Zufallsgraphen 7 / 79 8 / 79

Gliederung Beispiele grundlegende Definitionen Operationen auf Graphen gerichtete Graphen Nachbarn und Grade Schnitte Pfade und Kreise Datenstrukturen 9 / 79 10 / 79 Eines der klassischen Probleme der Graphentheorie geht auf Euler zurück: Königsberger Brückenproblem (1736) der Pregel umfließt in Königsberg eine Insel und teilt sich danach die Stadtteile sind durch 7 Brücken verbunden: D Ein verwandtes Problem ist das folgende: Chinese-Postman-Problem (Mei-ko Kwan, 1965) ein Postbote muss Post verteilen er startet in seinem Stützpunkt und muss jede Straße seines Reviers mindestens einmal durchlaufen und abschließend zu seinem Stützpunkt zurückkehren C A gesucht ist eine Tour kürzester Länge B ist es möglich, an einer Uferstelle eine Rundgang zu beginnen, so dass jede Brücke genau einmal überquert wird? 11 / 79 12 / 79

Anwendung: die Leiterbahnen auf einem Chip werden mit einem Laser photochemisch geätzt der Laser startet in einer ausgezeichneten Ruheposition er muss jede Leiterbahn aktiv abfahren und abschließend zu seinem Ruhepunkt zurückkehren gesucht ist eine Steuerung des Lasers mit kürzest möglicher Produktionszeit Ein weiteres, bekanntes Problem ist das folgende: Vierfarben-Problem (Guthrie, 1852) gegeben ein Landkarte ist es möglich, die Länder so einzufärben, dass: benachbarte Länder verschieden Farben erhalten, und nur vier verschiedene Farben verwandt werden? 13 / 79 14 / 79 Verwandt dazu ist das: Museumswärter-Problem Ebenfalls verwandt ist das: Raumplan-Problem gegeben sei der Grundriss eines (einfachen) Museums gegeben seien die Veranstaltungszeiten von Übungen und Seminaren Übungsgruppen und Seminare beanspruchen etwa gleichgroße Räume zwei Veranstaltungen müssen in unterschiedlichen Räumen veranstaltet werden, wenn sie sich zeitlich überlappen wieviele Räume sind notwendig, um die Veranstaltungen durchführen zu können? Wärter können in jedem Punkt des Museums plaziert werden ihr Sichtfeld ist durch den Grundriss beschränkt wieviele Wärter sind notwendig, um jeden Punkt des Museums einsehen zu können? 15 / 79 16 / 79

Gliederung Beispiele grundlegende Definitionen Operationen auf Graphen gerichtete Graphen Nachbarn und Grade Schnitte Pfade und Kreise Datenstrukturen ein Graph G ist ein Paar G = (V, E ) mit E V V V ist eine endliche Menge von Knoten und E eine endliche Menge von Kanten jede Kante e entspricht einem ungeordneten Paar e = (u, v ) = (v, u) von Knoten um Verwechslungen zu vermeiden, schreiben wir auch V (G) und E (G) die Anzahl der Knoten eines Graphen wird oft als Ordnung des Graphen bezeichnet wir werden sehr oft setzen: V = n, E = m. 17 / 79 18 / 79 den leeren Graph G = (, ) schreiben wir als nicht zu verwechseln mit dem leeren Graphen auf n Knoten damit bezeichnen wir den Graphen G = (V, ) mit V = n ist e = (u, v ), so sagen wir, dass zwei Kanten mit einem gemeinsamen Endknoten heißen ebenfalls adjazent bzw. benachbart zwei Kanten e, f E heißen parallel, wenn e = (u, v ) = f wir sprechen dann auch von einer Mehrfachkante e die Knoten u und v verbindet eine Kante e mit e = (u, u) heißt Schlinge u und v Endknoten von e sind u und v benachbart bzw. adjazent sind Graphen ohne Mehrfachkanten und Schlingen heißen einfach u und v mit der Kante e inzidieren e mit den Knoten u und v inzidiert 19 / 79 20 / 79

ein einfacher Graphen auf n Knoten hat höchstens n(n 1)/2 Kanten wollen wir explizit Schlingen oder Mehrfachkanten zulassen, sprechen wir von einem Multigraphen wenn nicht ausdrücklich anders vorausgesetzt, werden wir stets einfache Graphen betrachten zur Veranschalichung eines Graphen werden Diagramme benutzt die Knoten werden als Punkte oder kleine Kreise gezeichnet und die Kanten als verbindende Linien Beispiel: viele der Aussagen lassen sich jedoch auf Multigraphen übertragen 1 b a c d 3 f g h j 5 k V = {1,..., 6} E = {a,..., k } e i 2 6 4 = {(1, 1), (1, 2), (2, 3), (2, 5), (2, 4), (3, 4), (3, 5), (4, 5), (4, 6), (5, 6), (5, 6)} 21 / 79 22 / 79 1 b a c d 3 f g h j 5 k die Lage der Punkte und die Gestalt der Verbindungen können beliebig gewählt werden zu einem Graphen existieren beliebig viele Diagramme zu jedem Diagramm existiert genau ein Graph 2 e 4 i 6 zwei Kanten können sich also auch in einem Punkt schneiden, ohne dass der Schnittpunkt einen Knoten des Graphen darstellt. wir werden uns später untersuchen, wann ein Graph so dargestellt werden kann, dass sich je zwei Kanten nur in einem Knoten schneiden die Knoten des Petersen-Graphen lassen sich als 2-elementige Teilmengen einer 5-elementigen Grundmenge auffassen 23 / 79 dabei sind zwei solche Teilmengen durch eine Kante verbunden, wenn sie disjunkt sind 24 / 79

umgekehrt können auch zwei verschiedene Graphen dasselbe Diagramm haben, wenn wir von Knotenmarkierungen absehen zwei Graphen G und H heißen isomorph (G = H), wenn gilt: es gibt eine Bijektion φ : V (G) V (H) mit (u, v ) E (G) (φ(u), φ(v )) E(H). die Abbildung φ heißt Isomorphismus zwischen G und H isomorphe Graphen besitzen dieselben Strukturen sie unterscheiden sich nur in der Benennung von Knoten und Kanten wir lassen daher im Allgemeinen die Bezeichnungen fort ein solcher Graph repräsentiert dann eine Äquivalenzklasse isomorpher Graphen wir werden im folgenden spezielle Graphen mit eigenen Symbolen versehen die Abbildung φ heißt Automorphismus, falls V (G) = V (H) 25 / 79 26 / 79 ein einfacher Graph, bei dem je zwei Knoten adjazent sind, heißt vollständig bis auf Isomorphie sind also vollständige Graphen der Ordnung n eindeutig und werden mit K n bezeichnet 2-partite Graphen heißen auch bipartit sei G = (V, E ) ein bipartiter Graph mit V = V 1 V 2 G heißt vollständig bipartit, falls je zwei Knoten u V 1 v V 2 benachbart sind und ein vollständiger bipartiter Graphen auf p + q Knoten wird mit K p,q bezeichnet der Graph K 1,q heißt Stern, K 1,3 Klaue. ein Graph G = (V, E ) heißt k-partit, falls gilt: V lässt sich in disjunkte Teilmengen V 1,..., V k, k n zerlegen keine zwei Knoten in V i sind benachbart für alle i = 1,..., k 27 / 79 28 / 79

Gliederung Beispiele grundlegende Definitionen Operationen auf Graphen gerichtete Graphen Nachbarn und Grade Schnitte Pfade und Kreise Datenstrukturen sei G ein (einfacher) Graph, das Komplement G von G ist der einfache Graph mit der Knotenmenge V (G) und e E (G) e / E (G) Offensichtlich gilt: G = G E (G) + E(G) = n(n 1)/2, falls V (G) = n 29 / 79 30 / 79 sei G = (V, E ) ein Graph H = (W, F ) heißt Teilgraph von G (H G), falls gilt: W V und F E H entsteht aus G durch Entfernen der Knoten in V W und der Kanten in E F G enthält H und G ist Obergraph von H H heißt aufspannender Teilgraph von G, falls W = V d.h. aus G werden nur Kanten und keine Knoten entfernt sei W V nicht leer und E (W ) = {(u, v ) E u, v W } E(W ) ist die Menge der Kanten von G, die beide Endknoten in W haben der von W (knoten)induzierte Teilgraph von G ist G(W ) = (W, E (W )) mit G W bezeichnen wir den induzierten Teilgraph G(V W ) G W ist der Teilgraph, der aus G entsteht, indem wir alle Knoten von W und alle mit W inzidenten Kanten entfernen für den Teilgraphen G {v } schreiben wir auch einfach G v. 31 / 79 32 / 79

5 1 6 3 2 5 1 2 4 4 7 7 7 4 G G G G 1 2 3 6 3 5 6 5 6 4 der Teilgraph (V, E F ) wird mit G F bezeichnet speziell schreiben wir G e statt G {e} ist F V V, so ist G + F der Graph, der aus G durch Hinzufügen der Kanten in F entsteht (wiederum G + e = G + {e}) es gilt G 1, G 2, G 3 G, G 2 = G({4, 5, 6, 7}), G 2 G 1 und G 3 G 2 für F E ist V (F ) die Menge aller Knoten, die mit wenigstens einer Kante aus F inzidieren. zwei Graphen G 1 und G 2 sind (knoten-)disjunkt, falls sie keinen Knoten gemeinsam haben entsprechend heißen sie kantendisjunkt, falls sie keine Kante gemeinsam haben der Teilgraph (V (F ), F ) ist der von F Teilgraph von G kanteninduzierte 33 / 79 34 / 79 die Vereinigung G 1 G 2 zweier Graphen G 1 und G 2 ist der Graph der Durchschnitt G 1 G 2 sei G ein Multigraph (V (G 1 ) V (G 2 ), E (G 1 ) E (G 2 )) wird entsprechend definiert H entstehe aus G, indem wir alle Schlingen und parallele Kanten (bis auf eine) entfernen H ist der zugrunde liegende einfache Graph von G sei G = (V, E ) ein Graph und e = (u, v ) E eine Kante die Kontraktion von e erzeugt einen neuen Graphen G e wie folgt: entferne e identifiziere die beiden Endknoten u, v ersetze die identifizierten Knoten durch einen neuen Knoten w entferne parallele Kanten e u v w jede Kante f, die nicht mit u oder v inzidiert, bleibt erhalten 35 / 79 36 / 79

etwas allgemeiner: sei W V die Schrumpfung von W erzeugt den Graphen G W wie folgt: entferne die Kanten in E(W ) identifiziere alle Knoten in W zu einem neuen Knoten w Kanten, mit einem Endknoten in W, erhalten den neuen Endknoten w entferne parallele Kanten Gliederung Beispiele grundlegende Definitionen Operationen auf Graphen gerichtete Graphen Nachbarn und Grade Schnitte Pfade und Kreise Datenstrukturen W w 37 / 79 38 / 79 Graphen, so wie wir sie bisher eingeführt haben, können symmetrische Relationen darstellen für nicht-symmetrische Relationen (Hierarchien, Einbahnstraßen,...) sind Graphen jedoch nicht adäquat in diesem Fall müssen den Kanten eine Orientierung oder Richtung aufgeprägt werden dies führt zu den gerichteten Graphen ein gerichteter Graph D besteht aus einem Paar (V, A) von Knoten V und gerichteten Kanten A die gerichteten Kanten entsprechen geordneten Paaren von Knoten ist a = (u, v ) A, so heißt u Anfangsknoten und v Endknoten von a u Vorgänger von v und v Nachfolger von u zwei gerichtete Kanten (u, v ) und (x, y ) heißen parallel, falls x = u und y = v antiparallel, falls x = v und y = u. eine Kante (u, u) heißt Schlinge ein gerichteter Graph heißt einfach, falls er keine Schlingen und parallelen gerichteten Kanten enthält 39 / 79 40 / 79

jedem gerichteten Graphen D derselben Knotenmenge zu ordnen wir zwei ungerichtete Graphen über den D zugrunde liegenden Graphen G 1, und den D zugrunde liegenden einfachen Graphen G 2, dabei ist (u, v ) E (G 1 ) (u, v ) A G 2 ist der G 1 zugrunde liegende einfache Graph ein gerichteter Graph, der zugrunde liegende einfache gerichtete Graph, der zugrunde liegende ungerichtete Graph und der zugrunde liegende einfache ungerichtete Graph 41 / 79 42 / 79 Gliederung Beispiele grundlegende Definitionen Operationen auf Graphen gerichtete Graphen Nachbarn und Grade Schnitte Pfade und Kreise Datenstrukturen sei D = (V, A) ein gerichteter Graph zu v V bezeichnen wir mit N + (v ) = {u V : (v, u) A} die Menge der Nachfolger N (v ) = {u V : (u, v ) A} die Menge der Vorgänger N(v ) = N (v ) N + (v ) die Menge der Nachbarn entsprechend ist für einen ungerichteten Graphen G = (V, E ) N(v ) = {u V : (u, v ) E } die Menge der Nachbarn von v ein Knoten v heißt isoliert, falls N(v ) = 43 / 79 44 / 79

für einen Knoten v in einem gerichteten Graphen ist d + (v ) = N + (v ) der Außengrad d (v ) = N (v ) der Innengrad d (v ) = d + (v ) + d (v ) der Grad u v w b a c d in einem ungerichteten Graphen ist d (v ) = N(v ) der Grad von v hierbei werden Schleifen zweimal gezählt im ersten Graphen ist d (u) = 2, d (v ) = 3, d (w ) = 3 im zweiten gerichteten Graphen ist N + (a) = {b, d } und N (d ) = {a, c, d } 45 / 79 46 / 79 ein Graph G heißt k-regulär, falls d (v ) = k für alle v V regulär, falls G k-regulär für ein k N Beispiel: K n ist (n 1)-regulär K p,p ist p-regulär der Petersengraph ist 3-regulär Lemma 1 In einem gerichteten Graphen D = (V, A) gilt X d + (v ) = X d (v ) = A v V v V Beweis: Für alle Kanten (u, v ) A gilt (u, v ) N + (u), (u, v ) N (v ). Lemma 2 (Handschlag-Lemma) Sei G = (V, E ) ein ungerichteter Graph. Dann gilt (i) P v V d (v ) = 2 E, (ii) die Anzahl der Knoten mit ungeradem Grad ist gerade. 47 / 79 48 / 79

Beweis: (i) jede Kante (u, v ) mit u v wird einmal in d (u) und einmal in d (v ) gezählt, jede Schleife (v, v ) wird per Definition zweimal in d (v ) gezählt, somit folgt (i). (ii) seien V 1 bzw. V 2 die Knoten mit ungeradem, bzw. geradem Grad aus (i) folgt X X d (v ) = 2 E d (v ) v V 1 v V 2 da rechts eine gerade Zahl steht und links die Summanden ungerade sind, muß V 1 gerade sein. jedem Graphen auf n Knoten {v 1,..., v n } können wir seine Gradsequenz d 1,..., d n zuordnen, wir setzen dabei stets voraus, dass d 1 d 2... d n können wir umgekehrt jede solche Sequenz als Gradsequenz eines Graphen auffassen? wir wissen bereits, dass notwendigerweise P n i=1 d i gerade sein muss für Multigraphen ist diese Bedingung auch hinreichend: gilt 49 / 79 50 / 79 Lemma 3 Seien d 1 d 2... d n mit d i N. Dann ist d 1,..., d n Gradsequenz eines Multigraphen genau dann, wenn P n i=1 d i gerade ist. Beweis: es bleibt zu zeigen, dass ein Graph mit der Gradsequenz existiert da P n i=1 d i gerade ist, ist die Anzahl der ungeraden d i s gerade teile diese Menge U in zwei gleich große Mengen U 1, U 2 auf Die Verwendung von Schleifen macht den Beweis sehr einfach. Wenn wir Schleifen verbieten, gilt das Folgende: Lemma 4 Seien d 1 d 2... d n mit d i N. Dann ist d 1,..., d n Gradsequenz eines Multigraphen ohne Schleifen genau dann, wenn P n i=1 d i gerade ist und d 1 d 2 +... + d n. Beweis: Übungsaufgabe. etwas spannender wird die Frage, wann eine Sequenz graphisch ist, d.h. gegeben d = (d 1, d 2... d n ) mit d 1 d 2... d n und d i N wann ist d Gradsequenz eines einfachen Graphen? verbinde jeden Knoten aus U 1 mit genau einem Knoten aus U 2 danach haben alle Knoten geraden Restgrad füge entsprechend viele Schleifen hinzu. 51 / 79 sei d die Sequenz, die entsteht, wenn wir d 1 entfernen und die d 1 nächsten d i s um 1 vermindern 52 / 79

Lemma 5 für n = 1 ist d 1 = 0 die einzige Gradsequenz für n 2 ist die Sequenz d genau dann graphisch, wenn die Sequenz d graphisch ist. Beweis: für n = 1 ist die Aussage offensichtlich richtig. sei also n 2 wenn die Bedingung gilt, so sei G der zu der Sequenz d existierende Graph wir konstruieren den zu d gehörenden Graphen G aus G : füge einen neuen Knoten hinzu verbinde ihn mit den ersten d 1 Knoten von G sei umgekehrt d graphisch und G der zugehörige Graph wir konstruieren einen Graphen G, der Gradsequenz d sei dazu u ein Knoten mit maximalem Grad d (u) = d 1 sei A die Menge von d 1 hat Knoten mit den nächst großen Graden ist N(u) = A, so können wir u entfernen und erhalten den gesuchten Graphen G sei also N(u) A wir werden schrittweise den Graphen G verändern, so dass die Gradsequenz unverändert bleibt, und die Menge N(u) A größer wird 53 / 79 54 / 79 da N(u) = A, existiert ein a A N(u) und ein b N(u) A (d.h. (u, b) E, (u, a) / E ) angenommen es existiert ein weiterer Knoten v / {u, a, b} mit (v, a) E und (v, b) / E A a A a es bleibt zu zeigen, dass ein solches v existiert wir unterscheiden die Fälle (i) (a, b) E und (ii) (a, b) / E A A a a u u u v u v b b b dann können wir in G die Kanten (u, b), (v, a) löschen und die Kanten (u, a), (v, b) hinzufügen dadurch wächst N(u) A und die Gradsequenz bleibt erhalten b (i) a hat d (a) 1 und b hat d (b) 2 Nachbarn in V {u, a, b} (ii) a hat d (a) und b hat d (b) 1 Nachbarn in V {u, a, b} da d (a) d (b), existiert in beiden Fällen ein v mit den gesuchten Eigenschaften. 55 / 79 56 / 79

Gliederung Beispiele grundlegende Definitionen Operationen auf Graphen gerichtete Graphen Nachbarn und Grade Schnitte Pfade und Kreise Datenstrukturen sei G = (V, E ) und X V sei E (X, V X ) = {(u, v ) E : u X, v V X } E(X, V X ) besteht aus allen Kanten, die X mit dem Rest verbinden E(X, V \ X) X V \ X E(X, V X ) bildet einen Schnitt in G E (X, V X ) ist der von X induzierte Schnitt insbesondere induzieren einzelne Knoten v Schnitte E (v, V v ) 57 / 79 58 / 79 in einem gerichteten Graph D = (V, A) betrachten wir für Teilmengen X V die Schnitte A(X, V X ) = {(u, v ) A : u X, v V X } A(V X, X ) = {(u, v ) A : u V X, v X } X A(X, V \ X) A(V \ X, X) allgemeiner für S, T V mit S T = schreiben wir: V \ X Gliederung Beispiele grundlegende Definitionen Operationen auf Graphen gerichtete Graphen Nachbarn und Grade Schnitte Pfade und Kreise Datenstrukturen A(S, T ) = {(u, v ) A; u S, v T } A(T, S) = {(u, v ) A; u T, v S} analog in einem ungerichteten Graphen 59 / 79 60 / 79

sei G = (V, E ) ein ungerichteter Graph ein Pfad ist eine endliche Folge P = v 0, e 1, v 1,..., e k, v k (k 0) zur Vereinfachung schreiben wir statt P = v 0, e 1,..., e k, v k P = v 0, v 1,...v k einfach die Folge beginnt in einem Knoten ( Startknoten) endet in einem Knoten (Endknoten) und es gilt e i = (v i 1, v i ) E P ist dann ein Pfad von v 0 nach v k oder auch kurz ein (v 0, v k )-Pfad die Länge eines Pfades ist die Anzahl der Kanten dies ist in einfachen Graphen eindeutig sei P = v 0, v 1,...v k ein (gerichteter) Pfad P heißt kantendisjunkt, falls e i e j für i j knotendisjunkt oder (gerichteter) Weg, falls v i v j für i j sei G = (V, A) ein gerichteter Graph für einen gerichteten Pfad fordern wir, dass e i = (v i 1, v i ) A ein Pfad P ist ein Teilpfad eines Pfades P, wenn P eine Teilfolge von P ist (P P) 61 / 79 62 / 79 Lemma 6 Jeder (gerichtete) Pfad von u nach v in einem (gerichteten) Graphen enthält einen (gerichteten) Weg von u nach v. Beweis: die Aussage ist trivialerweise richtig für u = v sei P = v 0, v 1,..., v k mit u = v 0 v k = v ist P kein Weg, so existiert ein Knoten, der zweimal durchlaufen wird sei also v i = v j für i < j dann ist P = v 0,..., v i, v j+1, v k per Induktion folgt dann die Behauptung die gerichtete Version folgt entsprechend. ebenfalls ein Pfad von u nach v sei G = (V, E ) ein ungerichteter Graph zwei Knoten u und v heißen zusammenhängend, falls ein Pfad von u nach v existiert die Eigenschaft, zusammenhängend zu sein, ist eine Äquivalenzrelation ihre Äquivalenzklassen bilden die Zusammenhangskomponenten V 1,..., V k des Graphen ein Graph G heißt zusammenhängend, falls er aus nur einer Zusammenhangskomponente besteht ein gerichteter Graph D = (V, A) heißt zusammenhängend, falls der zugrundeliegende ungerichtete Graph zusammenhängend ist D heißt stark zusammenhängend, falls für alle Knoten u, v gerichtete Pfade von u nach v und von v nach u existieren 63 / 79 64 / 79

ein (gerichteter) Weg v 1,..., v k +1 mit v 1 = v k +1 heißt (gerichteter) Kreis die Länge eines Kreises ist wiederum die Anzahl der Kanten und damit gleich der Anzahl der Knoten im Kreis wir lassen daher üblicherweise den doppelt erscheinenden Endknoten weg und schreiben C = v 1,..., v k ein Kreis heißt gerade bzw. ungerade, falls seine Länge gerade bzw. ungerade ist. Lemma 7 Ein Graph ist genau dann bipartit, wenn er keinen ungeraden Kreis enthält. Beweis: sei G bipartit mit V = V 1 V 2, so dass keine zwei Knoten in V 1 bzw. in V 2 adjazent sind sei v 1,..., v k ein Kreis in G und sei o.b.d.a v 1 V 1 da v 1 und v 2 adjazent sind, muss v 2 V 2 sein entsprechend ist v 3 V 1, v 4 V 2 usw. d.h. die Knoten mit ungeradem Index sind in V 1, die mit geradem Index in V 2 da v 1 und v k adjazent sind und v 1 V 1, muss k gerade sein. 65 / 79 66 / 79 sei umgekehrt G ein Graph, der keine ungeraden Kreise enthält falls V 1 = 1, ist nichts zu zeigen wir können annehmen, dass G zusammenhängend ist angenommen für v, w V 1 ist (v, w ) E sei u ein beliebiger Knoten sei V 1 V die Menge der Knoten v mit der Eigenschaft, dass der kürzeste (u, v )-Weg gerade Länge hat seien u = v 0, v 1,..., v 2k = v und u = w 0, w 1,..., w 2j = w zwei kürzeste Wege von u nach v bzw. w v sei V 2 = V V 1 wir zeigen, dass keine zwei Knoten in V 1 (entsprechendes gilt für V 2 ) adjazent sind u w 67 / 79 68 / 79

u da beide Wege kürzeste Wege sind, muss jeder Knoten, der in beiden Wegen liegt, auch in beiden Wegen denselben Index haben v w Gliederung Beispiele grundlegende Definitionen Operationen auf Graphen gerichtete Graphen Nachbarn und Grade Schnitte Pfade und Kreise Datenstrukturen sei i der höchste Index für den v i = w i dann ist v j, v i+1,...v 2k, v 2j, w 2j 1,..., w i+1 ein Kreis der Länge 2k i + 2j i + 1 = 2(k + j i) + 1, und damit ungerade Widerspruch. 69 / 79 70 / 79 Netzwerke und Flüsse es gibt verschiedene Möglichkeiten, Graphen zu repräsentieren Beispiel: (a) Liste (gerichteter) Kanten: n, m, (u 1, v 1 ), (u 2, v 2 ),..., (u m, v m ) (b) Inzidenzmatrix: sei dazu B eine n m-matrix ist der Graph G = (V, E ) ungerichtet, so setze: 8 < 1 Knoten i inzidiert mit Kante j b ij = 2 Kante j ist Schleife ii : 0 sonst 4 5 6 6 1 2 5 9 7 8 3 4 1 2 3 ist der Graph G = (V, A) gerichtet und schleifenfrei, so setze: 8 < 1 falls j = (i, k ) für ein k b ij = 1 falls j = (k, i) für ein k : 0 sonst 0 B @ 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 C A 71 / 79 72 / 79

im ungerichteten Fall gilt offensichtlich: (c) Adjazenzmatrix: sei A eine n n-matrix in jeder Spalte ist die Spaltensumme 2 ist der Graph zusätzlich schleifenfrei, so enthält jede Spalte genau zwei Einsen im gerichteten, schleifenfreien Fall gilt: in jeder Spalte ist die Spaltensumme 0 jede Spalte enthält genau eine +1 und eine -1 j k a ij = k Beispiel: falls k Kanten zwischen i und j verlaufen (ungerichtet) falls k Kanten von i nach j verlaufen (gerichtet) 4 5 6 6 1 2 5 9 7 8 73 / 79 3 4 1 2 3 0 B @ 0 0 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 C A 74 / 79 die Adjazenzmatrix eines ungerichteten Graphen ist symmetrisch daher reicht es, die obere Dreiecksmatrix abzuspeichern sie benötigt jedoch O(n 2 ) Speicherplätze auch, wenn der Graph nur sehr wenige Kanten enthält wir werden aber zum Teil an Algorithmen interessiert sein, die eine Laufzeit von O( V + E ) haben dies wäre mit Adjazenzmatrizen nicht möglich (d) Adjazenzlisten: für einen ungerichteten Graphen erzeuge verkette Listen der Form: d (v 1 ), u1 1,..., uk 1 1 mit k 1 = d (v 1 ) d (v 2 ), u1 2,..., uk 2 2 mit k 2 = d (v 2 ). d (v n ), u1 k,..., uk k n mit k n = d (v ) entsprechend verwende für einen gerichteten Graphen Nachfolgerlisten und/oder Vorgängerlisten 75 / 79 76 / 79

Im nächsten Kapitel folgen einige Bemerkungen zur Komplexitätstheorie, zur Laufzeit in Abhängigkeit von der Inputlänge, zur Inputlänge bei graphentheoretischen Problemen und zu Algorithmen, die wir als effizient auffassen wir schließen mit dem Durchmustern von Graphen Das allgemeine Vorgehen des Durchmustern von Graphen beruht auf folgendem Ansatz: Input: (gerichteter) Graph Initialisierung: Markiere alle (gerichteten) Kanten und Knoten als neu (1) (wähle einen Startknoten): wähle einen neuen Knoten und markiere ihn als alt falls kein neuer Knoten existiert, STOP (2) (wähle eine neue (gerichtete) Kante): wähle neue Kante, die einen alten Knoten verlässt ist der zweite Endknoten neu, markiere ihn als alt Wiederhole (2), falls keine solche Kante existiert, gehe zu (1). 77 / 79 78 / 79 Freiheitsgrade: in Schritt 2 wähle eine Kante, die depth-first-search: einen möglichst spät markierten Knoten verlässt breadth-first-search: einen möglichst früh markierten Knoten verlässt a b 1 2 1 2 f c 3 4 6 3 e d 4 5 5 6 Wie lassen sich bipartite Graphen mittels Durchmustern erkennen? 79 / 79