einf ¨uhrung in die theoretische informatik 3. turingmaschinen

Werbung
EINFÜHRUNG IN DIE THEORETISCHE
INFORMATIK
Prof. Dr. Klaus Ambos-Spies
Sommersemester 2017
3. TURINGMASCHINEN
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
1 / 46
– Bild entfernt –
Alan Mathison Turing (1912 - 1954)
Britischer Logiker, Mathematiker und Computerpionier
http://www.mathcomp.leeds.ac.uk/turing2012/
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
2 / 46
Formalisierung von Algorithmen
Wegen der beobachteten Zusammenhänge zwischen Berechnungs-,
Entscheidungs- und Aufzählungsverfahren genügt es Berechnungsverfahren
bzw. den Begriff der Berechenbarkeit zu formalisieren. Weiter genügt es
Verfahren zur Berechnung von Funktionen über den natürlichen Zahlen zu
betrachten.
Wir werden 3 unterschiedliche Ansätze vorstellen:
Turingmaschinen
Registermaschinen
Rekursive Funktionen
Wir werden zeigen, dass diese Ansätze zu demselben formalen Berechenbarkeitsbegriff führen (Äquivalenzsatz). Man geht davon aus, dass diese
formalen Ansätze den intuitiven Berechenbarkeitsbegriff adäquat (d.h. korrekt
und vollständig) wiedergeben:
CHURCH-TURING-THESE: Eine Funktion ist genau dann (im intuitiven
Sinne) berechenbar, wenn sie von einer Turingmaschine berechnet wird.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
3 / 46
Unterscheidungsmerkmale der Ansätze (1)
Bei den ersten beiden Ansätzen wird der Begriff des Berechnungsverfahrens
formalisiert, indem (mathematische) Maschinen und deren Arbeitsweise
formal mathematisch definiert werden, wobei diese Maschinen so gewählt
sind, dass sie (vermutlich) jedes Berechnungsverfahren über Wörtern bzw.
Zahlen simulieren können:
TURINGMASCHINEN: Diese Maschinen operieren auf Wörtern (d.h.
benutzen Zahldarstellungen).
Grundoperationen sind elementare Zeichenmanipulationen (Lesen,
Streichen, Hinzufügen, Ersetzen einzelner Buchstaben).
REGISTERMASCHINEN: Es wird von der Zahldarstellung abstrahiert.
Grundoperationen sind elementare Zähloperationen (Inkrementieren,
Dekrementieren, Nulltest).
(Diese Ansätze sind also imperativ, wobei der zweite Ansatz die Idee des
Datentyps einbezieht.)
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
4 / 46
Unterscheidungsmerkmale der Ansätze (2)
Bei dem dritten Ansatz wird der Begriff der berechenbaren Funktion (über
den natürlichen Zahlen) direkt (also nicht über den Begriff des
Berechnungsverfahren - d.h. maschinenunabhängig) formalisiert:
REKURSIVE FUNKTIONEN: Ausgehend von elementaren
berechenbaren Funktionen erzeugt man komplexere berechenbare
Funktionen mit Hilfe von effektiven Operationen, die berechenbare
Funktionen in berechenbare Funktionen überführen (z.B. Einsetzung,
Rekursion).
(Dieser Ansatz führte in der Informatik zur funktionalen Programmierung.)
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
5 / 46
Formalisierung von Algorithmen: Mathematische
Maschinen
Algorithmen sind Vorschriften, die die Lösung eines (mathematischen)
Problems so exakt beschreiben und in elementare Teilschritte zerlegen, dass
die Ausführung rein schematisch erfolgen kann und keinerlei Kreativität
erfordert. Im Prinzip kann also der Algorithmus von einer Maschine
ausgeführt werden.
Eine Turingmaschine ist solch eine ’mathematische’ (d.h. formal spezifizierte
aber nicht notwendigerweise physikalisch realisierte) Maschine, die der
Arbeitsweise eines Mathematikers nachempfunden ist und die von diesem
bei der Problemlösung verwendeten elementaren Einzelschritte in geeignet
standardisierter Form durchführen kann.
Bevor wir die Turingmaschinen beschreiben, betrachten wir zunächst die
grundlegenden Funktionseinheiten jeder mathematischen Maschine und
zeigen dann, wie diese bei einer Turingmaschine konzipiert sind.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
6 / 46
Funktionseinheiten mathematischer Maschinen
Mathematische Maschine = Basismaschine + Programm
Basismaschine (hardware):
Speicherstruktur
Endlicher Satz von Speicheroperationen
I
I
Speichertransformationen = Aktualisierung des Speicherinhalts
(z.B. Schreiben in den Speicher)
Speichertests = Überprüfen des Speicherinhalts
(z.B. Lesen aus dem Speicher)
Ein-/Ausgabemechanismus
Programm = Ablaufsteuerung (software):
Festlegung der auszuführenden Folge von Operationen
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
7 / 46
3.1 TURINGMASCHINEN:
Idee, formale Definition, Beispiele
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
8 / 46
Komponenten einer Turingmaschine: Speicherstruktur
Nach beiden Seiten hin unendliches, in Felder aufgeteiltes Band.
Jedes Feld ist mit einem Buchstaben aus dem Bandalphabet Γ
beschrieben. (Leere Felder sind mit dem Blank b (Leerzeichen)
beschriftet.)
Der Zugriff auf die Daten erfolgt mit einem Lese/Schreibkopf,
I
I
der auf einem Feld (dem Arbeitsfeld) sitzt und dessen Inschrift
lesen und/oder überschreiben kann.
Danach kann der Kopf um ein Feld (nach links oder rechts) verlegt
werden.
In einem Rechenschritt wird entsprechend
1
die Inschrift des Arbeitsfeldes gelesen
2
die Inschrift des Arbeitsfeldes überschrieben (eventuell mit der alten
Inschrift)
3
das Arbeitsfeld (um ein Feld nach links oder rechts) verlegt (oder
beibehalten)
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
9 / 46
Komponenten einer Turingmaschine: Ein- und
Ausgabe
Ein- und Ausgabe sind Wörter über festgelegtem Eingabe- bzw.
Ausgabealphabet. (Diese Alphabete sind Teil des Bandalphabets.)
EINGABE: Die Eingabe wird rechts des Arbeitsfeldes auf das ansonsten
leere Band geschrieben. Dabei werden mehrere Eingaben durch
einzelne Blanks getrennt.
NB: Da die Turingmaschine auf Wörtern operiert, müssen Zahleingaben
durch ihre Darstellungen ersetzt werden. Wir benutzen hierbei für die
Zahl n die Unärdarstellung n = 0n+1 .
AUSGABE: Die Ausgabe wird dem Band rechts des Arbeitsfeldes
entnommen.
Genauer: Die Ausgabe ist das längste Wort über dem Ausgabealphabet,
das direkt rechts des Arbeitsfeldes steht.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
10 / 46
Komponenten einer Turingmaschine: Steuerung
(Programm)
Die Maschine befindet sich zu jedem Zeitpunkt in einem von endlich
vielen möglichen (Programm-)Zuständen.
Zu Beginn der Rechnung ist die Maschine in einem ausgezeichneten
Startzustand.
Die Rechenschritte der Maschine werden durch eine endliche Folge von
Instruktionen, dem Programm, festgelegt.
Eine Instruktion ist dabei eine bedingte Anweisung der folgenden Form:
“Falls die Maschine im Zustand z ist und der Buchstabe a auf dem
Arbeitsfeld steht, so überdrucke das Arbeitsfeld mit dem Buchstaben a0 ,
bewege den LS-Kopf nach links (oder rechts oder lasse ihn stehen) und
gehe in den neuen Zustand z 0 ”.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
11 / 46
Komponenten einer Turingmaschine: Steuerung
(Programm) - Forts.
Zu jeder Bedingung (= Paar aus Zustand und Inschrift des Arbeitsfeldes)
gibt es höchstens eine zutreffende Instruktion (→ Determinismus).
Das Programm lässt sich daher auch als eine partielle Funktion
δ : Z × Γ → Γ × Bew ×Z
darstellen (wobei: Z Menge der Zustände, Γ Bandalphabet, Bew Menge
der Bewegungen).
Lässt sich keine Instruktion anwenden, ist die Rechnung beendet und
die Maschine stoppt.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
12 / 46
Komponenten einer Turingmaschine: Schematische
Darstellung
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
13 / 46
Formale Definition einer Turingmaschine
Eine Turingmaschine (TM) M zur Berechnung einer Funktion f : (Σ∗ )m → T∗
ist gegeben durch M = (Σ, m, T, Γ, Z , z0 , δ) wobei:
Σ ist das Eingabealphabet und T ist das Ausgabealphabet,
m ist die Stelligkeit der zu berechnenden Funktion,
Γ ist ein Alphabet mit Σ ∪ T ⊂ Γ und b ∈ Γ − (Σ ∪ T), genannt
das Bandalphabet, wobei b das Leerzeichen (Blank) ist,
Z ist eine endliche Menge, genannt die Zustandsmenge,
z0 ist ein Element aus Z , genannt der Startzustand,
δ ist eine partielle Funktion
δ : Z × Γ → Γ × Bew ×Z ,
genannt das Programm oder die Übergangsfunktion, wobei
Bew = {L, S, R} = {−1, 0, +1} die Menge der Bewegungen ist.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
14 / 46
Beispiel 1: Eine TM M zur Berechnung der Addition (1)
Eine Turingmaschine M zur Berechnung der 2-st. Addition arbeitet wie folgt:
EINGABE: Die Eingaben m und n sind zu Beginn der Rechnung in der
Unärdarstellung auf das Band geschrieben:
. . . b b b 0m+1 b 0n+1 b b . . .
(Hierbei ist das Blank auf dem Arbeitsfeld unterstrichen.)
BANDALPHABET: Das Bandalphabet besteht nur aus der 0 und dem
Blank b: Γ = {0, b}. (Ein- und Ausgabealphabet ist das unäre Alphabet
{0}.)
RECHNUNG: Die Maschine verlegt zunächst (Feld für Feld) den
LS-Kopf auf das Blank zwischen den beiden Eingaben, überschreibt
dieses durch eine 0, läuft (Feld für Feld) vor den verschmolzenen
Null-Block 0m+1 00n+1 = 0m+n+3 zurück, ersetzt die ersten beiden Nullen
durch Blanks, lässt den LS-Kopf vor dem verbleibenden Nullblock
0m+n+1 stehen und stoppt.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
15 / 46
Beispiel 1: Eine TM M zur Berechnung der Addition (2)
ZUSTÄNDE: Die Phasen der Rechnung werden durch folgende
Zustände beschrieben:
z0
z→
z←
z1
z2
zstop
Startzustand: Gehe nach rechts auf erste Null von 0m+1
Durchlaufe 0m+1 bis zum Blank dahinter und
ersetze dieses durch 0
Laufe auf die erste Null von 0m+n+3 zurück
Ersetze die erste Null durch Blank und gehe auf die zweite Null
Ersetze die zweite Null durch Blank
Stoppe
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
16 / 46
Beispiel 1: Eine TM M zur Berechnung der Addition (3)
PROGRAMM: Die Programmfunktion δ von M lässt sich durch folgende
Tabelle beschreiben:
Z
z0
z→
z→
z←
z←
z1
z2
×
Γ
→
b
0
b
0
b
0
0
Γ
× Bew ×
Z
b
0
0
0
b
b
b
R
R
L
L
R
R
S
z→
z→
z←
z←
z1
z2
zstop
FORMALE DEFINITION VON M:
M = ({0}, 2, {0}, {0, b}, Z , z0 , δ),
wobei Z = {z0 , z→ , z← , z1 , z2 , zstop } und δ durch obige Tabelle definiert
ist.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
17 / 46
Beispiel 2: TM zur Berechnung von f (n) = 2n (1)
Folgende Turingmaschine M = ({0}, 1, {0}, {0, b}, Z , z0 , δ) berechnet die
Funktion f (n) = 2n (bzgl. der Unärdarstellung n = 0n+1 ):
Idee (und Zustände von M): Mit Hilfe eines iterativen Verfahrens wird der
Ausgabeblock A (=02n+1 ) rechts hinter dem Eingabeblock E (getrennt
durch ein Blank) erzeugt, wobei E gleichzeitig von links nach rechts
abgebaut wird. Für jede gelöschte Null in E werden dabei zwei neue
Nullen rechts an A angehängt, sodass am Ende noch die erste 0 von A
gelöscht werden muss.
Im Einzelnen geht man wie folgt vor: (Beginnend im Zustand z0 :)
Zunächst wird auf die erste 0 von E gegangen (zbegincopy ), diese
gelöscht und auf das Blank rechts hinter E gegangen (z→ ), dann weiter
hinter den aktuellen A-Block und zunächst eine 0 angefügt (z→→ ) und
dann eine weitere 0 (z00 ). Es wird dann ans rechte Ende von E
zurückgelaufen (z← ) und geprüft, ob E schon leer ist (zfertig ? ). Ist dies
nicht der Fall, wird an den linken Anfang von E gegangen (z←← ) und der
Kopierzyklus iteriert (zbegincopy ). Andernfalls (zfertig ! ) wird die erste 0 von
A noch gestrichen (zstreiche0 ) und gestoppt (zstop ).
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
18 / 46
Beispiel 2: TM zur Berechnung von f (n) = 2n (2)
Programm δ von M:
Z
z0
zbegincopy
z→
z→
z→→
z→→
z00
z←
z←
zfertig ?
z←←
z←←
zfertig ?
zfertig !
zstreiche0
Theoretische Informatik (SoSe 2017)
×
Γ
b
0
0
b
0
b
b
0
b
0
0
b
b
b
0
→
Γ
× Bew
b
b
0
b
0
0
0
0
b
0
0
b
b
b
b
3. Turingmaschinen
R
R
R
R
R
R
L
L
L
L
L
R
R
R
S
×
Z
zbegincopy
z→
z→
z→→
z→→
z00
z←
z←
zfertig ?
z←←
z←←
zbegincopy
zfertig !
zstreiche0
zstop
19 / 46
3.2 TURINGMASCHINEN:
Formale Beschreibung der Arbeitsweise
und der berechneten Funktion
(Semantik)
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
20 / 46
Formale Beschreibung der Arbeitsweise von TMs
Nachdem wir Turingmaschinen M = (Σ, m, T , Γ, Z , z0 , δ) formal spezifiziert
haben, werden wir nun auch deren Arbeitsweise formal beschreiben und so
die von M berechnete Funktion formal definieren.
Hierzu gehen wir wie folgt vor:
1
In Konfigurationen fassen wir die Situationen zusammen, in denen sich
M aktuell befinden kann (d.h. aktuelle Speicherbelegung und
Programmzustand).
2
Danach beschreiben wir Ein- und Ausgabemechanismus.
3
Den Programmablauf beschreiben wir durch die Angabe der
1-Schritt-Funktion, die die einzelnen Rechenschritte von M beschreibt,
d.h. einer Konfiguration von M die in einem Schritt erreichte
Nachfolgekonfiguration zuordnet.
4
Hieraus lässt sich dann induktiv die gesamte Rechnung von M
beschreiben und hiermit die berechnete (partielle) Funktion.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
21 / 46
(1) M-Konfigurationen: Idee
Eine M-Konfiguration besteht aus
(1) Bandinschrift
(2) Position des Arbeitsfeldes
(3) (Programm-)Zustand
(1) + (2) fassen wir als M-Band zusammen.
NB. Eine M-Konfiguration ist eine “Momentaufnahme” von M, gibt also
eine vollständige Beschreibung von M zu einem gegebenen Zeitpunkt.
Insbesondere lässt sich aus der Konfiguration der nächste Rechenschritt von M ablesen.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
22 / 46
(1) M-Konfigurationen: M-Bänder
Wir nummerieren (adressieren) die Felder des Bandes mit Hilfe der
ganzen Zahlen.
Eine mögliche M-Bandinschrift ist dann eine Funktion
f : Z → Γ,
die der Adresse eines Feldes die Inschrift des Feldes zuordnet.
Dabei ist f (z) = b für fast alle z. (D.h. nur endlich viele Felder sind nicht
leer.)
BIM = {f : Z → Γ : f (z) = b f.ü.} bezeichnet die Menge aller
M-Bandinschriften.
Die Position p des Arbeitsfeldes ist dessen Adresse (NB: p ∈ Z).
Ein M-Band ist dann ein Paar (f , p) bestehend aus der M-Bandinschrift f
und der Position p des Arbeitsfeldes.
TBM = BIM × Z bezeichnet die Menge aller M-Bänder.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
23 / 46
(1) M-Konfigurationen: Definition
DEFINITION: Eine M-Konfiguration α ist ein Tripel
α = (f , p, z) ∈ BIM × Z × Z (= TBM × Z )
wobei
f die Bandinschrift
p die Position des Arbeitsfeldes
z der Zustand
von α sind.
Die Menge aller M-Konfigurationen wird mit KONM bezeichnet.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
24 / 46
(1) M-Konfigurationen: Alternative Darstellung
Eine M-Konfiguration α = (f , p, z) stellen wir auch dadurch dar, dass wir den
endlichen relevanten Bandteil von α explizit angeben
. . . a−l . . . a−1 a0 a1 . . . ar . . .
z
und zusätzlich den Zustand unter die Inschrift des Arbeitsfeldes schreiben.
Dabei umfasst der relevante Bandteil a−l . . . ar den nichtleeren Teil der
Bandinschrift und das Arbeitsfeld.
/ so können
Wählen wir die Bezeichnungen der Zustände so, dass Z ∩ Γ = 0,
wir eine M-Konfiguration auch als Wort über dem Alphabet Z ∪ Γ schreiben,
indem wir den Zustand nicht unter sondern hinter die Inschrift des
Arbeitsfeldes schreiben:
. . . a−l . . . a−1 a0 z a1 . . . ar . . .
NB: Die Darstellungen von Konfigurationen auf dieser Folie lassen die
(absoluten) Adressen nicht erkennen. Diese Adressen sind für die
Arbeitsweise von M aber auch belanglos; sie erleichtern lediglich die
formalen Beschreibung der Arbeitsweise.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
25 / 46
(2) Ein-/Ausgabe: Eingabefunktion und
Startkonfiguration
Die Eingabefunktion inM von M bildet einen Eingabevektor ~x ∈ (Σ∗ )m
auf die zugehörige Startkonfiguration ab.
Die Startkonfiguration αM (~x) von M bei Eingabe ~x = (x1 , . . . , xm )
∈ (Σ∗ )m ist hierbei die Konfiguration
inM (~x) = αM (~x) = . . . b x1 b x2 b . . . xm b . . .
z0
wobei das Arbeitsfeld die Adresse 0 hat (p = 0).
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
26 / 46
(2) Ein-/Ausgabe: Ausgabefunktion
Die Ausgabefunktion outM : KONM → T∗ ordnet jeder Konfiguration das
längste direkt rechts des Arbeitsfeldes stehende Wort über dem
Ausgabealphabet T zu:
(
λ
falls f (p + 1) 6∈ T
outM (f , p, z) =
f (p + 1) . . . f (q) sonst
für q > p minimal mit f (q + 1) 6∈ T.
NB: Die tatsächliche Ausgabe y von M bei einer Eingabe ~x wird der am Ende
der Rechnung erreichten Stoppkonfiguration αstop (~x) von M bei dieser
Eingabe (falls existent) entnommen, d.h. y = outM (αstop (~x)). Um dies formal
zu beschreiben, definieren wir zunächst den Begriff der Nachfolgekonfiguration.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
27 / 46
(3) Rechenschritte: Nachfolgekonfigurationen
Die Nachfolgekonfiguration s(α) einer M-Konfiguration α = (f , p, z) ist genau
dann definiert, wenn δ(z, f (p)) definiert ist.
Ist δ(z, f (p)) = (a, i, ẑ), wobei i ∈ {−1, 0, 1} die Bewegung L = −1, S = 0,
R = +1 beschreibt, so gilt
s(α) = (f̂ , p̂, ẑ)
wobei
(
f (z) falls z 6= p
f̂ (z) =
a
falls z = p
p̂ = p + i
Falls definiert, ist die Nachfolgekonfiguration s(α) von α eindeutig bestimmt.
Besitzt α keine Nachfolgekonfiguration, so ist α eine Stoppkonfiguration.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
28 / 46
(3) Rechenschritte: Einschrittrelation
Der Übergang von der Konfiguration α zu der Nachfolgekonfiguration
s(α) beschreibt einen Rechenschritt von M.
Man nennt daher die Relation
α ⇒M α0 :⇔ α0 = s(α)
auch die Einschrittrelation von M.
Wegen der Eindeutigkeit der Nachfolgekonfiguration ist die
1-Schrittrelation eine partielle Funktion KONM → KONM
(genauer: der Graph solch einer Funktion).
Wir sprechen daher auch von der 1-Schrittfunktion.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
29 / 46
(4) Rechnung/Ergebnis: Konfigurationenfolgen (1)
Eine endliche oder unendliche Folge von Konfigurationen heißt
Konfigurationenfolge, falls jede Konfiguration in der Folge Nachfolgekonfiguration der vorhergehenden Konfiguration ist.
Eine Konfigurationenfolge heißt maximal, falls sie unendlich ist oder mit einer
Stoppkonfiguration endet.
Die endliche Konfigurationenfolge α0 , . . . , αn hat Länge n und wir sagen, dass
α0 in n Schritten in αn überführbar bzw. αn aus α0 in n Schritten erreichbar ist
(SCHREIBWEISE: α0 ⇒nM αn ).
α heißt in α0 überführbar bzw. α0 aus α erreichbar (SCHREIBWEISE:
α ⇒∗M α0 ), falls es ein n ≥ 0 gibt, sodass α in n Schritten in α0 überführbar ist.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
30 / 46
(4) Rechnung/Ergebnis: Konfigurationenfolgen (2)
Man beachte:
Zu jeder Konfiguration α gibt es genau eine maximale mit α beginnende
Konfigurationenfolge.
(Dies drückt gerade aus, dass die Maschine M deterministisch ist!)
α ⇒0M α0 ⇔ α = α0
α ⇒1M α0 ⇔ α ⇒M α0 (⇔ α0 ist Nachfolgekonfiguration von α)
⇒∗M ist der reflexive und transitive Abschluss von ⇒M
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
31 / 46
(4) Rechnung/Ergebnis: Rechnungen
Die Rechnung von M bei Eingabe ~x, RechnungM (~x), ist die (eindeutig
bestimmte) maximale mit der Startkonfiguration αM (~x) beginnende
Konfigurationenfolge.
Ist RechnungM (~x) endlich, so terminiert (hält oder konvergiert) M bei
Eingabe ~x. Andernfalls divergiert M bei Eingabe ~x (M terminiert nicht
bzw. hält nicht bei Eingabe ~x).
Terminiert M für jede Eingabe ~x ∈ (Σ∗ )m , so ist M total.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
32 / 46
(4) Rechnung/Ergebnis: Von M berechnete (partielle)
Funktion
Die von M = (Σ, m, T, k , Γ, Z , zo , δ) berechnete partielle Funktion
ϕM : (Σ∗ )m → T∗
ist definiert durch:
ϕM (~x) ist genau dann definiert, wenn die M-Rechnung bei Eingabe ~x
endlich ist (d.h. M bei Eingabe ~x terminiert).
Ist α1 , . . . , αl die M-Rechnung bei Eingabe ~x, so ist
ϕM (~x) = outM (αl ).
NB: Die von M berechnete Funktion ϕM ist genau dann total, wenn die
Maschine M total ist.
Damit haben wir die Arbeitsweise der Turingmaschine M und die von
dieser berechnete Funktion ϕM formal definiert.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
33 / 46
3.3 TURINGMASCHINEN:
Rechenzeit und Speicherplatz
(Komplexität)
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
34 / 46
Rechenzeit der Turingmaschine M
Anschaulich beschreibt die Rechenzeit einer Turingmaschine die Anzahl der
durchgeführten Rechenschritte, wobei bei einer unendlichen langen
Rechnung die Rechenzeit undefiniert ist. Mithilfe der formalen Beschreibung
der Arbeitsweise von M lässt sich die Rechenzeit timeM (~x) von M bei
Eingabe ~x wie folgt formal definieren.
Terminiert M bei Eingabe ~x, so gilt für die Rechenzeit von M bei Eingabe ~x:
timeM (~x) = Länge von RechnungM (~x)
Terminiert M bei Eingabe ~x nicht, so ist timeM (~x) ↑ .
Eine totale Turingmaschine M zur Berechnung einer 1-st. Wortfunktion heisst
für eine Funktion t : N → N t(n)-zeitbeschränkt, falls für fast alle Eingaben x
timeM (x) ≤ t(|x|)
gilt. (D.h. t ist eine asymptotische obere Schranke für die worst-caseZeitkomplexität von M.)
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
35 / 46
Platzbedarf der Turingmaschine M
Um den Platzbedarf von M zu bestimmen, legen wir zunächst die Grösse |α|
einer M-Konfiguration α = (f , p, z) fest:
|α| = max{n ≥ 0 : n = |p| ∨ f (n) 6= b ∨ f (−n) 6= b}
Anschaulich: |α| ist der Betrag der Adresse des am weitesten von Feld 0
entfernten “benutzen” Feldes.
Hiermit definieren wir:
Terminiert M bei Eingabe ~x und ist α0 , . . . , αn die Rechnung von M bei dieser
Eingabe, so gilt für den Platzbedarf von M bei Eingabe ~x :
spaceM (~x) = max{|αp | : 0 ≤ p ≤ n}.
Terminiert M bei Eingabe ~x nicht, so ist spaceM (~x) ↑.
NB: Gilt spaceM (~x) = s, so befindet sich der relevante Bandteil (d.h.
Arbeitsfeld und von b verschiedene Inschriften) während der Rechnung von
M bei Eingabe ~x immer innerhalb des Adressintervalls [−s, +s].
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
36 / 46
Komplexität
Rechenzeit und Platzbedarf sind die wichtigsten Kostenfunktionen, die man
der Komplexitätsanalyse von Algorithmen und Problemen zugrundelegt.
Wir werden diese Konzepte im Kapitel über die Komplexitätstheorie näher
betrachten.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
37 / 46
3.4 Turing-Berechenbarkeit, Turing-Entscheidbarkeit
und Turing-Aufzählbarkeit
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
38 / 46
Formalisierung des Berechenbarkeitsbegriffs mit Hilfe
von Turingmaschinen
Nachdem wir die Arbeitsweise einer Turingmaschine M und damit die
von ihr berechnete (partielle) Funktion ϕM formal definiert haben,
erhalten wir die folgenden Formalisierungen der Begriffe der (partiell)
berechenbaren Funktion sowie der entscheidbaren bzw. aufzählbaren
Menge.
Dabei benutzen wir zur Formalisierung der Entscheidbarkeit und der
Aufzählbarkeit die folgenden früher beobachteten Charakterisierungen dieser
Begriffe mit Hilfe der (partiellen) Berechenbarkeit:
Die Menge A ist genau dann entscheidbar, wenn die charakteristische
Funktion cA von A berechenbar ist.
Die Menge A ist genau dann aufzählbar, wenn A der Definitionsbereich
einer partiell berechenbaren Funktion ist.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
39 / 46
Turing-Berechenbarkeit von Wortfunktionen
DEFINITION. Eine (partielle) Wortfunktion ϕ : (Σ∗ )m → T∗ ist
(partiell) Turing-berechenbar, wenn es eineTuringmaschine M gibt,
die ϕ berechnet, d.h. für die ϕ = ϕM gilt.
Da die von einer Turingmaschine M berechnete Funktion ϕM genau dann
total ist, wenn die Maschine M total ist (d.h. bei jeder Eingabe stoppt), ist eine
(totale) Wortfunktion f : (Σ∗ )m → T∗ genau dann (total) Turing-berechenbar,
wenn f von einer totalen Turingmaschine M berechnet wird, d.h. f = ϕM gilt.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
40 / 46
Turing-Berechenbarkeit von Zahlfunktionen (1)
Für (partielle) Funktionen vom Typ ϕ : Nm → N führt man die (partielle)
Turing-Berechenbarkeit auf die (partielle) Turing-Berechenbarkeit der
zugehörigen Wortfunktion ϕ̂ (die auf den Unärkodierungen n = 0n+1
der Zahlen n operiert) zurück.
Hierbei ist die partielle Funktion ϕ̂ : ({0}∗ )m → {0}∗ definiert durch
Db(ϕ̂) = {(n1 , . . . , nm ) : ϕ(n1 , . . . , nm ) ↓} und
ϕ̂(n1 , . . . , nm ) = ϕ(n1 , . . . , nm ).
DEFINITION. Eine (partielle) Funktion ϕ : Nm → N ist
(partiell) Turing-berechenbar, wenn die zugehörige
Wortfunktion ϕ̂ partiell Turing-berechenbar ist.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
41 / 46
Turing-Berechenbarkeit von Zahlfunktionen (2)
BEMERKUNG 1. Der Begriff der Turing-Berechenbarkeit von
Zahlfunktionen hängt nicht von der gewählten Zahldarstellung ab.
Wir könnten statt der (redundanten) Unärdarstellung n = 0n+1 von n
auch die einfache Unärdarstellung ñ = 0n oder die Binärzahldarstellung
Bin(n) oder die Dezimaldarstellung Dez(n) oder das (n + 1)-Wort
(Σ,≤)
wn
eines beliebigen gegebenen Alphabets (Σ, ≤) wählen.
Der Grund hierfür ist, dass für jede dieser Darstellungen die
Übersetzungsfunktionen, die die gewählte Darstellung von n in die
Unärdarstellung n bzw. umgekehrt die Unärdarstellung n von n in die
gewählte Darstellung abbilden, partiell Turing-berechenbar sind und
dass die Klasse der partiell Turing-berechenbaren Funktionen gegen
Substitution (Komposition) abgeschlossen ist.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
42 / 46
Turing-Berechenbarkeit von Zahlfunktionen (3)
BEMERKUNG 2. Die partielle Turing-Berechenbarkeit von
“gemischten Funktionen”, die auf Zahlen und Wörtern operieren, wie
z.B. ϕ : (Σ∗ )m → N (betrachte z.B. die charakteristischen Funktion
cL : Σ∗ → N einer Sprache L ⊆ Σ∗ ) führt man analog auf die partielle
Turing-Berechenbarkeit von Wortfunktionen zurück, indem man die zu
ϕ korrespondierende Wortfunktion ϕ̂ betrachtet, die man aus der
Definition von ϕ erhält, indem man alle Zahlen durch die
entsprechenden Unärdarstellungen ersetzt.
So ist z.B. cL nach Definition genau dann Turing-berechenbar, wenn
die Funktion ĉL mit ĉL (x) = cL (x) partiell Turing-berechenbar ist.
(Wir werden dies im Folgenden stillschweigend verwenden.)
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
43 / 46
Turing-Entscheidbarkeit und Turing-Aufzählbarkeit von
Sprachen
TURING-ENTSCHEIDBARKEIT:
DEFINITION. Eine m-dimensionale Sprache L ⊆ (Σ∗ )m ist
Turing-entscheidbar, wenn ihre charakteristische Funktion
Turing-berechenbar ist.
TURING-AUFZÄHLBARKEIT:
DEFINITION. Eine m-dimensionale Sprache L ⊆ (Σ∗ )m ist
Turing-aufzählbar, wenn sie der Definitionsbereich einer m-st.
partiell Turing-berechenbaren Wortfunktion über Σ ist.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
44 / 46
Turing-Entscheidbarkeit und Turing-Aufzählbarkeit von
Zahlmengen (1)
Die Turing-Entscheidbarkeit und -Aufzählbarkeit von Zahlmengen wird
dann - entsprechend wie bei Sprachen - auf die partielle
Turing-Berechenbarkeit von Zahlfunktionen zurückgeführt:
DEFINITION. Eine m-dimensionale Menge A ⊆ (N)m ist
Turing-entscheidbar, wenn ihre charakteristische Funktion
Turing-berechenbar ist.
DEFINITION. Eine m-dimensionale Menge A ⊆ (N)m ist
Turing-aufzählbar, wenn sie der Definitionsbereich einer m-st.
partiell Turing-berechenbaren Funktion vom Typ Nm → N ist.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
45 / 46
Turing-Entscheidbarkeit und Turing-Aufzählbarkeit von
Zahlmengen (2)
BEMERKUNG. Eine Menge
A ⊆ (N)m
ist genau dann Turing-entscheidbar (Turing-aufzählbar), wenn die
zugehörige m-dimensionale Sprache
LA = {(n1 , . . . , nm ) : (n1 , . . . , nm ) ∈ A} ⊆ ({0}∗ )m
Turing-entscheidbar (Turing-aufzählbar) ist.
Theoretische Informatik (SoSe 2017)
3. Turingmaschinen
46 / 46
Herunterladen