Aufgaben zur Klausurvorbereitung 1 Bipartite Graphen - fbi.h

Werbung
Vorlesung Graphen und Optimierung
Sommersemester 2011
Prof. S. Lange
Aufgaben zur Klausurvorbereitung
Hier finden Sie eine Reihe von Übungsaufgaben, die wir am Zusatztermin, dem
02.07.2011, besprechen wollen. Um Ihnen und mir das Leben leichter zu machen,
sind die Aufgaben den einzelnen Kapiteln der Vorlesung zugeordnet.
1
Bipartite Graphen
1. Aufgabe
Es sei der folgende ungerichtete Graph G = (V, E) gegeben.
'&%$
!"#
a
/.-,
()*+
b
'&%$
!"#
c
()*+
/.-,
d
'&%$
!"#
e
0123
7654
f
()*+
/.-,
h
'&%$
!"#
i
/.-,
()*+
j
/.-,
()*+
k
/.-,
()*+
g
'&%$
!"#
l
(i) Geben Sie ein Matching M ⊆ V der Größe 4 an!
(ii) Geben Sie eine Knotenüberdeckung S ⊆ E der Größe 7 an!
(iii) Gibt es ein Matching M ⊆ V der Größe 6? Begründen Sie Ihre Antwort
ausführlich.
(iv) Gibt es eine Knotenüberdeckung S ⊆ E der Größe 4? Begründen Sie Ihre
Antwort ausführlich.
2. Aufgabe
Es seien der folgende bipartite Graph G = (V, E) und das Matching M =
{{1, 5}, {2, 8}} gegeben.
1
/.-,
()*+
/.-,
()*+
1).>>
5
).) . >>
.) . >> )) . >> )) .. > >
. ()*+
/.-,
()*+
2. )) .. /.-,
6
.. )) . .
.. ) .
..))) ...
..)
()*+
/.-,
()*+
7
3 .. ))) /.-,
.
. ))
..)
.).)
/.-,
()*+
/.-,
()*+
4
8
(i) Welches Matching liefert der ungarische Algorithmus, wenn mit dem Matching M begonnen wird?
(ii) Welches Eckenüberdeckung S liefert der ungarische Algorithmus, wenn
mit dem Matching M begonnen wird?
3. Aufgabe
Es sei der folgende bipartite Graph G gegeben.
/.-,
()*+
/.-,
()*+
4
1.
..
..
.. ..
/.-,
()*+
()*+
2 >> .. /.-,
5
>> ..
>
>>>...
>>.
/.-,
()*+
/.-,
()*+
3
6
(i) Bestimmen Sie eine minimale Kantenfärbung für den Graphen G!
4. Aufgabe
Es bezeichnen L1 , . . . , L4 die zur Verfügung stehenden Lehrer und K1 , . . . , K5
die zu unterrichtenden Klassen. Außerdem ist bekannt, dass folgende Rahmenbedingungen einzuhalten sind:
• Lehrer L1 unterrichtet 2 Stunden in der Klasse K1 und jeweils 1 Stunde
in den Klassen K3 und K4
• Lehrer L2 unterrichtet jeweils 1 Stunde in den Klassen K2 und K4
• Lehrer L3 unterrichtet jeweils 1 Stunde in den Klassen K2 , K3 und K4
2
• Lehrer L4 unterrichtet jeweils 1 Stunde in den Klassen K4 und K5
(i) Bestimmen Sie einen Stundenplan, der alle Rahmenbedingungen erfüllt
und der mit möglichst wenigen Wochenstunde auskommt.
2
Elementare Graphalgorithmen
5. 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
(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?
6. 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.
3
(ii) Geben Sie die Aufrufmengen an, die bei der Tiefensuche im Graphen G
erzeugt werden.
(iii) Geben Sie den inversen Graphen G0 von G an.
(iv) 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
Minimal spannende Bäume
7. 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.
(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
Vater
Größe
Vater
Größe
Vater
Größe
Vater
Größe
Vater
Größe
Vater
Größe
4
C
D
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.
8. 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 kreuzenden Kanten sukzessive verwalten kann. Was ist zu beachten? Welche
Vorteile ergeben sich?
4
Kürzeste Pfade
9. Aufgabe
Es seien G ein gerichteter, zyklenfreier, 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.
10. 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?
5
(ii) Ist es sinnvoller, den Algorithmus von Floyd und Warshall zu benutzen?
Gehen Sie davon aus, dass der gegebene Graph n Knoten und m Kanten
hat.
11. Aufgabe
Es sei ein Autoatlas mit Karten von Europa gegeben. Es geht darum, das Länge
einer kürzesten Route von London nach Paris zu bestimmen. Zu je zwei Städten
x, y bezeichne l(x, y) die Luftlinienentfernung zwischen x und y an.
(i) Geben Sie eine zulässige Heuristik an, die der A∗ -Algorithmus benutzen
könnte, um die obige Aufgabe zu lösen. Begünden Sie, weshalb die von
Ihnen gewählte Heuristik eine zulässige Heuristik ist.
(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.
12. 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.
13. 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.
1
Das sind die Knoten, für die sich die Schätzwerte noch verändern können.
6
5
Traveling Salesmann Problem
14. 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.
15. Aufgabe
Es sei ein ungerichteter, vollständiger, kantengewichteter Graph gegeben.
(i) Ist es prinzipiell möglich, dass für das Gewicht w(H1 ) des mit Heuristik
1 bestimmten Hamiltonschen Kreises H1 und das Gewicht w(H2 ) des mit
Heuristik 2 bestimmten Hamiltonschen Kreises H2 folgende Beziehungen
gelten?
• w(H2 ) ≤ w(H1 )
• w(H2 ) ≤ 3 · w(H1 )
• w(H2 ) ≥ w(H1 )
16. 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.
7
Teilaufgabe (a)
Geben Sie obere Schranken für die Laufzeit der beiden Varianten an.
Hinweis Ein gutes Sortierverfahren hat die Laufzeit O(n log(n)), um eine Liste
der Länge n zu sortieren.
Teilaufgabe (b)
Welche der beiden Varianten ist ein effizientes Verfahren zur Lösung des betrachteten algorithmischen Problems?
17. 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.
/.-,
()*+
1
/.-,
()*+
2
/.-,
()*+
3
/.-,
()*+
4
/.-,
()*+
5
/.-,
()*+
6
/.-,
()*+
7
/.-,
()*+
8
Teilaufgabe (a)
Erläutern Sie, wie mit Hilfe von Heuristik 1 – basierend auf G0 – einen Hamiltonschen Kreis bestimmt wird, der ein möglichst kleines Gewicht hat?
Teilaufgabe (b)
Erläutern Sie, wie mit Hilfe von Heuristik 2 – basierend auf G0 – einen Hamiltonschen Kreis bestimmt wird, der ein möglichst kleines Gewicht hat?
6
Flüsse
18. Aufgabe
Es sei der folgende gerichtete Graph G mit Startknoten s und Zielknoten s gegeben. Die Markierungen an den Kanten geben die Kapaziät der entsprechenden
Kante an.
8
'&%$
aS
@ !"#
/.-,
()*+
/
bO >>>
>> 20
16
>>
>>
>
9
'&%$
!"#
'&%$
!"#
s == 10
4
7
@ t
==
==
4
=
13 ==
= '&%$
!"#
0123
7654
/
e
f
10
14
Teilaufgabe (a)
Verwenden Sie den in den Algorithmus von Ford und Fukerson, um einen maximalen Fluss von s nach t im Graphen G zu bestimmen.
Teilaufgabe (b)
Geben Sie einen minimalen (s, t)-Schnitt für den Graphen G an.
9
Herunterladen