BuK-Übung03

Aus ProgrammingWiki
Archivierte Version vom 2012-04-03T20:01:22+00:00. Aktuelle Version

Inhaltsverzeichnis

Aufgabe 1 (Felix Nitsche, Stefan Lüttke)

ÜA: Wie viele berechenbare charakteristische Funktionen gibt es? Hinweis: Potenzmenge unendlicher Mengen


Aufgabe 2 (Jens Heider, Daniel Tasche)

ÜA: 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:

M ist die Menge aller Wörter aus A^*, die die Länge 3 besitzen, d.h.:

A^* = \{a, b\}^* \text{ und } M \subset A^* = \{w \mid w \in A^*\text{ und } |w| = 3\}

Lösung:

Die Mengen sind (absolut) entscheidbar, wenn es eine charakteristische Funktion gibt, die "wahr" zurückgibt, wenn das Element in der Menge enthalten ist und "falsch", wenn es definitiv nicht enthalten ist.

Da es sich um eine endliche Menge handelt, kann eine Iteration über die Elemente der Menge erfolgen, wobei das jeweilige Element mit dem gesuchten verglichen wird. Bei Übereinstimmung wird "wahr" zurückgegeben. Wird die Iteration erfolglos beendet, wird "falsch" zurückgegeben.

\chi_M(w) = \begin{cases} wahr, & \text{wenn } w \in M;\\ falsch, & \text{sonst} \end{cases}

Eine alternatie Möglichkeit besteht in der Überprüfung, ob das Wort den Regeln entspricht (Wortlänge von 3, Alphabet enthält nur 'a' und 'b'):

Beispiel 2 abzählbar unendliche Menge

M ist die Menge aller Wörter, die aus beliebeig vielen a 's und b 's bestehen und mit a beginnen: A^* = \{a,b\}^* und M \subset A^* = \{w = aw' | w' \in A^* \} .

Lösung

Die Menge M ist entscheidbar, da folgende charakteristische Funktion existiert:

\chi_M(w) = \begin{cases} wahr, & \text{wenn das erste Zeichen von } w \text{ ein '}a\text{' ist und } w \in A^*\text{, mit } A^* = \{a,b\}^*;\\ falsch, & \text{sonst}; \end{cases}

Die Funktion liefert wahr, wenn das erste Zeichen des Wortes w ein 'a' ist und der Rest des Wortes aus dem Alphabet A^* ist. Falsch, wenn nicht.

Aufgabe 3 (Max Wielsch, Raik Bieniek)

ÜA: Zeigen Sie, dass die Menge der geraden Zahlen G eine aufzählbare Menge ist.

aufzählbar: abzählbar + berechenbar

abzählbar: \exists g: \N \mapsto G, G sei die Menge der geraden Zahlen

g: surjektiv

berechenbar: Es gibt einen Algorithmus für g

$g(n) = \left\{\begin{array}{cc} n; wenn\ 2|n\\ (-1) \cdot n + 1; sonst\\ \end{array}\right. $

\square


Algorithmus:


ÜA: Zeigen Sie, dass die Menge der Primzahlen P aufzählbar ist.

aufzählbar: abzählbar + berechenbar

abzählbar: \exists p: \N \mapsto P, P sei die Menge der Primzahlen

p: surjektiv

berechenbar: Es gibt einen Algorithmus für p

Funktion:

$p(n) = \left\{\begin{array}{cc} n; wenn\ prime?(n)\\ 2; sonst\\ \end{array}\right. $

Algorithmus:

\square

↦ f ist berechenbar

ÜA: 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.

Gesucht: f: ℕ ↦ A^*; berechenbar, surjektiv

Für endliches Alphabet:

Bsp:

Sirabien_A_oben_Stern.png

(als SVG)

Aufgabe 4 (Ingo Körner, Christof Ochmann)

ÜA: Zeigen Sie, dass jede endliche Menge M aufzählbar ist.

aufzählbar = abzählbar + berechenbar

1) Jede endliche Menge ist aufzählbar (per Definition).

2) Jede endliche Menge ist berechenbar.

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 -> M gibt. Es wird der Reihe nach jedes Element aus N einem Element aus M zugeordnet. Ist f sujektiv, können die restlichen Elemente aus N auf ein beliebiges Element von M abgebildet werden. Somit ist f surjektiv, total und berechenbar.


ÜA: Die Menge G der Gitterpunkte (0, 0),(0, 1), ... einer x-y-Ebene ist aufzählbar.

Koerner_2D_Ebene.png
Übersicht: 2D-Ebene


1 Geben Sie eine Funktion f an, die \N_0 bijektiv auf G abbildet.

2 Definieren Sie eine Ordnungsrelation p_< in G.

(G, p_<) = {(0,0) < (0,1) < (1,0) < (2,0) < (1,1) < (0,2) < (0,3) < (1,2) < (2,1) < ...}

3 Geben Sie eine Funktion k zur Berechnung der Platznummer k(x, y) des betrachteten Gitterpunktes (x, y) an.



4 Geben Sie eine Aufzählprozedur für G an und begründen Sie deren Berechenbarkeit.

Aufgabe 5 (Tobias Salzmann, Ronald Krause)

Sitosalz_Übersicht_Mengenklassen.png
Übersicht: Mengenklassen
Eine Menge M \subseteq A^* ist semi-entscheidbar, wenn die partielle (semi-charakteristische) Funktion \chi'_M : A^* \mapsto \{wahr\} mit

\chi'_M(w) = \begin{cases} wahr, & \text{wenn } w \in M;\\ \bot, & sonst. \end{cases}

berechenbar ist.


ÜA: Das Halteproblem ist semi-entscheidbar. Beweisen Sie diese Aussage.

Man kann eine Prozedur haelt? angeben, welche angewand auf eine Prozedur f true zurück gibt falls f terminiert und ansosnten ewig weiter läuft, für diesen Fall also nicht definiert ist.
Das Halteproblem ist somit semi-entscheidbar, weil eine partielle Funktion hierfür angegeben werden kann.



ÜA: Weisen Sie nach, dass die Menge M aller "Wörter aus {a, b}*, die mit a beginnen, semi-entscheidbar ist.

Wie in der Übersicht zu den Mengenklassen ersichtlich, ist eine Menge auch semi-entscheidbar, wenn Sie entscheidbar ist.
In Aufgabe 2 wurde die Entscheidbarkeit dieser Menge gezeigt, daraus folgt das Sie auch semi-entscheidbar sein muss.

Weiterhin kann auch eine partielle semi-charakteristische Funktion angegeben werden:



ÜA: Geben Sie fur die Menge FIBS der Fibonacci-Zahlwörter eine Aufzählfunktion an und begründen Sie deren Berechenbarkeit. Weisen Sie nach, dass FIBS eine semi-entscheidbare Menge ist. Zeigen Sie, dass FIBS sogar entscheidbar ist.

Laut der Definition aus der Vorlesung Berechenbarkeitstheorie und Kreativität ist eine Menge aufzählbar, wenn es eine totale berechenbare Funktion f gibt, welche die Menge \N auf eine Menge M abbildet.

In diesem Beispiel handelt es sich bei der Menge M um die Fibonacci-Zahlwörter. Die Aufzählprozedur f lautet wie folgt:

f(n) = \begin{cases} g(n), & \text{wenn } g(n) \in \text{ M};\\ 0, & sonst. \end{cases}

Damit die Funktion f eine surjektiv Abbildung der natürlichen Zahlen auf die Menge der Fibonacci-Zahlwörter und berechenbar ist, wird die Aufzählfunktion g benötigt.

g(n) = \begin{cases} 0, & \text{wenn } n=0;\\ 1, & \text{wenn } n=1;\\ (n-1) + (n-2), & sonst. \end{cases}

Scheme-Prozedur für die Aufzählfunktion g:

Erzeugen der Menge M an Fibonacci-Zahlwörter:

Um nachweisen zu können, dass die Funktion f semi-entscheidbar ist, muss es wie oben definiert folgende Funktion geben

\chi'_{M}(w) = \begin{cases} wahr, & \text{wenn } w \in \text{ M};\\ \bot, & sonst. \end{cases}

welche berechenbar ist. Mit Hilfe der Prozedur semi_chi_fib ist dies nachweisbar.

ÜA: Übertragen Sie die vorhergehende Übungsaufgabe sinngemäß auf die Menge der Quadratzahlen QZ = \{n^2 |n \in \N\}.

Analog zur vorhergehenden Übungsaufgabe lässt sich folgende Aufzählprozedur f aufstellen:

f(n) = \begin{cases} g(n), & \text{wenn } g(n) \in \text{ M};\\ 1, & sonst. \end{cases}

Die Auzählfunktion g2, welche die Menge der quadtratischen Zahlen zurückgibt ist folgende:

Erzeugen der Menge M an Quadratzahlen:

Nachweis das die Funktion f semi-entscheidbar ist: Prozedur semi_chi_quad

Nachweis das die Funktion ebenfalls entscheidbar ist:

Aufgabe 6 (Robert Rosenberger, Stefan Scheumann)

ÜA: Definieren Sie die Menge der geraden Zahlen (Zahlwörter) und die der ungeraden Zahlen (Zahlwörter) und veranlassen Sie das ProgrammingWiki die 30 ersten Elemente der Vereinigungsmenge (in aufsteigender Sortierung) auszugeben.

Gegeben:

A = {0,1,2,3,4,5,6,7,8,9} A^{*} = { \epsilon,0,1,2,...,10,11,12,...,100,101,...}


Menge der geraden Zahlwörter M_{1} mit:

M_{1} \subseteq A^{*} f: \N \rightarrow M_{1} \text{ mit } f(x) = 2x

Menge der ungeraden Zahlwörter M_{1} mit:

M_{2} \subseteq A^{*} g: \N \rightarrow M_{2} \text{ mit } g(x) = 1+2x


Vereinigung:

M_{1} \cup M_{2} \subseteq A^{*} h: \N \rightarrow M_{1} \cup M_{2} h(i) = \begin{cases} f(\frac{i}{2}), & \text{wenn } 2|i;\\ g(\frac{i - 1}{2}), & \text{sonst}. \end{cases}