R S SA IS S UN E R SIT A IV A VIE N 9. Übungsblatt zu Grundzüge von Algorithmen und Datenstrukturen, WS 12/13 Prof. Dr. Markus Bläser, Radu Curticapean, Christian Engels http://www-cc.cs.uni-sb.de/course/38/ Abgabe: Donnerstag, 17. Januar 2013, 12:00 Uhr Aufgabe 9.1 Bestimmen Sie das asymptotische Wachstum der folgenden Funktionen so genau wie möglich. a) T (n) = 3T (n/3) + 13 n b) T (n) = 3T (n/2) + 23 n c) T (n) = 2T (n/3) + 32 n Aufgabe 9.2 (Zusatzaufgabe) In dieser Aufgabe betrachten wir eine das Master-Theorem verallgemeinernde Methode zum Lösen von Rekurrenzen. Hierfür genüge T : [1, ∞) → R≥0 der Gleichung1 ( Θ(1) 1 ≤ x ≤ x0 T (x) = Pk (1) i=1 ai T (bi x) + g(x) x > x0 mit g : [1, ∞) → R≥0 und Konstanten k ∈ N, x0 ∈ R sowie ai > 0 und bi ∈ (0, 1) für alle 1 ≤ i ≤ k. Hierbei ist x0 so gewählt, dass x0 ≥ 1/bi und x0 ≥ 1/(1 − bi ) für alle 1 ≤ i ≤ k gilt. Zudem fordern wir, dass g poly-wachsend ist. Diese technische Bedingung besagt, dass es c1 , c2 > 0 gibt, so dass für alle x ≥ 1, alle 1 ≤ i ≤ k und alle u ∈ [bi x, x] gilt: c1 g(x) ≤ g(u) ≤ c2 g(x). (2) Bearbeiten Sie die folgenden Teilaufgaben: P a) Es sei p ∈ R so gewählt, dass ki=1 ai bpi = 1 erfüllt ist. Sie dürfen hierbei ohne Beweis annehmen, dass p existiert und eindeutig bestimmt ist. Zeigen Sie: Es gibt c3 , c4 > 0, so dass für alle 1 ≤ i ≤ k und alle x ≥ 1 gilt: Z x g(u) p c3 g(x) ≤ x du ≤ c4 g(x). (3) p+1 u bi x b) Zeigen Sie: Ist p wie in der vorigen Teilaufgabe gegeben, so gilt Z x g(u) p T (x) = Θ x 1 + du . p+1 1 u (4) Hinweis: Partitionieren Sie [1, ∞) in Intervalle {In | n ∈ N}. Wählen Sie hierbei I0 = [1, x0 ] und Ij = (x0 + j − 1, x0 + j] für j > 0. Zeigen Sie, dass aus x ∈ Ij für alle bi mit 1 ≤ i ≤ k folgt, dass bi x in einem Intervall Ij 0 mit j 0 < j enthalten ist. Nutzen Sie dies für einen Induktionsbeweis über die Intervalle In unter Rückgriff auf die vorige Teilaufgabe. 1 Anders als beim Master-Theorem ist T eine Funktion, die als Eingaben reelle Zahlen erhält. 1 Aufgabe 9.3 Bestimmen Sie mithilfe von Aufgabe 9.2 das asymptotische Verhalten der Lösungen zu den folgenden Rekurrenzen. Geben Sie also jeweils eine Funktion f mit T = Θ(f ) an. a) T (x) = 2T (x/4) + 3T (x/6) + Θ(x log x) b) T (x) = 2T (x/2) + 89 T (3x/4) + Θ(x2 / log x) c) T (x) = 12 T (x/2) + Θ x1 Welche dieser Rekurrenzen könnte man auch mithilfe des Master-Theorems lösen? Aufgabe 9.4 Wir betrachten eine Verallgemeinerung des Interval Scheduling Problem aus der Vorlesung. Die Intervalle haben nun neben Start- und Endzeiten zusätzlich Gewichte w1 , . . . , wn ∈ N. Ziel ist es, eine Menge T von paarweise disjunkten Intervallen (ein sogenanntes “Schedule”) P zu finden, so dass i∈T wi maximal wird. Man erhält das Problem aus der Vorlesung, wenn man alle Gewichte gleich 1 setzt. a) Geben Sie ein Beispiel an, bei dem der Greedy-Algorithmus aus der Vorlesung nicht ein optimales Schedule findet. b) Geben Sie einen Algorithmus an, der basierend auf dynamischer Programmierung ein optimales Schedule findet. Aufgabe 9.5 Gegeben seien n Prozesse p1 , . . . , pn . Jeder dieser Prozesse benötigt ti Zeit. Die Prozesse werden sequentiell ausgeführt und können nicht unterbrochen werden, d.h. die einzige Wahlmöglichkeit ist die Reihenfolge der Prozesse. Die Fertigstellungszeit ci von pi ist die Summe der Zeiten der Prozesse, die vor pi ausgeführt werden plus P ti . Geben Sie einen GreedyAlgorithmus an, der die durchschnittliche Fertigstellungszeit n1 · ni=1 ci minimiert. 2