2x2 - Theoretische Informatik - Universität Duisburg-Essen
2x2 - Theoretische Informatik - Universität Duisburg-Essen
2x2 - Theoretische Informatik - Universität Duisburg-Essen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Kontextsensitive und Typ-0-Sprachen<br />
Berechenbarkeitstheorie<br />
Komplexitätstheorie<br />
Berechnungsmodelle<br />
Unentscheidbarkeit<br />
Unentscheidbare Probleme<br />
Kontextsensitive und Typ-0-Sprachen<br />
Berechenbarkeitstheorie<br />
Komplexitätstheorie<br />
Berechnungsmodelle<br />
Unentscheidbarkeit<br />
Unentscheidbare Probleme<br />
Primitiv rekursive und µ-rekursive Funktionen<br />
Primitiv rekursive und µ-rekursive Funktionen<br />
µ-rekursive Funktionen (Definition, Fortsetzung)<br />
Der µ-Operator verwandelt eine Funktion f : N k+1<br />
0<br />
→ N 0 in eine<br />
Funktion µf : N k 0 → N 0 mit<br />
µf (x 1 , . . . , x k ) = min{n | f (n, x 1 , . . . , x k ) = 0<br />
Dabei gilt min ∅ = undefiniert.<br />
und für alle m < n ist f (m, x 1 , . . . , x k )<br />
definiert}<br />
Intuitive Berechnung von µf (x 1 , . . . , x k ):<br />
Berechne f (0, x 1 , . . . , x k ), f (1, x 1 , . . . , x k ), . . .<br />
Falls für ein n gilt f (n, x 1 , . . . , x k ) = 0, so gib n als<br />
Funktionswert zurück.<br />
Falls f (m, x 1 , . . . , x k ) undefiniert ist (ohne, dass vorher einmal<br />
der Funktionswert gleich 0 war), oder der Funktionswert 0 nie<br />
erreicht wird: die intuitive Berechnung terminiert nicht.<br />
In diesem Fall gilt auch µf (x 1 , . . . , x k ) = min ∅ = undefiniert.<br />
Analogie zu While-Programmen: es ist nicht klar, ob die<br />
Abbruchbedingung jemals erfüllt wird.<br />
Kontextsensitive und Typ-0-Sprachen<br />
Berechenbarkeitstheorie<br />
Komplexitätstheorie<br />
Barbara König BeKo/TI 117<br />
Berechnungsmodelle<br />
Unentscheidbarkeit<br />
Unentscheidbare Probleme<br />
Primitiv rekursive und µ-rekursive Funktionen<br />
Durch den µ-Operator können nun auch echt partielle Funktionen<br />
erzeugt werden.<br />
Überall undefinierte Funktion<br />
Die Funktion Ω: N 0 → N 0 mit Ω(n) = undefiniert für alle n ∈ N 0<br />
ist µ-rekursiv.<br />
Verwende die 2-stellige Funktion f : N 2 0 → N 0 mit f (x, y) = 1 für<br />
alle x, y. Es gilt f = k ◦ π1 2 , wobei k die konstante 1-stellige<br />
Funktion ist, die alles auf 1 abbildet.<br />
Dann gilt Ω = µf .<br />
Barbara König BeKo/TI 119<br />
Kontextsensitive und Typ-0-Sprachen<br />
Berechenbarkeitstheorie<br />
Komplexitätstheorie<br />
Barbara König BeKo/TI 118<br />
Berechnungsmodelle<br />
Unentscheidbarkeit<br />
Unentscheidbare Probleme<br />
Primitiv rekursive und µ-rekursive Funktionen<br />
Weiteres Beispiel:<br />
Wurzelfunktion<br />
Die Funktion sqrt : N 0 → N 0 mit sqrt(n) = ⌈ √ n⌉ ist µ-rekursiv.<br />
(Dabei rundet ⌈. . . ⌉ eine reelle Zahl auf die nächstgrößere (oder<br />
gleiche) ganze Zahl auf.)<br />
Sei f (m, n) = n − m · m. (Die Multiplikationsfunktion ist primitiv<br />
rekursiv und die Subtraktionsfunktion kann durch iterierte<br />
Anwendung der Dekrementierungsfunktion erhalten werden.)<br />
Dann gilt sqrt = µf .<br />
Diese Funktion ist jedoch auch primitiv rekursiv. Intuition: bei<br />
Berechnung von sqrt(n) sind immer höchstens n Iterationen<br />
notwendig.)<br />
Barbara König BeKo/TI 120