Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May M. Ritzenhofen, M. Mansour Al Sawadi, A. Meurer Lösungsblatt zur Vorlesung Diskrete Mathematik 1 WS 2008/09 Blatt 5 / 18. November 2008 / Abgabe bis 25. November 2008, 08.00 Uhr, in die Kästen auf NA 02 AUFGABE 1 (4 Punkte): Gegeben sei der folgende Graph G(V, E) mit V = [8] und E = {{1, 2}, {1, 4}, {2, 3}, {2, 4}, {2, 5}, {3, 5}, {3, 6}, {4, 7}, {5, 6}, {5, 7}, {7, 8}}. Bestimmen Sie einen Spannbaum von G mittels Breitensuche mit Startknoten 1. Geben Sie dazu tabellarisch die Veränderungen des Queue-Inhaltes, den gesamten QueueInhalt sowie die Werte für d[v] und pred[v] an für alle v ∈ V . Lösungsvorschlag: Der Graph G sieht folgendermaßen aus: 1 4 7 2 5 3 6 8 Man durchlaufe diesen Graphen mittels Breitensuche mit Startknoten 1, um einen Spannbaum zu bestimmen. Dabei werden zunächst d[1] = 0 und d[i] = ∞ für i = 2, . . . , 8 gesetzt. Ebenso pred[i] = N IL für i = 1, . . . , 8. Bei Durchführung des Algorithmus ergeben sich die folgenden Zwischenwerte: Veränderung des Queue-Inhaltes Füge 1 in Queue ein Entferne 1 aus Queue Füge 2 in Queue ein Füge 4 in Queue ein Entferne 2 aus Queue Füge 3 in Queue ein Füge 5 in Queue ein Entferne 4 aus Queue Füge 7 in Queue ein Entferne 3 aus Queue Füge 6 in Queue ein Entferne 5 aus Queue Entferne 7 aus Queue Füge 8 in Queue ein Entferne 6 aus Queue Entferne 8 aus Queue Queue-Inhalt 1 2 2, 4 4 4, 3 4, 3, 5 3, 5 3, 5, 7 5, 7 5, 7, 6 7, 6 6 6, 8 8 d[v] d[2] = 1 d[4] = 1 d[3] = 2 d[5] = 2 d[7] = 2 d[6] = 3 d[8] = 3 - pred[v] pred[2] = 1 pred[4] = 1 pred[3] = 2 pred[5] = 2 pred[7] = 4 pred[6] = 3 pred[8] = 7 - Die Ausgabe des Algorithmus ist dann d = [0, 1, 2, 1, 2, 3, 2, 3, ] und pred[v] = [N IL, 1, 2, 1, 2, 3, 4, 7]. Der sich ergebende Spannbaum ist 1 4 7 2 5 3 6 8 AUFGABE 2 (4 Punkte): (a) Sieben neue Häuser in einer Straße sollen von den Wasserwerken mit Wasser, von dem regionalen Stromversorger mit Strom, von den Stadtwerken mit Gas und von dem regionalen Kommunikationsunternehmen mit einem Telefonanschluss versorgt werden. Ist es möglich, die Kabel/Rohre dazu auf einer Ebene zu verlegen, also so, dass sie sich nicht kreuzen? (b) Gegeben sei ein zusammenhängender d-regulärer planarer Graph G = (V, E) mit |V | = 8. Dieser teile die Ebene in 6 Flächen. Bestimmen Sie d ∈ N. Lösungsvorschlag: (a) Stellt man die beschriebene Situation als Graphen dar, so erhält man einen vollständigen bipartiten Graphen von 4 Knoten (die Versorgungsunternehmen) auf 7 Knoten (die Häuser), also einen K4,7 . Dieser enthält einen K3,3 und ist nach dem Satz von Kuratowski daher nicht planar. Ein alternativer Lösungsansatz ist es, die Kanten von G zu zählen. Von jedem der 4 Versorgungsunternehmen geht genau eine Kante zu jedem der 7 Häuser, es gibt also insgesamt 4 · 7 = 28 Kanten in G. Damit gilt |E| = 28 ≥ 27 = 3(|V | − 2). Der Graph kann also wegen der notwendigen Bedingung an planare Graphen aus der Vorlesung nicht planar sein. (b) Nach der Eulerschen Polyederformel gilt für die Anzahl f der Flächen in einem zusammenhängenden planaren Graphen: f = |E| − |V | + 2. Nach dem Handschlaglemma gilt für die Anzahl der Kanten in G: 8 1X d = 4d. |E| = 2 i=1 Mit der Voraussetzung |V | = 8 ergibt sich: 6 = 4d − 8 + 2 ⇔ 3 = d. Unser gesuchtes d beträgt also 3. Ein Beispiel für einen solchen Graphen stellt folgender Graph dar: h \ \ h \ @ @ \ @ h\ h \\ HH Hh h h @ @ @h AUFGABE 3 (4 Punkte): Seien r ∈ N und G = (V, E) ein r-regulärer Graph mit |V | ≥ 4 gerade. Zeigen Sie, dass dann G oder G hamiltonsch ist. (Dabei ist G der Komplementärgraph von G wie in der Präsenzübung, Aufgabe 3.) Lösungsvorschlag: Zunächst stellen wir fest, dass, wenn G ein r-regulärer Graph ist, dann ist G ein (n − 1 − r)regulärer Graph. Von einem Knoten v gehen dann genau Kanten zu denjenigen Knoten, zu denen in G keine Kanten existierten. Und das sind |V \ {v}| − r = n − 1 − r viele. Ziel ist es nun, die hinreichende Bedingung aus der Vorlesung d(u) + d(v) ≥ n = |V | für alle u, v ∈ V zu benutzen. Abhängig von r unterscheiden wir zwei Fälle. 1. Fall (r ≥ n2 ): Dann gilt für alle u, v ∈ V : d(u) + d(v) ≥ n2 + n2 = n = |V |. Damit ist G ein dichter Graph und es gilt nach dem hinreichenden Kriterium für Hamiltonkreise der Vorlesung, dass G hamiltonsch ist. 2. Fall (r < n2 ): Wir betrachten nun G. Für u ∈ V beträgt der Knotengrad im Komplementärgraphen dG (u) dann n − 1 − d(u) > n − 1 − n2 = n2 − 1. Da n gerade ist, ist also dG (u) ≥ n2 für alle u ∈ V . Also folgt dG (u) + dG (v) ≥ n2 + n2 = n = |V |. Also folgt mit dem Kriterium der Vorlesung, dass G hamiltonsch ist. AUFGABE 4 (8 Punkte): (a) Zeigen Sie: Ein zusammenhängender Graph G = (V, E) mit |V | ≥ 3 ist genau dann eulersch, wenn man ihn in kantendisjunkte Kreise zerlegen kann, das heißt, wenn man ihn als Vereinigung von kantendisjunkten Kreisen darstellen kann. (b) Ein zusammenhängender Graph G = (V, E) heißt semi-eulersch, wenn in G ein Weg W existiert, der jede Kante aus G genau einmal verwendet. Im Unterschied zu einem eulerschen Graphen müssen Anfangs- und Endpunkt des Weges nicht identisch sein. Ein bekanntes Beispiel für einen semi-eulerschen, aber nicht eulerschen Graphen ist das Haus vom Nikolaus. Beweisen Sie die folgende Aussage: Ein zusammenhängender Graph G ist genau dann semi-eulersch, wenn er genau zwei Knoten oder keinen Knoten ungeraden Grades besitzt. Lösungsvorschlag: (a) Behauptung: G eulersch ⇔ G Vereinigung kantendisjunkter Kreise C1 , . . . , Ck Wir zeigen zunächst ”⇒” der Äquivalenz: Wir zeigen die Behauptung konstruktiv. Sei E die Eulertour in G. Man starte in bei einem beliebigen Knoten v ∈ V und folge der Eulertour so lange, bis man zu einem schon besuchten Knoten gelangt. Definiere den Kreis beginnend und endend bei dem doppelt vorkommenden Knoten als Ci . Entferne die Kanten des Kreises sowie die dabei entstehenden Knoten mit Knotengrad 0 aus G und betrachte den so entstandenen Graphen. Dieser Graph ist wiederum Eulersch, da die Knotengrade entweder um 2 oder um 0 reduziert worden sind und damit gerade bleiben. Wiederhole das Verfahren so lange, bis es keine Knoten vom Grad größer als 0 gibt. Der Algorithmus terminiert, da es in G nur endlich viele Kanten gibt. Die Ci geben eine mögliche Zerlegung in kantendisjunkte Kreise. Nun zeigen wir ”⇐” der Äquivalenz: Wir zeigen auch diese Behauptung konstruktiv. Sei C1 , . . . , Ck eine Zerlegung von G in kantendisjunkte Kreise. Man starte mit E = C1 = (v1 , v2 , . . . , v1 ) und gehe den Kreis ab, bis man auf einen Knoten v stößt, der auch in Ci für ein i ∈ {2, . . . , k} vorkommt. Ein solcher Knoten muss existieren, da G zusammenhängend ist. Sei Ci = (v, u1 , . . . , v) dieser Kreis. Man setze nun die beiden Kreise zusammen zu E = (v1 , . . . , v, u1 , . . . , v, . . . , v1 ). Dabei wird zunächst C1 gegangen, bis man auf Ci stößt, dann Ci bis zum Ausgangspunkt und danach der Rest von C1 . Mit dem so entstandenen Weg E fahre man analog fort, bis alle Kreise in E einbezogen sind. Der Algorithmus terminiert, da G aus endlich vielen Kreisen besteht. Das resultierende E ist eine Eulertour, da alle Kanten von G genau einmal in E enthalten sind und Startund Zielknoten von E derselbe ist. (b) Behauptung: G semi-eulersch ⇔ G besitzt genau 2 Knoten oder keinen Knoten ungeraden Grades Wir zeigen zunächst ”⇐” der Äquivalenz: 1. Fall: G habe keinen Knoten ungeraden Grades. Dann ist G nach Vorlesung eulersch und die Eulertour entspricht dem gesuchten Weg. Damit ist G semi-eulersch. 2. Fall: G habe genau zwei Knoten ungeraden Grades v und w. Dann fügen wir G einen weiteren Knoten w sowie die Kanten {u, w} und {v, w} hinzu. Den so entstandenen Graphen nennen wir G0 . In G0 haben alle Knoten geraden Grad. (Den Knoten mit ungeradem Grad aus G wurde jeweils genau eine Kante hinzugefügt, so dass sie geraden Grad haben, der zusätzliche Knoten w hat Grad zwei.) Somit ist G0 eulersch. Wir starten die Betrachtung der Eulertour bei w mit der Kante {w, u}. Dann hat die Eulertour in G0 die Form T = (w, u, v1 , . . . , vk , v, w), da von w nur zwei Kanten ausgehen. Alle Kanten außer {u, w} und {v, w} liegen aber auch in G. Der gesuchte Weg entsteht daher aus T durch Entfernen der ersten und letzten Kante (u, v1 , . . . , vn−2 , v). Der Graph G ist also semi-eulersch. Nun zeigen wir ”⇒” der Äquivalenz: Sei G semi-eulersch und W = (u, . . . , w) der Weg durch G, der jede Kante genau einmal verwendet. Dann gilt für jeden Knoten v ∈ V \ {u, w}: Der Knoten kommt tv mal in W vor. Jedes Auftauchen von v in W erhöht den Knotengrad von v um zwei. Eine Kante führt vom Vorgängerknoten zu v, eine von v zum nachfolgenden Knoten. Der Knotengrad dieser Knoten beträgt daher jeweils 2tv , ist also gerade. Auch für die Knoten u und w erhöht sich der jeweilige Knotengrad für jedes weitere Vorkommen der Knoten in G um 2. Es komme der Knoten u außer am Rand noch tu mal in W vor, der Knoten w noch tw mal. Das Vorkommen am Rand des Weges hingegen erhöht den Knotengrad um eins. Gilt u 6= w, so gilt deg(u) = 2tu + 1 und deg(w) = 2tw + 1. Es gibt also genau zwei Knoten ungeraden Grades. Ist u = w, so gilt deg(u) = 2tu + 1 + 1, der Grad von u ist also ebenfalls gerade. Damit gibt es in G keinen Knoten mit ungeradem Grad.