Scheinklausur: DsAlg SS 2011

Werbung
2006
Scheinklausur: DsAlg SS 2011
Immatrikulationsnr.
Name, Vorname
Hinweise:
• Halten Sie die Klausurblätter geschlossen, bis durch die Aufsichtspersonen der
Beginn angezeigt wird
• Achten Sie bitte darauf, dass auf Ihren Blättern links oben immer die gleiche
Zahl steht. Falls nicht, melden Sie sich bitte bei einer Aufsichtsperson
• Lesen Sie die einzelnen Aufgaben sorgfältig durch
• Kreuzen Sie immer eine Antwortalternative an
• Kein Kreuz zählt als falsches Kreuz
• Betrugsversuche haben sofortigen Ausschluss von der Klausur und Nichtbestehen zur Folge
• Halten Sie bei Abgabe Studienausweis und Personalausweis neben der Klausur
bereit.
Fragenblock
Im Folgenden einige Fragen bzgl. der Allgemeinbildung.
Frage 1
Welche dieser Aussagen ist korrekt ?
6
Die Wahrscheinlichkeit im Lotto zu gewinnen (6 Richtige) ist 49
a
b
Die Wahrscheinlichkeit, bei Abgabe eines Lottoscheins (nur ein Kästchen mit 6 Kreuzen
ausgefüllt) nicht zu gewinnen, ist 1.1.
c
Die Wahrscheinlichkeit, im 25. Wurf einer Sequenz von 50 Würfen einer fairen Münze
’Kopf’ zu werfen, ist geringer, wenn in den ersten 24 Würfen immer ’Kopf’ geworfen
wurde.
d
Die Mächtigkeit des Schnitts zweier Mengen ist immer kleiner gleich den einzelnen
Mächtigkeiten.
Frage 2
Es gelte: A ⇒ B (”aus Aussage A folgt Aussage B”), B ⇒ C und A ⇒ D. Welche dieser Aussagen
ist im Allgemeinen falsch?
a
B⇒C
B⇒D
b
c
Falls C nicht gilt, gilt A nicht.
A⇒C
d
Frage 3
Wir haben einen 3 GHz Rechner, der pro Takt eine Instruktion ausführen kann. Wir lassen einen
Sortieralgorithmus, der n2 Operationen benötigt, auf einer Eingabe von 1 Million Elementen laufen.
Wie lange dauert es in etwa, bis der Algorithmus fertig ist?
a
1/2 Minute
b
5 Minuten
2 Sekunden
c
1 Stunde
d
Frage 4
Wir haben einen 3 GHz Rechner, der pro Takt eine Instruktion ausführen kann. Wir lassen einen
Algorithmus, der n log10 n Operationen benötigt, auf einer Eingabe von 10 Millionen Elementen
laufen. Wie lange dauert es in etwa, bis der Algorithmus fertig ist?
a
2 Minuten
2 Sekunden
b
2 Hundertstel Sekunden
c
d
2 Tausendstel Sekunden
Fragenblock
In der Vorlesung wurden binäre Suchbäume und insbesondere (2,4)-Bäume behandelt (üblicherweise
mit n Knoten). Die folgenden Fragen beziehen sich auf diesen Vorlesungsabschnitt:
2006
Frage 5
Welche Operation findet bei (2,4)-Bäumen Anwendung und kann sich nicht weiter in Richtung Wurzel
propagieren?
a
Färben
b
Spalten
Stehlen
c
Sortieren
d
Frage 6
Inwieweit können wir einen gewissen Grad an Vorsortierung einer Eingabesequenz bei der Konstruktion eines (2,4)-Baumes ausnutzen?
a
Wir müssen das nächste Element nicht immer neu von der Wurzel aus im aktuellen (2,4)Baum lokalisieren, sondern können beim rechtesten Blatt anfangen.
b
Wir können durch Nutzung eines Heaps die Vorsortierung zur Beschleunigung einsetzen.
Dadurch, dass die Mergeeigenschaft schon fast erfüllt ist, geht der Aufbau des (2,4)c
Baumes schneller.
d
Wir können zunächst mittels Bubblesort sortieren und dadurch dann den (2,4)-Baum
schneller aufbauen.
Frage 7
Welche Aussage ist korrekt?
a
Man kann in O(log log n) Zeit entscheiden, ob ein Element x in einem (2,4)-Baum enthalten ist und dieses löschen.
Ein neues Element kann in O(log n) Zeit in einen (2,4)-Baum eingefügt werden.
b
Jedes Blatt eines (2,4) Baums hat immer zwischen 2 und 4 Kinder.
c
Ein neues Element kann in O(1) Zeit in einen (2,4)-Baum eingefügt werden.
d
Frage 8
Welche der folgenden Aussagen ist falsch?
a
Die Kosten der Verschmelzungen nach einer Löschung können O(log n) betragen.
Die Kosten der Spaltoperationen nach einer Einfügung sind immer O(1).
b
c
In einer Sequenz von Einfügungen und Löschungen betragen die amortisierten Kosten für
das Verschmelzen, Stehlen und Spalten O(1).
Die Kosten der Spaltoperationen nach einer Einfügung betragen O(log n).
d
Frage 9
Welche Operationen sind beim Löschen eines Elements aus einem (2,4)-Baum wichtig?
Ausleihen und Schneiden
a
Sortieren und Traversieren
b
Spalten und Lokalisieren
c
d
Stehlen und Verschmelzen
Frage 10
Was gilt für die Höhe h eines (2, 4)-Baumes mit n Schlüsseln?
h = log2 n
a
n log2 n ≤ h ≤ 2n log2 n
b
n ≤ h ≤ 2n
c
1
log2 n ≤ h ≤ log2 n
d
2
Fragenblock
In der Vorlesung wurden verschiedenste Graphalgorithmen behandelt. Die folgenden Fragen beziehen
sich auf diesen Vorlesungsabschnitt:
Frage 11
Welche der folgenden Aussagen ist korrekt?
a
Manche Knoten werden von Dijkstra mehrfach aus der Priority Queue entfernt.
Sobald Dijkstra einen Knoten aus der Priority Queue entfernt, bleibt dessen Distanzlabel
b
fix.
c
Es kann Kanten geben, welche Dijkstra bis zu n-mal anschaut.
Sobald Dijkstra ein Distanzlabel einem Knoten zuweist, bleibt dieses fix.
d
Frage 12
Eine topologische Sortierung eines gerichteten Graph G(V, E) ist eine injektive Funktion φ : V →
{1, 2, . . . , n} sodass ∀e = (v, w) ∈ E: φ(v) ≤ φ(w) gilt.
Welche dieser Aussagen ist korrekt?
a
Nur Graphen mit nicht-negativen Kantengewichten haben eine topologische Sortierung.
Kein gerichteter Graph, der einen Zyklus enthält, hat eine topologische Sortierung.
b
Nur Graphen mit negativen Zyklen haben azyklische Kantengewichte.
c
d
Azyklische Graphen können keine negativen Kantengewichte haben.
Frage 13
Welche dieser Aussagen ist falsch.
a
Dijkstras Algorithmus braucht nie mehr als O(m · n) Operationen.
b
Breiten- und Tiefensuche lassen Kantengewichte unberücksichtigt.
Tiefensuche braucht im schlimmsten Fall O(n) Operationen.
c
Breitensuche hat Laufzeit O(m + n).
d
Frage 14
Welche dieser Aussagen ist falsch?
a
Die Adjazenzlistendarstellung ist insbesondere für Graphen mit wenig Kanten geeignet.
Die Adjazenzmatrixdarstellung ist insbesondere für Graphen mit wenig Kanten geeignet.
b
c
Die Adjazenzmatrixdarstellung eines Graphen mit n Knoten und m Kanten verbraucht
O(n2 ) Platz.
Die Adjazenzlistendarstellung eines Graphen mit n Knoten und m Kanten verbraucht
d
O(n + m) Platz.
2006
Frage 15
Welche dieser Aussagen ist korrekt?
a
Wir können mit Dijkstras Algorithmus den kürzesten Weg für Graphen mit Kantengewichten in Z+ berechnen.
b
Wir können mit Breitensuche den kürzesten Weg für Graphen mit Kantengewichten in Z
berechnen.
Wir können mit Dijkstras Algorithmus den kürzesten Weg für Graphen mit Kanc
tengewichten in R berechnen.
d
Wir können mit Tiefensuche den kürzesten Weg für Graphen mit Kantengewichten in N+
berechnen.
Frage 16
Welche der folgenden Aussagen ist korrekt?
a
Mit Tiefensuche kann man in Zeit O(n + m) bestimmen, ob zwei Knoten v und w in
derselben Zusammenhangskomponente eines ungerichteten Graphen liegen.
b
Mit Breitensuche kann man die Tiefe einer Tiefensuche mit quadratischem Aufwand nach
unten abschätzen.
Mit Breitensuche kann man in Zeit O(log(m + n)) bestimmen, ob zwei Knoten v und w
c
in derselben Zusammenhangskomponente eines ungerichteten Graphen liegen.
d
Mit Tiefensuche kann man in Zeit O(log(m + n)) bestimmen, ob zwei Knoten v und w in
derselben Zusammenhangskomponente eines ungerichteten Graphen liegen.
Frage 17
Welche dieser Aussagen ist falsch?
a
Mit der (naiven) Adjazenzmatrixdarstellung können wir in konstanter Zeit bestimmen,
ob zwischen zwei Knoten v und w eine Kante existiert.
b
Mit der Adjazenzlistendarstellung können wir in konstanter Zeit bestimmen, ob zwischen
zwei Knoten v und w eine Kante existiert.
c
Bei der Adjazenzlistendarstellung können wir die adjazenten Knoten eines Knotens v in
Zeit proportional zur Anzahl dieser adjazenten Knoten bestimmen.
Mit der (naiven) Adjazenzmatrixdarstellung können wir die zu einem Knoten v adjazenten
d
Knoten in Zeit proportional zur Anzahl aller Knoten bestimmen.
Frage 18
Welche dieser Aussagen ist falsch?
a
Jeder Baum enthält einen Graph, der alle Knoten des Baums verbindet.
b
Jeder Baum ist ein Graph.
Jeder zusammenhängende Graph enthält einen Baum, der alle Knoten des Baums
c
verbindet.
d
Jeder Graph enthält einen Baum, der alle Knoten des Graphs verbindet.
Frage 19
Welche der folgenden Aussagen ist korrekt?
a
Dijkstra kann benutzt werden, um den kürzesten Weg in ungewichteten Graphen zu
berechnen.
b
Breitensuche kann benutzt werden, um den kürzesten Weg in gewichteten Graphen zu
berechnen.
Topologische Suche kann benutzt werden, um den kürzesten Weg in ungewichteten
c
Graphen zu berechnen.
d
Tiefensuche kann benutzt werden, um den kürzesten Weg in ungewichteten Graphen zu
berechnen.
Frage 20
Wieviele Kanten hat ein Baum mit n Knoten?
a
2n − n
n + 3 − 2n
b
n log n
c
d
3n2 − 2n2 + n − n2 − 1
Fragenblock
Die folgenden Fragen beziehen sich auf den Block über Dynamisches Programmieren, wie er in der
Vorlesung behandelt wurde.
Frage 21
Was ist die Levenshtein Distanz zwischen flossen und pfosten (minimale Kosten, um aus ’flossen’
unter den unten gegeben Operationen ’pfosten’ zu machen)? Nehmen Sie an, dass Löschen Kosten
1 hat, Ersetzen (durch einen anderen Buchstaben) Kosten 2 und Einfügen Kosten 1.
4
a
5
b
c
4/3
3
d
Frage 22
Welche der folgenden Aussagen ist falsch?
a
Für eine gegebene Instanz des Rucksackproblems gibt es genau einen optimalen Rucksack.
Aus einem vervollständigten Dynamischen Programm können alle optimalen Rucksackb
packungen ermittelt werden.
c
Für die Anwendung der Technik des Dynamischen Programmierens, sollten die Gewichte
oder die Werte ganzzahlig sein, wenn eine optimale Lösung gefunden werden soll.
Mittels Dynamischem Programmieren können wir auch folgendes Problem lösen: Gibt es
d
eine Rucksackpackung mit Wert mindestens W und Gewicht höchstens G?
Frage 23
Was ist die Länge der longest common subsequence von flossen und pfosten?
a
3
4
b
5
c
d
6
2006
Frage 24
Sie sind beim Juwelier eingebrochen und haben einen Rucksack mit Tragekapazität 333 g dabei. Was
sollten Sie mitnehmen, wenn Sie den maximalen Wert erzielen, jedoch nicht Ihre Rucksackkapazität
überschreiten wollen?
Es liegen 7 Gegenstände herum mit Gewichten 169g, 188g, 200g, 300g, 423g, 500g, 165g und Werten
9 EUR, 10 EUR, 4 EUR, 2 EUR, 3 EUR, 1 EUR, 5 EUR.
Was ist der Wert des wertvollsten Rucksacks, den Sie packen können?
a
200 g
13 EUR
b
15 EUR
c
d
10 EUR
Fragenblock
Die folgenden Fragen beziehen sich auf den Block über Minimale Spannbäume (MST). Hierzu betrachten wir einen ungerichteten Graphen G(V, E) mit Kostenfunktion c : E → R+ , sodass die
Kantenkosten paarweise verschieden sind.
Frage 25
Welche dieser Aussagen ist korrekt?
a
Kruskals Algorithmus lässt genau einen Spannbaum schrittweise wachsen, bis er alle
Knoten von G umfasst.
b
Kruskals Algorithmus verwaltet während des Ablaufs eine Partition der Knotenmenge in
ZHKs.
Prims Algorithmus verwaltet während des Ablaufs eine Partition der Knotenmenge in
c
ZHKs.
d
In Prims Algorithmus müssen alle Kanten vorsortiert werden.
Frage 26
Sei P ⊂ V beliebig, e = (v, w) eine Kante zwischen P und V \P . Welche der folgenden Aussagen ist
korrekt?
Falls e minimale Kosten aller Kanten zwischen P und V \P hat, ist e Teil jedes MST von
a
G.
b
Kein MST von G enthählt e.
Falls e maximale Kosten aller Kanten zwischen P und V \P hat, ist e Teil jedes MST von
c
G.
d
Es gibt MSTs, die e enthalten und solche, die e nicht enthalten.
Fragenblock
Folgende Fragen erstrecken sich sowohl über den Themenbereich minimale Spannbäume als auch
Wegeberechnungen.
Gegeben sei folgender gewichteter, ungerichteter Graph:
1
11
1
7
7
6
6
3
2
9
11
0
11
4
6
13
8
4
10
1
5
6
9
Frage 27
Was ist die Anzahl der Zusammenhangskomponenten dieses Graphen?
a
2
3
b
1
c
0
d
Frage 28
Welchen Wert hat die Summe der Kantengewichte des MST?
a
51
57
b
55
c
d
44
Frage 29
Was ist die Länge des kürzesten Pfads von Knoten 0 zu Knoten 4:
a
3
6
b
5
c
d
7
Fragenblock
In der Vorlesung wurden verschiedene Sortieralgorithmen behandelt. Die folgenden Fragen beziehen
sich auf diesen Vorlesungsabschnitt. Gehen Sie davon aus, dass die zu sortierenden Mengen keine
Elemente doppelt enthalten:
2006
Frage 30
Welche dieser Aussagen ist falsch (Bezug auf den in der VL behandelten, in einem Array/Vector
abgelegten Heap).
a
Ein Heap aus n Elementen kann in Zeit O(n) erstellt werden.
b
Nach dem Entfernen des obersten Elements eines Heaps müssen wir im schlimmsten Fall
etwa log n Vertauschungen ausführen, bis wir die Heapeigenschaft wiederhergestellt haben.
Bei einer schlechten Einfügereihenfolge artet ein Heap in eine lineare Liste aus.
c
Ein Heap hat logarithmische Tiefe.
d
Frage 31
Was ist die schärfste Schranke für die worst-case Laufzeit von Bubblesort?
a
O(n3 )
O(n)
b
O(n2 )
c
O(n log n)
d
Frage 32
Wofür sind Heaps eher weniger nützlich? (Bezug auf den in der VL behandelten, in einem Array/Vector abgelegten Heap)
Zum Sortieren.
a
Zur Verwaltung der Menge U in Graphen mit nicht-negativen Kantengewichten (bei Dib
jkstra).
c
Zur Verwaltung des jeweils kleinsten bzw. größten Elements einer sich ändernden Menge.
Für das Wörterbuchproblem, um eine Menge von Schlüsseln zu verwalten und effizient
d
darauf zugreifen zu können.
Frage 33
Welche dieser Aussagen ist falsch?
a
Es gibt Eingaben für den randomisierten Quicksort, bei denen der Algorithmus immer
O(n log n) Operationen benötigt.
b
Die Laufzeit von Heapsort hängt nicht von der (Un)sortiertheit der Eingabe ab.
Die Laufzeit von randomisiertem Quicksort hängt nicht von der (Un)sortiertheit der
c
Eingabe ab.
d
Mergesort sortiert n Elemente immer in Zeit O(n log n).
Frage 34
Ein Algorithmus braucht zur Bearbeitung einer Probleminstanz der Größe n zunächst n Zeitschritte
und ruft sich dann (falls n > 1) selber rekursiv mit zwei Probleminstanzen der Größe n/2 auf. Was
ist die beste obere Schranke für die Laufzeit dieses Algorithmus?
a
O(n log n)
O(n)
b
O(log n)
c
d
O(n2 log n)
Frage 35
Was ist die beste Schranke für die worst-case Laufzeit von Heapsort?
a
O(n log n)
O(n)
b
c
O(n3 )
O(n2 )
d
Herunterladen