Technische Universität München - TUM - Zentrum Mathematik

Werbung
Technische Universität München
Zentrum Mathematik
Algorithmische Diskrete Mathematik
Prof. Dr. A. Taraz, Dipl.-Math. A. Würfl
Aufgabenblatt MC 1
Aufgabe MC 1.1 (O-, o- und Θ-Notation)
Wenn c, C ≥ 0 existieren mit c · g(n) ≤ f (n) ≤ C · g(n), dann ist f (n) = Θ(g(n)).
[10×1]
Sind die folgenden Aussagen war?
wahr falsch
2
2
a) 17n = O(n).
b) 17n + log n = Θ(n).
c) f (n) = O(g(n)) ⇒ ∃C ≥ 0 : limn→∞ f (n)/g(n) = C.
d)
n2
2
−
n
2
= o(n2 ).
2
2
2
2
2
2
2
2
e) log n = Θ(ln n).
√
f) log n = o(log n).
g) ∀ε ∈ R>0 , ∀k ∈ N : (log n)k = o(nε ).
h) n3 = Θ(n4 ).
j) n! = O(2n log n ).
2
2
2
2
Bitte wenden!
2
2
2
i) log(n3 ) = Θ(log(n4 )).
2
2
2
Aufgabe MC 1.2 (Breiten- und Tiefensuche)
Gegeben sei der folgende Graph G:
v3
v5
[10×1]
v9
v4
v8
v7
v2
v1
v6
Welche der folgenden Aussagen sind wahr?
a) BFS(G, v7 ) besucht immer Knoten v5 vor Knoten v4 .
b) DFS(G, v7 ) besucht immer Knoten v5 vor Knoten v4 .
c) BFS(G, v5 ) besucht vielleicht Knoten v8 vor Knoten v9 .
d) DFS(G, v3 ) besucht vielleicht Knoten v6 vor Knoten v4 .
e) Eine mögliche Besuchsreihenfolge für BFS(G, v7 ) ist v7 , v6 , v8 , v9 , v5 , v1 , v2 , v3 , v4 .
f) Eine mögliche Besuchsreihenfolge für DFS(G, v5 ) ist v5 , v6 , v7 , v8 , v9 , v1 , v4 , v3 , v2 .
wahr falsch
2
2
2
2
2
2
2
2
2
2
2
2
Nun sei G wieder ein beliebiger Graph mit m Kanten und n Knoten. Welche der folgenden Aussagen
sind wahr?
g) Man kann dist(v, w) für v, w ∈ V unter Verwendung von BFS in O(n + m) bestimmen.
h) Man kann dist(v, w) für v, w ∈ V unter Verwendung von DFS in O(n + m) bestimmen.
i) Man kann die Liste der Abstände zwischen allen Knotenpaaren unter Verwendung
von BFS in O(n + m) bestimmen.
j) Man kann die Liste der Abstände zwischen allen Knotenpaaren unter Verwendung
von BFS in O(nm) bestimmen.
Weiter auf der nächsten Seite!
wahr falsch
2
2
2
2
2
2
2
2
Aufgabe MC 1.3 (Dijkstra)
[10×1]
Für einen Graphen G = (V, E) betrachten wir die Reihenfolge v1 , v2 , ..., vn mit vi ∈ V , in der die
Knoten von G im Dijkstra-Algorithmus aus Q gelöscht werden. Wir sagen dann, dass v1 , v2 , ..., vn
eine (mögliche) Besuchsreihenfolge für Dijkstra(G, v1 ) ist.
Sei G der folgende Graph mit Gewichtsfunktion ` wie angegeben:
v3
v9
3
1
v4
4
3
v2
1
2
1
2 v5
v8
3
1
4
2
5
2
v7
3
v6
v1
Welche der folgenden Aussagen sind wahr?
a) Eine Besuchsreihenfolge für Dijkstra(G, `, v1 ) ist v1 , v4 , v9 , v8 , v6 , v5 , v2 , v7 , v3 .
b) Eine Besuchsreihenfolge für Dijkstra(G, `, v7 ) ist v7 , v6 , v8 , v5 , v9 , v4 , v2 , v1 , v3 .
c) Beim Ausführen von Dijkstra(G, `, v9 ) ist abst[v9 ] stets echt kleiner als abst[v2 ].
d) Beim Ausführen von Dijkstra(G, `, v1 ) ist abst[v3 ] stets echt kleiner als abst[v8 ].
e) Beim Ausführen von Dijkstra(G, `, v7 ) ist abst[v9 ] stets echt kleiner als abst[v8 ].
wahr falsch
2
2
2
2
2
2
2
2
2
2
Nun sei G wieder ein beliebiger Graph mit m Kanten und n Knoten und ` eine positive Gewichtsfunktion.
f) Seien v1 , v2 , ..., vn eine mögliche Besuchsreihenfolge für Dijkstra(G, `, v1 ). Dann
gilt am Ende des Algorithmus abst[v1 ] ≤ abst[v2 ] ≤ · · · ≤ abst[vn ].
g) Ist man beim Aufruf von Dijkstra(G, `, s) nur an der Distanz von s zu einem
festen Knoten t interessiert, so kann man abbrechen, sobald abst[t] < ∞.
wahr falsch
2
2
2
2
h) Ist man beim Aufruf von Dijkstra(G, `, s) nur an der Distanz von s zu einem
festen Knoten t interessiert, so kann man abbrechen, sobald t aus Q gelöscht
wird.
2
2
i) Nehmen wir an, in G existieren negative Kantengewichte und sei −C das kleinste
dieser Gewichte. Der kürzeste Weg zwischen zwei Knoten in einem solchen Graphen kann bestimmt werden, indem zunächst jedes Gewicht um (C + 1) erhöht
und dann der Dijkstra-Algorithmus verwendet wird.
2
2
j) Nehmen wir an, in G existiert genau eine Kante k mit negativem Gewicht, alle anderen Kanten haben positives Gewicht. Dann kann ein kürzester s-t-Weg
durch zweimaliges Aufrufen des Dijkstra-Algorithmus auf einem Subgraphen von
G gefunden werden.
2
2
Bitte wenden!
Aufgabe MC 1.4 (MSTs und Matroide)
Sei G der folgende Graph mit Gewichtsfunktion ` wie angegeben:
v3
v9
3
1
v4
4
3
v2
[10×1]
1
2
v8
1
5 v5
3
1
4
2
2
5
v7
3
v6
v1
Welche der folgenden Aussagen sind wahr?
a) Eine gültige Reihenfolge beim Ablaufen der Knoten im Prim-Algorithmus ist
v5 , v4 , v9 , v8 , v1 , v6 , v3 , v7 , v2 .
b) Im Algorithmus von Prim wird der Knoten v2 stets als Letzter in den spannenden
Baum eingebunden.
c) Im Algorithmus von Kruskal existieren unmittelbar vor dem letzten Schritt stets
die Komponenten {v2 } und V − v2 .
d) Kein minimal spannender Baum enthält die Kanten {v1 , v5 } und {v4 , v5 } gleichzeitig.
e) Sei (E, I) das Kreismatroid von G. Dann ist {v6 , v7 } in jedem Element von I
enthalten.
wahr falsch
2
2
2
2
2
2
2
2
2
2
Im Folgenden sei G = (V, E) wieder ein beliebiger Graph.
f) Seien T und T 0 zwei minimal spannende Bäume von G, und e1 ≤ · · · ≤ en−1 bzw.
e01 ≤ · · · ≤ e0n−1 die Gewichte der Kanten von T bzw. T 0 . Dann gilt für alle i stets
ei = e0i .
g) Es existiert ein Graph G mit einem minimal spannenden Baum T , sodass der
Kruskal-Algorithmus diesen spannenden Baum nie findet.
h) Sei G ein gewichteter Graph mit injektiver Gewichtsfunktion ` : V 7→ R. Dann
gibt es genau einen minimal spannenden Baum.
i) Seien (S1 , I1 ), (S2 , I2 ) Matroide mit S1 ∩ S2 = ∅. Dann ist auch (S1 ∪ S2 , I) mit
I = {I1 ∪ I2 : I1 ∈ I1 , I2 ∈ I2 } ein Matroid.
j) Seien (S, I1 ), (S, I2 ) Matroide. Dann ist auch (S, I1 ∩ I2 ) ein Matroid.
A
wahr falsch
2
2
2
2
2
2
2
2
2
2
Herunterladen