Algorithmen und Berechenbarkeit Formale Methoden Hausübungen 6

Werbung
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.
Herunterladen