Automaten, Sprachen und Komplexität, ¨Ubungsblatt 9

Werbung
TU Ilmenau, Fachgebiet Automaten und Logik
Prof. Dr. Dietrich Kuske, Roy Mennicke, Martin Huschenbett
Abgabe am 18.12., Besprechung am 18.12. und. 19.12.
Automaten, Sprachen und Komplexität, Übungsblatt 9
(1) Sei M eine Mehrband-Turingmaschine und f : N → N eine Funktion, so dass M auf jeder Eingabe x ∈ Σ∗ höchstens f (|x|) viele Schritte macht. Wie viele Schritte macht die zu M äquivalente
1-Band-Turingmaschine M 0 (Konstruktion in der Vorlesung skizziert) auf x höchstens, wenn
für alle n ∈ N gilt:
(a) f (n) = n2
n2
2
(b) f (n) = 2n
(c) f (n) = 22
(2) Seien Σ = {0, 1} und f : Σ∗ → Σ∗ die Funktion mit f (x) = 1|x|1 für alle x ∈ Σ∗ . Geben Sie
eine 1-Band-Turingmaschine M als Tupel an, die die Funktion f berechnet. Beschreiben Sie
kurz die Arbeitsweise von M . Geben Sie die Berechnung von M auf der Eingabe 0101 an.
(3) Seien Σ = {0, 1} und f : Σ∗ → Σ die folgende Funktion: es gilt genau dann f (x) = 1, wenn es
ein y ∈ {0}∗ mit x = y1y gibt (für alle x ∈ Σ∗ ). Geben Sie eine 2-Band-Turingmaschine M als
Tupel an, die die Funktion f berechnet. Insbesondere soll M auf der Eingabe x nicht mehr als
O(|x|) viele Schritte machen. Beschreiben Sie kurz die Arbeitsweise von M .
(4) Geben Sie für jede der folgenden Funktionen jeweils ein Loop-Programm an, das diese berechnet. Sie dürfen dabei die in der Vorlesung eingeführten Simulationen verwenden. Unterstreichen
Sie alle verwendeten Simulationen.
(a) f1 (n) = n!
(b) f2 (0) = 0, f2 (1) = 1,
f2 (n) = f2 (n − 1) + f2 (n − 2), n ≥ 2
(c) f3 (m, n) = mn
(d) f4 (m, n) = min{m, n}
(5) Sei f die einstellige Funktion, die durch das folgende Loop-Programm berechnet wird. Berechnen Sie die Werte f (0), f (1), f (2) und f (3). Geben Sie f (n) für n ∈ N an.
Loop x0 Do
x0 := 2 · x0
End
(6) Sei (fn )n∈N eine Folge von Loop-berechenbaren Funktionen, so dass jedes fn durch ein LoopProgramm mit n Loop-Schleifen berechnet werden kann, nicht aber durch ein Programm mit
n − 1 Loop-Schleifen.
Zeigen oder widerlegen Sie: Die Funktion g mit g(k, n) = fk (n) ist Loop-berechenbar.
Aufgaben zum Selbststudium (nicht bewertet)
(7) Sei f : N → {0, 1} die folgende Funktion: es gilt genau dann f (k) = 1, falls es ein p ≥ k gibt,
so dass p und p + 2 Primzahlen sind (für alle k ∈ N). Zeigen Sie durch die Angabe einer
Turingmaschine als Tupel, dass f Turing-berechenbar ist.
Hinweis: Es ist bislang ungeklärt, ob es unendlich viele Paare (p, p + 2) gibt, so dass p und
p + 2 Primzahlen sind. Nichtsdestotrotz ist f Turing-berechenbar.
(8) Eine links-beschränkte Turingmaschine ist ein Tupel M = (Z, Σ, Γ, δ, z0 , 2, E, .), so dass M 0 =
(Z, Σ, Γ, δ, z0 , 2, E) eine Turingmaschine mit . ∈ Γ \ (Σ ∪ {2}) ist und für alle z, z 0 ∈ Z,
X ∈ {L, N, R} und a ∈ Γ gilt:
• (z 0 , ., X) ∈ δ(z, a) =⇒ a = ., X ∈ {R, N }
• (z 0 , a, X) ∈ δ(z, .) =⇒ a = ., X ∈ {R, N }
Das heißt:
• M befindet sich während einer Berechnung mit Eingabe .w (w ∈ Σ∗ ) nie links von der
mit . beschrifteten Position.
• Das Symbol . darf nicht durch ein anderes Symbol überschrieben werden.
• Ein Symbol verschieden von . darf nicht durch . überschrieben werden.
Die von M akzeptierte Sprache ist T (M ) = {w ∈ Σ∗ | .w ∈ T (M 0 )}.
Beschreiben Sie, wie man eine Turingmaschine M in eine links-beschränkte Turing-Maschine
M 0 überführen kann, so dass T (M ) = T (M 0 ) gilt.
2
Herunterladen