Volker Diekert, Tobias Walter Wintersemester 2013/2014 Algorithmen und Berechenbarkeit Formale Methoden Hausübungen 6 Abgabe: Bis Freitag 10.01. um 13:10 Uhr im Abgabekasten im Mittelgang des ersten Obergeschosses. Beschriften Sie die Abgabe mit Ihren Namen, und der Übungsgruppennummer. Falls die Abgabe aus mehreren Blättern besteht, heften Sie diese! Bei Gruppenabgaben müssen alle Teilnehmer in derselben Übungsgruppe eingetragen sein. 1. Mediannahe Elemente Gegeben sei ein Feld der Länge n mit paarweise verschiedenen ganzen Zahlen und eine ganze Zahl 1 ≤ k ≤ n. Geben Sie einen Algorithmus mit Laufzeit in O(n) an, der k Zahlen mit den geringsten Absolutdifferenzen zum Median bestimmt. 2. Fibonacci-Heaps I (5 Punkte) Führen Sie (beginnend mit dem leeren Heap) die folgende Sequenz von Operationen auf Fibonacci-Heaps wie in der Vorlesung beschrieben aus: 1) insert(i) für i = 0, . . . , 16 in aufstei4) decrease-key(14, 14); gender Reihenfolge; 5) decrease-key(15, 15); 2) delete-min; 6) delete-min. 3) decrease-key(10, 10); Dabei ändern die angegebenen decrease-key-Operationen der Einfachheit halber den Schlüsselwert nicht und die Knoten des Heaps können mit den Schlüsselwerten identifizieren werden. Geben Sie jeweils auch die Zwischenergebnisse an. 3. Fibonacci-Heaps II (5 Punkte) Zeigen Sie, dass ein Fibonacci-Heap mit n Knoten eine Höhe von n erreichen kann. 4. Union-Find Wenden Sie das Union-Find-Verfahren mit Pfadverkürzung wie folgt an: for i := for i := union(1, for i := 0 to 7 do union(2i + 1, 2i + 2); 0 to 3 do union(4i + 1, 4i + 3); 5); union(9, 13); union(9, 1); 0 to 4 do find(3i + 1) Welche Bäume ergeben sich, ausgehend von der Partition {1}, . . . , {16} vor bzw. nach der letzten for-Anweisung? 5. Turingmaschinen Sei M die deterministische Turingmaschine mit Zuständen {q0 , q1 , q2 , q3 , qe }, Anfangszustand q0 , Endzustand qe , Eingabealphabet Σ = {a, b}, Bandalphabet Γ = {a, b, b} und der folgenden partiellen Übergangsfunktion: δ q0 q1 q2 q3 a (q1 , b, R) (q1 , a, R) (q3 , a, L) b (q1 , b, R) (q3 , b, L) (q3 , b, L) b (qe , b, N ) (q2 , b, L) (q2 , b, N ) (q0 , b, R) Beispiel: Der Eintrag (q1 , b, R) in Zeile q0 und Spalte a steht für δ(q0 , a) = (q1 , b, R). a) In welcher Konfiguration befindet sich M auf Eingabe von ab nach 6 Schritten? Wird die Eingabe akzeptiert? b) Zeigen Sie, dass jedes Wort der Form an bn für n ≥ 0 von M akzeptiert wird. Führen Sie dazu eine vollständige Induktion über n durch. c) Sei u ∈ Σ∗ mit u 6= an bn für alle n ≥ 0. Zeigen Sie u 6∈ L(M ). Was können Sie daraus für die akzeptierte Sprache L(M ) schließen? 6. Palindrome Sei L = w ∈ {a, b}∗ w = wR die Sprache aller Palindrome über dem Alphabet {a, b}. Dabei ist wR = an · · · a1 die Spiegelung von w = a1 · · · an . Zeigen Sie: Ob w ∈ L gilt kann von einer Turingmaschine a) nichtdeterministisch in |w| + 1 Schritten entschieden werden (d. h. L ∈ NTIME(n + 1)), b) deterministisch in 2 |w| + 2 Schritten entschieden werden (d. h. L ∈ DTIME(2n + 2)), c) deterministischen im Platz log2 (|w|) entschieden werden (d. h. L ∈ DSPACE(log2 n)). Hierbei steht die Eingabe für Aufgabe c) auf einem Eingabeband, das ausschließlich gelesen werden kann und es wird nur der Platz eines zusätzlichen Arbeitsbandes gezählt.