Berechenbarkeit

  • Partielle Funktion Funktion undefiniert ⇒ Programm terminiert nicht

"Intuitiv Berechenbar"

  • Es existiert ein Algorithmus, auch wenn dieser nicht bekannt ist.

Berechenbarkeitsmodelle

Äquivalent

  • TM
  • Mehrband TM
  • WHILE
  • GOTO
  • μ-Rekursiv
  • Registermaschiene
  • λ-Kalkül

Schwächere aber Äquivalent

  • LOOP
  • primitiv rekursiv

Mehrband TM

Einband TM ⇔ Mehrband TM

  • Ein Zustand
  • Mehre unabhängige Köpfe

Simulation kostet O(n²)

PROGRAMME

Vorbedingungen:

  • $x_1, x_2, \dots$ Eingabewerte
  • Alle anderen (per default) 0

Nachbedingungen:

  • $x_0$ Ergebniss

LOOP

  • x := x + c
  • x := x - c (wird nicht kleiner 0)
  • P;P
  • LOOP x DO P END (so oft, wie x zu beginn war)

LOOP ⇒ Nur endliche Schleifen ⇒ Nur totale Funktionen

WHILE

  • x := x + c
  • x := x - c (wird nicht kleiner 0)
  • P;P
  • LOOP x DO P END (so oft, wie x zu beginn war)
  • WHILE x $\ne$ 0 DO P END (⇐ Neu)
Kleene-Normalform

„Alle WHILE-Programme können mit nur einem WHILE (aber mehreren LOOPs) geschrieben werden“

WHILE

  • M: x := x + c
  • M: x := x - c (wird nicht kleiner 0)
  • P;P
  • M: GOTO M
  • M: IF x = c THEN GOTO M
  • M: HALT

Primitive Rekursion

Konstanten $f() = 42$
Argument Auswahl (Projektion) $f(x, y, z) = y$
Successor $f(n) = n+1$
Einsetzen $f(n) = g(n, h(n))$
Primitive Rekursion $f(0, x_1, \dots, x_k) = g(x_1, \dots, x_k)$
$f(n, x_1, \dots, x_k) = h(f(n-1, x_1, \dots, x_k), n-1, x_1, \dots, x_k)$

μ-Rekursion

  • Wie Primitive Rekursion
  • Zusätzlich μ-Operator
    • Erzeugt neue Funktion mit n-1 Argumenten
    • Liefert erstes/kleinstes n mit dem $f(n, x_1, \dots, x_k) = 0$ wird.

Gödel-Nummerierung

  1. Symbole durchnummerieren
  2. Aufsteigende folge von Primzahlen

$2^39 \cdot 3^1 \cdot 5^9$

Turing-berechenbar

Vorbedingungen:

  • deterministische TM
  • Eingabewerte nacheinander auf Band
  • Lesekopf am Anfang

–Start–

Nachbedingungen wenn definiert:

  • TM Hält
  • Nur Ergebnis auf Band
  • Lesekopf am Anfang

Nachbedingungen wenn undefiniert:

  • Endlosschleife

Ackermann-Funktion

Ist total, trotzdem nicht primitiv rekursiv (aber μ-Rekursiv).

Reduzierbarkeit

Gegeben

  • $A \subseteq \Sigma^*$
  • $B \subseteq \Gamma^*$

Gesucht

Funktion f für die gild:

  • total
  • berechenbar
  • $\forall x \in \Sigma^* : x \in A \Leftrightarrow f(x) \in B$

Folgerung

Wenn $A \le B$ gilt (A auf B reduzierbar)

  • B entscheidbar ⇒ A entscheidbar
  • B semi-entscheidbar ⇒ A semi-entscheidbar
  • A unentscheidbar ⇒ B unentscheidbar

Anwendung

  • Ich will die Unentscheidbarkeit von B beweisen.
  • Ich tu die Unentscheidbarkeit von A, einem Spezialfall, beweisen.
users/skruppy/ext/uni/4/fsk/berechenbarkeit.txt · Zuletzt geändert: 2013/07/28 18:33 von skruppy