Upload
buidiep
View
215
Download
0
Embed Size (px)
Citation preview
Grundbegriffe der Theoretischen InformatikSommersemester 2016 - Thomas Schwentick
Teil C: Berechenbarkeit und Entscheidbarkeit
12: Verschiedene Berechnungsmodelle
Version von: 9. Juni 2016 (07:47)
Inhalt
✄ 12.1 Einleitung in Teil C
12.2 WHILE-Programme
12.3 GOTO-Programme
12.4 Turingmaschinen
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 1
Ein einfaches algorithmisches Puzzle-Problem‚ Wir betrachten zwei Varianten eines
„Puzzle-Problems“
– Eine wird sich als deutlich schwierigerals die andere herausstellen
‚ Einfache Variante des Puzzlespiels:
– Gegeben: schwarze und gelbe Spiel-steintypen mit Strings
– Von jedem Steintyp stehen beliebig vie-le Steine zur Verfügung
– Lässt sich das selbe Wort aus schwar-zen wie aus gelben Spielsteinen legen?
Beispiel
‚ Schwarze Steintypen: 01 , 10 , 011
‚ Gelbe Steintypen: 101 , 00 , 11
‚ Lösungswort: 1010011
– ... in schwarz: 10 10 011
– ...und in gelb: 101 00 11
Def.: Pseudo-PCP
Gegeben: eine Folgepu1, v1q, . . . , puk, vkq von Paa-ren nicht-leerer Strings
Frage: Gibt es Indexfolgen i1, . . . , in undj1, . . . , jm mit n ě 1, so dass
ui1ui2 ¨ ¨ ¨ uin “ vj1vj2 ¨ ¨ ¨ vjm?
‚ Die Frage ist also: Gibt es einen String w,der sowohl aus uis als auch aus vjs zu-sammen gesetzt werden kann
‚ Pseudo-PCP lässt sich mit Hilfe von Auto-maten in polynomieller Zeit entscheiden:
– Konstruiere einen Automaten A, dernichtleere Strings akzeptiert, die ausden ui zusammengesetzt sind
– Konstruiere einen Automaten B, dernichtleere Strings akzeptiert, die ausden vi zusammengesetzt sind
– Teste ob LpAq X LpBq “ HGTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 2
Ein schwieriges algorithmisches Puzzle-Problem‚ Jetzt betrachten wir die schwierigere Variante
‚ Gegeben eine Menge von Spielsteintypenu1
v1
,u2
v2
, . . .uk
vk
‚ Von jedem Typ stehen beliebig viele Steinezur Verfügung
‚ Lassen sich die Steine so in einer Reihe aus-legen, dass das schwarze (obere) Wort gleichdem gelben (unteren) Wort ist?
Beispiel
‚ Steintypen:1
101,
10
00,011
11
‚ Mögliche Lösung:1
101
011
11
10
00
011
11
Beispiel
‚ 10
101,011
11,101
011hat keine Lösung
Def.: Postsches Korrespondenzproblem (PCP)
Gegeben: eine Folgepu1, v1q, . . . , puk, vkq vonPaaren nicht-leerer Strings
Frage: Gibt es eine Indexfolge i1, . . . , inmit n ě 1, so dass
ui1ui2 ¨ ¨ ¨ uin “ vi1vi2 ¨ ¨ ¨ vin?
‚ Die Frage ist also: Gibt es einen Stringw, der sowohl aus uis als auch ausvis zusammen gesetzt werden kann,und zwar mit derselben nicht-leerenIndexfolge?
‚ Wir nennen eine solche Indexfolge~i “ i1, . . . , in eine Lösung und denString ui1ui2 ¨ ¨ ¨ uin einen Lösungs-string
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 3
Ein komplizierteres BeispielDrittes Beispiel
‚ Steintypen:001
0,
01
011,
01
101,
10
001
‚ Kleinste Lösung:
01
011
10
001
01
101
10
001
10
001
01
011
001
0
01
011
10
001
01
101
10
001
01
101
10
001
10
001
01
101
10
001
10
001
01
011
001
0
10
001
10
001
01
011
001
0
01
101
10
001
001
0
001
0
01
101
10
001
10
001
10
001
01
011
001
0
01
011
001
0
001
0
001
0
01
101
10
001
01
101
10
001
001
0
01
011
001
0
10
001
10
001
01
011
001
0
10
001
001
0
001
0
01
101
10
001
001
0
001
0
01
101
001
0
001
0
01
101
001
0
01
011
001
0
10
001
001
0
001
0
01
101
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 4
PCP ist algorithmisch nicht lösbar‚ Wir werden in den nächsten Kapiteln den folgenden
Satz beweisen
Satz
‚ PCP ist nicht entscheidbar
‚ Dazu benötigen wir einige Vorbereitung
‚ Zunächst müssen wir den Begriff „entscheidbar“definieren
‚ Informell soll ein algorithmisches Problem ent-scheidbar sein, wenn es einen Algorithmus gibt,der bei jeder Eingabe anhält und immer die richtigeAntwort gibt
‚ Um dies zu formalisieren benötigen wir eine Defini-tion von „Algorithmus“
‚ Um zu definieren, was ein Algorithmus ist, benöti-gen wir ein allgemeines „Berechnungsmodell“
‚ Damit unsere Definition nicht zu modellspezifischwird, ziehen wir lieber mehrere Berechnungsmodel-le in Betracht
!GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 5
Inhalt
12.1 Einleitung in Teil C
✄ 12.2 WHILE-Programme
12.3 GOTO-Programme
12.4 Turingmaschinen
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 6
Übersicht‚ Wir suchen Antworten auf folgende Fragen
– Was ist ein Algorithmus?
– Wann ist eine Funktion berechenbar?
‚ Wir betrachten dazu verschiedene Berechnungsmodelle
‚ Zwei Modelle, die von Programmiersprachen inspiriertsind:
– WHILE-Programme
– GOTO-Programme
‚ Ein Modell, das als mächtige Erweiterung der endlichenAutomaten aufgefasst werden kann, ursprünglich aber alsmathematische Formalisierung des „Rechnens mit Papierund Bleistift“ gedacht war:
– Turingmaschinen
‚ Später betrachten wir noch ein Modell, das durch rekursiveDefinitionen inspiriert ist:
– µ-rekursive Funktionen
‚ Im nächsten Kapitel werden wir die Mächtigkeit dieserBerechnungsmodelle miteinander vergleichen
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 7
Partielle Funktionen‚ Wir werden jetzt häufig partielle Funk-
tionen über den natürlichen Zahlen ver-wenden
‚ Bei partiellen Funktionen f muss derFunktionswert nicht für alle Elemente derGrundmenge definiert sein
‚ Notation:
– f : N0 á N0
– Um auszudrücken, dass fpnq unde-finiert ist, schreiben wir: fpnq “ K
Beispiel
‚ Sei sqrt die partielle FunktionN0 á N0, die jeder natürlichen Zahln die natürliche Zahl m mit m2 “ nzuordnet, wenn ein solches m existiert
‚ Es gilt also z.B.:
– sqrtp9q “ 3
– sqrtp10q “ K
Definition
‚ Sei f : N0 á N0 eine partielle Funktion
– Der Definitionsbereich Dpfq einer par-
tiellen Funktion f isttn P N0 | fpnq “ Ku
– Der Wertebereich W pfq einer partiellen
Funktion f isttn P N0 | Dm P N0 : fpmq “ nu
‚ Eine totale Funktion N0 Ñ N0 ist eineFunktion, die für alle natürlichen Zahlen de-finiert ist
✎ Zu beachten:
– Der Begriff „partielle Funktion“ erzwingtnicht, dass es Zahlen gibt, für die keinFunktionswert existiert
– Jede totale Funktion ist also auch einepartielle Funktion
✎ Wir werden auch partielle Funktionen überStrings betrachten
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 8
WHILE-Programme: BeispieleBeispiel
x1 :“ x2;
WHILE x3 “ 0 DO
x1 :“ x1 ` 1;x3 :“ x3 ´ 1
END
‚ Variablen nehmen in WHILE-Programmennur Werte aus N0 an
‚ Der Effekt des Programmes ist also:x1 :“ x2 ` x3
☞ Und: x3 :“ 0
Beispiel
x1 :“ 0;WHILE x3 “ 0 DO
x4 :“ x2;
WHILE x4 “ 0 DO
x1 :“ x1 ` 1;x4 :“ x4 ´ 1
END;
x3 :“ x3 ´ 1END
‚ Der (wesentliche) Effekt des Programmesist: x1 :“ x2 ˆ x3
Beispiel
x1 :“ 1;WHILE x1 “ 0 DO
x3 :“ x2 ` 2END
‚ Dieses Programm hält nie an...
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 9
WHILE-Programme: Syntax‚ WHILE-Programme verwenden die folgen-
den syntaktischen Grundelemente:
– Variablen: x1, x2, x3, . . .
– Konstanten: 0, 1, 2, . . .
– Trennsymbole: ; :“– Operationszeichen: ` ´
– Schlüsselwörter: WHILE, DO, END
Definition
‚ Die Syntax von WHILE-Programmen istwie folgt definiert:
Wertzuweisung:– xi :“ c– xi :“ xj
– xi :“ xj ` c– xi :“ xj ´ csind WHILE-Programme
(für jede Konstante c und i, j ě 1)
Reihung: Falls P1 und P2 WHILE-Programme sind, so auch P1;P2
(Bedingte Wiederholung)Ist P ein WHILE-Programm, so auch
WHILE xi “ 0 DO P END
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 10
WHILE-Programme: Semantik (1/2)‚ Wir definieren die Semantik von WHILE-
Programmen durch ihre Wirkung auf Speicherin-halte
‚ Dabei modellieren wir Speicherinhalte durch Funk-tionen X , die die Werte der Variablen x1, x2, . . .repräsentieren
– Xris repräsentiert den Wert von xi
Definition
‚ Ein Speicherinhalt X ist eine Funktion N Ñ N0,
für die Xris “ 0 nur für endlich viele i P N gilt
‚ Der initiale Speicherinhalt XbInit bei Eingabe
b P N0 ist definiert durch:
XbInitris
def“
"
b für i “ 1
0 sonst
✎ Wir schreiben hier Xris statt Xpiq um später dieUnterscheidung zu anderen (runden) Klammern zuerleichtern
✎ Manchmal beschreiben wir Spei-cherinhalte als Folge von ZahlenXr1s, Xr2s, Xr3s, . . .– In dieser Sichtweise wird der
initiale Speicherinhalt XbInit
bei Eingabe b durch die Folgeb, 0, 0, . . . repräsentiert
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 11
WHILE-Programme: Semantik (2/2)Definition
‚ Ist X ein Speicherinhalt und P einWHILE-Programm, so bezeichne P pXqden Speicherinhalt nach Bearbeitungvon P
‚ P pXq ist induktiv wie folgt definiert
‚ Falls P von der Form xi :“ xj ` c ist:
P pXqrksdef“
"
Xrjs ` c für k “ i
Xrks sonst
– Analog für xi :“ c und xi :“ xj
‚ Falls P von der Form xi :“ xj ´ c ist:P pXqrks
def“
"
maxpXrjs ´ c, 0q für k “ i
Xrks sonst
‚ Falls P von der Form P1;P2 ist:P pXq
def“ P2pP1pXqq
Definition (Forts.)
‚ Ist P von der FormWHILE xi “ 0 DO P1 END
und X ein Speicherinhalt, so seiP pXq
def“
"
X falls Xris “ 0
P pP1pXqq sonst
‚ Die durch ein WHILE-Programm P be-rechnete Funktion fP ist wie folgt definiert:
– Für jedes b P N0 istfP pbq
def“ P pXb
Initqr1s
‚ Eine Funktion f : N0 Ñ N0 heißtWHILE-berechenbar, falls f “ fP fürein WHILE-Programm P
✎ Der durch das Programm berechnete Funk-tionswert entspricht also dem Inhalt von x1
nach Ende der Berechnung
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 12
WHILE-Programme: Bemerkungen‚ Intuitive Bedeutung der Semantik der be-
dingten Wiederholung:
– Solange Xris “ 0 gilt, wird P1 aus-geführt
‚ Zu beachten:
– Die Semantik-Definition ist rekursiv
– P pXq ist nicht für alle P und X defi-niert
‚ Auch mehrstellige Funktionen lassen sichdurch WHILE-Programme berechnen:
– Für jedes k-Tupel ~a “ pa1, . . . , akqsei fP,kp~aq der Wert von X 1p1q,wobei∗ X 1 “ P pX~a
Initq
∗ und X~aInit der Folge
a1, . . . , ak, 0, 0, . . . entspricht
‚ Wir haben schon gesehen, dass WHILE-Programme verschiedene Konstrukte simu-lieren können:
– Addition zweier Variablen
– Produkt zweier Variablen
‚ Es ist nicht schwer zu sehen, dass mitWHILE-Programmen auch bedingte An-weisungen der Art
IF x1 “ c THEN P END
simuliert werden können
‚ Wir werden im Folgenden solche An-weisungen als „syntaktischen Zucker“erlauben
‚ WHILE-Programme im Sinne der forma-len Definition nennen wir im Folgenden„einfache WHILE-Programme“
‚ Der Begriff „WHILE-berechenbar“ beziehtsich auf einfache WHILE-Programme
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 13
Inhalt
12.1 Einleitung in Teil C
12.2 WHILE-Programme
✄ 12.3 GOTO-Programme
12.4 Turingmaschinen
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 14
GOTO-Programme: SyntaxDefinition
‚ Ein GOTO-Programm besteht aus einerFolge
– M1 : A1;
– M2 : A2;
–...
– Mk : Ak
von Anweisungen Ai mit SprungmarkenMi
‚ Mögliche Anweisungen:
– Wertzuweisung:
∗ xi :“ c∗ xi :“ xj
∗ xi :“ xj ` c∗ xi :“ xj ´ c
– Bedingter Sprung:IF xi “ c THEN GOTO Mj
– Stopanweisung: HALT
Beispiel
1: x4 :“ 1;2: x1 :“ x2;
3: IF x3 “ 0 THEN GOTO 7;
4: x1 :“ x1 ` 1;5: x3 :“ x3 ´ 1;6: IF x4 “ 1 THEN GOTO 3;
7: HALT
‚ Intuitiv hat dieses Programm den Effekt:x1 :“ x2 ` x3
(und Seiteneffekte für x3 und x4)
✎ Das Beispiel illustriert, dass sich unbeding-te Sprünge durch bedingte Sprünge simu-lieren lassen
– Wir erlauben im Folgenden deshalbauch unbedingte Sprünge GOTO Mj
als syntaktischen Zucker
✎ Sprungmarken, die nicht als Sprungadres-se dienen, lassen wir oft weg
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 15
GOTO-Programme: SemantikDefinition
‚ Eine Konfiguration eines GOTO-Program-
mes P ist ein Paar pM ;Xq, wobei Meine Sprungmarke von P und X ein Spei-cherinhalt ist
‚ Start-Konfiguration bei Eingabe b:
pM1;XbInitq
‚ Ist M eine Sprungmarke eines GOTO-Programms, so bezeichnet M ` 1 dieSprungmarke der folgenden Zeile
‚ Die Nachfolge-Konfiguration pM 1;X 1qeiner Konfiguration pMℓ;Xq ist wie folgtdefiniert:– Ist Aℓ eine Wertzuweisung, so istM 1 def
“ Mℓ ` 1 und X 1 ist definiertwie bei WHILE-Programmen
– Falls Aℓ ein bedingter SprungIF xi “ c THEN GOTO Mj
ist, so ist X 1 def“ X und
M 1 def“
"
Mj falls Xris “ c
Mℓ ` 1 sonst
Definition (Forts.)
‚ Halte-Konfiguration: pMk ` 1;Xqoder pMℓ;Xq und Aℓ ist HALT
‚ Die Berechnung von P bei Einga-be b ist die eindeutig bestimmte FolgeK1,K2, . . . von Konfigurationen mit:
– K1 “ pM1, XbInitq und
– jede Konfiguration Ki ist die Nachfol-gekonfiguration von Ki´1 (für i ą 1)
‚ Falls die Berechnung von P bei Eingabeb endlich ist, so ist die letzte Konfigurationeine Halte-Konfiguration pM ;Xq
‚ Dann sei wieder: fP pbqdef“ Xr1s
‚ Falls die Berechnung von P bei Eingabeb unendlich ist, so ist fP pbq
def“ K,
‚ Eine Funktion f : N0 Ñ N0 heißt GO-TO-berechenbar, falls f “ fP für einGOTO-Programm P
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 16
Inhalt
12.1 Einleitung in Teil C
12.2 WHILE-Programme
12.3 GOTO-Programme
✄ 12.4 Turingmaschinen
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 17
Warum Turingmaschinen?‚ Bisher haben wir Berechnungsmo-
delle betrachtet, die sich an Pro-grammiersprachen anlehnen:
WHILE- und GOTO-Programme
‚ Jetzt betrachten wir ein Berech-nungsmodell, das „menschlicheRechner“ zum Vorbild nimmt
‚ Dieses Modell wurde 1936 von AlanTuring „erfunden“
‚ Warum hat jemand
– etliche Jahre vor dem Bau des ersten Compu-ters und
– Jahrzehnte vor der Entwicklung „richtiger Pro-grammiersprachen“
ein abstraktes Berechnungsmodell erfunden?
‚ Turing war Mathematiker und wollte beweisen,dass es kein automatisches Verfahren gibt, daszu jeder mathematischen Aussage entscheidet,ob sie wahr oder falsch ist
‚ Etwas anders formuliert, wollte er zeigen, dasses keinen Algorithmus für das folgende algorith-mische Problem gibt
Definition: Allgemeingültigkeitsproblem
Gegeben: Prädikatenlogische Formel ϕ
Frage: Gilt für alle passenden Modelle M:M |ù ϕ?
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 18
Turings Ideen zur Berechenbarkeit (1/4)‚ Wie gesagt: zu Turings Zeit gab es noch keine
künstlichen programmierbaren Rechner
‚ Wenn er von einem Computer sprach, meinte ereinen Menschen, der nach einem festgelegten Ver-fahren etwas berechnet
‚ Seine Vorstellungen, wie ein solcher Computer
arbeitet, hat er in der folgenden Arbeit beschrieben:
– A. M. Turing. On computable numbers, with anapplication to the Entscheidungsproblem. Proc.
London Math. Soc., 2(42):230–265, 1936
‚ Die Abstraktion des Computers, die Turing in die-ser Arbeit definierte, wird heute Turingmaschinegenannt
‚ Schauen wir mal, welche Gedanken sich AlanTuring 1936 so gemacht hat...
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 19
Turings Ideen zur Berechenbarkeit (2/4)‚ Computing is normally done by writing certain sym-
bols on paper
‚ We may suppose this paper is divided into squareslike a child’s arithmetic book
‚ In elementary arithmetic the two-dimensional cha-racter of the paper is sometimes used
‚ But such a use is always avoidable, and I think thatit will be agreed that the two-dimensional characterof paper is no essential of computation
‚ I assume then that the computation is carried outon one-dimensional paper, i.e. on a tape dividedinto squares
‚ I shall also suppose that the number of symbolswhich may be printed is finite
– If we were to allow an infinity of symbols, thenthere would be symbols differing to an arbitrarilysmall extent
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 20
Turings Ideen zur Berechenbarkeit (3/4)‚ The behaviour of the computer at any mo-
ment is determined by the symbols whichhe is observing and his ”state of mind”at that moment
‚ We may suppose that there is a boundB to the number of symbols or squareswhich the computer can observe at onemoment
‚ If he wishes to observe more, he must usesuccessive observations
‚ We will also suppose that the number ofstates of mind which need be taken intoaccount is finite
‚ Let us imagine the operations performedby the computer to be split up into ”simpleoperations” which are so elementary that itis not easy to imagine them further divided
‚ Every such operation consists of somechange of the physical system consisting ofthe computer and his tape
‚ We know the state of the system if weknow the sequence of symbols on thetape, which of these are observed by thecomputer (possibly with a special order),and the state of mind of the computer
‚ We may suppose that in a simple ope-ration not more than one symbol isaltered
– Any other changes can be set up intosimple changes of this kind
‚ The situation in regard to the squareswhose symbols may be altered in this wayis the same as in regard to the observedsquares
‚ We may, therefore, without loss of gene-rality, assume that the squares whosesymbols are changed are always ”ob-served” squares
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 21
Turings Ideen zur Berechenbarkeit (4/4)‚ Besides these changes of symbols, the
simple operations must include changes ofdistribution of observed squares
‚ The new observed squares must be imme-diately recognisable by the computer
‚ I think it is reasonable to suppose that theycan only be squares whose distance fromthe closest of the immediately previouslyobserved squares does not exceed a cer-tain fixed amount
‚ Let us say that each of the new observedsquares is within L squares of an immedia-tely previously observed square
‚ The most general single operation musttherefore be taken to be one of the followi-ng:
(A) A possible change (a) of symbol to-gether with a possible change of stateof mind
(B) A possible change (b) of observedsquares, together with a possiblechange of state of mind
‚ The operation actually performed is deter-mined, as has been suggested on p.250,by the state of mind of the computer andthe observed symbols
‚ In particular, they determine the state ofmind of the computer after the operation iscarried out
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 22
Vom Automaten zur Turingmaschine‚ Turingmaschinen können als Erweiterung
von endlichen Automaten in drei Stufenaufgefasst werden:
(1) Mehr Bewegung:– Der Kopf darf sich nach rechts und
nach links bewegen✎ Endliche Automaten mit dieser Erwei-
terung können nur reguläre Sprachenentscheiden
(2) Schreiben:– Die Symbole der Eingabe können
verändert werden — jeweils an derPosition des Kopfes
‚ Das Berechnungsmodell, das endlicheAutomaten um (1) und (2) erweitert, wirdlinear beschränkte Automaten genannt
– Sie entscheiden genau die kontextsen-sitiven Sprachen
(3) Mehr Platz:– Der Arbeitsbereich kann über die Ein-
gabe hinaus erweitert werden (nachrechts)
– Links von der Eingabe steht ein Sym-bol (✄), das den linken Rand mar-kiert, der nicht verschoben werdenkann
– Berechnungen enden nicht mehrdurch Verlassen der Eingabe sonderndurch Erreichen spezieller Endzu-stände
‚ Wir betrachten nun zunächst Beispiele vonTuringmaschinen
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 23
Turingmaschinen: 1. BeispielBeispiel
Turingmaschine zum Test, ob die Eingabe von der Form wwR ist
Idee: Vergleiche jeweils das erste mit dem letzten Symbol und löschebeide (durch Überschreiben mit # bzw. \)
a : 0 und 1 überlesen, nach links — falls ✄ oder # nach rechts inb
b: Falls 0 nach rechts in c — falls 1 nach rechts in d (dabei 0/1durch # überschreiben) — falls \ akz.
c: 0 und 1 überlesen nach rechts bis \, dann nach links in e
d: 0 und 1 überlesen nach rechts bis \, dann nach links in f
e: Falls 0 durch \ ersetzen nach links in a — falls 1 oder # ableh-nen
f : Falls 1 durch \ ersetzen nach links in a — falls 0 oder # ableh-nen
1. Beispielberechnung:
✄ 0 1 1 1 1 0
bbc#
ccccc\
ea\
aaaabd#
dddfa\
aabd#
dfa\
b
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 24
Turingmaschinen: 1. Beispiel, 2. BerechnungBeispiel
Turingmaschine zum Test, ob die Eingabe von der Form wwR ist
a : 0 und 1 überlesen, nach links — falls ✄ oder # nach rechts inb
b: Falls 0 nach rechts in c — falls 1 nach rechts in d (dabei 0/1durch # überschreiben) — falls \ akz.
c: 0 und 1 überlesen nach rechts bis \, dann nach links in e
d: 0 und 1 überlesen nach rechts bis \, dann nach links in f
e: Falls 0 durch \ ersetzen nach links in a — falls 1 oder # ableh-nen
f : Falls 1 durch \ ersetzen nach links in a — falls 0 oder # ableh-nen
2. Beispielberechnung:
✄ 0 1 1 0 1 1 0
bbc#
cccccc\
ea\
aaaaabd#
ddddfa\
aaabd#
ddfa\
abc#
e
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 25
Turingmaschinen: DefinitionDefinition
‚ Eine Turingmaschine M “ pQ,Γ, δ, sq besteht aus
– einer endliche Menge Q, (Zustandsmenge)
– einem Alphabet Γ, mit \,✄ P Γ, (Arbeitsalphabet)
– einer Funktionδ : Q ˆ Γ Ñ pQ Y tja, nein, huq ˆ Γ ˆ tÐ, Ó, Ñu
(Transitionsfunktion),
– einem ausgezeichneten Zustand s P Q (Startzustand)
‚ Dabei seien Q,Γ, th, ja, neinu und tÐ, Ó, Ñu paarweise dis-junkt
‚ Turingmaschinen müssen außerdem die folgenden Bedingungenerfüllen:
– Das Symbol ✄ für den linken Rand darf nicht überschriebenwerden
– von ✄ darf sich der Kopf nicht nach links bewegen
‚ Das lässt sich dadurch erreichen, dass δpq,✄q immer von derForm pq1,✄, dq mit d P tÓ, Ñu ist
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 26
Turingmaschinen: Diagramm-DarstellungZustände der Beispiel-TM
a : 0 und 1 überlesen, nachlinks — falls ✄ oder # nachrechts in b
b: Falls 0 nach rechts in c —falls 1 nach rechts in d (da-bei 0/1 durch # überschrei-ben) — falls \ akz.
c: 0 und 1 überlesen nachrechts bis \, dann nach linksin e
d: 0 und 1 überlesen nachrechts bis \, dann nach linksin f
e: Falls 0 durch \ ersetzennach links in a — falls 1oder # ablehnen
f : Falls 1 durch \ ersetzennach links in a — falls 0oder # ablehnen
Beispiel-Turingmaschine als Diagramm
ab
c
d
e
f`
´0 : 0, Ð1 : 1, Ð
# : #, Ñ✄ : ✄, Ñ
0 : #, Ñ
1 : #, Ñ\ : \, Ó
0 : 0, Ñ1 : 1, Ñ
\ : \, Ð
0 : 0, Ñ1 : 1, Ñ
\ : \, Ð
0 : \, Ð
1 : \, Ó# : #, Ó
1 : \, Ð
0 : \, Ó# : #, Ó
‚ Konvention: ist für ein Paar pq, σq P Q ˆ Γ kein Über-gang eingezeichnet, so sei δpq, σq
def“ pnein, σ, Óq
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 27
Turingmaschinen: 2. Beispiel2. Beispiel-TM: Inkrementieren einer Binärzahl
‚ Beschreibung der Zustände:
a: Die TM läuft, ohne etwas zu verändern, nach rechts bis zumersten Leerzeichen, und dann einen Schritt nach links in denZustand b.
b: Das maximale Suffix der Form 1i wird durch 0i ersetzt.– Ist davor eine 0, so wird sie durch 1 ersetzt und M geht in
den Zustand e✎ Das Suffix der Eingabe ist von der Form 01i und wird
durch 10i ersetzt– Ist davor ein ✄, so geht M in Zustand c✎ Die Eingabe war von der Form 1i, wurde in 0i geändert,
und muss noch in 10i umgewandelt werden
c: Ersetzt die erste 0 durch eine 1, und geht in den Zustand d
d: Fügt eine 0 hinten an und geht in den Zustand e
e: läuft zum linken Rand und geht in den Endzustand h
✄ 1 0 0 1 1
baaaaaa\
bb0
b0
e1
eeh
!GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 28
Turingmaschinen: 2. Beispiel, 2. Berechnung2. Beispiel-TM: Inkrementieren einer Binärzahl (Forts.)
‚ Turingmaschine zum Inkrementieren einer Binärzahl:
‚ Beschreibung der Zustände:
a: Die TM läuft, ohne etwas zu verändern, nach rechts bis zumersten Leerzeichen, und dann einen Schritt nach links in denZustand b.
b: Das maximale Suffix der Form 1i wird durch 0i ersetzt.– Ist davor eine 0, so wird sie durch 1 ersetzt und M geht in
den Zustand e– Ist davor ein ✄, so geht M in Zustand c
c: Ersetzt die erste 0 durch eine 1, und geht in den Zustand d
d: Fügt eine 0 hinten an und geht in den Zustand e
e: läuft zum linken Rand und geht in den Endzustand h
✄ 1 1 1
baaaa\
bb0
b0
b0
cd1
dde0
eeeh
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 29
Turingmaschinen: 2. Beispiel als DiagrammBeispiel: Zustände der 2. TM
a: Laufe nach rechts bis zum ersten \, danneinen Schritt nach links in Zustand b.
b: Gehe nach links bis zur nächsten 0 — er-setze dabei jede 1 durch 0
‚ Ist davor 0, ersetze durch 1 und gehein Zustand e
‚ Ist davor ✄, gehe in Zustand c
c: Ersetze die erste 0 durch eine 1, und gehein den Zustand d
d: Fügt eine 0 hinten an und gehe in den Zu-stand e
e: Laufe zum linken Rand und gehe in denEndzustand h
Diagramm zur 2. TM
a b c
deh
✄ : ✄, Ñ0 : 0, Ñ1 : 1, Ñ
\ : \, Ð
1 : 0, Ð
✄ : ✄, Ñ
0 : 1, Ð 0 : 1, Ñ
0 : 0, Ñ1 : 1, Ñ
\ : 0, Ð
0 : 0, Ð1 : 1, Ð
✄ : ✄, Ó
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 30
Turingmaschinen: Konfigurationen (1/2)‚ Um die aktuelle Situation einer TM zu beschreiben
verwenden wir Konfigurationen, bestehend aus ei-nem Zustand und einer String-Zeigerbeschreibung
Definition
‚ Eine String-Zeigerbeschreibung pw, zq bestehtaus
– einem String w P Γ˚
– und einer Zeigerposition z P N0, z ď |w|
✎ Der linke Rand wird in w nicht repräsentiert!
‚ Wir vereinbaren: wr0sdef“ ✄
‚ Manchmal verwenden wir eine andere Notation undschreiben pu, σ, vq statt pw, zq, falls– w “ uσv,– |uσ| “ z
‚ σ ist dann das Zeichen, auf das der Zeiger zeigt,v ist der String rechts vom Zeiger, u ist der Stringlinks vom Zeiger (ohne ur0s “ ✄)
‚ Falls z “ 0: pǫ, ǫ, wq
Beispiel
Die String-Zeigerbeschreibung zu
✄ 1 0 0 0 0 \
bb
ist
‚ p10000\, 3q oder
‚ p10, 0, 00\q
Definition
‚ Eine Konfiguration von M ist ein
Tupel pq, pw, zqq mit
– q P Q Y tja, nein, hu(aktueller Zustand)
– w der aktuelle String
– z die Position des Zeigers derTM (linker Rand ist 0)
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 31
Turingmaschinen: Konfigurationen (2/2)Definition
‚ Sei K “ pq, pw, zqq eine Konfiguration mit wrzs “ σ und seiδpq, σq “ pq1, τ, dq mit τ P Γ, d P tÐ, Ó, Ñu
‚ Dann ist die Nachfolgekonfiguration K 1 “ pq1, pw1, z1qq von K wie
folgt definiert: (Schreibweise: K $M K 1)
– z1 “ z ` 1, falls d “Ñ,
– z1 “ z, falls d “Ó,
– z1 “ z ´ 1, falls d “Ð,
– w1 “ w, falls z “ 0
– w1 “ wrz{τ s\, falls z “ |w| und d “Ñ,
– w1 “ wrz{τ s, andernfalls
✎ Dabei bezeichnet wrz{τ s den String, der aus w entsteht, indemdas Zeichen an Position z durch τ ersetzt wird
‚ Wir schreiben K $˚
M K 1, falls es Konfigurationen K1, . . . ,Km gibt
mit K $M K1 $M ¨ ¨ ¨ $M Km $M K 1
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 32
Turingmaschinen: Illustration der Nachfolgekonfiguration (1/2)Beispiel: Schritt ohne Kopf-Bewegung
‚ δpe,✄q “ ph,✄, Óq
✄ 1 0 0 0
be
Ñ ✄ 1 0 0 0
bh
pe, p1000, 0qq Ñ ph, p1000, 0qq
Beispiel: Linksschritt
‚ δpb, 0q “ pe, 1, Ðq
✄ 1 0 0 0 0 \
bbÑ ✄ 1 0 1 0 0 \
be
pb, p10000\, 3qq Ñ pe, p10100\, 2qq
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 33
Turingmaschinen: Illustration der Nachfolgekonfiguration (2/2)Beispiel: Rechtsschritt
‚ δpc, 0q “ pd, 1, Ñq
✄ 0 0 0
bc
Ñ ✄ 1 0 0
bd
pc, p000, 1qq Ñ pd, p100, 2qq
Beispiel: Rechtsschritt mit neuem Blank
‚ δpa, 1q “ pa, 1, Ñq
✄ 1 1 1
ba
Ñ ✄ 1 1 1 \
ba
pa, p111, 3qq Ñ pa, p111\, 4qq
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 34
Turingmaschinen: Semantik (1/2)Definition
‚ Sei Σ Ď Γ ´ t✄, \u (Ein-/Ausgabe-Alphabet)
‚ Die Startkonfiguration von M bei Eingabe u P Σ˚ ist
K0puqdef“ ps, pu, 0qq
‚ pq, pw, zqq heißt Haltekonfiguration, falls
q P th, ja, neinu
‚ K0,K1, . . . ,Kt heißt endliche Berechnung von Mbei Eingabe u, falls
– K0 “ K0puq,
– Ki $M Ki`1 für alle i ă t, und
– Kt eine Haltekonfiguration ist
‚ M akzeptiert u, falls K0puq $˚
M pja, pw, zqq
‚ M lehnt u ab, falls K0puq $˚
M pnein, pw, zqq
– (für gewisse w P Σ˚, z ď |w|)
‚ Mpuqdef“ die (endliche oder unendliche) Berechnung von
M bei Eingabe u ☞ Mpuq ist nicht die Ausgabe!GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 35
Turingmaschinen: Beispiel einer KonfigurationsfolgeBeispiel
✄ 1 1 1
baaaa\
bb0
b0
b0
cd1
dde0
eeeh
pa, pǫ, ǫ, 111qq $M pa, pǫ, 1, 11qq$M pa, p1, 1, 1qq$M pa, p11, 1, ǫqq$M pa, p111, \, ǫqq$M pb, p11, 1, \qq$M pb, p1, 1, 0\qq$M pb, pǫ, 1, 00\qq$M pb, pǫ, ǫ, 000\qq$M pc, pǫ, 0, 00\qq$M pd, p1, 0, 0\qq$M pd, p10, 0, \qq$M pd, p100, \, ǫqq$M pe, p10, 0, 0qq$M pe, p1, 0, 00qq$M pe, pǫ, 1, 000qq$M pe, pǫ, ǫ, 1000qq$M ph, pǫ, ǫ, 1000qq
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 36
Turingmaschinen: Semantik (2/2)Definition
‚ Eine TM M entscheidet eineSprache L, falls für jedes u PΣ˚ gilt:
– u P L ñ M akzeptiert u
– u R L ñ M lehnt u ab
‚ LpMqdef“ Menge aller von M
akzeptierten Wörter
‚ Zu beachten:
– LpMq ist immer definiert
– Aber M entscheidet LpMqnicht immer!∗ Es könnte sein, dass M für
gewisse Eingabewörter, dienicht in LpMq sind, nichtanhält
– M entscheidet LpMq ge-nau dann, wenn M für jedesEingabewort anhält
‚ Turingmaschinen können auch Funktionen berech-nen:
Definition
‚ fM puqdef“ v P Σ˚, falls
– K0puq $˚
M ph, pv, 0qq oder
– K0puq $˚
M ph, pvτw, 0qqfür ein τ P Γ ´ Σ, w P Γ˚
✎ fM puq ist nur dann definiert, wenn der Zeiger vonM im Haltezustand ganz links steht
– fM puq ist dann die maximale Folge von Zei-chen aus Σ, die direkt rechts vom Zeiger stehen
‚ Im Allgemeinen ist fM also eine partielle FunktionΣ˚ á Σ˚
Definition
‚ Eine partielle Funktion f : Σ˚ á Σ˚ heißt Tu-ring-berechenbar, falls f “ fM , für eine Turing-maschine M
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 37
Literaturangaben
‚ Die Darstellung in diesem Kapitel richtet sich weitgehend nach
– Uwe Schöning. Theoretische Informatik - kurzgefaßt (3. Aufl.).Hochschultaschenbuch. Spektrum Akademischer Verlag, 1997
GTI / Schwentick / SoSe 16 C: 12. Verschiedene Berechnungsmodelle . ✁✄ Folie 38