Kombinatorische Optimierung WS 2015/16

Werbung
1. Übungsblatt
Kombinatorische Optimierung
WS 2015/16
Jens M. Schmidt
Aufgabe 1: Optimalitätsbedingungen
Beweisen Sie die Äquivalenz folgender Aussagen für einen Spannbaum T eines zusammenhängenden Graphen G = (V, E).
i) T ist ein minimaler Spannbaum.
ii) (Kreisbedingung) Für jede Kante vw ∈ E − E(T ) gilt, dass alle Kanten des
v-w-Pfades in T höchstens das Gewicht c(vw) haben.
iii) (Schnittbedingung) Für jede Kante e ∈ T und Knotenmenge S einer Zusammenhangskomponente von T − e ist e minimal in δ(S).
Aufgabe 2: Kruskal und Prim
i) Führen Sie den Algorithmus von Kruskal an folgendem Graphen aus.
ii) Führen Sie den Algorithmus von Prim an folgendem Graphen aus, beginnend
mit dem Knoten a.
iii) Eine Kontraktion einer Kante e = vw löscht e und identifiziert die Knoten
v und w; hierbei können neue Mehrfachkanten auftreten. Rekapitulieren Sie
die aus Graphen und Algorithmen bekannte Adjazenzlisten-Repräsentation von
Graphen und überlegen Sie sich, in jeweils welcher Laufzeit1 Kanten gelöscht,
eingefügt und kontrahiert werden können.
iv) Erklären Sie in so viel Detail wie nötig, welche Schritte des Algorithmus von
Prim wieviel Laufzeit benötigen (bei Adjazenzlisten-Repräsentation der Eingabe). Für welche Schritte wird der Fibonacci-Heap benutzt?
Aufgabe 3: Austauscheigenschaften
Seien T1 = (V, E1 ) und T2 = (V, E2 ) zwei Spannbäume eines Graphen G. Beweisen
Sie, dass für jede Kante e1 ∈ E1 − E2 eine Kante e2 ∈ E2 − E1 existiert, so dass
sowohl E1 + e2 − e1 als auch E2 + e1 − e2 Spannbäume von G sind.
Aufgabe 4: Vizemeister
Ein zweitbester MST ist ein Spannbaum mit minimalem Gewicht, das größer als das
Gewicht eines MST ist.
1
Genauer benutzen wir hierbei die Anzahl Rechenschritte auf der sogenannten unit-cost RAM. Diese
erlaubt folgende grundlegende Funktionen auf Registern und Hauptspeicher in jeweils einem Rechenschritt
(daher der Name unit-cost): Eingabe-Ausgabe-Operationen, Speicher-Register Transfers, indirektes Addressieren, Verzweigungen, fundamentale arithmetische Operationen und Vergleiche. Ebenso wird als Eingabelänge nicht die Bitlänge der Eingabe, sondern die Anzahl der Zahlen in der Eingabe gemessen (z.B.
n + m für Graphen). Wir machen zudem die Annahme, dass die Bitlänge aller Operanden der Anweisungen polynomiell in der Eingabebitlänge sind, da die unit-cost RAM andernfalls nicht mehr polynomiell
äquivalent zu anderen grundlegenden Maschinenmodellen ist.
a
4
7
d
b
9
15
10
f
12
e
c
5
6
11
13
8
g
i) Geben Sie möglichst große Graphklassen an, für deren Graphen kein zweitbester
MST existiert. Bonusaufgabe: Sind das die einzigen?
ii) Durch minimal wie viele Kantenvertauschungen unterscheidet sich ein gegebener MST T von einem (beliebigen) zweitbesten MST?
iii) Finden Sie einen Algorithmus mit Laufzeit O(mn) oder besser, der einen zweitbesten MST effizient berechnet.
Herunterladen