Volker Diekert, Armin Weiß Wintersemester 2014/2015 Algorithmen und Berechenbarkeit Aufgabenblatt 2 Abgabe: Bis Donnerstag, den 30.10. um 11:30 Uhr im Abgabekasten im ersten Obergeschoss. Besprechung: In den Kalenderwochen 45 und 46. Im Folgenden schreiben wir A ≤ B, falls sich eine Sprache A auf eine Sprache B reduzieren lässt. 1. Reduktionen I (schriftlich). (3 Punkte) Sei A ⊆ Σ∗ eine Sprache, die genau ein Wort enthält. Geben Sie für die folgenden Aussagen jeweils alle Sprachen L ⊆ Σ∗ an, sodass die entsprechende Aussage gilt: a) L ≤ ∅ d) ∅ ≤ L b) L ≤ Σ∗ e) Σ∗ ≤ L c) L ≤ A f) A ≤ L Geben Sie in den schriftlichen Abgaben nur die jeweilige Sprache L an – ohne Beweis. 2. Reduktionen II. Seien A und B Sprachen. Weiterhin bezeichnet A das Komplement von A. Zeigen Sie: a) A entscheidbar und B unentscheidbar ⇒ A ≤ B. b) A ≤ B ⇔ A ≤ B. c) A semi-entscheidbar aber unentscheidbar und A ≤ B ⇒ B A. 3. Reduktionen und Entscheidbarkeit (schriftlich). (10 Punkte) Gegeben sind die folgenden Sprachen (hM i bezeichnet eine geeignete Kodierung der Turingmaschine M ) über dem Alphabet Σ: • E = {hM i | L(M ) = ∅} • I = {hM i | |L(M )| = ∞} • U = {hM i | L(M ) = Σ∗ } • Q = {(hM1 i, hM2 i) | L(M1 ) = L(M2 )} a) Zeigen Sie die folgenden Aussagen: (i) E ≤ Q (ii) E ≤ I (iii) U ≤ Q (iv) I ≤ U (v) Q ≤ I Hierfür können Sie bereits bekannte Reduktionen aus der Vorlesung oder den Ergänzungen verwenden. b) Welche der Sprachen sind aufzählbar? Von welcher dieser Sprachen ist das Komplement aufzählbar? Begründen Sie Ihre Antworten kurz. 4. Akzeptanzbedingungen: Aufzählung vs. Akzeptierung. Eine andere Definition der Aufzählbarkeit ist folgende: Eine Sprache L ⊆ Σ∗ heißt (rekursiv) aufzählbar, falls es eine totale, berechenbare Funktion f : N → Σ∗ gibt, sodass L = f (N) ist. Zeigen Sie: Diese Definition ist äquivalent zu der in der Vorlesung behandelten Definition von Aufzählbarkeit. Erinnerung: Eine Sprache L heißt aufzählbar (oder semi-entscheidbar ), falls eine Turingmaschine M existiert mit L = L(M ). 5. Berechenbarkeit. Sie kennen die Kodierung von Turingmaschinen aus der Vorlesung. Mit Mn sei hier die Turingmaschine gemeint, die als Kodierung die Zahl n besitzt, d.h. hMn i = n (ohne Einschränkung kodiert jede natürliche Zahl eine Turingmaschine). Welche der folgenden Funktionen sind berechenbar? Beschreiben Sie entweder einen Algorithmus oder zeigen Sie, dass es einen solchen Algorithmus nicht geben kann. ( 1 Mn akzeptiert n in maximal n Schritten • f1 : N → {0, 1} ; n 7→ 0 sonst ( 1 Mn akzeptiert n • f2 : N → {0, 1} ; n 7→ 0 sonst ( 1 M42 terminiert auf jeder Eingabe • f3 : N → {0, 1} ; n 7→ 0 sonst ( 1 falls die Goldbach-Vermutung für alle Zahlen ≥ n wahr ist • f4 : N → {0, 1} ; n 7→ 0 sonst 6. Satz von Rice. Geben Sie jeweils an, ob die Menge aller Turingmaschinen, die a) Σ∗ akzeptieren, b) mindestens ein Wort akzeptieren, dessen Länge eine Primzahl ist, c) irgendeine aufzählbare Sprache akzeptieren, entscheidbar ist (für eine geeignete Kodierung der Turingmaschinen). http://www.fmi.uni-stuttgart.de/ti/lehre/ws14/aubfm/