Algorithmen und Berechenbarkeit Formale Methoden Hausübungen 6

Werbung
Volker Diekert, Alexander Lauser, Armin Weiß
Wintersemester 2012/2013
Algorithmen und Berechenbarkeit
Formale Methoden
Hausübungen 6
Abgabe: Bis Montag 14.01. um 14:00 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.
(6 Punkte)
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.
Tipp: Verwenden Sie den Medianalgorithmus aus der Vorlesung!
2. Fibonacci-Heaps I.
(6 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.
(6 Punkte)
Zeigen Sie, dass ein Fibonacci-Heap mit n Knoten eine Höhe von n erreichen kann.
http://www.fmi.uni-stuttgart.de/ti/lehre/ws12/aubfm/
Volker Diekert, Alexander Lauser, Armin Weiß
Wintersemester 2012/2013
Algorithmen und Berechenbarkeit
Formale Methoden
Votierübungen 6
Besprechung: In den Kalenderwochen 03 und 04.
Die folgenden Aufgaben 2) und 3) beschäftigen sich mit Turingmaschinen. Eignen Sie sich
die Begrifflichkeiten und die Funktionsweise von Turingmaschinen an (Folien vom 08.01.2013,
Seiten 279–285). Eine Intuition bietet z. B. der entsprechende Eintrag auf Wikipedia.
1. Überprüfen ist leichter als berechnen II.
Es soll für gegebene Matrizen A, B, C ∈ Rn×n überprüft werden, ob A · B = C gilt. Betrachten Sie folgenden Monte-Carlo-Algorithmus: Wähle einen Vektor x ∈ {0, 1}n zufällig
gleichverteilt und gebe das Ergebnis des Vergleichs A · (B · x) = C · x zurück.
a) Zeigen Sie: Falls A · B 6= C, dann ist die Fehlerwahrscheinlichkeit höchstens 1/2.
b) Wie hoch ist die Fehlerwahrscheinlichkeit falls A · B = C?
c) Diese Fehlerwahrscheinlichkeit ist meist zu schlecht und man iteriert den Test. Wie oft
muss der Test wiederholt werden, damit der Algorithmus eine fehlerhafte Ausgabe
(i) höchstens mit Wahrscheinlichkeit n−c (mit niedriger Wahrscheinlichkeit“) bzw.
”
(ii) höchstens mit Wahrscheinlichkeit 2−cn (mit sehr niedriger Wahrscheinlichkeit“)
”
produziert? Dabei sei c > 0 eine feste Konstante. Geben Sie jeweils die Laufzeit an.
2. 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?
3. 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