BuK/IIm11/BuK-Übung05
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
== Mathematik vs. Informatik ==
<language>Scheme</language>
=== Aufgabe 1 (Stefan Scheumann, Robert Rosenberger, Tobias Salzmann, Ronald Krause) ===
Defnieren Sie je eine totale Funktion für den Vorgänger und die Halbierung einer natürlichen Zahl. Defnieren Sie außerdem eine Funktion mit $ D_f = \N \setminus \{1234, 7266281\} $.
'''Lösung:'''
Funktionsdefinition Vorgänger (total) : $ f(n) = n - 1$
Funktionsdefinition Vorgänger (partiell) : $$ f(n) = \begin{cases}
n - 1 ; & \text{für } n \in \N \setminus \{1234, 7266281\};\\
\bot; & sonst
\end{cases}
$$
Funktionsdefinition Halbiering (total) : $ f(n) = n / 2$
Funktionsdefinition Vorgänger (partiell) : $$ f(n) = \begin{cases}
n / 2 ; & \text{für } n \in \N \setminus \{1234, 7266281\};\\
\bot; & sonst
\end{cases}
$$
<code id="4f9683759398b">(define vorgaenger
(lambda (n)
(- n 1)))
(define halbierung
(lambda (n)
(/ n 2)))
(define vorgaenger_partiell
(lambda (n)
(cond
((or (= n 1234) (= n 7266281)) (vorgaenger_partiell n))
(else (vorgaenger n)))))
(define halbierung_partiell
(lambda (n)
(cond
((or (= n 1234) (= n 7266281)) (halbierung_partiell n))
(else (halbierung n)))))</code>
<run id="4f968375939f3">(halbierung_partiell 1234)</run>
== Postsches Korrrespondenzprobelm PCP (Jens Heider, Daniel Tasche) ==
=== Aufgabe 1 ===
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)
Uberprüfen Sie die angegebene Lösung per Hand.
=== Aufgabe 2 ===
Entwickeln Sie eine Scheme-Prozedur (ProgrammingWiki), die bei Aufruf für eine gegebene Instanz eine Lösung des PCP findet, falls eine solche existiert und der Rechenaufwand im Rahmen bleibt.
== Turing-Maschine und Churchsche These ==
=== Turing-Maschine als Akzeptator (Stefan Lüttke, Felix Nitsche) ===
Geben Sie Trichterbilder für den Einsatz einer TM als Akzeptator an:
* für semi-entscheidbare Sprachen
* für entscheidbare Sprachen
=== Turing-Aufzählbarkeit, Turing-Entscheidbarkeit (Max Wielsch, Raik Bieniek, Ingo Körner, Christof Ochmann) ===
Definieren Sie die Begriffe Turing-aufzählbar und Turing-entscheidbar analog zur Turing-Berechenbarkeit.
Sei A ein Alphabet, $M \subseteq A^*$. M heißt Turing-entscheidbar, falls die charakteristische Funktion $\chi_M$ Turing-berechenbar ist.
M heißt Turing-aufzählbar, wenn es eine Funktion $f: N \rightarrow M$ gibt, die surjektiv und Turing-berechenbar ist.