Zusammenfassung Zusammenfassung der letzten LVA Definition eine deterministische, einbändige Turingmaschine (TM) M ist ein 9-Tupel Einführung in die Theoretische Informatik M = (Q, Σ, Γ, `, t, δ, s, t, r ) sodass Christina Kohl Alexander Maringele Georg Moser Michael Schaper Manuel Schneckenreither Institut für Informatik @ UIBK Wintersemester 2015 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 . GM (IFI) Einführung in die Theoretische Informatik 180/1 Übersicht Zusammenfassung Unentscheidbarkeit Inhalte der Lehrveranstaltung Einführung in die Logik Satz es kann kein Testprogramm für hello, world“-Programme geben ” Syntax & Semantik der Aussagenlogik, Formales Beweisen, Konjunktive und Disjunktive Normalformen Definition (informell) Einführung in die Algebra ein Problem, das nicht algorithmisch lösbar ist, wird unentscheidbar genannt Boolesche Algebra, Universelle Algebra, Logische Schaltkreise Einführung in die Theorie der Formalen Sprachen Grammatiken und Formale Sprachen, Reguläre Sprachen, Kontextfreie Sprachen Satz die folgenden Probleme sind unentscheidbar: 1 das Halteproblem 2 das Postsche Korrespondenzproblem 3 ist eine beliebige kontextfreie Grammatik eindeutig 4 ... GM (IFI) 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 Einführung in die Theoretische Informatik 181/1 GM (IFI) Einführung in die Theoretische Informatik 182/1 Turingmaschinen Turingmaschinen Konfiguration einer TM Schrittfunktion von TMs Definition Definition eine Konfiguration einer TM M ist ein Tripel (p, x, n), sodass Relation −→ 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) 1 p ∈ Q Zustand, 2 x = y t∞ Bandinhalt 3 n ∈ N Position des Lese/Schreibkopfes 1 y ∈ Γ∗ z 0 ist String, den wir aus z erhalten, wenn zn durch b ersetzt Definition Definition Startkonfiguration bei Eingabe x ∈ Σ∗ : (s, ` xt∞ , 0) ∗ reflexive, transitive Hülle −→: 1 M 0 α−→α M n+1 n 1 M M n Beispiel 2 α−−→β, wenn α−→γ −→β für Konfiguration γ Sei 0011 die Eingabe der TM M, dann ist die Startkonfiguration gegeben durch (s, ` 0011t∞ , 0) 3 α−→β, wenn ∃ n α−→β GM (IFI) Einführung in die Theoretische Informatik 183/1 Turingmaschinen M M GM (IFI) Einführung in die Theoretische Informatik 184/1 Turingmaschinen Beispiel (Wiederholung) Beispiel sei M = ({s, t, r , q1 , q2 , q3 }, {0, 1}, {`, t, 0, 1, X, Y}, `, t, δ, s, t, r ) mit δ wie folgt; M akzeptiert die Sprache {0n 1n | n > 1} p∈Q s s s s s s q1 q1 q1 q1 q1 q1 t GM (IFI) M ∗ a∈Γ δ(p, a) ` (s, `, R) t (r , t, R) 0 (q1 , X, R) 1 (r , 1, R) X (r , X, R) Y (q3 , Y, R) ` (r , `, R) t (r , `, R) 0 (q1 , 0, R) 1 (q2 , Y, L) X (r , X, R) Y (q1 , Y, R) ∗ (t, ∗, R) p∈Q q2 q2 q2 q2 q2 q2 q3 q3 q3 q3 q3 q3 r Wir betrachten die Schrittfunktion für eine akzeptierende Berechnung von M bei Eingabe 0011: a∈Γ δ(p, a) ` (r , `, R) t (r , t, R) 0 (q2 , 0, L) 1 (r , 1, R) X (s, X, R) Y (q2 , Y, L) ` (r , `, R) t (t, t, R) 0 (r , 0, R) 1 (r , 1, R) X (r , X, R) Y (q3 , Y, R) ∗ (r , ∗, R) Einführung in die Theoretische Informatik 1 1 M 1 M (s, ` 0011t∞ , 0) −→ (s, ` 0011t∞ , 1) −→ (q1 , ` X011t∞ , 2) 1 −→ (q1 , ` X011t∞ , 3) −→ (q2 , ` X0Y1t∞ , 2) M 1 M 1 −→ (q2 , ` X0Y1t∞ , 1) −→ (s, ` X0Y1t∞ , 2) M 1 ∞ M 1 M 1 ∞ M 1 −→ (q1 , ` XXY1t , 3) −→ (q1 , ` XXY1t∞ , 4) −→ (q2 , ` XXYYt , 3) −→ (q2 , ` XXYYt∞ , 2) M 1 ∞ M 1 −→ (s, ` XXYYt , 3) −→ (q3 , ` XXYYt∞ , 4) M 1 M 1 M M −→ (q3 , ` XXYYt∞ , 5) −→ (t, ` XXYY t t∞ , 6) 185/1 GM (IFI) Einführung in die Theoretische Informatik 186/1 Turingmaschinen Turingmaschinen Definition Satz Sei L eine Sprache, die von einer TM akzeptiert wird. Dann ist L rekursiv aufzählbar eine TM M • akzeptiert x ∈ Σ∗ , wenn ∃ y , n: ∗ (s, ` xt∞ , 0) −→ (t, y , n) M Definition (Berechenbarkeit mit einer TM) • verwirft x ∈ Σ∗ , wenn ∃ y , n: • Sei M = (Q, {u, 2}, {`, t, u, 2}, `, t, δ, s, t, r ) ∗ (s, ` xt∞ , 0) −→ (r , y , n) • Eine partielle Funktion f : Nk → N heißt M-berechenbar, wenn: M • hält bei Eingabe x, wenn x akzeptiert oder verworfen gdw. (s, ` un1 2 · · · 2 unk t∞ , 0) ∗ −→ (t, ` um t∞ , n) M • 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 f (n1 , . . . , nk ) = m • hält nicht bei Eingabe x, wenn x weder akzeptiert, noch verworfen • ist total, wenn M auf allen Eingaben hält Definition u kodiert Zahlen; 2 dient als Trennsymbol die Sprache einer TM M ist wie folgt definiert: L(M) := {x ∈ Σ∗ | M akzeptiert x} GM (IFI) Einführung in die Theoretische Informatik 187/1 Turingmaschinen GM (IFI) 188/1 Turingmaschinen Registermaschinen Semantik von Registermaschinen Definition 1 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 2 bedeuten, dass der Inhalt des Register xi entweder um 1 erhöht oder vermindert wird 1 Für jedes Register xi sind die folgenden Instruktionen sowohl Befehle wie Programme: xi := xi + 1 und xi := xi − 1 2 wenn P1 , 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 3 P1 ; P2 bedeutet, dass zunächst das Programm P1 und dann das Programm P2 ausgeführt wird 4 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 sowohl ein Befehl als auch ein Programm Einführung in die Theoretische Informatik Zu Beginn der Berechnung steht die Eingabe (als natürliche Zahlen) in den Registern Die Befehle • xi := xi + 1 • xi := xi − 1 Programme sind endliche Folgen von Befehlen und sind induktiv definiert: GM (IFI) Einführung in die Theoretische Informatik 189/1 GM (IFI) Einführung in die Theoretische Informatik 190/1 Turingmaschinen Turingmaschinen Beispiel Definition (Berechenbarkeit mit einer RM) Sei R = ((xi )16i65 , P) eine RM mit dem folgenden Programm: Zuweisung xi := xj • Sei R = ((xi )16i6n , P) eine RM • Eine partielle Funktion f : Nk → N, heißt R-berechenbar, wenn gilt Multiplikation while xi 6= 0 do xi := xi − 1 end; while xk 6= 0 do xk := xk − 1 end while xj 6= 0 do xi := xi + 1; xj := xj − 1; xk := xk + 1 end; while xk 6= 0 do xj := xj + 1; xk := xk − 1 end f (n1 , . . . , nk ) = m gdw. R mit ni in den Registern xi für 1 6 i 6 k startet und die Programmausführung mit ni in den Registern xi für 1 6 i 6 k und m im Register xk+1 abbricht. k • Eine partielle Funktion f : N → N heißt berechenbar auf einer RM, wenn eine RM R existiert, sodass f R-berechenbar x3 := 0; while x1 6= 0 do x1 := x1 − 1; x4 := x2 ; while x2 6= 0 do x2 := x2 − 1; x3 := x3 + 1 end; x2 := x4 end Satz Jede partielle Funktion f : Nk → N, die berechenbar auf einer RM ist, ist auf einer TM berechenbar und umgekehrt Bei Eingabe (m, n, 0, 0, 0) berechnet R (0, n, m × n, n, 0) GM (IFI) Einführung in die Theoretische Informatik 191/1 Turingmaschinen Church-Turing-These These Jedes algorithmisch lösbare Problem ist auch mit Hilfe einer Turingmaschine lösbar. Demo Programming Turing Machines, by Michael Schaper GM (IFI) Einführung in die Theoretische Informatik 193/1 GM (IFI) Einführung in die Theoretische Informatik 192/1