Aufgaben zur Klausurvorbereitung 1 Grundbegriffe 2 - fbi.h

Werbung
Vorlesung Graphen und Optimierung
Sommersemester 2013/14
Prof. S. Lange
Aufgaben zur Klausurvorbereitung
Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014 bzw. am 05.02.2014 gemeinsam diskutieren wollen. Um Ihnen und mir das Leben leichter zu machen, sind die Aufgaben den
einzelnen Kapiteln der Vorlesung zugeordnet.
Anmerkung: Zum Inhalt der Vorlesung am 22.01.2014 wird es noch ein gesondertes Übungsblatt geben.
1
Grundbegriffe
1. Aufgabe
Beantworten Sie die folgende Frage und begründen Sie Ihre Antwort ausführlich.
Gibt es Graphen mit einer ungeraden Anzahl an Knoten mit einem ungeraden
Grad?
2. Aufgabe
Beantworten Sie die folgende Frage und begründen Sie Ihre Antwort ausführlich.
(i) Warum kann man unter Verwendung der Erreichbarkeitsmatrix die Zusammenhangskomponenten in einem gerichteten Graphen bestimmen?
(ii) Welche Nachteile hat der auf dieser Idee basierende Algorithmus für gerichtete Graphen?
(iii) Kann man unter Verwendung der Erreichbarkeitsmatrix auch die Zusammenhangskomponenten in einem ungerichteten Graphen bestimmen?
2
Elementare Graphalgorithmen
3. Aufgabe
Es sei G = (V, E) der folgende gerichtete Graph.
89:;
?>=<
4
/ ?>=<
89:;
2
/ 89:;
?>=<
3
/ 89:;
?>=<
1
89:;
?>=<
6
y
/% 89:;
?>=<
5
89:;
?>=<
7
/ 89:;
?>=<
8
1
(i) Bestimmen Sie mit Hilfe der Tiefensuche eine topologische Sortierung der
Knoten von G. Geben Sie für jeden Knoten u in G sowohl die Zeiten an,
zu denen u als entdeckt und vollständig verarbeitet markiert wird, als
auch den Knoten v, der als Vorgänger von u gespeichert wird.
(ii) Skizzieren Sie den Graph G0 = (V, E), der entsteht, wenn die Knoten in G
gemäß der in (i) bestimmten topologischen Sortierung linear angeordnet
werden.
(iii) Gibt es andere topologische Sortierungen der Knotenmenge E des Graphen G als die in (i) gefundene?
4. Aufgabe
Es sei G = (V, E) der folgende gerichtete Graph.
89:;
?>=<
4
?>=<
89:;
2
X
/ 89:;
?>=<
3
% ?>=<
89:; y
/ 89:;
?>=<
5
1
/ 89:;
?>=<
6
F
Bestimmen Sie mit Hilfe der Tiefensuche die Zusammenhangskomponenten des
Graphen G.
(i) Geben Sie für jeden Knoten u im Graphen G sowohl die Zeiten an, zu
denen u als entdeckt und vollständig verarbeitet markiert wird, als auch
den Knoten v, der als Vorgänger von u gespeichert wird.
(ii) Geben Sie den inversen Graphen G0 von G an.
(iii) Geben Sie für jeden Knoten u im Graphen G0 sowohl die Zeiten an, zu
denen u als entdeckt und vollständig verarbeitet markiert wird, als auch
den Knoten v, der als Vorgänger von u gespeichert wird.
3
Kürzeste Pfade
5. Aufgabe
Es seien G ein gerichteter, kreisfreier, kantengewichteter Graph, wobei alle Kantengewichte größer 0 sind, und s ein ausgewählter Startknoten in G.
(i) Welche Algorithmen kennen Sie, um die Gewichte der kürzesten Pfade
von s zu jedem anderen Knoten in G zu bestimmen?
(ii) Geben Sie gute obere Schranken für die Laufzeit dieser Algorithmen an.
Gehen Sie davon aus, dass der gegebene Graph n Knoten und m Kanten
hat.
2
6. Aufgabe
Es sei G ein gerichteter, kantengewichteter Graph, wobei alle Kantengewichte
größer 0 sind.
(i) Erläutern Sie, wie man mit Hilfe des Algorithmus von Dijkstra die Gewichte der kürzesten Pfade von jedem Knoten u in G zu jedem anderen
Knoten v in G bestimmen kann?
(ii) Ist es sinnvoller, den Algorithmus von Bellman und Ford zu benutzen?
Gehen Sie davon aus, dass der gegebene Graph n Knoten und m Kanten
hat.
7. Aufgabe
Es sei ein Autoatlas mit Karten von Europa gegeben.
(i) Begünden Sie, weshalb die Luftlinienentfernung zwischen zwei Städten
benutzt werden kann, um mit dem A∗ -Algorithmus eine kürzeste Route
von London nach Paris zu bestimmen.
(ii) Welche Vorteile hat es, den A∗ -Algorithmus anstelle des Algorithmus von
Dijkstra zu benutzen, um die Länge einer kürzesten Route von London
nach Paris zu bestimmen.
8. Aufgabe
Es sei der folgende gerichtete, kantengewichtete Graph G gegeben.
89:;
?>=<
1
1
3
/ ?>=<
89:;
2
1
y
% ?>=<
89:;
4
5
3
1
/ 89:;
?>=<
3
T
/ 89:;
?>=<
5
2
(i) Benutzen Sie den Algorithmus von Floyd und Warshall, um die Gewichte
der kürzesten Pfade von jedem Knoten u zu jedem anderen Knoten v zu
berechnen.
(ii) Benutzen Sie den Algorithmus von Bellman und Ford, um die Gewichte
der kürzesten Pfade vom Startknoten 1 zu jedem anderen Knoten u zu
bestimmen.
(iii) Benutzen Sie den Algorithmus von Dijkstra, um die Gewichte der kürzesten Pfade vom Startknoten 1 zu jedem anderen Knoten u zu bestimmen. Benutzen Sie den in der Vorlesung vorgestellten Ansatz, die Menge
der noch zu untersuchenden Knoten1 mit Hilfe eines binären Min-Heaps
zu verwalten. Geben Sie alle binären Min-Heaps an, die sukzessive entstehen.
1
Das sind die Knoten, für die sich die Schätzwerte noch verändern können.
3
9. Aufgabe
Geben Sie einen gerichteten, kantengewichteten Graphen G an, so dass mit dem
Algorithmus von Floyd und Warshall mindestens das Gewicht eines kürzesten
Pfades von einem Knoten u zu einem anderen Knoten v nicht korrekt bestimmt
wird.
4
Netzplantechnik
10. Aufgabe
Es seien die folgenden Informationen über ein geplantes Projekt gegeben:
Vorgang
a
b
c
d
e
Dauer
2
3
4
4
2
Minimalzeitbedingung
−
ST (b) − ST (a) ≥ 3
ST (c) − ST (a) ≥ 3
ST (d) − ST (b) ≥ 3
ST (e) − ST (a) ≥ 2
Maximalzeitbedingung
−
−
−
−
−
(a) Geben Sie einen geeigneten Netzplan an, der diese Informationen adäquat
widerspiegelt. Welche Varianten gibt es? Welche Vor- und Nachteile haben
diese Varianten?
(b) Überprüfen Sie, ob das Projekt durchführbar ist und bestimmen Sie ggf.
die minimale Zeit time m , die zur Durchführung dieses Projektes benötigt
wird, sowie die spätesten Startzeitpunkt der einzelnen Vorgänge, um das
Projekt in der Zeit time m durchzuführen.
5
Minimal spannende Bäume
11. Aufgabe
Es sei die folgende Tabelle mit Enfernungsangaben für die Entfernungen zwischen den Städten A, B, C, D und E gegeben.
A
B
C
D
E
A
–
200 km
400 km
500 km
700 km
B
200 km
–
300 km
400 km
600 km
C
400 km
300 km
–
500 km
600 km
D
500 km
400 km
500 km
–
500 km
E
700 km
600 km
600 km
500 km
–
Verwenden Sie den Algorithmus von Kruskal, um einen minimal spannenden
Baum zu bestimmen, wobei als zugrunde liegende Datenstruktur eine UnionFind-Struktur zu verwenden ist.
4
(a) Vervollständigen Sie die folgende Tabelle um anzugeben, wie sich die
Union-Find-Struktur sukzessive ändert.
(b) Geben Sie den so bestimmten minimal aufspannenden Baum an.
A
B
C
D
E
Vater
Größe
Vater
Größe
Vater
Größe
Vater
Größe
Vater
Größe
Vater
Größe
Hinweis: Gehen Sie davon aus, dass die Union-Operation so implementiert ist,
dass die Mengen in Abhängigkeit von ihrer Größe vereinigt werden.
12. Aufgabe
Es sei die folgende Tabelle mit Enfernungsangaben für die Entfernungen zwischen den Städten A, B, C, D und E gegeben.
A
B
C
D
E
A
–
200 km
400 km
500 km
700 km
B
200 km
–
300 km
400 km
600 km
C
400 km
300 km
–
500 km
600 km
D
500 km
400 km
500 km
–
500 km
E
700 km
600 km
600 km
500 km
–
Verwenden Sie den Algorithmus von Prim, um einen minimal spannenden Baum
zu bestimmen.
(a) Geben Sie für jede Iteration an, aus welcher Menge von kreuzenden Kanten eine sichere Kanten ausgewählt wird.
(b) Erläutern Sie, wie man Hilfe eines binären Min-Heaps die Menge der sicheren Kanten sukzessive verwalten kann. Was ist zu beachten? Welche
Vorteile ergeben sich?
5
6
Traveling Salesmann Problem
13. Aufgabe
Es sei der folgende ungerichtete Graph gegeben.
/.-,
()*+
1
/.-,
()*+
2
/.-,
()*+
3
/.-,
()*+
4
/.-,
()*+
5
/.-,
()*+
6
/.-,
()*+
7
/.-,
()*+
8
Teilaufgabe (a)
Überprüfen Sie, ob es in diesem Graphen einen Eulerkreis gibt.
Teilaufgabe (b)
Überprüfen Sie, ob es in diesem Graphen einen Hamiltonschen Kreis gibt.
14. Aufgabe
Es seien zwei Listen L1 und L2 der Länge n gegeben. Um zu überprüfen, ob L1
eine Permutation von L2 ist, könnte man wie folgt vorgehen:
Variante 1. Man bestimmt sukzessive alle Permutationen der Liste L1 und
testet, ob L2 unter den bestimmten Permutationen vorkommt.
Variante 2. Man bestimmte die sortierte Variante L01 der Liste L1 und die
sortierte Variante L02 der Liste L2 und testet, ob die Listen L01 und L02 identisch
sind.
Teilaufgabe (a)
Geben Sie obere Schranken für die Laufzeit der beiden Varianten an.
Teilaufgabe (b)
Welche der beiden Varianten ist ein effizientes Verfahren zur Lösung des betrachteten algorithmischen Problems?
15. Aufgabe
Es sei ein ungerichteter, vollständiger, kantengewichteter Graph G mit 8 Knoten
gegeben. Ferner sei der folgende Teilgraph G0 ein minimal spannender Baum in
G.
6
/.-,
()*+
1
/.-,
()*+
2
/.-,
()*+
3
/.-,
()*+
4
/.-,
()*+
5
/.-,
()*+
6
/.-,
()*+
7
/.-,
()*+
8
Teilaufgabe (a)
Erläutern Sie, wie mit Hilfe der in der Vorlesung vorgestellten Heuristik – basierend auf G0 – einen Hamiltonschen Kreis bestimmt werden kann, der ein
möglichst kleines Gewicht hat?
Teilaufgabe (b)
Schätzen Sie die Laufzeit der in der Vorlesung vorgestellten Heuristik möglichst
genau ab. Gehen Sie hierbei davon aus, dass der gegebene Graph n Knoten hat.
16. Aufgabe
Es sei ein ungerichteter, vollständiger, kantengewichteter Graph G mit n Knoten
gegeben, für den gilt, dass die Summe der Gewichte aller Kanten in G kleiner
gleich 2n ist.
Ferner sei ein Algorithmus A gegeben mit dem man in Zeit t(n) für jedes z ≤ 2n
die Frage beantworten kann, ob es in G einen Hamiltonschen Kreis mit dem
Gewicht kleiner oder gleich z gibt.
Beschreiben Sie einen Algorithmus mit dem man die Frage beantworten kann,
wie gro das minimale Gewicht eines Hamiltonschen Kreises in G ist. Schätzen
Sie die Laufzeit Ihres Algorithmus in Abhängigkeit von n ab.
7
Herunterladen