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).