9. ¨Ubungsblatt zu Algorithmen I im SS 2010

Werbung
Prof. Dr. Peter Sanders
G.V. Batz, C. Schulz, J. Speck
Karlsruher Institut für Technologie
Institut für Theoretische Informatik
9. Übungsblatt zu Algorithmen I im SS 2010
http://algo2.iti.kit.edu/AlgorithmenI.php
{sanders,batz,christian.schulz,speck}@kit.edu
Aufgabe 1
(Breitensuche, 1 + 1 + 1 + 1 Punkte)
Gegeben sei folgender gerichteter Graph mit der Knotenmenge {A, B, . . . , I}:
D
B
C
A
H
I
F
E
G
In diesem Graph werde nun eine Breitensuche durchgeführt, und zwar ausgehend vom Knoten A.
a) Zählen Sie die Knoten des Graphen in einer Reihenfolge auf, in der diese von einer Breitensuche
jeweils zum ersten mal berührt werden. Heben Sie im Graph außerdem alle Kanten (z.B. farbig)
hervor, die Bezüglich dieser Breitensuche tree Kanten sind.
b) Sind im Graph bzgl. dieser Breitensuche irgendwelche backward Kanten vorhanden? Wenn ja,
heben Sie diese hervor.
c) Sind im Graph bzgl. dieser Breitensuche irgendwelche cross Kanten vorhanden? Wenn ja, heben
Sie diese hervor.
d) Sind im Graph bzgl. dieser Breitensuche irgendwelche forward Kanten vorhanden? Wenn ja,
heben Sie diese hervor.
Aufgabe 2
(Bipartite Graphen, 2 + 6 + 2 Punkte)
Ein ungerichteter zusammenhängender Graph G = (V, E) mit |V | ≥ 1 heißt bipartit, wenn die
Knotenmenge V so in zwei Mengen V1 und V2 aufgeteilt werden kann, dass für jede Kante (u, v) ∈ E
gilt u ∈ V1 und v ∈ V2 oder v ∈ V1 und u ∈ V2 . Mit anderen Worten existiert eine Zerlegung von V , so
dass Kanten nur zwischen Knoten aus V1 und V2 bestehen, nicht aber zwischen Knoten der Vi selbst.
a) Zeigen oder wiederlegen Sie jeweils die Bipartitheit der folgenden beiden Graphen!
B
C
A
B
D
F
E
A
G
F
C
H
I
D
E
b) Entwickeln Sie einen Algorithmus, der in O(n + m) entscheiden, ob ein ungerichteter zusammenhängender Graph bipartit ist. Im Fall der Bipartitheit soll der Algorithmus eine mögliche
Unterteilung V1 , V2 ausgeben, sonst nicht bipartit. Geben Sie Pseudocode an.
c) Erweitern Sie ihren Algorithmus, so dass im Falle der Nichtbipartitheit ein Zeuge ausgegeben
wird. Hinweis: Pseudocode ist nicht zwingend erforderlich.
Aufgabe 3
(Dichte und spärliche Graphen, 2 + 2 + 2 + 2 + 2 Punkte)
Eine Familie von Graphen ist eine unendliche Menge von Graphen, mit der Eigenschaft dass sich
für jedes n0 ∈ N≥0 stets ein Graph mit n ≥ n0 Knoten in der Menge befindet.
a) Zeigen Sie: Vollständige ungerichtete Graphen mit n Knoten haben Θ(n2 ) Kanten.
b) Eine Familie von ungerichteten Graphen heiße eine Familie spärlicher Graphen, wenn jeder
Graph O(n) Kanten hat bei n Knoten.
Zeigen Sie: In einer Familie spärlicher Graphen liegt der maximale Knotengrad nicht notwendig
in O(1).
c) Eine Familie von ungerichteten Graphen heiße eine Familie gleichmäßig spärlicher Graphen,
wenn jeder Knoten jedes Graphen O(1) Kanten hat bei n Knoten.
Zeigen Sie: Eine Familie gleichmäßig spärlicher Graphen ist auch eine Familie spärlicher Graphen.
d) Eine Familie von ungerichteten Graphen heiße eine Familie dichter Graphen, wenn jeder Graph
Ω(n2 ) Kanten hat bei n Knoten.
Zeigen Sie: In einer Familie dichter Graphen hat nicht unbedingt jeder Knoten eines Graphen
Ω(n) Kanten bei n Knoten.
e) Eine Familie von ungerichteten Graphen heiße eine Familie gleichmäßig dichter Graphen,
wenn jeder Knoten jedes Graphen Ω(n) Kanten hat bei n Knoten.
Zeigen Sie: Eine Familie gleichmäßig dichter Graphen ist auch eine Familie dichter Graphen.
Zusatzaufgabe
(Durchmesser von Intervallgraphen, 1 + 3 + 2 + 2 Punkte)
Der Abstand zweier Knoten u, v eines ungerichteten zusammenhängenden Graphen G = (V, E) sei
definiert als minP ∈P(u,v) |P | wobei P(u, v) die Menge aller Pfade zwischen u und v bezeichne und |P |
die Anzahl der Kanten in P . Weiter heiße D := maxu,v∈V minP ∈P(u,v) |P | der Durchmesser von G.
Es sei eine endliche Menge
M von abgeschlossenen Intervallen [a, b] über R gegeben.
Für ein Intervall
S
S
0
0
0
0
0
I = [a , b ] mit I ⊆ I∈M I heiße U ⊆ M dann eine Überdeckung falls I ⊆ I∈U I. Eine Überdeckung von I 0 mit der kleinstmöglichen Anzahl von Intervallen heißt minimale Überdeckung.
Gegeben sei eine Liste L von n > 1 Intervallen Ii = [ai , bi ] (mit ai ≤ bi ), diese Intervalle stellen implizit
einen Intervallgraphen dar. Über die Liste ist weiter nichts bekannt, außer dass der Intervallgraph
zusammenhängend ist.
Hinweis: Die Intervalle Ii und Ij sind im Intervallgraphen durch eine Kante verbunden, falls Ii ∩Ij 6= ∅.
Zum Beispiel wären die Intervalle [3, 4] und [4, 5] durch eine Kante verbunden.
a) Es sei die Liste L = {[0, 3], [10, 12], [2, 8], [1, 3], [8, 11], [4, 6], [7, 9]} gegeben. Bestimmen Sie den
Durchmesser des dazugehörigen Intervallgraphen.
b) Es sei ā := maxi=1..n ai und b̄ := mini=1..n bi . Zeigen Sie:
• Falls ā ≤ b̄ ist der Durchmesser des Intevallgraphen 1.
• Falls ā > b̄ so ist der Durchmesser des Intervallgraphen um 1 größer als die Größe der
minimalen Überdeckung des Intervalls I ∗ := [b̄, ā] durch Intervalle aus L.
c) Geben Sie einen Algorithmus an, der den Durchmesser des durch L gegebenen Intervallgraphen
in O(n log n) Schritten berechnet. Bitte erläutern Sie kurz die Korrektheit des Algorithmus und
seine Laufzeit.
d) Geben Sie einen Algorithmus an, der den Durchmesser des durch L gegebenen Intervallgraphen in
O(d · n) Schritten berechnet. Wobei d der Durchmesser des Intervallgraphen ist. Bitte erläutern
Sie kurz die Korrektheit des Algorithmus und seine Laufzeit.
Ausgabe: Mittwoch, 16.6.2010
Abgabe: Freitag, 25.6.2010, 12:45 im Briefkasten im Untergeschoss von Gebäude 50.34
Herunterladen