Klausur Effiziente Algorithmen WS 05/06 24. Februar

Werbung
TU Ilmenau, Fakultät IA
Institut Theoretische Informatik
FG Automaten und Formale Sprachen
Dr. M. Brinkmeier
Klausur Effiziente Algorithmen WS 05/06
24. Februar 2006
NICHT MIT BLEISTIFT ODER ROTSTIFT SCHREIBEN!
Heften Sie die Blätter bei Abgabe zusammen, und tragen Sie auf jedem Blatt
Ihren Namen, Vornamen, Studiennummer und Matrikel ein. Es sind keine Hilfsmittel,
insbesondere Taschenrechner oder Mobiltelefone, zugelassen.
Arbeitszeit 60 min
Name, Vorname:
Studiennummer und Matrikel:
abgegeben:
Code
2 Aufgabenblätter
. . . eigene Blätter
Einsichtnahme
Datum, Unterschrift
Aufgabe
1
2
3
4
5
6
Ges.
erreichbare Punktzahl
15
8
8
6
6
7
50
erreichte Punktzahl
Aufgabe 1
[15 Punkte]
Bitte kreuzen Sie für jede der folgenden 5 Fragen entweder JA“ oder NEIN“ in jeder Zeile an.
”
”
Bewertung: Für jede korrekte Antwort erhalten Sie einen Punkt. Für jede falsche Antwort
wird Ihnen ein halber Punkt abgezogen. Wurde kein Kreuz gemacht, erhalten Sie keinen
Punkt.
(a) Welche der folgenden Aussagen sind korrekt?
JA NEIN
[ ] [ ] n Wörter der Gesamtlänge L über einem Alphabet Σ lassen sich in Zeit
O( L + |Σ|) sortieren.
[ ] [ ] Die Ermittlung des Maximums einer Menge von n Schlüsseln benötigt
mindestens n + 1 Vergleiche.
[ ] [ ] Die Sortierung von n allgemeinen Schlüsseln benötigt mindestens Ω(n log2 n)
Vergleiche.
(b) Welche der folgenden Aussagen über die Sortierung von n allgemeinen Schlüsseln sind
korrekt?
JA NEIN
[ ] [ ] MergeSort benötigt im schlechtesten Fall O(n log n) Vergleiche.
[ ] [ ] QuickSort benötigt im schlechtesten Fall O(n log n) Vergleiche.
[ ] [ ] MaxSort benötigt im schlechtesten Fall eine Laufzeit von O(n2 ).
2
Klausur Effiziente Algorithmen WS 05/06
(c) Welche der folgenden Aussagen sind korrekt?
JA NEIN
[ ] [ ] Das i-t kleinste Element von n Schlüsseln lässt sich in O(n) Schritten ermitteln.
[ ] [ ] Eine Sequenz von m Operationen auf einer Union-Find-Datenstruktur benötigt
höchstens O(m) Zeit.
[ ] [ ] Die amortisierten Kosten einer delete min Operationen in einem
Fibonacci-Heap mit n Elementen sind O(1).
(d) Sei G = (V, E) ein gerichteter Graph mit positiven Kantengewichten. Sei n = |V | und
m = | E|. Welche der folgenden Aussagen sind korrekt?
JA NEIN
[ ] [ ] Der Algorithmus von Kruskal berechnet einen minimalen Spannbaum von G
mit einer Worst-Case-Laufzeit von O(m + n log n).
[ ] [ ] Ist G azyklisch, lässt sich die transitive Hülle von G in Zeit O(n3 ) berechnen.
[ ] [ ] Für den Besuch aller Kanten und Knoten von G benötigt man mindestens eine
Laufzeit von Ω(m log n).
(e) Sei G = (V, E) ein ungerichteter Graph mit positiven Kantengewichten. Sei n = |V | und
m = | E|. Welche der folgenden Aussagen sind korrekt?
JA NEIN
[ ] [ ] Für einen Knoten s ∈ V lassen sich, mittels des Algorithmus von Dijkstra, alle
Distanzen d(s, v) in Zeit O(m + n) berechnen.
[ ] [ ] Sind die Kantengewichte gleichmäßig über [0, 1] verteilt, löst der Algorithmus
von Hagerup das Single-Source-Shortest-Path Problem im Mittel in Zeit
O ( n + m ).
[ ] [ ] Ist δ der Minimalgrad von G, so lässt sich der Kantenzusammenhang von G in
Zeit O(δn) berechnen.
Aufgabe 2 (Algorithmus von Prim)
[8 Punkte]
Berechnen Sie mittels des Algorithmus von Prim einen minimalen Spannbaum des folgenden
Graphen. Geben Sie die Zwischenergebnisse nach jeder Runde an.
89:;
?>=<
q A MMMM
q
q
MMM6
5 qqqq
MMM
q
8
q
MMM
q
q
q
M
q
q
3
1
89:;
?>=<
89:;
?>=<
89:;
?>=<
C
D
B MMM
qq
MMM
q
q
q
MMM
q
qq
7
4 MMMM
qqq 2
q
M
q
89:;q
?>=<
E
Aufgabe 3 (QuickSort)
[8 Punkte]
Zeichnen Sie einen Baum, der die Rekursion von QuickSort auf der Eingabe 4, 7, 2, 6, 3, 9, 1, 8, 5
darstellt. Gehen Sie dabei davon aus, dass in jedem Schritt das erste Element der betrachteten
Teilfolge als Pivotelement gewählt wird.
Klausur Effiziente Algorithmen WS 05/06
3
Aufgabe 4 (Topologische Sortierung)
[6 Punkte]
Sortieren Sie, sofern möglich, die gegebenen Graphen topologisch. Tragen Sie dazu Zahlen in die
Knoten der Graphen ein. Falls keine topologische Sortierung möglich ist, geben Sie eine kurze
Begründung dafür an.
?>=< o
89:;
89:;
?>=<
D /W /
?

// 
//
 //
89:; // / ?>=<
?>=<
89:;
//
//
//
89:;
?>=<
89:;
/ ?>=<
?>=< o
89:;
89:;
?>=<
//?_ ??
// ??
/ ??
/// ??
89:; // ?>=<
?>=<
89:;
//
/
 ///


89:;
?>=<
89:;
?>=<
Aufgabe 5 (Prioritätswarteschlangen)
?>=<
89:;
89:;
/ ?>=<
?_ ?
O
??
??
??
?
89:; o
?>=<
89:;
?>=<
?





89:;
?>=<
89:;
/ ?>=<
[6 Punkte]
(a) Geben Sie die Struktur der Binomial Queue nach dem Ausführen der Operation
delete min an!
89:;
?>=<
?>=<
89:;
6
1?
??
??
?
89:;
?>=<
89:;
?>=<
5
3
89:;
?>=<
9
(b) Geben Sie die Struktur des Fibonacci Heaps nach dem Ausführen der Operation
delete min an!
89:;
?>=<
89:;
?>=<
89:;
?>=<
9
6
2?
??
??
?
89:;
?>=<
89:;
?>=<
5
7
89:;
?>=<
4
Aufgabe 6 (Amortisierte Analyse)
[7 Punkte]
Eine Folge von n Operationen werde auf einer Datenstruktur ausgeführt. Dabei seien die Kosten
ci der i-ten Operation gegeben durch:
(
1 falls i 6= 2blog ic
ci =
i falls i = 2blog ic .
Betrachten Sie das Potential Φ(i ) = i − 2blog ic+1 und zeigen Sie, dass die n Operationen höchstens
die Kosten 2n verursachen.
Viel Erfolg!
Herunterladen