Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Prof. Dr. Ernst W. Mayr Dr. Werner Meixner Wintersemester 2005 Lösungsblatt 12 2. Februar 2006 Diskrete Strukturen Aufgabe 1 Beweisen oder widerlegen Sie mit Hilfe des Satzes von Kuratowski die folgenden Aussagen. 1. Es ist möglich, drei Häuser mit Strom, Gas und Wasser zu versorgen, wenn die Leitungen alle ebenerdig verlaufen müssen und sich nicht schneiden dürfen. 2. Wenn man zu einem beliebigen Baum G = (V, E) einen neuen Knoten v hinzufügt und v mit allen Knoten in V verbindet, so ist der entstehende Graph planar. 3. Entfernt man aus dem K3,3 eine beliebige Kante, dann ist der entstehende Graph planar. Lösungsvorschlag 1. Die abstrakte Darstellung der Aufgaben modelliert die 3 Häuser bzw. die 3 Versorgungsanschlüsse je mit einem Knoten eines vollständigen bipartiten Graphen zwischen einerseits den Häusern und andererseits de Versorgungsanschlüssen. Dies ist ein vollständiger bipartiter Graph K3,3 . Der Graph ist trivialerweise eine Unterteilung des K3,3 und ist deshalb nach dem Satz von Kuratowski nicht planar. Die Bedingungen können also nicht erfüllt werden. 2. Anschaulich ist der Sachverhalt klar, wenn man den Baum in der Ebene zeichnet und so orientiert, dass die Wurzel oben ist und die Kantenverzweigungen sich nach unten als Geradenstücke erstrecken. Nun kann man die Ebene in zwei Halbebenen teilen, so dass sich der Baum vollständig in der oberen Hälfte befindet. Einen zusätzlichen Knoten v plaziert man in der unteren Halbebene und sieht, dass man von unten her mit geeigneten stetigen Kurven alle Knoten kreuzungsfrei erreichen kann. Der entstehende Graph ist also planar. 3. Entfernt man aus dem K3,3 eine Kante, dann kann der resultierende Graph R natürlich keine Unterteilung des K3,3 mehr enthalten, weil die Anzahl der Kanten dann zu gering ist. Aber auch eine Unterteilung des K5 kann nicht mehr in R enthalten sein, weil der K5 ja 10 Kanten enthält und jede Unterteilung von K5 ebenfalls mindestens 10 Kanten enthalten müsste. R ist also nach dem Satz von Kuratowski planar. Aufgabe 2 1. Gegeben seien die Bäume B1 = ([9], {{1, 9}, {2, 7}, {4, 7}, {5, 6}, {8, 3}, {6, 7}, {7, 9}, {3, 9}}) , B2 = ([9], {{2, 1}, {1, 7}, {5, 7}, {4, 1}, {7, 3}, {9, 3}, {6, 4}, {8, 4}}) . Bestimmen Sie zu B1 und B2 jeweils den Prüfer-Code. 2. Bestimmen Sie zu den folgenden Prüfer-Codes die zugehörigen Bäume. i) 77777777, ii) 1212121, iii) 9876543, iv) 82267222. 3. Man zeige: Wenn man den vollständigen Graphen Kn mit beliebigem n ∈ N ausgehend von einem beliebigen Knoten mit Tiefensuche (Algorithmus DFS) durchsucht, dann ist der resultierende Spannbaum immer ein einfacher Pfad. Lösungsvorschlag 1. Den Prüfer-Code von Bäumen B1 , B2 erhält man, indem man, ausgehend von einer lückenlosen und eindeutigen Knotennummerierung von 1 ab, stets das Blatt mit der kleinsten Knotennummer bestimmt und denjenigen Knoten notiert, an dem das Blatt hängt. Anschließend wird das Blatt aus dem Baum gestrichen und der Schritt so lange wiederholt bis nur noch 2 Knoten übrig sind. Für B1 erhalten wir den Prüfer-Code 9776793. Für B2 erhalten wir den Prüfer-Code 1744173. Bemerkung: Falls der Baum mehr als 9 Knoten hat, dann muß man die Knotennummern im Code klammern. 2. Die Anzahl der Knoten des dargestellten Baumes ist um 2 größer als die Länge l des Codes. Die Knotennummern sind also [l + 2]. Diejenigen Knotennummern, die im Code nicht vorkommen, bilden die Blätter des Baumes. Zur Rekonstruktion des Baumes nimmt man dasjenige Blatt mit der kleinsten Nummer und verbindet es mit dem Knoten, dessen Knotennummer im Code als erste steht. Man streicht dann die verarbeitete Blattnummer aus der Liste der noch nicht verarbeiteten Blätter. Nun wiederholt man den Schritt mit dem noch nocht verarbeiteten Abschnitt des Codes (erstes Element wird gestrichen), so lange bis alle Codziffern verarbeitet sind. Die beiden Knoten in der verbliebenen Liste der noch nicht verarbeiteten Blätter verbindet man. Wir erhalten Bi = ([10], {{1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}, {6, 7}, {8, 7}, {9, 7}, {10, 7}}) , Bii = ([9], {{2, 8}, {2, 6}, {2, 4}, {1, 3}, {1, 5}, {1, 7}, {1, 9}, {2, 1}}) , Biii = ([9], {{1, 9}, {9, 3}, {3, 4}, {4, 5}, {5, 6}, {6, 7}, {7, 8}, {8, 2}}) , Biv = ([10], {{1, 8}, {8, 2}, {3, 2}, {4, 2}, {7, 2}, {9, 2}, {10, 2}, {6, 7}, {6, 5}}) . 3. Für den ersten Knoten wir zufällig einer von n−1 Knoten als Nachfolger ausgewählt. Für den zweiten Knoten stehen n − 2 Nachbarn zur Wahl. Da im Kn jeder Knoten mit jedem verbunden ist, findet man bis zum n.ten Knoten immer einen ”tieferen” Nachfolger. Man kann mit der Tiefensuche in keine Sackgasse geraten. Jeder so gefundene Spannbaum ist also ein Pfad. 2 Aufgabe 3 Man zeige: 1. Jeder Graph mit Gradfolge 5,4,4,4,3,2,2 ist zusammenhängend. 2. Jeder zusammenhängende Graph enthält einen Knoten, den man entfernen kann, ohne dass der Graph in mehrere Zusammenhangskomponenten zerfällt. 3. Jeder Baum ist bipartit. 2 4. b n4 c ist die größte Anzahl von Kanten, die ein bipartiter Graph mit n Knoten besitzen kann. 5. Jeder k-reguläre Graph mit k ≥ 2 enthält einen Kreis. Lösungsvorschlag 1. Von den 7 Knoten sind bereits 6 zusammenhängend, weil ein Knoten x vom Grad 5 existiert. Wäre der Graph nicht zusammenhängend, dann müsste er einen isolierten Knoten enthalten, d. h. es müsste der Grad 0 in der Gradfolge vorkommen. Dies aber ist nicht der Fall. 2. Ein besonders einfacher Weg, einen Knoten w mit den gewünschten Eigenschaften zu finden, ist eine Tiefensuche mit Erzeugung eines zugehörigen Spannbaums. Wir behaupten, dass jedes Blatt eines solchen Baums als w geeignet ist. Werde w mit all seinen adjazenten Kanten aus dem Graphen (bzw. dem Spannbaum) entfernt. Da w ein Blatt eines Spannbaums des (zusammenhängenden) Graphen ist, bedeutet dies, dass nur eine einzige Kante des Spannbaums entfernt wird. Alle übrigen mit w adjazenten Kanten können nicht ebenfalls Kanten des gleichen Spannbaums sein. In dem restlichen Spannbaum bleiben also alle Knoten bis auf w erreichbar. 3. Für bipartite Graphen G = (V, E) haben wir in der Vorlesung eine genauere Schreibweise eingeführt. Danach schreiben wir G = (A, B, E), wobei A ∪ B = V und A ∩ B = ∅ gilt und weder innerhalb A noch innerhalb B Kanten aus E verlaufen können. Alle Kanten verbinden stets Elemente aus A mit Elementen aus B. Wir bauen, ausgehend von einem Baum G = (V, E), induktiv zwei derartige Knotenmengen A und B auf, so dass alle Kanten nicht innerhalb von A und nicht innerhalb von B verlaufen. Wir wählen einen beliebigen Startknoten s und setzen {s} = A, sowie B = ∅. Alle Nachfolger von s werden in die Menge B aufgenommen. Der damit konstruierte induzierte Teilgraph ist offenbar bipartit. Falls es einen Knoten x ∈ B gibt, der einen Nachbarn hat, der noch nicht in A ∪ B enthalten ist, wird x ausgewählt und sämtliche Nachbarn von x werden in A aufgenommen. Der damit konstruierte induzierte Teilgraph ist wiederum bipartit. Der letzte Schritt wird mit jeweils vertauschten Rollen von A und B wiederholt bis alle Knoten entweder in A oder in B enthalten sind. 3 4. Die meisten Kanten in einem bipartiten Graphen G = (A ∪ B, E) erhält man, wenn man die disjunkten Mengen A und B mit möglichst gleich groß wählt, und dann jeden Knoten in A mit allen Knoten in B verbindet. Für gerades n = |V | gilt dann, dass |A| = 2 Kanten, insgesamt also n4 . n 2 = |B| und jeder Knoten in A besitzt n 2 Für ungerades n gilt analog n2 − 1 n−1 n+1 · = . 2 2 4 2 Allgemein gilt für die Zahl der Kanten damit b n4 c. 5. Ein kreisfreier Graph ist ein Wald, d. h. eine disjunkte und nicht zusammenhängende Summe von Bäumen. Da jeder Baum mindestens zwei Blätter enthält, gibt es einen Knoten vom Grad 1. Der Graph kann also nicht k-regülär sein für k ≥ 2, denn das würde bedeuten, dass jeder Knoten den Grad k besitzt. Aufgabe 4 Gegeben sei der Digraph G = ({a, b, c, d, e, f, g, h}, {(a, b), (a, d), (a, e), (b, d), (c, h), (d, e), (d, f ), (g, h)}) . 1. Zeichnen Sie eine graphische Darstellung von G. 2. Stellen Sie für G die Inzidenzmatrix und die Adjazenzmatrix auf. Berechnen Sie die Laplacesche Matrix von G. 3. Welche Zusammenhangskomponenten hat G? Welche starken Zusammenhangskomponenten hat G? 4. Fasst man G als Relation auf, dann ist die transitive Hülle von G definiert. Bestimmen Sie die Adjazenzmatrix der transitiven Hülle von G. 5. Zeigen Sie, dass G ein dag ist. Geben Sie eine topologische Nummerierung der Knoten von G an. Lösungsvorschlag 1. Klar (mit Knoten und Pfeilen)! 2. Wir nummerieren mit 1 beginnend jeweils Knoten und Kanten alphabetisch bzw. nach der obigen Aufschreibung in G. Diese Nummern entsprechen den Zeilen- bzw. Spaltennummern der Matrizen. 4 Inzidenzmatrix: a b c d e f g h (a, b) (a, d) (a, e) (b, d) (c, h) (d, e) (d, f ) (g, h) −1 −1 −1 0 0 0 0 0 1 0 0 −1 0 0 0 0 0 0 0 0 −1 0 0 0 0 1 0 1 0 −1 −1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 −1 0 0 0 0 1 0 0 1 Die obige Ränderung mit Knoten- und Kantenbezeichnungen ist für Matrizen nicht üblich. Sie dient hier ausschließlich zur Verdeutlichung der Nummerierungen. Adjazenzmatrix: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 Aufgrund der topologischen Nummerierung ist die Adjazenzmatrix eine obere Dreiecksmatrix mit Nullen in der Diagonalen, und umgekehrt. Laplacesche Matrix: 3 −1 0 −1 −1 0 0 0 0 2 0 −1 0 0 0 0 0 0 1 0 0 0 0 −1 0 0 0 4 −1 −1 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 −1 0 0 0 0 0 0 0 1 3. Die Zusammenhangskomponenten von G sind gegeben durch die disjunkten Knotenmengen {a, b, d, e, f, } und {c, g, h}. Da G azyklisch ist (dies wird in Teilaufgabe 5 gezeigt), gibt es nur die trivialen, einelementigen Zusammenhangskomponenten, die aus jeweils einem Knoten bestehen. 4. Es gibt genau folgende Knotenpaare, die durch einen gerichteten Pfad verbunden werden können, ohne dass sie schon durch einen einzige Kante verbunden sind. Es sind dies: (a, f ), (b, f ), (b, e) . Durch Hinzunahme dieser Paare erreicht man einen transitiven Abschluss von G als Relation. Die entsprechende Adjazenzmatrix lautet dann wie folgt. 5 Adjazenzmatrix der transitiven 0 0 0 0 0 0 0 0 Hülle von G: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 5. In G gibt es keinen Teilgraph, der ein gerichteter Kreis ist. Dies folgt aus der oben schon definierten topologischen Sortierung (Nummerierung) der Knoten bzw. der speziellen Dreiecksform der Adjazenzmatrix. Auch die transitive Hülle eines dag ist wieder ein dag. 6