uebung3
Aus ProgrammingWiki

Inhaltsverzeichnis |
Theorie
Im Gegensatz zu Funktionen sind Mengen nicht berechenbar, sondern entscheidbar. Man spricht bei Mengen von Entscheidbarkeit
relativ entscheidbare Mengen
Eine Menge $M_1$ ist relativ entscheidbar zur Menge $M_2 (M_1,M_2\subseteq A^*)$, wenn die charakteristische Funktion $\chi_{M_1,M_2}$ mit
$\chi_{M_1,M_2}(w)=\begin{cases}wahr & \text{,wenn } w\in M_1\\falsch & \text{, wenn } w\in M_2\setminus M_1\end{cases}$
eine totale und berechenbare (kurz: total berechenbar) Funktion ist. D.h. man kann für jedes Element der Menge $M_2$ sagen, ob es sich um ein Element der Menge $M_1$ handelt oder nicht.
(absolut) entscheidbare Mengen
Eine Menge $M\subseteq A^*$ ist (absolut) entscheidbar, wenn $M$ zu $A^*$ relativ entscheidbar ist, d.h. wenn $\chi_{M,A^*}$, kurz $\chi_{M}$, mit
$\chi_{M}(w)=\begin{cases}wahr & \text{,wenn } w\in M\\falsch & \text{, wenn } w\in A^*\setminus M\end{cases}$
eine total berechenbare Funktion ist.
Anders gesagt: $M$ ist entscheidbar, wenn es eine Prozedur (eine in einer beliebigen Programmiersprache implementierte Funktion) chi gibt, die für jedes Wort $w$ aus $A^*$ nach endlicher Zeit stoppt und entweder #t ($w\in M$) oder #f ($w \not\in M$) ausgibt.
> (chi "bin_in_M") #t > (chi "bin_nicht_in_M") #f
Aufzählbar
Eine Menge $M\subseteq A^*$ heißt (rekursiv) aufzählbar, wenn es entweder eine total berechbare surjektive Funktion $f\colon\N\mapsto M$ gibt, oder es gilt $M = \emptyset$. Man nennt $f$ eine Aufzählprozedur oder ein Aufzählverfahren von $M$.
Stark vereinfacht: aufzählbar $=$ abzählbar + berechenbar
von Aufzählbar zu Entscheidbar
Im allgemeinen Fall sichert die Aufzählbarkeit einer Menge lediglich deren Semi-Entscheidbarkeit.
Eine Menge $M\subseteq A^*$ ist semi-entscheidbar, wenn die partielle (semi-charakteristische) Funktion $\chi'_M \colon A^*\mapsto\{\text{wahr}\}$ mit
$\chi'_M(w)=\begin{cases}wahr & \text{, wenn }w\in M\\\perp & \text{, sonst}\end{cases}$
berechenbar ist.
Übungsaufgaben zur Entscheidbarkeit und Aufzählbarkeit
Aufgabe 1 (Deutschmann, Horbach)
Wie viele berechenbare charakteristische Funktionen gibt es?
Hinweis: Potenzmenge unendlicher Mengen
$\mathscr{P}(A^*)$ besitzt überabzählbar unendlich viele Mengen
Die Teilmengen von $A^*$ sind selbst endlich oder abzählbar unendlich.
Deshalb gibt es überabzählbar unendlich viele charakteristische Funktionen $\chi_M$.
Aufgabe 2
Zeigen Sie, dass die beiden Mengen aus den Beispielen entscheidbar sind. Schreiben Sie je eine entsprechende Prozedur für die jeweilige charakteristische Funktion (ProgrammingWiki).
Beispiel 1: endliche Menge
$A^*=\{a,b\}^*$ und $M\subset A^*=\{w | w\in A^* \text{und } \left|w\right|=3\}$
Beispiel 2: abzählbar unendliche Menge
$M$ ist die Menge aller Wörter, die aus beliebig vielen a's und b's bestehen und mit a beginnen.
$A^*=\{a,b\}^*$ und $M\subset A^*=\{w=aw'| w'\in A^*\}$
Aufgabe 3 (Deutschmann, Horbach)
Zeigen Sie, dass die Menge der geraden Zahlen G eine aufzählbare Menge ist.
Wdh: Aufzählbar = abzählbar + berechenbar
abzählbar: Für die Menge der geraden Zahlen $G$ gilt: $G\subset\Z$, die abzählbar unendlich sind Beweis
berechenbar: Es existiert ein Algorithmus, der für die Funktion $f(x)$ für jedes $x \in D_f$ den zugehörigen Funktionswert $f(x)$ ermittelt
$f(x)=\begin{cases}-i & \text{, wenn i gerade}\\i+1 & \text{, wenn i ungerade}\end{cases}$
Aufgabe 4
Zeigen Sie, dass die Menge der Primzahlen P aufzählbar ist.
Primzahlen sind abzählbar unendlich Beweis.
Aufzählbar = abzählbar + berechenbar
Aufzählbar:
- es gibt eine Aufzählprozedur $h:\N\mapsto A^*$
- total berechenbar
- mind. surjektiv
Berechenbar = "Es existiert eine implementierte Funktion (also eine Prozedur)"
Für die Aufzählbarkeit fehlt noch ein Algorithmus für eine Funktion, welche die Primzahlen berechnen kann.
Aufgabe 5
Wir wissen, dass $A^*$ eine abzählbar unendliche Menge ist. Zeigen Sie, dass $A^*$ auch aufzählbar ist.
Hinweis: Hierzu ist es notwendig ein Aufbauschema für $A^*$ zu entwerfen und anschließend eine Prozedur dafür zu implementieren.
Aufgabe 6
Zeigen Sie, dass jede endliche Menge $M$ aufzählbar ist.
Lösung:
Aufzählbar = abzählbar + berechenbar
Laut Definition heißt eine Menge $M$ endlich, wenn es eine natürliche Zahl $n$ gibt, sodass eine Bijektion zwischen $M$ und der Menge aller natürlichen Zahlen kleiner als $n$ existiert, d.h. jede endliche Menge ist abzählbar.
Eine Menge $M$ heißt (rekursiv) aufzählbar wenn es entweder eine total berechenbare surjektive Funktion $f:N \mapsto M$ gibt, oder es gilt $M = \emptyset$. Man nennt $f$ eine Aufzählprozedur oder ein Aufzählverfahren von M.
Es gibt eine Funktion $f$, die als Eingabe die natürlichen Zahlen $\N$ nimmt und auf jedes Element der endlichen Menge $M$ abbildet. $f$ ist berechenbar, da es eine total berechenbare surjektive Funktion $f : \N \mapsto M$ gibt. Es wird der Reihe nach jedes Element aus $\N$ einem Element aus $M$ zugeordnet. Ist $f$ surjektiv, können die restlichen Elemente aus $\N$ auf ein beliebiges Element von $M$ abgebildet werden. Somit ist $f$ surjektiv, total und berechenbar.
Aufgabe 7
Die Menge $G$ der Gitterpunkte $(0,0),(0,1),...$ einer x-y-Ebene ist aufzählbar.
- Geben Sie eine Funktion f an, die $\N$ bijektiv auf $G$ abbildet.
- Definieren Sie eine Ordnungsrelation $p<$ in G
- Geben Sie eine Funktion k zur Berechnung der Platznummer $k(x,y)$ des betrachteten Gitterpunktes $(x,y)$ an.
- Geben Sie eine Aufzählprozedur für $G$ an und begründen Sie deren Berechenbarkeit.
Lösung:
zu 1. $$g(z) = \begin{cases} (x,y) & \text{, mit } x=w-y,\\ & y = z - t \text{, wobei }\\\\ & w = \lfloor \frac{\sqrt{8z+1}-1}{2}\rfloor,\\\\ & t = \frac{w(w+1)}{2} \end{cases} \text{, mit }z\in\N$$
zu 2.
Die Paare sollen nach dem aufsteigendem Funktionswert der Funktion $\pi (x,y) = \frac{(x + y)(x + y + 1)}{2} + y$ geordnet werden.
zu 3.
Die Funktion aus 2. sei $k(x,y)$.
zu 4.
Aufgabe 8
Das Halteproblem ist semi-entscheidbar. Beweisen Sie diese Aussage.
Aufgabe 9
Geben Sie für die Menge $FIBS$ der Fibonacci-Zahlwörter eine Aufzählfunktion an und begründen Sie deren Berechenbarkeit. Weisen Sie nach, dass $FIBS$ sogar entscheidbar ist.
Per Definition ist eine Menge $M$ aufzählbar, wenn es eine totale berechenbare Prozedur $f$ gibt, welche die Menge $\N$ auf die Menge $M$ abbildet. $M$ ist hier die Menge der Fibonacci-Zahlwörter.
Überarbeiten!!! Die Aufzählprozedur lautet wie folgt: $$f(n) = \begin{cases} g(n), & \text{wenn } g(n) \in \text{ M};\\ 0, & sonst. \end{cases}$$
Für $g(n)$ gilt: $$g(n) = \begin{cases} 0, & \text{wenn } n=0;\\ 1, & \text{wenn } n=1;\\ (n-1) + (n-2), & sonst. \end{cases}$$
Für beide, also für $f$ und $g$, lassen sich entsprechende Scheme Ausdrücke angeben:
Es wird noch eine charakteristische Funktion $\chi$ benötigt.
Aufgabe 10
Übertragen Sie die vorhergehende Übungsaufgabe sinngemäß auf die Menge der Quadratzahlen $QZ = \{n^2 | n\in\N\}$.
Aufgabe 11
Weisen Sie nach, dass die Menge $M$ aller "Wörter" aus $\{a,b\}^*$, die mit a beginnen, semi-entscheidbar ist.
Aufgabe 12
Definieren Sie die Menge der geraden Zahlen (Zahlwörter) und die der ungeraden Zahlen (Zahlwörter) und veranlassen Sie das ProgrammingWiki 30 Elemente der Vereinigungsmenge auszugeben.
$M_1$ ist die Menge der geraden Zahlen
$f_1(i)=string(2i)$
$M_2$ ist die Menge der ungeraden Zahlen
$f_2(i)=string(2i+1)$
Für die Vereinigung der beiden Mengen kann die folgende Funktion genommen werden:
$h(i)=\begin{cases}f_1(\frac{i}{2}) & \text{, wenn }i\text{ gerade}\\f_2(\frac{i-1}{2}) & \text{, wenn }i\text{ ungerade}\end{cases}$