Einführung in die Theoretische Informatik

Werbung
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
Herunterladen