WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910 Kapitel IV – Graphentheorie • Graphentheorie – Grundlagen – Bäume – Eigenschaften von Graphen – Graphen-Algorithmen – Matchings 2 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Bäume Definition: Ein ungerichteter Graph G = (V,E) heißt Baum, falls G zusammenhängend und kreisfrei ist. Ein Knoten v mit deg(v) = 1 heißt Blatt (leaf). Alle anderen Knoten heißen innere Knoten. 3 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Graph oder Baum? 4 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Bäume Die Bäume mit höchstens 5 Knoten sind 5 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Ein Baum o n h d r m b a e c g q i f 6 p j k Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München l Kapitel III – Graphen; Bäume • Wälder Definition: Ein Graph, dessen (Zusammenhangs-) Komponenten jeweils Bäume sind, heißen Wälder. 7 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Eigenschaften von Bäumen Satz: Jeder Baum T = (V,E) mit |V| 2 enthält mindestens zwei Blätter. Beweis (verifiziere anhand der vorletzten Folie): Nehme eine beliebige Kante und laufe nach „links“ und “rechts“ solange du kannst. Da man nicht in einen Zyklus geraten kann endet man irgendwann in einem Blatt. □ 8 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Eigenschaften von Bäumen Satz: Ist T = (V,E) ein Baum mit |V| 2 Knoten und v V ein Blatt, so ist der Graph T´ := T[V \ {v}] ebenfalls ein Baum. Beweis: Durch Wegnahme eines Blattes bleibt der Baum kreisfrei. Da Pfade zwischen beliebigen Knoten u und w erhalten bleiben, ist der Graph T´ auch zusammenhängend. □ 9 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Eigenschaften von Bäumen Definition: Ein Teilgraph T = (V´,E´) von G = (V,E) heißt Spannbaum von G, falls T ein Baum und V´= V. 10 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Eigenschaften von Bäumen Satz: Jeder zusammenhängende Graph G =(V, E) enthält mindestens einen Spannbaum. Beweis: Durch Induktion über |E|. Basis: |E|=0. Dann ist G ein Baum und auch ein Spannbaum. 11 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Eigenschaften von Bäumen Schritt: |E| ¸ 1. Wir betrachten zwei Fälle. Fall 1. G ist ein Baum. Dann ist G auch Spannbaum. Fall 2. G ist kein Baum. Dann enthält G einen Kreis. Entferne eine beliebige Kante des Kreises. Das Ergebnis G´ ist noch zusammenhängend und enthält einen Spannbaum T (Induktionsannahme). T ist auch Spannbaum von G. □ 12 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Eigenschaften von Bäumen Satz: Die folgenden Aussagen sind äquivalent: (1) G = (V,E) ist ein Baum (2) Je zwei Knoten u,v V mit u v sind durch genau einen Pfad verbunden (3) G ist zusammenhängend und |V| = |E| + 1. 13 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel III – Graphen; Bäume (1) , (2) Kein Kreis , keine zwei Knoten sind durch zwei verschiedene Pfade verbunden. Zusammenhängend , jede zwei Knoten sind durch mindestens einen Pfad verbunden. 14 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel III – Graphen; Bäume (1) (3) Sei G=(V,E) ein Baum. Wir zeigen |V|=|E|+1 durch Induktion über |V|: Basis: |V|= 1. Dann gilt |E|= 0 und wir sind fertig. Schritt: |V|¸ 2. Sei u ein Blatt von G (G hat mindestens zwei Blätter). Entferne u sowie die Kante, die u mit dem Rest von G verbindet. Sei G´=(V´,E´) der resultierender Graph. G´ ist wieder ein Baum. Mit |V´| < |V| gilt |V´| = |E´| + 1 (Induktionsannahme). Mit |V| = |V´|+1 und |E| = |E´|+ 1 gilt |V| = |E| + 1. 15 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel III – Graphen; Bäume (3) (1) Sei G=(V,E) zusammenhängend mit |V|=|E|+1. G enthält einen Spannbaum T = (V, E´) . Nach dem eben Bewiesenen gilt |V| =|E´| + 1. Aus |V|=|E|+1 und |V| =|E´| + 1 folgt |E|=|E´|. Da E´ eine Teilmenge von E ist gilt E = E´. Es folgt G = T. □ 16 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Eigenschaften von Bäumen Korollar: Seien T = (V,E) ein Baum mit |V| = n und (d1, d2,…, dn) die Gradfolge von T, dann gilt: n i 1 di 2E 2V 2 2n 2 17 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Spannbäume Frage: Wieviele aufspannende Bäume hat ein Graph? Satz: Für vollständige Graphen auf {1,2,…,n} gilt: Die Anzahl aufspannender Bäume ist t(n) = nn-2 (Achtung: die Knoten sind unterscheidbar!) 18 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Spannbäume des K2 und K3 n=2 n=3 19 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Spannbäume des K4 n=4 20 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Satz von Cayley: Es gibt nn−2 markierte Bäume mit n Knoten. Beweis: Wir definieren eine Abbildung von der Menge der markierten Bäume mit n Knoten in die Menge der Folgen der Länge n−2 mit Elementen aus {1, ... ,n} (siehe die nächsten Folien). Diese Abbildung ist eine Bijektion (ohne Beweis). Da es nn−2 solche Folgen gibt, ist der Satz bewiesen. 21 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Die Abbildung: Prüfer-Codes Gegeben sei ein markierter Baum T(V,E) mit Knotenmenge V = {1, 2, ..., n}, n 2. 22 Wiederhole bis |V| = 2: Sei v V das Blatt mit der kleinsten Markierung in V. Sei u V der einzige Nachbar von v in V. Entferne v aus V und {u,v} aus E und gebe die Markierung von u aus. (Achtung!: die Markierung von u, nicht die von v) Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Prüfer-Codes Die Ausgabe des Algorithmus auf der letzten Seite wird der Prüfer-Code des Baumes genannt (Heinz Prüfer 1896-1934). Der Prüfer-Code eines Baums ist eine eindeutige Folge der Länge n−2 mit Elementen aus {1, ..., n}. Zu einem gegebenen Prüfer-Code der Länge n−2 mit Elementen aus {1, ..., n} gibt es einen eindeutigen markierten Baum. 23 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Prüfer-Codes Beispiel: http://mathworld.wolfram.com/PrueferCode.html 24 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Prüfer-Codes Beispiel: http://mathworld.wolfram.com/PrueferCode.html 25 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Wurzelbäume Definition: Ein Wurzelbaum (rooted tree) ist ein Tupel (T,v) wobei T = (V,E) ein Baum ist und v V ein Knoten, den man auch als Wurzel des Baumes bezeichnet. – Da es in einem Baum zwischen je zwei Knoten genau einen Pfad gibt, gibt es in einem Wurzelbaum von jedem Knoten genau einen Pfad zur Wurzel. 26 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Wurzelbäume: Beispiel o n h d r m b root a e c g q i f 27 p j k Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München l Kapitel IV – Graphen; Bäume • Wurzelbäume Im Bild eines Wurzelbaumes wird die Wurzel in der Regel oben angeordnet, und die Wege werden von der Wurzel weggerichtet betrachtet. 28 – Wurzelbäume dienen zur graphischen Darstellung hierarchischer Strukturen, z.B. Vererbungen, Stammbäume, grammatikalische Strukturen usw. Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München A 1 B 1 C 2 E 2 D Kapitel IV – Graphen; Bäume • Wurzelbäume – Die Knoten entlang eines Pfades von v V zur Wurzel heißen Vorgänger von v. – Der zu v benachbarte Vorgänger heißt unmittelbarer Nachbar oder auch Vater- bzw. Mutter-Knoten. – Alle Knoten u V , von denen der Pfad zur Wurzel den Knoten v V enthält, werden Nachfolger von v genannt. – Die unmittelbaren Nachfolger werden auch Sohnoder Kind-Knoten genannt. 29 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Wurzelbäume – Ein Binärbaum ist ein Wurzelbaum, in dem jeder Knoten höchstens 2 unmittelbare Nachfolger hat. – Ein vollständiger Binärbaum ist ein Binärbaum, in dem jeder innere Knoten genau zwei unmittelbare Nachfolger hat und alle Blätter denselben Abstand zur Wurzel haben. 30 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Wurzelbäume – Ein Suchbaum ist ein Binärbaum, bei dem die (direkten) Nachfolger eines Knoten geordnet sind. • Die Knotenmenge ist eine linear geordnete Menge • Für alle inneren Knoten v gilt: – Für alle Knoten u im linken Unterbaum von v gilt: u < v – Für alle Knoten u im rechten Unterbaum von v gilt: u v 31 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München Kapitel IV – Graphen; Bäume • Binärbäume 32 Vorlesung Diskrete Strukturen WS 09/10 Prof. Dr. J. Esparza – Institut für Informatik, TU München