Unterprogrammtech-nick (Unterprogrammtechnik & Berechenbarkeitsbeweise)

| Back to Overview

Berechenbarkeit & Diagonalsprache

Der Grundstein unserer Beweiskette ist die Diagonalsprache. Sie zu verstehen hilft vielleicht und ich kann mir schon vorstellen, dass sie abgefragt werden kann.

D={w0,1w=wi und Mi akzeptiert w nicht }={MM akzeptiert M nicht }D = \{w \in {0,1}^* \mid w = w_i \text{ und } M_i \text{ akzeptiert w nicht } \} = \{ \langle M \rangle \mid M \text{ akzeptiert } \langle M \rangle \text{ nicht } \}

Heißt eine TM M ist genau dann in DD, wenn sie M\langle M \rangle (also ihre eigene Gödelnummer) nicht akzeptiert.

Warum ergibt dass dann ein Paradox?

Wiederspruchsbeweis, nehme an D ist entscheidbar.

Also gibt es eine TM M, die D entscheidet, heißt sie akzeptiert alles in D und verwirft alles D\notin D. Nehmen wir nun M\langle M \rangle als Eingabe so gibt es zwei Möglichkeiten:

  1. Fall MD    \langle M \rangle \in D \implies MM akzeptiert M\langle M \rangle, da ja MM DD entscheidet (akzeptiert alles in DD),     MD\implies \langle M \rangle \notin D, durch die Definition von DD.

  2. Fall MD    \langle M \rangle \notin D \implies MM akzeptiert M\langle M \rangle nicht, da ja MM DD entscheidet (verwirft alles nicht in DD),     MD\implies \langle M \rangle \in D, durch die Definition von DD.

Somit kann DD nicht entscheidbar sein.

Das Komplement von unentscheidbaren Problemen, ist selber unentscheidbar. Beispiel D\overline{D}.

Unterprogrammtechnik

Mit der Unterprogrammtechnik lässt sich außerhalb vom Satz von Rice zeigen, dass eine Sprache unentscheidbar ist. Wie funktioniert es genau hier für das Beispiel des Halteproblems HH:

Wir nehmen an das es eine TM MHM_H gibt, die HH entscheidet.

Jetzt haben wir eine TM die was unmögliches kann, also müssen wir jetzt diese Funktion nutzen um zu zeigen, dass diese Funktion wieder ein anderes Problem (von dem wir schon die Unentscheidbarkeit wissen) lösen kann !ohne weitere Annahmen!.

Wir nutzen hierfür D\overline{D}, bauen also eine TM MDM_{\overline{D}}, die D\overline{D} entscheidet und nutzen hierfür MHM_H.

Unsere TM MDM_{\overline{D}} funktioniert folgendermaßen:

  1. Teste ob die Eingabe ww eine Gödelnummer ist, wenn nicht, verwerfe, falls ja sei nun MwM_w die TM mit w=Mww = \langle M_w \rangle.

  2. Starte MHM_H mit der Eingabe wwww, also teste ob MwM_w auf der Eingabe seiner eigenen Gödelnummer ww hält, oder nicht.

    -> Falls MHM_H akzeptiert, heißt MwM_w hält, simuliere mittels Universelle Turingmaschine MwM_w auf der Eingabe ww. Wir wissen dies hält an, also können wir es simulieren. -> Falls MHM_H verwirft, verwerfe selber.

Also warum ist das hier jetzt ein Beweis.

Falls wDw \in \overline{D} ist, dann akzeptiert MwM_w ww, heißt es hält an und akzeptiert dann beim simulieren.

Falls wDw \notin \overline{D} ist, dann akzeptiert MwM_w ww nicht, heißt es hält nicht an (verwirft) oder verwirft beim simulieren.

Wir können gleich nochmal ein anderes Problem per Unterprogrammtechnik beweisen, aber hier erstmal ein paar Tipps und Warnungen:

  • Meistens muss man das Format einer Eingabe prüfen, es dann die Eingabe ggf. verändern (mit einer berechenbaren Funktion) und dann das Ergebnis in unsere Angenommene Eingabe pumpen.
  • Mehr Tips muss ich mir noch überlegen :D