¢¡¤£¦¥¤§© ¤

Werbung
http://www.mpi-sb.mpg.de/~hannah/info5-ws00
IS
UN
R
S
WS 2000/2001
E R SIT
S
Schömer, Bast
SA
IV
A
Grundlagen zu
Datenstrukturen und Algorithmen
A VIE N
15. Übungsblatt
Abgabetermin: Dienstag, 20. Februar 2001
Aufgabe 1 (20+10+10 Punkte) Ein ungerichteter gewichteter Graph habe die Eigenschaft (Q),
wenn für jeden Schnitt des Graphens die billigste Kante, die den Schnitt überquert, eindeutig
bestimmt ist.
(a) Zeigen Sie, dass wenn ein Graph die Eigenschaft (Q) hat, sein minimal aufspannender Baum
eindeutig bestimmt ist.
(b) Zeigen Sie, dass die Umkehrung dieser Aussage nicht gilt, indem Sie einen Graphen angeben,
der zwar die Bedingung (Q) nicht erfüllt, aber trotzdem einen eindeutig bestimmten minimal
aufspannenden Baum hat.
(c) Geben Sie ein Beispiel für einen Graphen, der mindestens zwei verschiedene minimal aufspannende Bäume hat.
Vergessen Sie nicht zu begründen, warum ihre aufspannenden Bäume aus (b) und (c) minimal
sind.
Aufgabe 2 (20+10 Punkte) Zeigen Sie, wie sich die Union-Find Datenstruktur aus der Vorlesung so erweitern lässt, dass die Mengennamen beliebige (paarweise verschiedene) Elemente aus
einer gegebenen Menge N von Namen sein können. D.h. bei der Initialisierung sollten den einelementigen Mengen beliebige (paarweise verschiedene) Namen aus N zugewiesen werden können,
und eine Union Operation sollte erlauben, zwei Mengen mit gegebenen Namen N1 , N2 ∈ N zu
einer Menge mit einem gegebenem Namen N3 ∈ N zu vereinigen (N3 darf gleich N1 oder N2
sein, muss sich aber von den aktuellen Namen aller anderen Mengen unterscheiden); ein Find soll
natürlich dann den entsprechenden Namen aus N zurückgeben. Bei n Elementen und m Union/Find Operationen sollte die (für (b): erwartete) Laufzeit nach wie vor O(n + m · α(n, m/n))
und der Platzverbrauch O(n) sein.
(a) Betrachten Sie zuerst den Fall, dass N = {1, . . . , n}.
(b) Betrachten Sie dann den allgemeinen Fall, wobei Sie zur Vereinfachung annehmen können,
dass die Elemente aus N in jeweils einer Speicherzelle repräsentiert sind.
Vergessen Sie nicht, jeweils zu begründen, warum ihre Konstruktion den Anforderungen genügt.
Hinweis: Verwalten Sie auf geschickte Weise eine Zuordnung zwischen den benutzten Namen aus
N und den Namen, die die ursprüngliche Datenstruktur verwendet. Für Teil (b) könnte sich die
Lösung einer Aufgabe vom 11. Übungsblatt als nützlich erweisen.
Aufgabe 3 (5+25 Punkte) Gegeben sei eine zu Anfangs leere Prioritätswarteschlange und eine
Folge von n insert und n extract-min Operationen, wobei die insert Operationen in einer
beliebigen Reihenfolge die Zahlen 1, . . . , n einfügen, und jede extract-min Operation das kleinste
Element aus der Warteschlange löscht und ausgibt. Dabei dürfen die extract-min Operationen
beliebig zwischen den insert Operationen stehen, außer dass gewährleistet sein muss, dass bei
keinem extract-min die Warteschlange leer ist. Eine solche Folge von Operationen wäre z.B. (für
n = 4)
insert(3);
extract-min();
insert(4);
insert(1);
extract-min();
insert(2);
extract-min();
extract-min();
\\ Ausgabe: 3
\\ Ausgabe: 1
\\ Ausgabe: 2
\\ Ausgabe: 4
und es würden nacheinander die Zahlen 3, 1, 2, 4 ausgegeben.
(a) Bestimmen Sie, in welcher Zeit sich die Ausgabefolge berechnen lässt, wenn man die Operationen tatsächlich der Reihe nach auf einer Prioritätswarteschlange (ihrer Wahl) ausführt.
(b) Zeigen Sie, wie sich die Ausgabefolge unter Verwendung einer geeigneten Union-Find Datenstruktur in O(n · α(n, 1)) Zeit berechnen lässt.
Hinweis zu (b): Gehen Sie so vor, dass erst die Position der Zahl 1 in der Ausgabefolge berechnet
wird, dann die Position der Zahl 2, dann die Position der Zahl 3, usw. Beginnen Sie, indem
sie alle Zahlen, die zwischen zwei extract-min Operationen eingefügt werden, in einer Menge
zusammenfassen, und geben Sie der Menge vor der i-ten extract-min Operation den Namen i.
Aufgabe 4 (10 Punkte) Zeigen Sie, dass die inverse Ackermann-Funktion nicht durch eine Konstante nach oben beschränkt ist, d.h. dass für beliebiges n0 ≥ 0 gilt, dass limn→∞ α(n, n0 ) = ∞.
Aufgabe 5 (10∗ Punkte) Recherchieren Sie, was die Ackermann-Funktion aus der Vorlesung mit
der Funktion zu tun hat, die einst W. Ackermann untersucht hat (Zum Hilbertschen Aufbau der
reellen Zahlen, Math. Annalen 99 (1928), pp. 118–133).
Herunterladen