Turing-Berechenbarkeit und Churchsche These

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Merkwürdige aber berechenbare Funktionen

Collatz-Folge

Für alle Argumente undefinierte Funktion

Totale und partielle Funktionen

Verändern Sie das Argument in diesem Aufruf zu 2 und bewerten Sie das Resultat.


Das Postsche Korrespondenzproblem (PCP)

Wir definieren eine Liste von Indexlisten, kurz: Indexlistenliste, der Länge $r$ rekursiv wie folgt. Dabei ist $I$ die Indexmenge.

  • Die Indexlistenliste für $I$ der Länge $0$ ist $(())$.
  • Die Indexlistenliste für $I$ der Länge $r$ ergibt sich aus der

Indexlistenliste für $I$ der Länge $r-1$, indem jedes Element aus $I$ in jede Indexliste hinein gesteckt wird.

So entsteht beispielsweise aus $((1)(2)(3))$ die Indexlistenliste $((1\ 1)(1\ 2)(1\ 3)\; (2\ 1)(2\ 2)(2\ 3)\; (3\ 1)(3\ 2)(3\ 3))$, wobei $I=\{1,2,3\}$.

Der folgende Aufruf gibt die Indexlistenliste für $\{1,2,3\}$ der Länge $2$ zurück.


Offenbar besteht die Indexlistenliste aus $n^r$ Elementen, wenn $|I|=n$.

Um auf das $i$-te Paar der Vorgabeliste direkt zugreifen zu können, ist es zweckmäßig, mit einem Vektor anstelle einer Liste für $K$ zu arbeiten:

gib_I ist eine Prozedur, die $K$ nimmt und $I$ zurückgibt.

Wir schreiben eine Prozedur indexlistenwort, die eine Indexliste, eine Prozedur und die Vorgabeliste für $K$ erwartet. Die übergebene Prozedur ist entweder x-komp, nämlich dann, wenn das Wort $x_{i_1}\circ x_{i_2}\circ\ldots\circ x_{i_n}$, oder y-komp, wenn $y_{i_1}\circ y_{i_2}\circ\ldots\circ y_{i_n}$ bestimmt wird.

Mit Bezug auf obiges Beispiel liefert sowohl

als auch

das Wort "101110011". $(1,3,2,3)$ ist also eine Lösung dieser Probleminstanz.

Die Prozedur PCP ist nun hinreichend vorbereitet. Sie nimmt die vorgegebene Paarliste und eine natürliche Zahl für die Länge der Indexlisten als Eingaben. Falls es für die jeweils aktuelle Länge eine Lösung gibt, wird sie ausgegeben und die Prozedur stoppt, wenn nicht, hält sie nicht an.

Der Aufruf

mit dem oben angegebenen $K$ liefert (1 3 2 3).

Bestimmen Sie eine Lösung des PCP für folgende Instanz des Problems: $K=((0111,1),(0,001),(10,1))$.

Erwartetes Ergebnis: (2 2 3 1)

Für $K=((001,0)(01,011),(01,101),(10,001))$ gibt es ebenfalls eine Lösung. Die gesuchte Indexfolge heißt (2 4 3 4 4 2 1 2 4 3 4 3 4 4 3 4 4 2 1 4 4 2 1 3 4 1 1 3 4 4 4 2 1 2 1 1 1 3 4 3 4 1 2 1 4 4 2 1 4 1 1 3 4 1 1 3 1 1 3 1 2 1 4 1 1 3). Überprüfen Sie die angegebene Lösung.

Wir fassen zusammen: Die Prozedur PCP findet eine Lösung, falls sie existiert. Anderenfalls stoppt PCP nicht. Dies ist charakteristisch für eine semi-entscheidbare bzw. aufzählbare Sprache.

Persönliche Werkzeuge