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.