Thema5

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Aufgabe 1

Definieren Sie je eine totale Funktion für den Vorgänger und die Halbierung einer natürlichen Zahl. Definieren Sie außerdem eine Funktion mit $D_f = \mathbb{N}\backslash\{1234, 7266281\}$.

Vorgänger $f:\mathbb{N} \rightarrow \mathbb{N}$

$$f(n) = \begin{cases} n-1, & \text{wenn } n \geq 1,\\ 0, & \text{sonst}. \end{cases}$$

Halbierung $f:\mathbb{N} \rightarrow \mathbb{N}$

$$f(n) = \begin{cases} \frac{n}{2}, & \text{wenn n gerade},\\ \frac{n-1}{2}, & \text{sonst}. \end{cases}$$

$D_f = \mathbb{N}\backslash\{1234, 7266281\}$

$$f(n) = \begin{cases} n, & \text{wenn } n \ne 1234,\ n \ne 7266281,\\ \perp, & \text{sonst} \end{cases}$$

Aufgabe 2

Für $K = ((001,0),(01,011),(01,101),(10,001))$ gibt es 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 per Hand.


Lösung für beide:

$$01100110100100101100110011010011010010011010010010110001001011010100100101$$

$$00100100101100110001010011010010011000100101100010010100100101001010011000100101$$

für x:

$$01 \ 10 \ 01 \ 10 \ 10 \ 01 \ 001 \ 01 \ 10 \ 01 \ 10 \ 01 \ 10 \ 10 \ 01 \ 10 \ 10 \ 01 \ 001 \ 10 \ 10 \ 01 \ 001 \ 01 \ 10$$

$$001 \ 001 \ 01 \ 10 \ 10 \ 10 \ 01 \ 001 \ 01 \ 001 \ 001 \ 001 \ 01 \ 10 \ 01 \ 10 \ 001 \ 01 \ 001 \ 10 \ 10 \ 01 \ 001 \ 10 \ 001$$

$$001 \ 01 \ 10 \ 001 \ 001 \ 01 \ 001 \ 001 \ 01 \ 001 \ 01 \ 001 \ 10 \ 001 \ 001 \ 01$$

für y:

$$011 \ 001 \ 101 \ 001 \ 001 \ 011 \ 0 \ 011 \ 001 \ 101 \ 001 \ 101 \ 001 \ 001 \ 101 \ 001 \ 001 \ 011 \ 0 \ 001 \ 001 \ 011 \ 0 \ 101 \ 001$$

$$0 \ 0 \ 101 \ 001 \ 001 \ 001 \ 011 \ 0 \ 011 \ 0 \ 0 \ 0 \ 101 \ 001 \ 101 \ 001 \ 0 \ 011 \ 0 \ 001 \ 001 \ 011 \ 0 \ 001 \ 0$$

$$0 \ 101 \ 001 \ 0 \ 0 \ 101 \ 0 \ 0 \ 101 \ 0 \ 011 \ 0 \ 001 \ 0 \ 0 \ 101$$

Aufgabe 3

Geben Sie Trichterbilder für den Einsatz einer TM als Akzeptator an:

1. für semi-entscheidbare Sprachen.

Siclsche TM-Semientscheidbar.jpg.png

2. für entscheidbare Sprachen.

Siclsche TM-Entscheidbar.jpg.png

Aufgabe 4

Entwickeln Sie eine Turing-Maschine, welche die konstante Funktion $f(x)=5$ für alle $x\in\mathbb{N}$ berechnet.

Siclsche TMkonsFkt.jpg

Aufgabe 5

Definieren Sie die Begriffe Turing-aufzählbar und Truring-entscheidbar analog zur Turing-Berechenbarkeit

Turing-aufzählbar

Die Menge muss abzählbar und die dazu gehörige Funktion durch eine Turing-Maschine $M$ berechenbar sein.

Turing-entscheidbar

Wenn die $\chi_M$ - Funktion durch eine Turing-Maschine berechenbar ist.

Aufgabe 6

Entwickeln Sie eine Turning-Maschine, welche den Nachfolger einer natürlichen Zahl berechnet.

Siclsche TMNachfolger.jpg

Kreativaufgabe: RADO-Funktion

$\sum(n)$ bezeichnet die maximale Anzahl von Einsen (nicht unbedingt aufeinander folgend), die eine haltende TM über $\{1\}^*$ und $n$ Zuständen zzgl. eines Haltezustands auf ein anfangs leeres Band schreiben kann. Die Kopfposition am Ende der Berechnung spielt (im Gegensatz zur sonstigen Vereinabrung) keine Rolle.

$\sum:\mathbb{N} \rightarrow \mathbb{N}$ ist eine von Tibor RADO (ungarischer Mathematiker, 1895-1965) angegebene nicht berechenbare Funktion.

z.z.: $\sum$ ist nicht berechenbar.

Methode: Indirekter Beweis

Vorbereitung:

  • Beweis der folgenden beiden Eigenschaften der Funktion:
    • $\sum(n) < \sum(n+1)$
    • Für alle $n$ gilt $f(n) \leq \sum(n+k)$
  • Wenn $f$ und $g$ Turing-berechenbare Funktionen sind, dann ist auch $g \circ f$ Turing-berechnbar.


Beweis der 1. Eigenschaft: $\Sigma(n) < \Sigma(n+1)$

Fügt man einer bestehenden Turing-Maschine zu der RADO-Funktion mit $n$ Zuständen einen weiteren Zustand direkt nach dem Startzustand hinzu, so ist es dieser erweiterten Turing-Maschine möglich, mindestens eine "1" mehr auf das Band zu schreiben. Dies wurde mit folgendem Beispiel für $n=2$ verdeutlicht. Hierbei wird über die Ausgangs-Turing-Maschine viermal "1" auf das Band geschrieben, während bei der um den Zustand $q_{neu}$ erweiterten Turing-Maschine fünfmal "1" geschrieben wird.

Beispiel $n = 2$ und $n = 3$

TMrado2.jpg TMrado2+1.jpg

Ergebnisse:

TMrado2 ergeb.JPG

TMrado2+1 ergeb.JPG


Beweis der 2. Eigenschaft: Für alle $n$ gilt $f(n) \leq \sum(n+k)$

Die Funktion $f(n)$ wird durch eine Turing-Maschine $M_f$ berechnet. Diese besitzt $k$ Zustände und es können mit ihr zur Berechnung von $f(n)$ $n$ Einsen auf das Band geschrieben werden.

Weiterhin gibt es eine Turing-Maschine zu der RADO-Funktion, die maximal viele Einsen ($x$) bei $k$ Zuständen schreibt. Um mit dieser Turing-Maschine die $n$ Einsen zur Berechnung von $f(n)$ auf das Band zu schreiben, kommen maximal $n$ Zustände zu der bereits bestehenden Maschine hinzu. Die so entstandene Turing-Maschine schreibt also die urspürngliche Anzahl an Einsen $x$ und zusätzlich die $n$ Einsen der Funktion. Somit muss die Anzahl der Einsen von $\sum(n+k)$ mindestens $n$ betragen.


Beweis der 3. Eigenschaft: Wenn $f$ und $g$ Turing-berechenbare Funktionen sind, dann ist auch $g \circ f$ Turing-berechnbar.

Da $f$ und $g$ Turing-berechenbar sind, existieren für beide Funktionen Turing-Maschinen. Die Verkettung dieser beiden Funktionen kann über die Kopplung der zugehörigen Maschinen realisiert werden, sodass wieder eine Turing-berechenbare Funktion entsteht.

Beispiel:

$f$ stellt die Turing-Maschine zur Berechnung des Nachfolgers einer natürlichen Zahl dar.

$g$ stellt die Turing-Maschine zur Verdopplung einer natürlichen Zahl dar.

TMNachDopp.jpg


Beweis: $\sum$ ist nicht berechenbar

Methode: indirekter Beweis $\rightarrow$ $\sum$ ist berechenbar

Da $\sum$ berechenbar ist, existiert eine Turing-Maschine zu dieser Funktion. Weitherin ist die Verdopplung einer natürlichen Zahl (V) berechenbar, sodass auch hier eine Turing-Maschine existiert. Nach Eigenschaft 3 muss die Verkettung zweier Turing-berechenbarer Funktionen ebenfalls Turing-berechenbar sein. Daraus ergibt sich:

$\Sigma \circ V$ ist Turing-berechenbar, sodass eine Turing-Maschine $M_{\Sigma \circ V}$ mit $k$ Zuständen existiert. $\Sigma \circ V$ stellt dabei eine Funktion $f$ dar.

Nach Eigenschaft 2 gilt für alle $n \in \mathbb{N}$ $f(n) \leq \sum(n+k)$. $f$ wird hierbei mit $(\Sigma \circ V)$ ersetzt:

$$(\Sigma \circ V) \leq \Sigma(n+k)$$

wobei $\Sigma \circ V$ auch als $\Sigma(V(n))$ dargestellt werden kann. Die Verdopplungsfunktion ist hierbei durch $g(n) = 2n$ definiert. Daraus ergibt sich:

$$\Sigma(2n) \leq \Sigma(n+k)$$

Für ein spezielles $n = k + 1$ folgt folgende Gleichung:

$$\Sigma(2(k+1)) \leq \Sigma((k+1) + k)$$

$$\Sigma(2k+2) \leq \Sigma(2k+1) \unicode{x021AF}\text{ Widerspruch!}$$

Der Widerspruch entsteht durch Eigenschaft 1, laut der $\sum(n) < \sum(n+1)$ gilt. Dies ist nicht gegeben, da sich $\sum(2k+2) > \sum(2k+1)$ ergeben hat.

Somit ist bewiesen worden, dass die RADO-Funktion nicht berechenbar ist.

Persönliche Werkzeuge