2x2 - Theoretische Informatik - Universität Duisburg-Essen
2x2 - Theoretische Informatik - Universität Duisburg-Essen
2x2 - Theoretische Informatik - Universität Duisburg-Essen
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
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 />
Loop-Programme<br />
Loop-Programme können aber gewisse Programmkonstrukte<br />
simulieren, die in der Syntax nicht enthalten sind.<br />
Multiplikation<br />
Simulation von x 0 := x 1 · x 2<br />
Wir werden im folgenden solche Konstrukte in Programmen verwenden.<br />
Wir nehmen dann an, dass sie – wie oben – geeignet simuliert<br />
werden.<br />
Analog: Ganzzahlige Division (x Div y) und Divisionsrest<br />
(x Mod y).<br />
Kontextsensitive und Typ-0-Sprachen<br />
Berechenbarkeitstheorie<br />
Komplexitätstheorie<br />
While-Programme<br />
Barbara König BeKo/TI 91<br />
Berechnungsmodelle<br />
Unentscheidbarkeit<br />
Unentscheidbare Probleme<br />
While-Programme<br />
Syntax und Semantik von While-Programmen<br />
Statt Loop-Schleifen verwenden wir While-Schleifen der Form<br />
While x i ≠ 0 Do P End<br />
Programm P wird so lange ausgeführt bis der Wert von x i gleich 0<br />
ist.<br />
Eine Loop-Schleife<br />
Loop x Do P End<br />
kann simuliert werden durch<br />
y := x;<br />
While y ≠ 0 Do y := y − 1; P End<br />
Wichtig: dabei ist y eine neue Variable, die insbesondere in P nicht<br />
vorkommt.<br />
Kontextsensitive und Typ-0-Sprachen<br />
Berechenbarkeitstheorie<br />
Komplexitätstheorie<br />
While-Programme<br />
Barbara König BeKo/TI 92<br />
Berechnungsmodelle<br />
Unentscheidbarkeit<br />
Unentscheidbare Probleme<br />
While-Berechenbarkeit (Definition)<br />
Eine Funktion f : N k 0 → N 0 heißt While-berechenbar, falls es ein<br />
While-Programm P gibt, das<br />
gestartet mit n 1 , . . . , n k ∈ N 0 in den Variablen x 1 , . . . , x k<br />
stoppt mit f (n 1 , . . . , n k ) in der Variablen x 0 , falls<br />
f (n 1 , . . . , n k ) definiert ist.<br />
Ansonsten terminiert P nicht.<br />
While-Programme → Turingmaschinen<br />
Jede While-berechenbare Funktion ist auch Turing-berechenbar.<br />
Anders ausgedrückt: Turingmaschinen können While-Programme<br />
simulieren.<br />
Barbara König BeKo/TI 93<br />
Barbara König BeKo/TI 94