Aufgaben zu Komplexität von Algorithmen (SS 2011) Aufgabe 3: Übungen zum Umgang mit asymptotischer Notation Hinweis: diese Aufgaben sind teilweise dem Buch Introduction to Algorithms (2nd ed.) von Cormen, Leiserson, Rivest, Stein (MIT Press) entnommen. Abschnitt 3.1 dieses Buchs bietet eine ausführliche Diskussion der Definitionen und Begriffe und viele Beispiele. 1. Was bedeuten die folgenden vier Aussagen für eine Folge (an )n≥0 = (a0 , a1 , a2 , . . .) reeller Zahlen in üblicher mathematischer Terminologie: (a) an ∈ O(1) (b) an ∈ o(1) (c) an ∈ Θ(1) (d) an ∼ 1 Welche dieser Aussagen impliziert welche andere und wo ist das nicht der Fall? Was bedeuten die Aussagen, wenn man die an als ganzzahlig voraussetzt? 2. Von zwei Folgen (an )n≥0 und (bn )n≥0 sei an ∼ bn bekannt. Man interessiert sich nun für das asymptotische Verhalten der Differenzenfolge (an −bn )n≥0 . Welche der folgenden Aussagen sind immer, bzw. machmal, aber nicht immer, bzw. niemals zutreffend: (a) an − bn ∈ o(1) (b) an − bn ∈ O(1) (c) an − bn ∈ o(an ) (d) an − bn ∈ O(an ) (e) an − bn ∈ Θ(an ) (f) an − bn ∼ an 3. Welche der folgenden Aussagen über Folgen (an )n≥0 und (bn )n≥0 sind wahr und welche sind falsch: (a) an ∈ O(bn ) ⇒ bn ∈ O(an ) (b) an + bn ∈ Θ(min(an , bn )) (c) an ∈ Θ(an/2 ) (d) an ∈ O(a2n ) (e) an ∈ O(bn ) ⇒ bn ∈ Ω(an ) (f) an ∈ O(bn ) ⇒ 2an ∈ O(2bn ) (g) bn ∈ o(an ) ⇒ an + bn ∈ Θ(an ) 11. Mai 2011 Aufgaben zu Komplexität von Algorithmen (SS 2011) 4. Vergleichen Sie die in der folgenden Tabelle genannten Paare von Funktionsausdrücken (in Abhängigkeit von n) in ihrem asymptotischen Verhalten, d.h. ob eine oder mehrer der Relationen O, o, Ω, ω, Θ zwischen ihnen bestehen: f g k log n nα k n cn √ n nsin n n 2 2n/2 nlog c clog n log n! log nn O o Ω ω Θ Dabei seien k ≥ 1, α > 0, c > 1 Konstante. 5. Alle Beziehungen Θ, O, o, Ω, ω auf Folgen (oder Funktionen) sind transitiv. Welche sind reflexiv? Welche sind symmetrisch? 6. Durch die Relationen auf Folgen (oder Funktionen) (an )n≥0 ≺ (bn )n≥0 ⇔ an ∈ o(bn ) bzw. (an )n≥0 4 (bn )n≥0 ⇔ an ∈ O(bn ) wird eine Ordnungsrelation bezüglich des asymptotischen Wachstums definiert, wobei die “Gleichheit” (im Sinne “gleicher Wachstumsordnung”) durch (an )n≥0 ≈ (bn )n≥0 ⇔ an ∈ Θ(bn ) ausgedrückt wird. Ordnen Sie die folgenden mit der Variablen n indizeirten Funktionen (oder Folgen) im Sinne dieser Ordnungsrelation aufsteigend: √ 2 n! log n 2n log n n3 4log n log log n √ log n n 2 2 log n 2n+1 (log n) n · 2 n / log n 2 1 2 log(n!) √ log n Pn Pn 2n n 2 n log log n ( 2) (3/2) n k=1 1/k k=1 1/k n 3 11. Mai 2011 Aufgaben zu Komplexität von Algorithmen (SS 2011) Aufgabe 4: Rekursion und Induktion mit Fibonacci Die durch die Rekursion F0 = 0, F1 = 1, Fn+1 = Fn + Fn−1 (n ≥ 1) definierte Folge (Fn )n≥0 = (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, . . .) der Fibonacci-Zahlen (siehe auch Abschnit 3.1.1 des Skriptums) muss immer wieder als Ur-Beispiel einer rekursiven Definition herhalten. Tatsächlich hat diese Zahlenfolge aber so interessante Eigenschaften und ist so häufig vorkommend in Natur, Wissenschaft, Kunst, Architektur, etc., dass man ihr ganze Bücher, eine Serie von Tagungen und sogar eine eigene Zeitschrift (The Fibonacci Quarterly) gewidmet hat. Der tiefere Grund ist der Zusammenhang mit dem Goldenen Schnitt, also der reellen Zahl √ 1+ 5 φ= = 1.61803 . . . , 2 die positive Lösung der quadratischen Gleichung X 2 = X + 1. √ Die andere (negative) Lösung (1 − 5)/2 = −0.61803 . . . wird mit φb bezeichnet. Im Zusammenhang mit dem euklidischen Algorithmus spielen die Fibonacci-Zahlen auch eine bedeutsame Rolle – mehr davon später. Beweise über rekursive Programme bzw. rekursiv definierte Objekte führt man mittels Induktion. Trainieren Sie hier Ihre Fertigkeiten in dieser Technik, (a) Beweisen Sie per Induktion Fn = bn φn − (φ) √ (n ≥ 0) 5 (b) Beweisen Sie per Induktion Fn+1 Fn−1 − Fn2 = (−1)n (n ≥ 1) (c) Beweisen Sie ebenso sorgfältig (im Sinne der Analysis), dass Fn+1 =φ n→∞ Fn lim gilt. Veranschaulichen Sie grafisch das Konvergenzverhalten der Folge der Quotienten Fn+1 Fn n≥1 d.h. tragen Sie die ersten numerischen Werte auf einer Zahlengeraden ab und beobachten Sie, wie sich die Folge entwickelt. (d) Wie gross sind F100 , F200 , F300 , F400 ? Damit ist gemeint: wieviel Dezimalziffern bzw. Binärziffern braucht man, um diese Zahlen hinzuschreiben? Sie sollen diese Zahlen nicht ausrechnen, sondern eine gute Schätzung abgeben, ohne viel zu rechnen! 11. Mai 2011 Aufgaben zu Komplexität von Algorithmen (SS 2011) Aufgabe 5: Eine Variante des Frisbee-Spiels Jetzt wird Frisbee nach einer anderen Regel gespielt: • N Spieler haben sich in einem regelmäßigen N -Eck aufgestellt. • Es sind zwei Scheiben vorhanden, die sich anfangs im Besitz von zwei verschiedenen Spielen befinden. • In jedem Takt wirft ein Spieler, der eine Scheibe hat, diese zu einem der N − 1 Mitspieler. Die Auswahl erfolgt zufällig mit gleicher Wahrscheinlichkeit N 1−1 und unabhängig davon, wie sich der andere Spieler entscheidet und wie der Spielverlauf bisher war. Es gibt in jedem Takt also (N − 1)2 Möglichkeiten, die alle mit Wahrscheinlichkeit 1 auftreten. (N −1)2 • Das Spiel ist beendet, sobald die beiden Scheiben erstmals bei demselben Spieler eintreffen. 1. Modellieren Sie dieses Spiel mit einem Transitionssystem T SN , das aus zwei Zuständen besteht, “1” = verschiedene Spieler haben die Scheiben und “0” = die beiden Scheiben sind bei einem Spieler zusammengetroffen. Wesentlich ist die Angabe der Anzahl der Möglichkeiten für jede der Transitionen “1” → “1” und “1” → “0” in einem Spielzug. 2. Es sei nun p= ]{Transitionen “1” → “0”} (N − 1)2 die Wahrscheinlichkeit des Spielabbruchs in einem Takt, falls sich das Spiel im Zustand “1” befindet und entsprechend q= ]{Transitionen “1” → “1”} =1−p (N − 1)2 Dann ist Wkeit{Spiel endet nach genau k Takten} = q k−1 · p (k = 1, 2, 3, . . .) Zeigen Sie: die mittlere Spieldauer (= Erwartungswert) ist 1/p. 3. Wieviele Spieler benötigt man, damit die erwartete Spieldauer dieses Spiels grösser 12 (= erwartete Spieldauer beim 5-er-Frisbee nach Modell der Vorlesung) ist? 11. Mai 2011