Einführung in die Theoretische Informatik Woche 11 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Es kann kein Testprogramm für hello, world“-Programme geben. ” Definition (informell) Ist ein Problem nicht algorithmisch lösbar, nennen wir es unentscheidbar. Satz Die folgenden Probleme sind unentscheidbar: 1 das Halteproblem 2 das Postsche Korrespondenzproblem 3 Eindeutigkeit einer beliebigen kontextfreien Grammatik 4 das Wortproblem in der Gleichungslogik (E |= s ≈ t) 5 ... HZ (IFI) ETI - Woche 11 172/219 Zusammenfassung Zusammenfassung der letzten LV Definition eine deterministische, einbändige Turingmaschine (TM) M ist ein 9-Tupel M = (Q, Σ, Γ, `, t, δ, s, t, r ) sodass 1 Q eine endliche Menge von Zuständen, 2 Σ eine endliche Menge von Eingabesymbolen, 3 Γ eine endliche Menge von Bandsymbolen, mit Σ ⊆ Γ, 4 ` ∈ Γ \ Σ, der linke Endmarker, 5 t ∈ Γ \ Σ, das Blanksymbol, 6 δ : Q × Γ → Q × Γ × {L, R} die Übergangsfunktion, 7 s ∈ Q, der Startzustand, 8 t ∈ Q, der akzeptierende Zustand und 9 r ∈ Q, der verwerfende Zustand mit t 6= r . HZ (IFI) ETI - Woche 11 173/219 Überblick Inhalte der Lehrveranstaltung Einführung in die Logik Syntax & Semantik der Aussagenlogik, Formales Beweisen, Konjunktive und Disjunktive Normalformen Einführung in die Algebra Boolesche Algebra, Universelle Algebra, Logische Schaltkreise Einführung in die Theorie der Formalen Sprachen Grammatiken und Formale Sprachen, Reguläre Sprachen, Kontextfreie Sprachen Einführung in die Berechenbarkeitstheorie Algorithmisch unlösbare Probleme, Turing Maschinen, Registermaschinen Einführung in die Programmverifikation Prinzipien der Analyse von Programmen, Verifikation nach Hoare, Verschlüsselung und Sicherheit HZ (IFI) ETI - Woche 11 174/219 Turingmaschinen Konfigurationen Definition eine Konfiguration einer TM M ist ein Tripel (p, z, n), sodass 1 p ∈ Q Zustand, 2 z = y t∞ Bandinhalt 3 n ∈ N Position des Lese/Schreibkopfes HZ (IFI) y ∈ Γ∗ ETI - Woche 11 175/219 Turingmaschinen Konfigurationen Definition eine Konfiguration einer TM M ist ein Tripel (p, z, n), sodass 1 p ∈ Q Zustand, 2 z = y t∞ Bandinhalt 3 n ∈ N Position des Lese/Schreibkopfes y ∈ Γ∗ Definition Startkonfiguration bei Eingabe x ∈ Σ∗ : (s, `xt∞ , 0) HZ (IFI) ETI - Woche 11 175/219 Turingmaschinen Konfigurationen Definition eine Konfiguration einer TM M ist ein Tripel (p, z, n), sodass 1 p ∈ Q Zustand, 2 z = y t∞ Bandinhalt 3 n ∈ N Position des Lese/Schreibkopfes y ∈ Γ∗ Definition Startkonfiguration bei Eingabe x ∈ Σ∗ : (s, `xt∞ , 0) Beispiel Die Startkonfiguration bei Eingabe 0011 ist (s, `0011t∞ , 0). HZ (IFI) ETI - Woche 11 175/219 Turingmaschinen Schrittfunktion Definition 1 Schrittfunktion −→ ist wie folgt definiert: M ( (q, z 0 , n − 1) wenn δ(p, zn ) = (q, b, L) 1 (p, z, n) −→ M (q, z 0 , n + 1) wenn δ(p, zn ) = (q, b, R) Hier ist z 0 das Wort, das wir aus z erhalten, wenn zn durch b ersetzt wird. HZ (IFI) ETI - Woche 11 176/219 Turingmaschinen Schrittfunktion Definition 1 Schrittfunktion −→ ist wie folgt definiert: M ( (q, z 0 , n − 1) wenn δ(p, zn ) = (q, b, L) 1 (p, z, n) −→ M (q, z 0 , n + 1) wenn δ(p, zn ) = (q, b, R) Hier ist z 0 das Wort, das wir aus z erhalten, wenn zn durch b ersetzt wird. Definition ∗ −→ definieren wir induktiv: M HZ (IFI) ETI - Woche 11 176/219 Turingmaschinen Schrittfunktion Definition 1 Schrittfunktion −→ ist wie folgt definiert: M ( (q, z 0 , n − 1) wenn δ(p, zn ) = (q, b, L) 1 (p, z, n) −→ M (q, z 0 , n + 1) wenn δ(p, zn ) = (q, b, R) Hier ist z 0 das Wort, das wir aus z erhalten, wenn zn durch b ersetzt wird. Definition ∗ −→ definieren wir induktiv: M 1 0 α −→ α M HZ (IFI) ETI - Woche 11 176/219 Turingmaschinen Schrittfunktion Definition 1 Schrittfunktion −→ ist wie folgt definiert: M ( (q, z 0 , n − 1) wenn δ(p, zn ) = (q, b, L) 1 (p, z, n) −→ M (q, z 0 , n + 1) wenn δ(p, zn ) = (q, b, R) Hier ist z 0 das Wort, das wir aus z erhalten, wenn zn durch b ersetzt wird. Definition ∗ −→ definieren wir induktiv: M 1 2 HZ (IFI) 0 α −→ α M k+1 k 1 M M M α −−→ β, wenn α −→ γ und γ −→ β für eine Konfiguration γ ETI - Woche 11 176/219 Turingmaschinen Schrittfunktion Definition 1 Schrittfunktion −→ ist wie folgt definiert: M ( (q, z 0 , n − 1) wenn δ(p, zn ) = (q, b, L) 1 (p, z, n) −→ M (q, z 0 , n + 1) wenn δ(p, zn ) = (q, b, R) Hier ist z 0 das Wort, das wir aus z erhalten, wenn zn durch b ersetzt wird. Definition ∗ −→ definieren wir induktiv: M 1 2 3 0 α −→ α M k+1 k 1 M M α −−→ β, wenn α −→ γ und γ −→ β für eine Konfiguration γ M ∗ k α −→ β, wenn es ein k ∈ N gibt mit α −→ β M HZ (IFI) M ETI - Woche 11 176/219 Turingmaschinen Sei M = ({s, t, r , q1 , q2 , q3 }, {0, 1}, {`, t, 0, 1, X, Y}, `, t, δ, s, t, r ) mit δ: s q1 q2 q3 ` (s, `, R) (r , `, R) (r , `, R) (r , `, R) t (r , t, R) (r , t, R) (r , t, R) (t, t, R) 0 1 X (q1 , X , R) (r , 1, R) (r , X , R) (q1 , 0, R) (q2 , Y , L) (r , X , R) (q2 , 0, L) (r , 1, R) (s, X , R) (r , 0, R) (r , 1, R) (r , X , R) Y (q3 , Y , R) (q1 , Y , R) (q2 , Y , L) (q3 , Y , R) Wir betrachten die Schrittfunktion für die Eingabe 0011: (s, `0011t∞ , 0) HZ (IFI) ETI - Woche 11 177/219 Turingmaschinen Sei M = ({s, t, r , q1 , q2 , q3 }, {0, 1}, {`, t, 0, 1, X, Y}, `, t, δ, s, t, r ) mit δ: s q1 q2 q3 ` (s, `, R) (r , `, R) (r , `, R) (r , `, R) t (r , t, R) (r , t, R) (r , t, R) (t, t, R) 0 1 X (q1 , X , R) (r , 1, R) (r , X , R) (q1 , 0, R) (q2 , Y , L) (r , X , R) (q2 , 0, L) (r , 1, R) (s, X , R) (r , 0, R) (r , 1, R) (r , X , R) Y (q3 , Y , R) (q1 , Y , R) (q2 , Y , L) (q3 , Y , R) Wir betrachten die Schrittfunktion für die Eingabe 0011: 1 (s, `0011t∞ , 0) −→ (s, `0011t∞ , 1) M HZ (IFI) ETI - Woche 11 177/219 Turingmaschinen Sei M = ({s, t, r , q1 , q2 , q3 }, {0, 1}, {`, t, 0, 1, X, Y}, `, t, δ, s, t, r ) mit δ: s q1 q2 q3 ` (s, `, R) (r , `, R) (r , `, R) (r , `, R) t (r , t, R) (r , t, R) (r , t, R) (t, t, R) 0 1 X (q1 , X , R) (r , 1, R) (r , X , R) (q1 , 0, R) (q2 , Y , L) (r , X , R) (q2 , 0, L) (r , 1, R) (s, X , R) (r , 0, R) (r , 1, R) (r , X , R) Y (q3 , Y , R) (q1 , Y , R) (q2 , Y , L) (q3 , Y , R) Wir betrachten die Schrittfunktion für die Eingabe 0011: 1 1 M M (s, `0011t∞ , 0) −→ (s, `0011t∞ , 1) −→ (q1 , `X011t∞ , 2) HZ (IFI) ETI - Woche 11 177/219 Turingmaschinen Sei M = ({s, t, r , q1 , q2 , q3 }, {0, 1}, {`, t, 0, 1, X, Y}, `, t, δ, s, t, r ) mit δ: s q1 q2 q3 ` (s, `, R) (r , `, R) (r , `, R) (r , `, R) t (r , t, R) (r , t, R) (r , t, R) (t, t, R) 0 1 X (q1 , X , R) (r , 1, R) (r , X , R) (q1 , 0, R) (q2 , Y , L) (r , X , R) (q2 , 0, L) (r , 1, R) (s, X , R) (r , 0, R) (r , 1, R) (r , X , R) Y (q3 , Y , R) (q1 , Y , R) (q2 , Y , L) (q3 , Y , R) Wir betrachten die Schrittfunktion für die Eingabe 0011: 1 1 M ∞ M (s, `0011t∞ , 0) −→ (s, `0011t∞ , 1) −→ (q1 , `X011t∞ , 2) 1 −→ (q1 , `X011t , 3) M HZ (IFI) ETI - Woche 11 177/219 Turingmaschinen Sei M = ({s, t, r , q1 , q2 , q3 }, {0, 1}, {`, t, 0, 1, X, Y}, `, t, δ, s, t, r ) mit δ: s q1 q2 q3 ` (s, `, R) (r , `, R) (r , `, R) (r , `, R) t (r , t, R) (r , t, R) (r , t, R) (t, t, R) 0 1 X (q1 , X , R) (r , 1, R) (r , X , R) (q1 , 0, R) (q2 , Y , L) (r , X , R) (q2 , 0, L) (r , 1, R) (s, X , R) (r , 0, R) (r , 1, R) (r , X , R) Y (q3 , Y , R) (q1 , Y , R) (q2 , Y , L) (q3 , Y , R) Wir betrachten die Schrittfunktion für die Eingabe 0011: 1 1 M ∞ M (s, `0011t∞ , 0) −→ (s, `0011t∞ , 1) −→ (q1 , `X011t∞ , 2) 1 1 −→ (q1 , `X011t , 3) −→ (q2 , `X0Y1t∞ , 2) M HZ (IFI) M ETI - Woche 11 177/219 Turingmaschinen Sei M = ({s, t, r , q1 , q2 , q3 }, {0, 1}, {`, t, 0, 1, X, Y}, `, t, δ, s, t, r ) mit δ: s q1 q2 q3 ` (s, `, R) (r , `, R) (r , `, R) (r , `, R) t (r , t, R) (r , t, R) (r , t, R) (t, t, R) 0 1 X (q1 , X , R) (r , 1, R) (r , X , R) (q1 , 0, R) (q2 , Y , L) (r , X , R) (q2 , 0, L) (r , 1, R) (s, X , R) (r , 0, R) (r , 1, R) (r , X , R) Y (q3 , Y , R) (q1 , Y , R) (q2 , Y , L) (q3 , Y , R) Wir betrachten die Schrittfunktion für die Eingabe 0011: 1 1 M ∞ M (s, `0011t∞ , 0) −→ (s, `0011t∞ , 1) −→ (q1 , `X011t∞ , 2) 1 1 1 M M −→ (q1 , `X011t , 3) −→ (q2 , `X0Y1t∞ , 2) −→ (q2 , `X0Y1t∞ , 1) M HZ (IFI) ETI - Woche 11 177/219 Turingmaschinen Sei M = ({s, t, r , q1 , q2 , q3 }, {0, 1}, {`, t, 0, 1, X, Y}, `, t, δ, s, t, r ) mit δ: s q1 q2 q3 ` (s, `, R) (r , `, R) (r , `, R) (r , `, R) t (r , t, R) (r , t, R) (r , t, R) (t, t, R) 0 1 X (q1 , X , R) (r , 1, R) (r , X , R) (q1 , 0, R) (q2 , Y , L) (r , X , R) (q2 , 0, L) (r , 1, R) (s, X , R) (r , 0, R) (r , 1, R) (r , X , R) Y (q3 , Y , R) (q1 , Y , R) (q2 , Y , L) (q3 , Y , R) Wir betrachten die Schrittfunktion für die Eingabe 0011: 1 1 M ∞ M (s, `0011t∞ , 0) −→ (s, `0011t∞ , 1) −→ (q1 , `X011t∞ , 2) 1 1 1 M M −→ (q1 , `X011t , 3) −→ (q2 , `X0Y1t∞ , 2) −→ (q2 , `X0Y1t∞ , 1) M 1 −→ (s, `X0Y1t∞ , 2) M HZ (IFI) ETI - Woche 11 177/219 Turingmaschinen Sei M = ({s, t, r , q1 , q2 , q3 }, {0, 1}, {`, t, 0, 1, X, Y}, `, t, δ, s, t, r ) mit δ: s q1 q2 q3 ` (s, `, R) (r , `, R) (r , `, R) (r , `, R) t (r , t, R) (r , t, R) (r , t, R) (t, t, R) 0 1 X (q1 , X , R) (r , 1, R) (r , X , R) (q1 , 0, R) (q2 , Y , L) (r , X , R) (q2 , 0, L) (r , 1, R) (s, X , R) (r , 0, R) (r , 1, R) (r , X , R) Y (q3 , Y , R) (q1 , Y , R) (q2 , Y , L) (q3 , Y , R) Wir betrachten die Schrittfunktion für die Eingabe 0011: 1 1 M ∞ M (s, `0011t∞ , 0) −→ (s, `0011t∞ , 1) −→ (q1 , `X011t∞ , 2) 1 1 1 M 1 M 1 −→ (q1 , `X011t , 3) −→ (q2 , `X0Y1t∞ , 2) −→ (q2 , `X0Y1t∞ , 1) M 1 −→ (s, `X0Y1t∞ , 2) −→ (q1 , `XXY1t∞ , 3) −→ (q1 , `XXY1t∞ , 4) M 1 M ∞ M 1 ∞ 1 −→ (q2 , `XXYYt , 3) −→ (q2 , `XXYYt , 2) −→ (s, `XXYYt∞ , 3) M 1 M 1 M 1 M M M −→ (q3 , `XXYYt∞ , 4) −→ (q3 , `XXYYt∞ , 5) −→ (t, `XXYYtt∞ , 6) HZ (IFI) ETI - Woche 11 177/219 Turingmaschinen Sei M = ({s, t, r , q1 , q2 , q3 }, {0, 1}, {`, t, 0, 1, X, Y}, `, t, δ, s, t, r ) mit δ: s q1 q2 q3 ` (s, `, R) (r , `, R) (r , `, R) (r , `, R) t (r , t, R) (r , t, R) (r , t, R) (t, t, R) 0 1 X (q1 , X , R) (r , 1, R) (r , X , R) (q1 , 0, R) (q2 , Y , L) (r , X , R) (q2 , 0, L) (r , 1, R) (s, X , R) (r , 0, R) (r , 1, R) (r , X , R) Y (q3 , Y , R) (q1 , Y , R) (q2 , Y , L) (q3 , Y , R) Wir betrachten die Schrittfunktion für die Eingabe 0011: 1 1 M ∞ M (s, `0011t∞ , 0) −→ (s, `0011t∞ , 1) −→ (q1 , `X011t∞ , 2) 1 1 1 M 1 M 1 −→ (q1 , `X011t , 3) −→ (q2 , `X0Y1t∞ , 2) −→ (q2 , `X0Y1t∞ , 1) M 1 −→ (s, `X0Y1t∞ , 2) −→ (q1 , `XXY1t∞ , 3) −→ (q1 , `XXY1t∞ , 4) M 1 M ∞ M 1 ∞ 1 −→ (q2 , `XXYYt , 3) −→ (q2 , `XXYYt , 2) −→ (s, `XXYYt∞ , 3) M 1 M 1 M 1 M M M −→ (q3 , `XXYYt∞ , 4) −→ (q3 , `XXYYt∞ , 5) −→ (t, `XXYYtt∞ , 6) HZ (IFI) ETI - Woche 11 177/219 Turingmaschinen Definition eine TM M • akzeptiert Eingabe x ∈ Σ∗ , wenn ∃ y ∈ Γ∗ , n ∈ N: ∗ (s, `xt∞ , 0) −→ (t, y t∞ , n) M HZ (IFI) ETI - Woche 11 178/219 Turingmaschinen Definition eine TM M • akzeptiert Eingabe x ∈ Σ∗ , wenn ∃ y ∈ Γ∗ , n ∈ N: ∗ (s, `xt∞ , 0) −→ (t, y t∞ , n) M • verwirft Eingabe x ∈ Σ∗ , wenn ∃ y ∈ Γ∗ , n ∈ N: ∗ (s, `xt∞ , 0) −→ (r , y t∞ , n) M HZ (IFI) ETI - Woche 11 178/219 Turingmaschinen Definition eine TM M • akzeptiert Eingabe x ∈ Σ∗ , wenn ∃ y ∈ Γ∗ , n ∈ N: ∗ (s, `xt∞ , 0) −→ (t, y t∞ , n) M • verwirft Eingabe x ∈ Σ∗ , wenn ∃ y ∈ Γ∗ , n ∈ N: ∗ (s, `xt∞ , 0) −→ (r , y t∞ , n) M • hält bei Eingabe x, wenn M Eingabe x akzeptiert oder verwirft HZ (IFI) ETI - Woche 11 178/219 Turingmaschinen Definition eine TM M • akzeptiert Eingabe x ∈ Σ∗ , wenn ∃ y ∈ Γ∗ , n ∈ N: ∗ (s, `xt∞ , 0) −→ (t, y t∞ , n) M • verwirft Eingabe x ∈ Σ∗ , wenn ∃ y ∈ Γ∗ , n ∈ N: ∗ (s, `xt∞ , 0) −→ (r , y t∞ , n) M • hält bei Eingabe x, wenn M Eingabe x akzeptiert oder verwirft • ist total, wenn M auf allen Eingaben hält HZ (IFI) ETI - Woche 11 178/219 Turingmaschinen Definition eine TM M • akzeptiert Eingabe x ∈ Σ∗ , wenn ∃ y ∈ Γ∗ , n ∈ N: ∗ (s, `xt∞ , 0) −→ (t, y t∞ , n) M • verwirft Eingabe x ∈ Σ∗ , wenn ∃ y ∈ Γ∗ , n ∈ N: ∗ (s, `xt∞ , 0) −→ (r , y t∞ , n) M • hält bei Eingabe x, wenn M Eingabe x akzeptiert oder verwirft • ist total, wenn M auf allen Eingaben hält Definition die Sprache einer TM M ist wie folgt definiert: L(M) := {x ∈ Σ∗ | M akzeptiert x} HZ (IFI) ETI - Woche 11 178/219 Turingmaschinen Satz Sei M eine Turingmaschine. Dann ist L(M) rekursiv aufzählbar. Umgekehrt gibt es zu jeder rekursiv aufzählbaren Sprache L eine Turingmaschine M mit L = L(M). HZ (IFI) ETI - Woche 11 179/219 Turingmaschinen Satz Sei M eine Turingmaschine. Dann ist L(M) rekursiv aufzählbar. Umgekehrt gibt es zu jeder rekursiv aufzählbaren Sprache L eine Turingmaschine M mit L = L(M). Definition (Berechenbarkeit mit einer TM) HZ (IFI) ETI - Woche 11 179/219 Turingmaschinen Satz Sei M eine Turingmaschine. Dann ist L(M) rekursiv aufzählbar. Umgekehrt gibt es zu jeder rekursiv aufzählbaren Sprache L eine Turingmaschine M mit L = L(M). Definition (Berechenbarkeit mit einer TM) • Gegeben TM M = (Q, {u, 2}, {`, t, u, 2}, `, t, δ, s, t, r ). Eine partielle Funktion f : Nk → N heißt M-berechenbar, wenn: (s, ` un1 2 · · · 2 unk t∞ , 0) ∗ −→ (t, ` um t∞ , n) M Das Zeichen u kodiert Zahlen und 2 dient als Trennsymbol. f (n1 , . . . , nk ) = m HZ (IFI) gdw. ETI - Woche 11 179/219 Turingmaschinen Satz Sei M eine Turingmaschine. Dann ist L(M) rekursiv aufzählbar. Umgekehrt gibt es zu jeder rekursiv aufzählbaren Sprache L eine Turingmaschine M mit L = L(M). Definition (Berechenbarkeit mit einer TM) • Gegeben TM M = (Q, {u, 2}, {`, t, u, 2}, `, t, δ, s, t, r ). Eine partielle Funktion f : Nk → N heißt M-berechenbar, wenn: (s, ` un1 2 · · · 2 unk t∞ , 0) ∗ −→ (t, ` um t∞ , n) M Das Zeichen u kodiert Zahlen und 2 dient als Trennsymbol. f (n1 , . . . , nk ) = m gdw. • Eine partielle Funktion f : Nk → N heißt berechenbar mit einer TM, wenn eine TM M über dem Alphabet {u, 2} existiert, sodass f M-berechenbar. HZ (IFI) ETI - Woche 11 179/219 Turingmaschinen Satz Sei M eine Turingmaschine. Dann ist L(M) rekursiv aufzählbar. Umgekehrt gibt es zu jeder rekursiv aufzählbaren Sprache L eine Turingmaschine M mit L = L(M). Definition (Berechenbarkeit mit einer TM) • Gegeben TM M = (Q, {u, 2}, {`, t, u, 2}, `, t, δ, s, t, r ). Eine partielle Funktion f : Nk → N heißt M-berechenbar, wenn: (s, ` un1 2 · · · 2 unk t∞ , 0) ∗ −→ (t, ` um t∞ , n) M Das Zeichen u kodiert Zahlen und 2 dient als Trennsymbol. f (n1 , . . . , nk ) = m gdw. • Eine partielle Funktion f : Nk → N heißt berechenbar mit einer TM, wenn eine TM M über dem Alphabet {u, 2} existiert, sodass f M-berechenbar. Church-Turing These Jedes algorithmisch lösbare Problem ist mit einer Turingmaschine lösbar. HZ (IFI) ETI - Woche 11 179/219 Registermaschinen Registermaschinen Definition Eine Registermaschine (RM) R ist ein Paar R = ((xi )16i6n , P) sodass HZ (IFI) ETI - Woche 11 180/219 Registermaschinen Registermaschinen Definition Eine Registermaschine (RM) R ist ein Paar R = ((xi )16i6n , P) sodass 1 HZ (IFI) (xi )16i6n eine Sequenz von n Registern xi , die natürliche Zahlen beinhalten ETI - Woche 11 180/219 Registermaschinen Registermaschinen Definition Eine Registermaschine (RM) R ist ein Paar R = ((xi )16i6n , P) sodass 1 (xi )16i6n eine Sequenz von n Registern xi , die natürliche Zahlen beinhalten 2 P ein Programm HZ (IFI) ETI - Woche 11 180/219 Registermaschinen Registermaschinen Definition Eine Registermaschine (RM) R ist ein Paar R = ((xi )16i6n , P) sodass 1 (xi )16i6n eine Sequenz von n Registern xi , die natürliche Zahlen beinhalten 2 P ein Programm Programme sind endliche Folgen von Befehlen und induktiv definiert: HZ (IFI) ETI - Woche 11 180/219 Registermaschinen Registermaschinen Definition Eine Registermaschine (RM) R ist ein Paar R = ((xi )16i6n , P) sodass 1 (xi )16i6n eine Sequenz von n Registern xi , die natürliche Zahlen beinhalten 2 P ein Programm Programme sind endliche Folgen von Befehlen und induktiv definiert: 1 HZ (IFI) Für jedes Register xi sind die folgenden Instruktionen sowohl Befehle wie Programme: xi := xi + 1 und xi := xi − 1 ETI - Woche 11 180/219 Registermaschinen Registermaschinen Definition Eine Registermaschine (RM) R ist ein Paar R = ((xi )16i6n , P) sodass 1 (xi )16i6n eine Sequenz von n Registern xi , die natürliche Zahlen beinhalten 2 P ein Programm Programme sind endliche Folgen von Befehlen und induktiv definiert: 1 Für jedes Register xi sind die folgenden Instruktionen sowohl Befehle wie Programme: xi := xi + 1 und xi := xi − 1 2 Wenn P1 und P2 Programme sind, dann ist P1 ; P2 ein Programm. HZ (IFI) ETI - Woche 11 180/219 Registermaschinen Registermaschinen Definition Eine Registermaschine (RM) R ist ein Paar R = ((xi )16i6n , P) sodass 1 (xi )16i6n eine Sequenz von n Registern xi , die natürliche Zahlen beinhalten 2 P ein Programm Programme sind endliche Folgen von Befehlen und induktiv definiert: 1 Für jedes Register xi sind die folgenden Instruktionen sowohl Befehle wie Programme: xi := xi + 1 und xi := xi − 1 2 Wenn P1 und P2 Programme sind, dann ist P1 ; P2 ein Programm. 3 Wenn P1 ein Programm und xi ein Register, dann ist while xi 6= 0 do P1 end sowohl ein Befehl als auch ein Programm. HZ (IFI) ETI - Woche 11 180/219 Registermaschinen Semantik von Registermaschinen 1 HZ (IFI) Zu Beginn der Berechnung steht die Eingabe (in Form natürlicher Zahlen) in den Registern. ETI - Woche 11 181/219 Registermaschinen Semantik von Registermaschinen 1 2 Zu Beginn der Berechnung steht die Eingabe (in Form natürlicher Zahlen) in den Registern. Die Befehle • xi := xi + 1 • xi := xi − 1 bedeuten, dass der Inhalt des Register xi um 1 erhöht bzw. . erniedrigt wird HZ (IFI) ETI - Woche 11 181/219 Registermaschinen Semantik von Registermaschinen 1 2 Zu Beginn der Berechnung steht die Eingabe (in Form natürlicher Zahlen) in den Registern. Die Befehle • xi := xi + 1 • xi := xi − 1 bedeuten, dass der Inhalt des Register xi um 1 erhöht bzw. erniedrigt wird (falls möglich). HZ (IFI) ETI - Woche 11 181/219 Registermaschinen Semantik von Registermaschinen 1 2 Zu Beginn der Berechnung steht die Eingabe (in Form natürlicher Zahlen) in den Registern. Die Befehle • xi := xi + 1 • xi := xi − 1 3 HZ (IFI) bedeuten, dass der Inhalt des Register xi um 1 erhöht bzw. erniedrigt wird (falls möglich). P1 ; P2 bedeutet, dass zunächst das Programm P1 und dann das Programm P2 ausgeführt wird. ETI - Woche 11 181/219 Registermaschinen Semantik von Registermaschinen 1 2 Zu Beginn der Berechnung steht die Eingabe (in Form natürlicher Zahlen) in den Registern. Die Befehle • xi := xi + 1 • xi := xi − 1 3 4 bedeuten, dass der Inhalt des Register xi um 1 erhöht bzw. erniedrigt wird (falls möglich). P1 ; P2 bedeutet, dass zunächst das Programm P1 und dann das Programm P2 ausgeführt wird. Der Befehl (und das Programm) while xi 6= 0 do P1 end bedeutet, der Schleifenrumpf P1 wird ausgeführt, bis die Bedingung xi 6= 0 falsch ist. HZ (IFI) ETI - Woche 11 181/219 Registermaschinen Semantik von Registermaschinen 1 2 Zu Beginn der Berechnung steht die Eingabe (in Form natürlicher Zahlen) in den Registern. Die Befehle • xi := xi + 1 • xi := xi − 1 3 4 bedeuten, dass der Inhalt des Register xi um 1 erhöht bzw. erniedrigt wird (falls möglich). P1 ; P2 bedeutet, dass zunächst das Programm P1 und dann das Programm P2 ausgeführt wird. Der Befehl (und das Programm) while xi 6= 0 do P1 end 5 HZ (IFI) bedeutet, der Schleifenrumpf P1 wird ausgeführt, bis die Bedingung xi 6= 0 falsch ist. RM R hält, wenn kein auszuführender Befehl mehr existiert. ETI - Woche 11 181/219 Registermaschinen Beispiel (Addition) Sei R = ((xi )16i63 , P) eine RM mit folgendem Programm: while x1 6= 0 do x1 := x1 − 1; x3 := x3 + 1 end; while x2 6= 0 do x2 := x2 − 1; x3 := x3 + 1 end Startet R mit (m, n, 0), dann hält R mit (0, 0, m + n). HZ (IFI) ETI - Woche 11 182/219 Registermaschinen Proseminar Zuweisungen der Form xi := xj können (mit einem Hilfsregister) als Programm einer Registermaschine formuliert werden. HZ (IFI) ETI - Woche 11 183/219 Registermaschinen Proseminar Zuweisungen der Form xi := xj können (mit einem Hilfsregister) als Programm einer Registermaschine formuliert werden. Beispiel (Multiplikation) Sei R = ((xi )16i65 , P) eine RM mit folgendem Programm: x3 := 0; while x1 6= 0 do x1 := x1 − 1; x4 := x2 ; while x4 6= 0 do x4 := x4 − 1; x3 := x3 + 1 end end HZ (IFI) ETI - Woche 11 183/219 Registermaschinen Proseminar Zuweisungen der Form xi := xj können (mit einem Hilfsregister) als Programm einer Registermaschine formuliert werden. Beispiel (Multiplikation) Sei R = ((xi )16i65 , P) eine RM mit folgendem Programm: x3 := 0; while x1 6= 0 do x1 := x1 − 1; x4 := x2 ; while x4 6= 0 do x4 := x4 − 1; x3 := x3 + 1 end end HZ (IFI) ETI - Woche 11 183/219 Registermaschinen Proseminar Zuweisungen der Form xi := xj können (mit einem Hilfsregister) als Programm einer Registermaschine formuliert werden. Beispiel (Multiplikation) Sei R = ((xi )16i65 , P) eine RM mit folgendem Programm: x3 := 0; while x1 6= 0 do x1 := x1 − 1; x4 := x2 ; while x4 6= 0 do x4 := x4 − 1; x3 := x3 + 1 end end Startet R mit (m, n, 0, 0, 0), dann hält R mit (0, n, m × n, 0, 0). HZ (IFI) ETI - Woche 11 183/219 Registermaschinen Definition (Berechenbarkeit mit einer RM) HZ (IFI) ETI - Woche 11 184/219 Registermaschinen Definition (Berechenbarkeit mit einer RM) • Gegeben RM R = ((xi )16i6n , P). Eine partielle Funktion f : Nk → N heißt R-berechenbar, wenn: f (n1 , . . . , nk ) = m HZ (IFI) gdw. R mit ni in den Registern xi für 1 6 i 6 k startet und R mit ni in den Registern xi für 1 6 i 6 k und m im Register xk+1 hält. ETI - Woche 11 184/219 Registermaschinen Definition (Berechenbarkeit mit einer RM) • Gegeben RM R = ((xi )16i6n , P). Eine partielle Funktion f : Nk → N heißt R-berechenbar, wenn: f (n1 , . . . , nk ) = m gdw. R mit ni in den Registern xi für 1 6 i 6 k startet und R mit ni in den Registern xi für 1 6 i 6 k und m im Register xk+1 hält. k • Eine partielle Funktion f : N → N heißt berechenbar auf einer RM, wenn eine RM R existiert, sodass f R-berechenbar. HZ (IFI) ETI - Woche 11 184/219 Registermaschinen Definition (Berechenbarkeit mit einer RM) • Gegeben RM R = ((xi )16i6n , P). Eine partielle Funktion f : Nk → N heißt R-berechenbar, wenn: f (n1 , . . . , nk ) = m gdw. R mit ni in den Registern xi für 1 6 i 6 k startet und R mit ni in den Registern xi für 1 6 i 6 k und m im Register xk+1 hält. k • Eine partielle Funktion f : N → N heißt berechenbar auf einer RM, wenn eine RM R existiert, sodass f R-berechenbar. Satz Jede partielle Funktion f : Nk → N, die berechenbar auf einer RM ist, ist auf einer TM berechenbar und umgekehrt. HZ (IFI) ETI - Woche 11 184/219 Evaluierung Evaluierung: LVA Nummer: 703007-0 Zusatzfragen • Die Folien sind verständlich. • Das Skriptum ist verständlich. • Die Beispiele sind verständlich. • Die VO und das PS sind gut abgestimmt. Anregungen für Freitext • Aufwand • Vortrag • Koordination VO – PS • Probleme • Resultat HZ (IFI) ETI - Woche 11 185/219 Evaluierung Evaluierung: LVA Nummer: 703007-0 Zusatzfragen • Die Folien sind verständlich. • Das Skriptum ist verständlich. • Die Beispiele sind verständlich. • Die VO und das PS sind gut abgestimmt. Anregungen für Freitext • Aufwand (Modul hat 5 ECTS ≈ 8.5h @ 15 Wochen) • Vortrag (Mikrofon, etc.) • Koordination VO – PS (PS mit Wissen aus VO schaffbar) • Probleme (welche Kapitel sind schwierig) • Resultat (Ich habe durch den Besuch der VO etwas gelernt) HZ (IFI) ETI - Woche 11 185/219