sirokrau
Inhaltsverzeichnis |
Übung 2
Aufgabe 1
\sum\limits_{k=1}^{n} F_{k} = F_{n+2} - 1Induktionsanfang (IA):
z.z. Für n = 1 gilt:
F_{1} = F_{1+2}-1
F_{1} = F_{3}-1 (F_{3} = 2)
1 = 2-1
1 = 1 \Rightarrow OK
Induktionsschritt (IS):
Wenn \sum\limits_{k=1}^{i} F_{k} = F_{i+2} - 1 (Induktionsvoraussetzung, kurz IV),
dann gilt auch: \sum\limits_{k=1}^{i+1} F_{k} = F_{i+3} - 1 (Induktionsbehauptung, kurz IB).
\sum\limits_{k=1}^{i+1} F_{k} = \sum\limits_{k=1}^{i} F_{k} + F_{i+1} \quad \stackrel{IV}{=} F_{i+2} -1 + F_{i+1} = F_{i+3} - 1 (Ergebnis = IB)
Übung 3
Aufzählbarkeit und Entscheidbarkeit (Aufgabe 5)
Ü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:
Übung 4
Teilaufgabe 2 - Beweis Teil 2 (Tobias Salzmann, Ronald Krause)
zu zeigen: Wenn M und A^*\M aufzählbare Mengen sind, dann ist M eine entscheidbare Menge.
Da M und A^*\M aufzählbare Mengen sind, gibt es total berechenbare surjektive Funktionen für diese.
Für M lautet die Auzählfunktion f: \N \mapsto M:
f(n) = \begin{cases} f(n), & \text{wenn } f(n) \in M;\\ a, & sonst \end{cases}Hinweis: a \in M .
Für A^*\M lautet die Auzählfunktion g: \N \mapsto A^*\M:
g(n) = \begin{cases} g(n), & \text{wenn } g(n) \in A^*\text{ \M};\\ b, & sonst \end{cases}Hinweis: b \in A^*\M .
Beweis
Da zu zeigen ist, dass M entscheidbar sein soll, muss es eine total berechenbare Funktion \chi_M geben.
\chi_M(w) = \begin{cases} wahr, & \text{wenn } w \in M;\\ falsch, & \text{wenn } w \in A^*\text{ \ M} \end{cases}Es muss also eine Prozedur chi geben, welche für jedes Wort w in endlicher Zeit für ein i mit w = f(i) oder w = g(i) findet.
Da die Schnittmenge von M und A^*\M eine leere Menge ist, kann es kein w geben, welches in beiden Mengen vorkommt, sodass man genau sagen kann, ob w in der Menge M oder der Menge A^*\ M liegt.
M \cap (A^*\text{ \ M}) = \empty,\text{ gilt} f(i) = g(j) = w \text{ ausgeschlossen}Da das Wort w aus der Wortmenge A^* stammt und die Vereinigung der beiden Mengen die Wortmenge ist, muss das Wort in diesen beiden Mengen liegen. Um die Abzählbarkeit zu gewährleisten, wird abwechseln das i-te-Element aus f und g gesucht, sodass kein Wort vergessen wird.
\chi_M(w) = \begin{cases} wahr, & \text{wenn } f(i) = w;\\ falsch, & \text{wenn } g(i) = w \end{cases}RAM-Programm: (Tobias Salzmann und Ronald Krause)
| Befehlszähler | Befehl | Bemerkung |
|---|---|---|
| | 1 | R0 = n | Berechnung Wurzel 25 |
| | 2 | R1 = RO | X |
| | 3 | R2 = 1 | Y |
| | 4 | R20 = R1 | |
| | 5 | R21 = R2 | |
| | 6 | GOTO 36 | Größer/KleinerVergleich |
| | 7 | IFZERO R23 GOTO 9 | |
| | 8 | STOP | Ergebnis x in R1 |
| | 9 | R3 = 0 | |
| | 10 | R3 += R1 | 0 + x |
| | 11 | R3 += R2 | x + y |
| | 12 | R4 = 2 | |
| | 13 | R10 = 0 | Wert zur Überprüfen des Rücksprunges |
| | 14 | GOTO 22 | Division |
| | 15 | R1 = R5 | neues x in R1 |
| | 16 | R3 = R0 | n in R3 |
| | 17 | R4 = R1 | x in R4 |
| | 18 | R10 = 1 | Wert zur Überprüfung des Rücksprunges |
| | 19 | GOTO 22 | Division |
| | 20 | R2 = R5 | neues y in R2 |
| | 21 | GOTO 36 | Größer/Kleinervergleich |
Ganzzahlige Division
| Befehlszähler | Befehl | Bemerkung |
|---|---|---|
| | 22 | R9 = 1 | |
| | 23 | R5 = 0 | |
| | 24 | R6 = R3 | Zähler für 1.Zahl |
| | 25 | R7 = R4 | Zähler für 2.Zahl |
| | 26 | IFZERO R7 GOTO 31 | Größer/Kleinervergleich |
| | 27 | R7 -= R9 | 1 mal subtrahieren |
| | 28 | IFZERO R6 GOTO 34 | |
| | 29 | R6 -= R9 | 1 mal subtrahieren |
| | 30 | GOTO 26 | |
| | 31 | R5 += R9 | 1 mal addieren |
| | 32 | R6 -= R7 | |
| | 33 | GOTO 24 |
Größer/Kleinervergleich
| Befehlszähler | Befehl | Bemerkung |
|---|---|---|
| | 34 | IFZERO R10 GOTO 15 | |
| | 35 | GOTO 20 |
| Befehlszähler | Befehl | Bemerkung |
|---|---|---|
| | 36 | IFZERO R20 GOTO 41 | x |
| | 37 | R20 -= R9 | |
| | 38 | IFZERO R21 GOTO 42 | y |
| | 39 | R21 -= R9 | |
| | 40 | GOTO 36 | |
| | 41 | R23 = 1 | |
| | 42 | GOTO 7 | Wenn R23 = 1; dann ist x <= y und wenn R23 = 0, dann x > y |
