Lineare und Netzwerk Optimierung / SS 2014 Übungsblatt 8 Optimizaton Research Group OPT Abgabe bis 20. Juni 2014, 10:00 Uhr Vorlesung: Prof. Dr. Horst W. Hamacher, Dr. Marc Goerigk Übungen: Corinna Kaufmann Dieses Übungsblatt sowie weitere Informationen zur Übung http://www.mathematik.uni-kl.de/opt/lehre/ss140/prama/ erhältlich. sind unter Präsenzübungen (Zur Bearbeitung in den Übungen vom 16. bis 18.Juni 2014) Aufgabe 8.1 Betrachten Sie den folgenden gerichteten Graphen G = (V, E) mit Knotenmenge V = (v1 , . . . , v6 ) und Kantenmenge E = (e1 , . . . , e10 ): e4 v2 v4 e1 e8 v1 e5 e3 e7 e2 v6 e9 v3 e6 v5 (a) Geben Sie jeweils ein Beispiel an für 1. einen einfachen Weg P in G von v1 nach v6 . 2. einen Weg P in G von v1 nach v6 , der nicht einfach ist. 3. einen einfachen Kreis C in G. 4. einen Kreis C in G, der nicht einfach ist. 5. einen spannenden Baum T von G. 6. einen spannenden Wald F von G, der kein spannender Baum ist. PraMa Übungsblatt 8 Seite 1/3 (b) Bestimmen Sie die Adjazenzmatrix AD (G), die Inzidenzmatrix A (G) und die Adjazenzlisten ADL (G) von G. Aufgabe 8.2 Beweisen Sie die folgenden Aussagen: (a) Ein gerichteter oder ungerichteter Graph G enthält für zwei Knoten u und v genau dann einen u-v-Weg, wenn er einen einfachen u-v-Weg enthält. (b) Ein gerichteter oder ungerichteter Graph G enthält genau dann einen Kreis, wenn er einen einfachen Kreis enthält. Hausübungen (Bitte bis 20. Juni 2014, 10:00 Uhr abgeben.) Aufgabe 8.3 (6 Punkte) Beweisen Sie Satz 1.10 aus der Vorlesung: Sei G = (V, E) ein ungerichteter Graph. Folgende Aussagen sind äquivalent: (a) G ist ein Baum. (b) G enthält keinen einfachen Kreis, aber jeder echte Obergraph G = (V, E ′ ) schon. (c) Für alle a, b ∈ V existiert genau ein einfacher a − b Weg in G. (d) G ist zusammenhängend und für alle e ∈ E ist G − e nicht zusammenhängend. (e) G ist zusammenhängend und enthält |E| = |V| − 1 Kanten. (f) G ist kreisfrei und enthält |E| = |V| − 1 Kanten. Hinweis: (a) ⇒ (b) und (b) ⇒ (c) wurden bereits in der Vorlesung bewiesen und müssen nicht nochmal bearbeitet werden. Aufgabe 8.4 (4 Punkte) Der folgende Algorithmus beschreibt die nützliche Suchstrategie der Breitensuche (breadth-first search), kurz BFS. Wie der Name schon sagt, wird ein Graph dabei ausgehend vom Startknoten in die Breite durchsucht. Ist die Suche bei einem Knoten u ∈ V angelangt, so wird zuerst jede von dort ausgehende Kante (u, v) betrachtet, bevor bei einem Nachfolger von u weitergesucht wird. Neu entdeckte Knoten werden dabei nach dem FIFO (First In, First Out) Prinzip in einer Liste gespeichert, d.h. diejenigen Knoten, die zuerst gespeichert werden, werden auch zuerst wieder aus der Liste entnommen. PraMa Übungsblatt 8 Seite 2/3 Algorithmus 1 Breitensuche Bfs(G, s) Ein ungerichteter Graph G = (V, E) in Adjazenzlistendarstellung; ein Knoten s ∈ V. for all v ∈ V do Setze d[v] := 0 end for d[s] := 1 Q := (s) // Q ist eine Liste mit Berücksichtigung der Reihenfolge while Q 6= ∅ do Entferne das erste Element u aus Q for all v ∈ ADL[u] do if d[v] = 0 then d[v] := 1 Füge v an das Ende von Q an end if end for end while Input: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 (a) Was genau macht der vorgegebene Algorithmus 1? (b) Modifizieren Sie Algorithmus 1, so dass er für einen gegebenen Graphen die Zusammenhangskomponenten ausgibt. (c) Analysieren Sie die Laufzeit Ihres Algorithmus. PraMa Übungsblatt 8 Seite 3/3