27.02.2013 Aufrufe

Einführung in Berechenbarkeit, Komplexität und formale Sprachen

Einführung in Berechenbarkeit, Komplexität und formale Sprachen

Einführung in Berechenbarkeit, Komplexität und formale Sprachen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>Berechenbarkeit</strong>, <strong>Komplexität</strong> <strong>und</strong><br />

<strong>formale</strong> <strong>Sprachen</strong><br />

4. Zentralübung<br />

Mart<strong>in</strong>a Eikel<br />

15. November 2012<br />

1 / 17


Aufgabe 1<br />

Zeigen Sie mit Hilfe von Diagonalisierung, dass die Menge der unendlich langen<br />

Bitfolgen über dem Alphabet {0, 1} überabzählbar ist.<br />

Beispiellösung:<br />

U: Menge der unendlich langen Bitfolgen über dem Alphabet {0, 1} ∗<br />

Annahme: U ist abzählbar.<br />

⇒ ex. surjektive Funktion f ∶ N → U. D. h. ∀y ∈ U ∃x ∈ N ∶ f (x) = y.<br />

⇒ ∃x1, x2, . . . ∈ N ∶ U = {f (x1), f (x2), . . .}<br />

Def<strong>in</strong>iere y ∶= y1y2 . . . durch yi = 1 − f (xi)i (f (xi)i: i-tes Bit von f (xi))<br />

⇒ y ∈ U, da y unendlich lange Bitfolge<br />

Für alle i ∈ N: y ≠ f (xi)<br />

⇒ Für y existiert ke<strong>in</strong> i ∈ N, sodass f (xi) = y<br />

⇒ Es kann ke<strong>in</strong>e surjektive Funktion f ∶ N → U geben<br />

2 / 17


Aufgabe 1 (Visualisierung)<br />

Zeigen Sie mit Hilfe von Diagonalisierung, dass die Menge der unendlich langen<br />

Bitfolgen über dem Alphabet {0, 1} überabzählbar ist.<br />

w1<br />

w2<br />

w3<br />

w4<br />

⋮<br />

wi<br />

⋮<br />

1 2 3 4 . . . xi . . . xℓ<br />

ja<br />

ja<br />

ja<br />

wℓ = y ne<strong>in</strong> ne<strong>in</strong> ne<strong>in</strong> ne<strong>in</strong> ne<strong>in</strong> ?<br />

⋮<br />

Table : Die E<strong>in</strong>träge <strong>in</strong> der ersten Spalte zählen die Bitfolgen aus U auf.<br />

E<strong>in</strong> E<strong>in</strong>trag <strong>in</strong> Zeile i <strong>und</strong> Spalte j ist „ja“, falls f (xj) = wi, andernfalls ist er „ne<strong>in</strong>“.<br />

ja<br />

ja<br />

3 / 17


Aufgabe 4<br />

Zeigen Sie, dass das Akzeptanzproblem auf die folgende Sprache reduziert werden<br />

kann.<br />

ReachableState ∶= {(⟨M⟩, q, x) ∣<br />

Beispiellösung: Wir zeigen A ≤ ReachableState<br />

3 Schritte:<br />

1. Konstruktion e<strong>in</strong>er Reduktionsfunktion f<br />

2. Nachweis, dass f berechenbar ist<br />

3. w ∈ A ⇔ f (w) ∈ ReachableState<br />

bei E<strong>in</strong>gabe x gelangt die DTM M<br />

m<strong>in</strong>destens e<strong>in</strong>mal <strong>in</strong> den Zustand q. }<br />

4 / 17


Aufgabe 4 – Schritt 1 & 2<br />

Def<strong>in</strong>iere die Funktion f ∶ {0, 1} ∗ → {0, 1} ∗ wie folgt:<br />

⎧⎪<br />

(⟨M<br />

f (w) = ⎨<br />

⎪⎩<br />

accept ⟩ , qreject, 0) falls w ≠ ⟨M⟩ x<br />

(⟨M⟩ , qaccept, x) falls w = ⟨M⟩ x<br />

f ist aus folgenden Gründen berechenbar:<br />

▸ Die Erkennung ob w = ⟨M⟩x ist, ist berechenbar.<br />

▸ Die Gödelnummern der Tur<strong>in</strong>gmasch<strong>in</strong>en M accept <strong>und</strong> M s<strong>in</strong>d berechenbar.<br />

▸ Die Codierungen der Zustände qaccept bzw. qreject s<strong>in</strong>d <strong>in</strong> den jeweiligen<br />

Gödelnummern e<strong>in</strong>codiert, dass heißt sie lassen sich aus den jeweiligen<br />

Gödelnummern berechnen.<br />

▸ Die E<strong>in</strong>gaben 0 bzw x s<strong>in</strong>d ebenfalls berechenbar.<br />

5 / 17


Aufgabe 4 – Schritt 3<br />

w ∈ A ⇒ w = ⟨M⟩x <strong>und</strong> M akzeptiert die E<strong>in</strong>gabe x<br />

⇒ f (w) = (⟨M⟩, qaccept, x), wobei M m<strong>in</strong>destens e<strong>in</strong>mal <strong>in</strong> den<br />

Zustand qaccept geht, da M die E<strong>in</strong>gabe x akzeptiert.<br />

⇒ f (w) ∈ ReachableState<br />

w ∉ A ⇒ 1. Fall: w ≠ ⟨M⟩x für e<strong>in</strong>e DTM M <strong>und</strong> x ∈ {0, 1} ∗<br />

⇒ f (w) = (⟨M accept ⟩ , qreject, 0), wobei M accept bei jeder<br />

E<strong>in</strong>gabe sofort <strong>in</strong> den akzeptierenden Zustand geht.<br />

⇒ f (w) = (⟨M accept ⟩ , qreject, 0), wobei M accept niemals<br />

<strong>in</strong> den Zustand qreject geht.<br />

2. Fall: w = ⟨M⟩x, wobei M E<strong>in</strong>gabe x nicht akzeptiert.<br />

⇒ f (w) = (⟨M⟩ , qaccept, x), wobei M bei E<strong>in</strong>gabe x<br />

niemals <strong>in</strong> den Zustand qaccept geht,<br />

da M die E<strong>in</strong>gabe x nicht akzeptiert.<br />

⇒ f (w) ∉ ReachableState<br />

6 / 17


Aufgabe 2<br />

Zeigen sie, dass die folgende Sprache nicht rekursiv aufzählbar ist, <strong>in</strong>dem sie das<br />

Komplement des Akzeptanzproblems auf diese Sprache reduzieren:<br />

NoZeros = {⟨M⟩ ∣ M akzeptiert ke<strong>in</strong>e E<strong>in</strong>gabe, die mit e<strong>in</strong>er 0 endet}<br />

Beispiellösung: Wir zeigen Ā ≤ NoZeros<br />

3 Schritte:<br />

1. Konstruktion e<strong>in</strong>er Reduktionsfunktion f<br />

2. Nachweis, dass f berechenbar ist<br />

3. w ∈ Ā ⇔ f (w) ∈ NoZeros<br />

7 / 17


Aufgabe 2 – Schritt 1<br />

Def<strong>in</strong>iere die Funktion f ∶ {0, 1} ∗ → {0, 1} ∗ durch<br />

⎧⎪ ⟨Mx⟩ falls w = ⟨M⟩x, für e<strong>in</strong>e DTM M <strong>und</strong> x ∈ {0, 1}<br />

f (w) = ⎨<br />

⎪⎩<br />

∗<br />

⟨Mreject ⟩ sonst<br />

wobei Mx bei E<strong>in</strong>gabe w ∈ {0, 1} ∗ wie folgt arbeite:<br />

1. Simuliere M gestartet mit x.<br />

2. Falls M verwirft, verwerfe.<br />

3. Falls M akzeptiert <strong>und</strong> w <strong>und</strong> mit e<strong>in</strong>er 0 endet, akzeptiere.<br />

4. Falls M akzeptiert <strong>und</strong> w nicht mit e<strong>in</strong>er 0 endet, verwerfe.<br />

8 / 17


Aufgabe 2 – Schritt 2<br />

Die Funktion f ist aus folgenden Gründen berechenbar:<br />

▸ Die Erkennung ob w = ⟨M⟩x ist, ist berechenbar.<br />

▸ M reject <strong>und</strong> somit auch dessen Gödelisierung s<strong>in</strong>d berechenbar.<br />

▸ Mx kann e<strong>in</strong>fach aus M <strong>und</strong> x konstruiert werden, da lediglich M mit x<br />

simuliert wird, dessen Ausgang überprüft wird <strong>und</strong> das E<strong>in</strong>gabewort<br />

dah<strong>in</strong>gehend überprüft wird, ob es mit e<strong>in</strong>er 0 endet. Die Gödelisierung von<br />

⟨Mx⟩ ist somit auch berechenbar.<br />

9 / 17


Aufgabe 2 – Schritt 3 (1/2)<br />

w ∈ Ā ⇒ 1. Fall: w ≠ ⟨M⟩x für e<strong>in</strong>e DTM M <strong>und</strong> x ∈ {0, 1} ∗<br />

⇒ f (w) = ⟨M reject ⟩ mit L(M reject ) = ∅<br />

2. Fall: w = ⟨M⟩x, wobei M e<strong>in</strong>e DTM ist, die die E<strong>in</strong>gabe<br />

x nicht akzeptiert.<br />

⇒ f (w) = ⟨Mx⟩, wobei Mx ke<strong>in</strong>e E<strong>in</strong>gabe akzeptiert,<br />

da M gestartet mit x entweder nicht hält oder verwirft,<br />

woraufh<strong>in</strong> auch Mx verwerfen würde, d. h. L(Mx) = ∅<br />

⇒ f (w) akzeptiert <strong>in</strong>sbesondere ke<strong>in</strong>e E<strong>in</strong>gabe, die mit e<strong>in</strong>er 0<br />

endet.<br />

⇒ f (w) ∈ L<br />

10 / 17


Aufgabe 2 – Schritt 3 (2/2)<br />

w ∉ Ā ⇒ w = ⟨M⟩x, wobei M e<strong>in</strong>e DTM ist, die E<strong>in</strong>gabe x akzeptiert.<br />

⇒ f (w) = ⟨Mx⟩, wobei Mx bei jeder E<strong>in</strong>gabe hält (da M bei<br />

E<strong>in</strong>gabe x akzeptiert <strong>und</strong> somit hält) <strong>und</strong> nur dann E<strong>in</strong>gabe<br />

w akzeptiert, wenn w mit e<strong>in</strong>er 0 endet.<br />

⇒ f (w) = ⟨Mx⟩, wobei Mx nur die E<strong>in</strong>gaben akzeptiert, die mit<br />

e<strong>in</strong>er 0 enden.<br />

⇒ f (w) ∉ L.<br />

11 / 17


Aufgabe 3<br />

Zeigen sie, dass die folgende Sprache nicht entscheidbar ist, <strong>in</strong>dem Sie e<strong>in</strong>e<br />

Reduktion vom Halteproblem durchführen.<br />

DontPanic = {⟨M⟩ ∣ M hält bei E<strong>in</strong>gabe 101010} ,<br />

Ist diese Sprache rekursiv aufzählbar?<br />

Beispiellösung: Wir zeigen H ≤ DontPanic<br />

3 Schritte:<br />

1. Konstruktion e<strong>in</strong>er Reduktionsfunktion f<br />

2. Nachweis, dass f berechenbar ist<br />

3. w ∈ H ⇔ f (w) ∈ DontPanic<br />

12 / 17


Aufgabe 3 – Schritt 1<br />

Def<strong>in</strong>iere die Funktion f ∶ {0, 1} ∗ → {0, 1} ∗ durch<br />

⎧⎪ ⟨Mx⟩ falls w = ⟨M⟩x, für e<strong>in</strong>e DTM M <strong>und</strong> x ∈ {0, 1}<br />

f (w) = ⎨<br />

⎪⎩<br />

∗<br />

⟨M∞ ⟩ sonst<br />

wobei Mx bei E<strong>in</strong>gabe w ∈ {0, 1} ∗ wie folgt arbeite:<br />

1. Falls w ≠ 101010, gehe <strong>in</strong> e<strong>in</strong>e Endlosschleife.<br />

2. Simuliere M gestartet mit x.<br />

13 / 17


Aufgabe 3 – Schritt 2<br />

Die Funktion f ist aus folgenden Gründen berechenbar:<br />

▸ Die Erkennung ob w = ⟨M⟩x ist, ist berechenbar.<br />

▸ M ∞ <strong>und</strong> somit auch dessen Gödelisierung s<strong>in</strong>d berechenbar.<br />

▸ Mx kann e<strong>in</strong>fach aus der gegebenen Gödelisierung der DTM M <strong>und</strong> x<br />

berechnet werden, da e<strong>in</strong>e Überprüfung ob die ungleich 101010 ebenfalls<br />

berechenbar ist. Die Gödelisierung von Mx kann dann ebenfalls e<strong>in</strong>fach<br />

berechnet werden.<br />

14 / 17


Aufgabe 3 – Schritt 3 (1/2)<br />

w ∈ H ⇒ w = ⟨M⟩x, wobei M e<strong>in</strong>e DTM ist, die bei E<strong>in</strong>gabe x hält.<br />

⇒ f (w) = ⟨Mx⟩, wobei Mx bei allen E<strong>in</strong>gaben ≠ 101010 hält, da<br />

M gestartet mit x hält <strong>und</strong> Mx bei E<strong>in</strong>gabe 101010 <strong>in</strong> e<strong>in</strong>e<br />

Endlosschleife geht.<br />

⇒ f (w) = ⟨Mx⟩, wobei Mx <strong>in</strong>sbesondere bei E<strong>in</strong>gabe 101010<br />

hält.<br />

⇒ f (w) ∈ DontPanic.<br />

15 / 17


Aufgabe 3 – Schritt 3 (2/2)<br />

w ∉ H ⇒ 1. Fall: w ≠ ⟨M⟩x, für e<strong>in</strong>e DTM M <strong>und</strong> x ∈ {0, 1} ∗<br />

⇒ f (w) = ⟨M ∞ ⟩, wobei M ∞ bei ke<strong>in</strong>er E<strong>in</strong>gabe hält<br />

2. Fall: w = ⟨M⟩x, wobei M e<strong>in</strong>e DTM ist, die bei E<strong>in</strong>gabe<br />

x nicht hält<br />

⇒ f (w) = ⟨Mx⟩, wobei Mx nur bei E<strong>in</strong>gaben ungleich<br />

101010 hält, da M gestartet mit x nicht hält <strong>und</strong> bei<br />

E<strong>in</strong>gabe 101010 <strong>in</strong> e<strong>in</strong>e Endlosschleife geht.<br />

⇒ f (w) = ⟨Mx⟩, wobei Mx bei E<strong>in</strong>gabe 101010 nicht hält.<br />

⇒ f (w) ∉ DontPanic<br />

16 / 17


Aufgabe 3 – Sprache rekursiv aufzählbar?<br />

Die Sprache DontPanic ist rekursiv aufzählbar. Betrachte folgende DTM M ′ , die<br />

bei E<strong>in</strong>gabe x ∈ {0, 1} ∗ wie folgt arbeite:<br />

1. Falls x ≠ ⟨M⟩ für e<strong>in</strong>e DTM M, verwerfe.<br />

2. Falls x = ⟨M⟩ für e<strong>in</strong>e DTM M, simuliere M mit E<strong>in</strong>gabe 101010.<br />

3. Falls M hält, akzeptiere.<br />

Es bleibt zu zeigen: M akzeptiert die Sprache DontPanic.<br />

x ∈ DontPanic ⇒ x = ⟨M⟩ für e<strong>in</strong>e DTM M, die bei E<strong>in</strong>gabe 101010 hält.<br />

⇒ M ′ akzeptiert die E<strong>in</strong>gabe.<br />

x ∉ DontPanic ⇒ 1. Fall: x ≠ ⟨M⟩ für e<strong>in</strong>e DTM M<br />

⇒ M ′ verwirft die E<strong>in</strong>gabe im ersten Schritt.<br />

2. Fall: x = ⟨M⟩, für e<strong>in</strong>e DTM M, die bie E<strong>in</strong>gabe<br />

101010 nicht hält.<br />

⇒ M ′ hält nicht <strong>und</strong> akzeptiert somit auch nicht.<br />

17 / 17

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!