![Page 1: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/1.jpg)
Theorie der Informatik12. Turing-Berechenbarkeit
Malte Helmert Gabriele Roger
Universitat Basel
9. April 2014
![Page 2: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/2.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Uberblick: Vorlesung
Vorlesungsteile
I. Logik X
II. Automatentheorie und formale Sprachen X
III. Berechenbarkeitstheorie
IV. Komplexitatstheorie
![Page 3: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/3.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Leitfrage
Leitfrage in diesem Vorlesungsteil:
Was konnen Computer berechnen?
![Page 4: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/4.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Uberblick: Berechenbarkeitstheorie
III. Berechenbarkeitstheorie
12. Turing-Berechenbarkeit
13. LOOP-, WHILE- und GOTO-Berechenbarkeit
14. primitive Rekursion und µ-Rekursion
15. Ackermannfunktion
16. Entscheidbarkeit, Reduktionen, Halteproblem
17. Postsches Korrespondenzproblem
Unentscheidbare Grammatik-Probleme
Godelscher Satz und diophantische Gleichungen
![Page 5: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/5.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Nachlesen
Literatur zu diesem Vorlesungskapitel
Theoretische Informatik - kurz gefasstvon Uwe Schoning (5. Auflage)
Kapitel 2.1
Kapitel 2.2
![Page 6: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/6.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Berechnungen
![Page 7: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/7.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Berechnung
Was ist eine Berechnung?
intuitives Berechenbarkeitsmodell (Papier und Bleistift)
vs. Berechnung auf physikalischen Computern
vs. formale mathematische Modelle
Wir untersuchen in den folgenden KapitelnBerechnungsmodelle fur partielle Funktionen f : Nk
0 → N0.
keine echte Einschrankung: beliebige Informationenkonnen als Zahlen kodiert werden
![Page 8: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/8.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Formale Berechnungsmodelle
Formale Berechnungsmodelle
Turingmaschinen
LOOP-, WHILE-, GOTO-Programme
primitiv rekursive Funktionen, µ-rekursive Funktionen
In den nachsten Vorlesungen werden wir
diese Berechnungsmodelle kennen lernen und
hinsichtlich ihrer Machtigkeit miteinander vergleichen.
![Page 9: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/9.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Church-Turing-These
Church-Turing-These
Alle im intuitiven Sinne berechenbaren Funktionenkonnen mit Turingmaschinen berechnet werden.
kann man nicht beweisen (Warum nicht?)
aber wir werden Evidenz dafur sammeln
![Page 10: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/10.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Wiederholung: Turingmaschinen
![Page 11: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/11.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Formale Berechnungsmodelle
Formale Berechnungsmodelle: Turingmaschinen
Turingmaschinen
LOOP-, WHILE-, GOTO-Programme
primitiv rekursive Funktionen, µ-rekursive Funktionen
![Page 12: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/12.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Wiederholung: deterministische Turingmaschine (DTM)
Definition (Deterministische Turingmaschine)
Eine deterministische Turingmaschine (DTM) ist gegeben durchein 7-Tupel M = 〈Z ,Σ, Γ, δ, z0,�,E 〉 mit:
Z endliche, nicht-leere Menge von Zustanden
Σ 6= ∅ endliches Eingabealphabet
Γ ⊃ Σ endliches Bandalphabet
δ : (Z \ E )× Γ→ Z × Γ× {L,R,N} Ubergangsfunktion
z0 ∈ Z Startzustand
� ∈ Γ \ Σ Blank-Zeichen
E ⊆ Z Endzustande
![Page 13: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/13.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Wiederholung: Konfigurationen und Berechnungsschritte
Wie arbeiten Turingmaschinen?
Konfiguration: αzβ mit α ∈ Γ∗, z ∈ Z , β ∈ Γ+
ein Rechenschritt: c ` c ′, wenn aus Konfiguration cin einem Berechnungsschritt Konfiguration c ′ entsteht
mehrere Rechenschritte: c `∗ c ′, wenn aus Konfiguration cin 0 oder mehr Schritten Konfiguration c ′ entsteht(c = c0 ` c1 ` c2 ` · · · ` cn−1 ` cn = c ′, n ≥ 0)
(Definition von `, also wie ein Berechnungsschritt die aktuelleKonfiguration andert, wird hier nicht wiederholt. Kapitel 11.)
![Page 14: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/14.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Turing-berechenbare Funktionen
![Page 15: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/15.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Berechnung von Funktionen?
Wie kann eine DTM eine Funktion berechnen?
“Eingabe” x ist anfanglicher Bandinhalt
“Ausgabe” f (x) ist Bandinhalt (ohne Blanks am Rand)beim Erreichen eines Endzustands
Halt die TM fur die gegebene Eingabe nicht an,ist f (x) an dieser Stelle undefiniert.
Was fur Funktionen werden so berechnet?
zunachst einmal Funktionen von Wortern: f : Σ∗ → Σ∗
Interpretation als Funktionen von Zahlen f : Nk0 → N0:
kodiere Zahlen als Worter
![Page 16: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/16.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Turingmaschinen: berechnete Funktion
Definition (von einer Turingmaschine berechnete Funktion)
Eine DTM mit Eingabealphabet Σ berechnetdie (partielle) Funktion f : Σ∗ → Σ∗, fur die gilt:
fur alle x , y ∈ Σ∗: f (x) = y gdw. z0x `∗ � . . .�zey� . . .�
mit ze ∈ E . (Spezialfall: z0� statt z0x wenn x = ε)
Was passiert, wenn Zeichen aus Γ \ Σ (z. B. �) in y stehen?
Was passiert, wenn der Lesekopf am Ende nicht auf demersten Zeichen von y steht?
Ist f durch die Definition eindeutig definiert? Warum?
![Page 17: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/17.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Turing-berechenbare Funktionen auf Wortern
Definition (Turing-berechenbar, f : Σ∗ → Σ∗)
Eine (partielle) Funktion f : Σ∗ → Σ∗ heisst Turing-berechenbar,wenn eine DTM existiert, die f berechnet.
![Page 18: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/18.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Kodierung von Zahlen als Worter
Definition (kodierte Funktion)
Sei f : Nk0 → N0 eine (partielle) Funktion.
Die kodierte Funktion f code zu f ist die partielle Funktionf code : Σ∗ → Σ∗ mit Σ = {0, 1, #} und f code(w) = w ′ gdw.
es gibt n1, . . . , nk , n′ ∈ N0, so dass
f (n1, . . . , nk) = n′,
w = bin(n1)# . . . #bin(nk) und
w ′ = bin(n′).
Hierbei bezeichnet bin : N0 → {0, 1}∗ die Binarkodierung (z.B.bin(5) = 101).
Beispiel: f (5, 2, 3) = 4 entspricht f code(101#10#11) = 100.
![Page 19: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/19.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Turing-berechenbare numerische Funktionen
Definition (Turing-berechenbar, f : Nk0 → N0)
Eine (partielle) Funktionen f : Nk0 → N0 heisst Turing-berechenbar,
wenn eine DTM existiert, die f code berechnet.
![Page 20: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/20.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Beispiele
![Page 21: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/21.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Beispiel: Turing-berechenbare Funktionen (1)
Beispiel
Sei Σ = {a, b, #}.Die Funktion f : Σ∗ → Σ∗ mit f (w) = w#w fur alle w ∈ Σ∗
ist Turing-berechenbar.
Tafel
![Page 22: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/22.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Beispiel: Turing-berechenbare Funktionen (2)
Beispiel
Die folgenden numerischen Funktionen sind Turing-berechenbar:
succ : N0 → N0 mit succ(n) := n + 1
pred1 : N0 → N0 mit pred1(n) :=
{n − 1 falls n ≥ 1
0 falls n = 0
pred2 : N0 → N0 mit pred2(n) :=
{n − 1 falls n ≥ 1
undefined falls n = 0
Tafel/Hausaufgaben
![Page 23: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/23.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Beispiel: Turing-berechenbare Funktionen (3)
Beispiel
Die folgenden numerischen Funktionen sind Turing-berechenbar:
add : N20 → N0 mit add(n1, n2) := n1 + n2
sub : N20 → N0 mit sub(n1, n2) := max{n1 − n2, 0}
mul : N20 → N0 mit mul(n1, n2) := n1 · n2
div : N20 → N0 mit div(n1, n2) :=
{⌈n1n2
⌉falls n2 6= 0
undefined falls n2 = 0
Skizze?
![Page 24: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/24.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Zusammenfassung
![Page 25: Theorie der Informatik - Turing-Berechenbarkeitai.cs.unibas.ch/_files/teaching/fs14/theo/slides/theo12.pdf · Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen](https://reader031.vdokument.com/reader031/viewer/2022021903/5ba0c2fb09d3f267388d8186/html5/thumbnails/25.jpg)
Berechnungen Wiederholung: Turingmaschinen Turing-berechenbare Funktionen Beispiele Zusammenfassung
Zusammenfassung
Fragestellung: Was konnen Computer berechnen?
Ansatz: untersuche formale Berechnungsmodelle
zunachst: deterministische Turingmaschinen
Turing-berechenbare Funktion f : Σ∗ → Σ∗:es gibt eine DTM, die auf jede
”Eingabe“ w ∈ Σ∗
die”Ausgabe“ f (w) produziert (undefiniert, wenn DTM
nicht oder in ungultiger Konfiguration anhalt)
Turing-berechenbare Funktion f : Nk0 → N0:
genauso; Zahlen binar kodiert und durch # getrennt