Graphen und Bäume 12 Graphen und Bäume Graphen und Bäume 12.1 In diesem Kapitel wollen wir uns mit Erreihbarkeitsfragen in Graphen beshaftigen. Als wihtigen Spezialfall von Graphen besprehen wir Baume, eine der zentralen Datenstrukturen der Informatik. Um nur einige Anwendungen zu nennen: { der Dateibaum in Betriebssystemen, { der Hierarhiebaum der Klassen in Java, { Syntaxbaume von Programmen, { sortierte Baume fur die shnelle Suhe, { Raumunterteilungsbaume in der Computergraphik. {1{ c B. Möller Wie in Denition 2.6 besteht ein Graph G = (V, E) aus einer Menge V von Knoten und einer Menge E ⊆ V ×V von Kanten. Definition 12.1.1 • G ′ = (V ′ , E ′ ) heit Teilgraph von G, kurz G ′ ⊆ G, wenn V ′ ⊆ V und E ⊆ E. ′ • F ur V ′ ⊆ V ist der von V ′ erzeugte Teilgraph GV ′ =df (V ′ , E ′ ), wobei E =df E ∩ V ×V . ′ Diskrete Strukt. WS 10/11 Graphen und Bäume ′ ′ {2{ c B. Möller Diskrete Strukt. WS 10/11 Graphen und Bäume Beispiel 12.1.2 Betrahte 2 r O / 4 3 / 5 r xrrr LLL & Fur eine Menge M bezeihnen wir mit |M| die Anzahl der Elemente von M (im Falle einer unendlihen Menge setzen wir |M| = ∞). 1 LL Definition 12.1.3 Der von der Knotenmenge V ′ = {2, 3, 4} erzeugte Teilgraph GV ′ ist 2 O / 4 3 ⊓ ⊔ c B. Möller Grundbegriffe {3{ Diskrete Strukt. WS 10/11 • Der eines Knotens x ∈ V ist |Ex|, d.h. die Anzahl der Kanten, die in x enden. • Analog ist |xE| der Ausgangsgrad eines Knotens x ∈ V , d.h. die Anzahl der Kanten, die aus x herausfuhren. • Der Eingangsgrad bzw. Ausgangsgrad von G ist das Maximum der entsprehenden Knotengrade (evtl. ∞). c B. Möller Eingangsgrad {4{ Diskrete Strukt. WS 10/11 Graphen und Bäume Graphen und Bäume Definition 12.1.4 12.2 • Ein Definition 12.2.1 Ein Knoten y heit von einem Knoten x aus oder kurzer Pfad (von x1 nah xn ) in G ist eine Folge von Knoten x1 , . . . , xn mit n ≥ 1, so dass xj E xj+1 fur alle j ∈ [1, n − 1] gilt. • Sind alle xj vershieden, dann heit der Pfad ein Weg. Kantenzug • Sind alle xj vershieden bis auf x1 = xn und gilt n ≥ 3, dann heit der Pfad ein Zyklus. c B. Möller Die Erreichbarkeitsrelation in Graphen direkt erreihbar, wenn x E y. Allgemeiner heit y von x aus erreihbar, wenn x E∗ y. Das gilt also genau dann, wenn es einen Pfad von x nah y gibt. Nah Satz 5.9. ist E∗ eine Praordnung. {5{ Diskrete Strukt. WS 10/11 Graphen und Bäume c B. Möller {6{ Diskrete Strukt. WS 10/11 Graphen und Bäume Definition 12.2.2 • Die nah Lemma 6.7 zugehorige Aquivalenzrelation ist die wehselseitige Erreihbarkeit def x ∼E y ⇔ x E∗ y ∧ y E∗ x • Die zugehorigen Aquivalenzklassen heien die starken des Graphen G. • G selbst heit stark zusammenhangend, wenn ∼E die Allrelation ist, also G nur eine starke Zusammenhangskomponente hat und damit alle Knoten wehselseitig erreihbar sind. Starker Zusammenhang ist vor allem in Verkehrsnetzen wunshenswert. Beispiel 12.2.3 Der Graph in Beispiel 12.1.2 ist niht stark 1 niht von 4 erreihbar ist. zusammenhangend, da z.B. Die starken Zusammenhangskomponenten sind, als Teilgraphen aufgefasst, Zusammenhangskomponenten c B. Möller {7{ Diskrete Strukt. WS 10/11 2 rr O xrrr 1 LL LLL & 3 4 5 ⊓ ⊔ c B. Möller {8{ Diskrete Strukt. WS 10/11 Graphen und Bäume Graphen und Bäume Allgemein gilt ja: Wir betrahten nun den fur die Anwendungen wihtigen Spezialfall der endlihen Graphen. Zur konkreten Berehnung von E∗ bzw. der Erreihbarkeitsmengen x E∗ und E∗ x konnen wir die Ergebnisse aus dem letzten Kapitel noh verbessern. c B. Möller {9{ Diskrete Strukt. WS 10/11 Graphen und Bäume Lemma 12.2.4 Ist M endlih und n = |M|, so hat eine Kette in ℘(M) maximal n + 1 Elemente. Beweis: Die langsten Ketten in ℘(M) sind diejenigen, in denen sih benahbarte Teilmengen nur um ein Element untersheiden. Insbesondere haben die langsten Ketten, die ∅ und ganz M enthalten, maximal die Lange n + 1. c B. Möller { 10 { ⊓ ⊔ Diskrete Strukt. WS 10/11 Graphen und Bäume Als Hilfsmittel brauhen wir ein weiteres Beweisprinzip: Shubfahprinzip Damit haben in der Menge ℘(V ×V) aller Relationen uber V die Ketten die Maximallange |V|2 + 1. Wir werden aber sehen, dass wir E∗ bereits in |V| Shritten berehnen konnen, was naturlih wesentlih shneller ist. Sind m > n Objekte auf n Shubfaher verteilt, so liegen in wenigstens einem Shubfah mindestens zwei dieser Objekte. Dieses Prinzip heit oft auh Taubenshlagprinzip (pigeonhole priniple). Seine Korrektheit beweist man durh Kontraposition: Ware in jedem Fah hohstens ein Objekt, so waren es insgesamt hohstens n. c B. Möller { 11 { Diskrete Strukt. WS 10/11 c B. Möller { 12 { Diskrete Strukt. WS 10/11 Graphen und Bäume Graphen und Bäume Damit konnen wir folgendes zeigen. Lemma 12.2.5 Gilt |V| = n > 0, so ist E∗ = [ Ej . j<n Beweis: Die Relation x E y gilt genau dann, wenn es einen Pfad von x nah y mit genau j Kanten und damit j + 1 (niht notwendigerweise vershiedene) Knoten gibt. j Also gilt bereits (x, y) ∈ Das bedeutet aber E ⊆ [ Ej . j<n Dann kann man aber den Teil des Pfads, der von z nah z fuhrt, weglassen und bekommt immer noh einen Pfad von x nah y, der hohstens n Knoten und damit hohstens n − 1 Kanten hat. { 13 { Ej . j<n ∗ Fur j ≥ n + 1 muss nah dem Shubfahprinzip in einem solhen Pfad mindestens ein Knoten z zweimal vorkommen. c B. Möller [ Diskrete Strukt. WS 10/11 Graphen und Bäume Die umgekehrte Inklusion gilt nah Denition von E∗ sowieso. { 14 { c B. Möller Diskrete Strukt. WS 10/11 Graphen und Bäume Nun betrahten wir den Spezialfall azyklisher Graphen, die im nahsten Abshnitt eine entsheidende Rolle spielen. 12.3 Lemma 12.2.6 Ist |V| = n > 0 und E azyklish, so ist Ej = ∅ f ur alle j ≥ n. Beweis: Angenommen x Ej y f ur ein j ≥ n. Also gibt es einen Pfad Bäume Baume sind Graphen, in denen die Kanten nur in einer Grobrihtung\ verlaufen. " von x nah y mit genau j Kanten und damit j + 1 > n Knoten. Insbesondere sind Baume azyklish. Nah dem Shubfahprinzip muss in diesem Pfad wenigstens ein Knoten, etwa z, zweimal vorkommen. Weiter sind Verzweigungen endgultig\, d.h. fuhren von einem " Knoten zwei Kanten weg, so gibt es keine Moglihkeit, die mit diesen Kanten begonnenen Pfade wieder zusammenzufuhren. Dann wurde aber gelten z E+ z, also ware E niht azyklish, im Widerspruh zur Voraussetzung. c B. Möller ⊓ ⊔ { 15 { ⊓ ⊔ Diskrete Strukt. WS 10/11 c B. Möller { 16 { Diskrete Strukt. WS 10/11 Graphen und Bäume Graphen und Bäume Definition 12.3.1 Ein Graph G = (V, E) heit Baum, wenn folgende Eigenshaften erfullt sind: (1) Es gibt einen Knoten r ∈ V , von dem aus alle Knoten in V erreihbar sind, d.h. r E∗ = V . Wir zeigen als Erstes, dass der in Teil (1) der Baumdenition geforderte Knoten eindeutig bestimmt ist. (2) E ist azyklish, d.h. E+ ∩ I = ∅. Lemma 12.3.2 Sei G = (V, E) ein Baum. (3) Jeder Knoten hat hohstens den Eingangsgrad 1; das lasst sih relational als E ; E ⊆ I shreiben. (1) Die Erreihbarkeitsrelation E∗ ist eine Ordnung. (2) Gilt r E∗ = V = r ′ E∗ , so folgt r = r ′ . Da E azyklish ist, sind alle Pfade in einem Baum wiederholungsfrei und somit Wege. c B. Möller { 17 { Diskrete Strukt. WS 10/11 Graphen und Bäume c B. Möller { 18 { Diskrete Strukt. WS 10/11 Graphen und Bäume Beweis: Definition 12.3.3 Sei G = (V, E) ein Baum. (1) Aus Abshnitt 12.2 wissen wir, dass E∗ eine Praordnung ist. Wir mussen daher nur noh die Antisymmetrie zeigen. Das nah Lemma 12.3.2 eindeutig bestimmte Element r mit r E∗ = V heit die Wurzel (root) von G. Es gelte also x E∗ y und y E∗ x (∗). Annahme: x 6= y. Mit (∗) folgt nun, dass x E y und y E x gelten muss. + + Dann hat man aber auh x (E+ ; E+ ) x und damit x E+ x im Widerspruh zur Azyklizitat von E. (2) Nah Voraussetzung gilt insbesondere r E∗ r ′ und r ′ E∗ r und die Behauptung folgt aus der in Teil (1) gezeigten Antisymmetrie von E∗ . ⊓ ⊔ c B. Möller { 19 { Diskrete Strukt. WS 10/11 Beispiel 12.3.4 Der folgende Graph ist ein Baum mit Wurzel 1 : / 2 4 8 qqq qqq 6 1 MM MMM qq8 M& qqq q / 3 5 MM MMM M& 7 ⊓ ⊔ c B. Möller { 20 { Diskrete Strukt. WS 10/11 Graphen und Bäume Graphen und Bäume Da man oft niht von vornherein wei, wie gro die Baume werden, beginnt man beim Zeihnen oben mit der Wurzel und lasst sie nah unten wahsen, also gerade umgekehrt wie bei naturlihen Baumen: 1 111 1 3 2 5 3 333 4 6 Kind von x, • Kinder y, z von x mit y 6= z Geshwister, • Elemente y mit x E y Nahkommen • Elemente y mit y E∗ x Vorfahren ∗ von x, von x. Shlielih ist ein Blatt ein Knoten ohne Kinder. 7 { 21 { Definition 12.3.5 In einem Baum G = (V, E) nennt man • ein y mit x E y ein Das kennt man im taglihen Leben aber bereits von Stammbaumen. c B. Möller Daraus ergeben sih einige Sprehweisen: Diskrete Strukt. WS 10/11 Graphen und Bäume Auh andere alltaglihe Verwandtshaftsbeziehungen werden sinngema angewandt. c B. Möller { 22 { Diskrete Strukt. WS 10/11 Graphen und Bäume Die eigentlih reht einfahe Denition des Baums hat viele nutzlihe Folgerungen. Als Erstes betrahten wir Teilgraphen eines Baums. Definition 12.3.7 Sei nun T ein Lemma 12.3.6 Sei G = (V, E) ein Baum und x ∈ V beliebig. Dann ist mit V ′ =df x E∗ der Teilgraph GV ′ wieder ein Baum, genannt der Teilbaum von G mit Wurzel x. Beweis: Nah Konstruktion ist ganz V ′ von x aus erreihbar. Mit E ′ =df E ∩ V ′ ×V ′ ergeben sih die beiden anderen Baumeigenshaften (E ′ )+ ∩ I = ∅ und E ′ ; (E ′ ) ⊆ I durh Isotonie. mit Wurzel r. Die Teilbaume von T , deren Wurzeln die Kinder von r sind (falls vorhanden), heien unmittelbare Teilbaume oder kurz Aste von T . (Teil)baum angeordnet sind, wie dies durh Oft nimmt man an, dass die Aste die Reihenfolge von links nah rehts in der graphishen Darstellung ausgedrukt wird. ⊓ ⊔ c B. Möller { 23 { Diskrete Strukt. WS 10/11 c B. Möller { 24 { Diskrete Strukt. WS 10/11 Graphen und Bäume 12.4 Graphen und Bäume Trennungseigenschaften und rekursive Zerlegung von Bäumen Definition 12.4.1 Zwei Knoten x, y eines beliebigen Graphen Nun wollen wir weitere Folgerungen aus der Baumdenition ziehen. Insbesondere wollen wir die Endgultigkeit\ der Verzweigungen " prazisieren, die fur das Durhlaufen von Baumen wihtig ist. Daraus wird shlielih abgeleitet, wie man Baume systematish in einfahere Baume zerlegen bzw. aus einfaheren Baumen aufbauen kann. c B. Möller { 25 { Hilfreih ist hierfur die folgende Relation: Diskrete Strukt. WS 10/11 Graphen und Bäume G = (V, E) heien unverbunden, in Zeihen x # y, wenn weder x E∗ y noh y E∗ x gilt, d.h. def x # y ⇔ ¬(x E∗ y) ∧ ¬(y E∗ x) Als unmittelbare Folgerung aus der Denition ergibt sih Korollar 12.4.2 Unverbundene Knoten sind vershieden. c B. Möller { 26 { Diskrete Strukt. WS 10/11 Graphen und Bäume Beweis: Damit haben wir die folgenden Trennungseigenshaften: (1) Seien x und y unverbunden. [ [ • Annahme: z ∈ x E∗ ∩ y E∗ = (Ei ∩ Ej ). i≥0 j≥0 Lemma 12.4.3 Sei G = (V, E) ein Baum. (1) Unverbundene Knoten haben disjunkte Nahkommenshaft, d.h. x # y ⇒ x E∗ ∩ y E∗ = ∅ (2) Unverbundenheit vererbt sih von Knoten auf ihre Nahfahren: x # y ∧ x E∗ u ∧ y E∗ v ⇒ u # v (3) Vershiedene Kinder eines Knotens sind unverbunden. (4) Von einem Knoten zum anderen fuhrt hohstens ein Weg. • Wir zeigen durh Induktion u ber i + j, dass die Annahme z ∈ x Ei ∧ z ∈ y Ej stets zum Widerspruh f uhrt. Induktionsanfang: i + j ≤ 1. • Dann folgt i = 0 ∨ j = 0, also z = x ∨ z = y. Dann hatte man aber y E∗ x bzw. x E∗ y im Widerspruh zu x # y. Induktionsschritt: Sei i + j ≥ 2 und es gelte f ur alle i ′ , j ′ mit ′ ′ i′ j′ i + j < i + j dass x E ∩ y E = ∅ (Induktionsannahme). • Angenommen z ∈ x Ei ∩ y Ej . • Dann gibt es Wege x1 · · · xi xi+1 und y1 · · · yj yj+1 mit x1 = x, y1 = y und xi+1 = z = yj+1 . c B. Möller { 27 { Diskrete Strukt. WS 10/11 c B. Möller { 28 { Diskrete Strukt. WS 10/11 Graphen und Bäume Graphen und Bäume • Die Anfangsst uke x1 · · · xi und y1 · · · yj haben die Langen i − 1 und j − 1 und nah Induktionsannahme gilt x Ei−1 ∩ y Ej−1 = ∅, also insbesondere xi 6= yj . • Gleihzeitig gilt aber xi E xi+1 und yj E yj+1 , d.h. xi , yj ∈ E z. • Also hat z einen Eingangsgrad von mindestens 2. Widerspruh zu Teil (3) der Baumdenition! (2) Es gelte die Voraussetzung x # y ∧ x E∗ u ∧ y E∗ v. Annahme: u und v sind verbunden, etwa u E∗ v. Dann gilt auh x E∗ v, also v ∈ x E∗ ∩ y E∗ , im Widerspruh zu Teil (1). • Daher muss auh x Ei ∩ y Ej = ∅ sein. c B. Möller { 29 { Diskrete Strukt. WS 10/11 Graphen und Bäume { 30 { Diskrete Strukt. WS 10/11 Graphen und Bäume (3) Es gelte x E y ∧ x E z ∧ y 6= z. Annahme: y und z sind verbunden, also etwa y E∗ z. Wegen y 6= z folgt y E+ z. Betrahte daher einen Weg von y nah z, auf dem u der vorletzte Knoten sei. Insbesondere gilt u E z. Aus der Azyklizitat von E und x E y E∗ u folgt u 6= x. Damit sind aber x und u vershiedene Knoten in E z im Widerspruh zu Teil (3) der Baumdenition. c B. Möller c B. Möller { 31 { Diskrete Strukt. WS 10/11 (4) Angenommen, es gabe zwei Wege von x nah y. Dann gibt es eine erste Stelle, an der sie sih untersheiden. Der Knoten davor hat also zwei vershiedene und damit unverbundene Kinder, von denen aus y erreihbar ist, im Widerspruh zu Teil (1). ⊓ ⊔ Es gibt fur dieses Lemma elegantere relationale Beweise, fur die uns aber hier die Hilfsmittel fehlen. c B. Möller { 32 { Diskrete Strukt. WS 10/11 Graphen und Bäume Graphen und Bäume Nun besprehen wir die angekundigte rekursive Zerlegung. Praktish bedeuten diese Aussagen, dass man beim Navigieren in Baumen vorsihtig sein muss: • Entshliet man sih, einen Teilbaum aufzusuhen, kommt man entlang der Baumkanten nie mehr zuruk in Rihtung zur Wurzel und damit auh nie mehr in parallele\ Teilbaume. " • Man muss sih also hinreihend viel Information u ber diese Baumteile separat merken. Andererseits haben diese starken Trennungseigenshaften auh Vorteile: Arbeiten in einem Teilbaum beeinusst parallel\ dazu " liegende Teilbaume niht. { 33 { c B. Möller Diskrete Strukt. WS 10/11 Graphen und Bäume 12.5 Nah dem vorigen Lemma sind die an der Wurzel hangenden Aste eines Baums knotendisjunkt, enthalten aber gleihzeitig zusammen alle Baumknoten auer der Wurzel. T1 , . . . , Tk gehoren, so Hat die Wurzel k Kinder, zu denen die Aste kann man also den Baum in folgender Form darstellen: u•III zuuu I$ T1 · · · Tk Fur ein Blatt (k = 0) ergibt sih der Terminierungsfall (bzw., in aufbauender Rihtung, der Induktionsanfang) • Diese Darstellung werden wir im folgenden Abshnitt verwenden, um bestimmte Mazahlen fur Baume rekursiv zu bestimmen. c B. Möller { 34 { Diskrete Strukt. WS 10/11 Graphen und Bäume Maßzahlen für Bäume Definition 12.5.1 Gegeben sei ein Baum T = (V, E). • Die Knotenzahl • Die H ohe von T ist K(T ) =df |V|. hT (x) eines Knotens x ist sein Abstand von der Wurzel r von T , d.h. die Anzahl der Kanten des nah Lemma 12.4.3(3) eindeutigen Wegs von r zu x: Um sih die Hohenbegrie zu veranshaulihen, dreht man einen Baum am besten um 180◦ und verwandelt ihn so in einen botanish korrekten\ Baum. " Beispiel 12.5.2 Im Baum aus Beispiel 12.3.4 gilt h( 2 ) = h( 3)=1 h( 4 ) = h( 5)=2 i hT (x) =df min {i : r E x} Insbesondere hat die Wurzel die Hohe 0. H ohe H(T ) von T ist die maximale H ohe der Knoten in V . • Die h( 6 ) = h( 7)=3 Damit hat der Baum selbst die Hohe 3. ⊓ ⊔ • Shlielih ist B(T ) die Anzahl der Blatter von T . c B. Möller { 35 { Diskrete Strukt. WS 10/11 c B. Möller { 36 { Diskrete Strukt. WS 10/11 Graphen und Bäume Graphen und Bäume In der praktishen Programmierung wird ein Baum durh Zeiger dargestellt. Man bekommt niht den Baum als Ganzes\, sondern nur einen " Verweis auf seinen Wurzelknoten und muss dann anhand der Verweise, die den Baumkanten entsprehen, navigieren. Wenn man also niht bereits beim Aufbau eines Baums die angegebenen Mazahlen mit abspeihern mohte, muss man sie aufgrund der Baumstruktur rekursiv berehnen. Wir geben dafur die entsprehenden Formeln an. c B. Möller { 37 { Diskrete Strukt. WS 10/11 1. Ist T Blatt, so ist H(T ) = 0 K(T ) = 1 B(T ) = 1 2. Sonst, also bei k > 0 Kindern der Wurzel ist u•III zuuu I$ = 1 + max {H(Ti ) : i = 1, . . . , k} T1 · · · Tk k I X uu• II (b) K T zuu· · · I$ T = 1+ K(Ti ) 1 k (a) H () B i=1 c B. Möller k X u•III zuuu I$ =df B(Ti ) T1 · · · Tk i=1 { 38 { Diskrete Strukt. WS 10/11