Turingmaschinen.pdf
Turingmaschinen.pdf
Turingmaschinen.pdf
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
7. <strong>Turingmaschinen</strong><br />
Theoretische Informatik – Mitschrift<br />
Automatenmodell für Typ-0-Sprachen<br />
→ Einschränkung liefert Automatenmodell für Typ-1-Sprachen<br />
Alan Turing 1936, ursprüngliches Ziel:<br />
Formalisierung des Berechenbarkeitsbegriffs<br />
Modell einer Turingmaschine:<br />
... ... Unendliches Schreib-/Leseband<br />
endl.<br />
Kontrolle<br />
Definition 7.1:<br />
Eine Turingmaschine (TM) ist ein 7-Tupel =〈Q , , , ,q 0 ,t 0 , F 〉 mit<br />
● endlicher Zustandsmenge Q<br />
● Eingabealphabet Σ<br />
● Arbeitsalphabet (Bandalphabet) ⊃<br />
● Transitionsfunktion<br />
:Q× Q××{L , R , N } im deterministischen Fall<br />
:Q× ℘Q××{L , R , N } im nichtdeterministischen Fall<br />
● Startzustand q 0 ∈Q<br />
● Blank (Leerzeichen) b∈ ∖<br />
● Endzustandsmenge F⊆Q<br />
Bezeichnung:<br />
∈TM , ∈DTM <br />
q ,a , x∈ q ,b bedeutet: Falls die TM im Zustand q unter dem Schreib-/Lesekopf ein b sieht,<br />
kann sie das b mit a überschreiben, in den Zustand q wechseln und den Schreib-/Lesekopf<br />
gemäß der Positionsangabe x∈{L , R , N } bewegen:<br />
L - ein Zeichen nach links<br />
R - ein Zeichen nach rechts<br />
N (neutral) - keine Kopfbewegung.<br />
Definition 7.2 (Sprache einer Turingmaschine):<br />
Menge der Konfigurationen: *<br />
*<br />
<br />
Bandinhalt<br />
links vom<br />
Lesekopf<br />
Q<br />
<br />
<br />
Zustand Lesekopf Bandinhalt<br />
rechts vom<br />
Lesekopf<br />
Einzelschrittrelation ├ ⊆ * Q *× * Q * mit<br />
● q X ├ q' X ' falls q' , X ' , N ∈q , x<br />
●<br />
q XY ├ X ' q' Y <br />
} falls q' , X ' , R∈q , x<br />
q X ├ X ' q' b <br />
●<br />
Y q X ├ q' YX ' <br />
} falls q' , X ' , L∈ q , x<br />
q X ├ q' b X ' <br />
Anfangskonfiguration: q0 w b bei Eingabe von w ∈*
Endkonfigurationen: q X mit q∈F<br />
Von A erkannte Sprache:<br />
L ={w ∈*∣q 0 w b├ * q X mit q∈F }<br />
Beachte:<br />
Die Turingmaschine braucht nicht zu stoppen. Es genügt das Erreichen eines Endzustandes. Die<br />
Eingabe muß nicht vollständig gelesen werden.<br />
ℒ ,TM : Klasse der durch <strong>Turingmaschinen</strong> erkennbaren Sprachen,<br />
ℒ , DTM analog<br />
Beispiel:<br />
Turingmaschine mit L ={a n b n c n ∣n≥1 }<br />
Idee:<br />
● Ersetze für k = 1, 2, ... k-tes a, b, c nacheinander durch A, B, C, bis hinter C ein b folgt<br />
● Teste vom Wortende aus, ob nur Cs, Bs und As in dieser Reihenfolge auf dem Band stehen<br />
=〈Q ,{a ,b , c}, , ,q0 ,b ,{q f }〉 mit<br />
Q={q0 ,q f ,qb ,qc ,q ? ,ql ,q t }<br />
={a ,b ,c , A , B ,C ,b}<br />
gegeben durch Turingtafel = Folge von Quintupeln<br />
q a b x q' mit der Bedeutung q' ,b , x∈ q ,a<br />
q0 a A R qb % ersetze erstes a<br />
qb a a R qb qb b B R qc % suche erstes b<br />
qb B B R qb qc b b R qc qc c C R q ? % suche erstes c<br />
qc C C R qc q ? c c L ql % noch nicht am Wortende zurück<br />
q ? b b L qt % Wortende Testphase<br />
ql Y Y L ql für alle Y ∈{C ,b ,B ,a}<br />
ql A A R q0 qt qt Y<br />
b<br />
Y<br />
b<br />
L<br />
R<br />
qt q f<br />
für Y ∈{C , B , A}<br />
% Testphase<br />
Konfigurationsfolge bei Eingabe von aabbcc:<br />
q 0 aabbccb├ A q b abbccb├ Aa q b bbccb├ AaB q c bccb├ AaBb q c cc b<br />
4<br />
├ AaBbC q ? c b├ AaBb q l Cc b├ q l AaBbCcb├ A q 0 aBbCc b├ AA q b BbCc b<br />
├ AAB q b bCc b├ AABB q c Cc b├ AABBC q c cb├ AABBCC q ? b<br />
5<br />
├ AABBC q t C b├ q t AABBCC b├ q t b AABBCC b├ b q f AABBCC b<br />
Beobachtung:<br />
Turingmaschine arbeitet nur auf dem Eingabebereich → linear beschränkter Automat
Definition 7.3:<br />
Eine nichtdeterministische Turingmaschine =〈Q , , , ,q 0 , b ,F 〉 heißt linear beschränkt<br />
(linear beschränkter Automat: LBA), falls<br />
● ¢,$∈ ∖ und<br />
● q ,¢⊆{q' ,¢, R∣q '∈Q} für alle q∈Q<br />
● q ,$ ⊆{q' ,$ , L∣q' ∈Q} für alle q∈Q<br />
● Sonst dürfen ¢ und $ nicht geschrieben werden.<br />
Bezeichnung:<br />
∈LBA .<br />
Die von einem LBA A akzeptierte Sprache ist<br />
L={w∈*∣¢ q 0 w $ ├ * q X für ein q ∈F }.<br />
Sprachklasse: ℒ ,LBA<br />
Zum Beispiel:<br />
=〈Q ,{a ,b , c}, , ,q0 ,b ,{q f }〉 mit<br />
Q={q0 ,q f ,qb ,qc ,q ? ,ql ,q t }<br />
={a ,b ,c , A , B ,C ,¢ ,$}<br />
gegeben durch Turingtafel = Folge von Quintupeln<br />
q a b x q' mit der Bedeutung q' ,b , x∈ q ,a<br />
q0 a A R qb % ersetze erstes a<br />
qb a a R qb qb b B R qc % suche erstes b<br />
qb B B R qb qc b b R qc qc c C R q ? % suche erstes c<br />
qc C C R qc q ? c c L ql % noch nicht am Wortende zurück<br />
q ? $ $ L qt % Wortende Testphase<br />
ql Y Y L ql für alle Y ∈{C ,b ,B ,a}<br />
ql A A R q0 qt qt Y<br />
¢<br />
Y<br />
¢<br />
L<br />
R<br />
qt q f<br />
für Y ∈{C , B , A}<br />
% Testphase<br />
Satz 7.1:<br />
1) ℒ ,TM=ℒ 0<br />
2) ℒ ,LBA=ℒ 1<br />
Beweis 1):<br />
"⊆": Simulation von Turingmaschine durch Typ-0-Grammatik<br />
Satzformen: Konfigurationen der Turingmaschine<br />
Ableitschritte: Schritte der Turingmaschine<br />
Nonterminale der Grammatik:<br />
- Zustände der TM<br />
- Felder des Arbeitsbandes in 2 Spuren<br />
1. Spur: Sicherung der Eingabe<br />
2. Spur: Simulation der TM
3 Phasen bei der Ableitung eines Wortes:<br />
1. Konstruktion der Anfangskonfiguration mit genügend vielen Blank an den Rändern<br />
,b m q 0 a 1 , a 1 a 2 , a 2 ...a r , a r , b n<br />
<br />
1. Spur: Eingabewort a 1... a r<br />
2. Spur: Anfangskonfiguration der Turingmaschine<br />
2. Simulation der Turingmaschine in zweiter Spur<br />
3. Projektion auf Eingabe, falls Endzustand erreicht<br />
Konstruktion von G=〈 N , , P , S 〉 mit<br />
N =Q∪ ∪{}×∪{S ,C 1 ,C 2 }<br />
und P mit den folgenden Produktionen:<br />
Phase 1:<br />
S ,b S∣q 0 C 1<br />
C 1 a ,aC 1 für alle a∈<br />
C 1 C 2<br />
C 2 ,bC 2∣ , b<br />
Phase 2:<br />
Falls q' , X ' , N ∈q , X : q a , x q' a , X ' <br />
Falls q' , X ' ,R∈q , X : qa , x a , X ' q'<br />
Falls q' , X ' , L∈q , X :b ,Y qa , x q' b ,Y a , X ' <br />
Phase 3:<br />
q falls q∈F<br />
a , X a für alle a∈∪{ }, X ∈<br />
Es folgt:<br />
w ∈LG⇔ S ⇒* w ⇔ q 0 w b├ * q X mit q∈F ⇔ w∈L <br />
Beweis für ℒ ,LBA⊆ℒ 1 analog; es sind keine ε-Regeln nötig, weil der LBA nur auf<br />
dem Eingabebereich arbeitet und der Zustand in die Paare integriert werden kann.<br />
"⊇": Sei L∈ℒ 0 mit G=〈 N , ,P ,S 〉 Typ-0-Grammatik mit L= LG.<br />
Simulation von G durch ∈TM :<br />
Idee:<br />
Neben Eingabewort Ableitungen von G simulieren und dann mit der Eingabe vergleichen.<br />
1. Anfangsphase:<br />
q 0 w b ├ *[w][S q G ]<br />
=∪N ∪{b , [ , ]}<br />
2. Simulationsphase<br />
[w][ w g ]├ [w ][ q i ] mit = X 1 ... X n , Regel i: X 1 ... X n Y 1 ...Y m<br />
X 1... X n ├ *[w][ q i ]<br />
Erkennen linker Regelseite<br />
├ [w][q i , Y 1... Y m]├ *[ w][ Y 1 ...Y m q G ]<br />
<br />
Ersetzen durch rechte Regelseite<br />
Ziel dieser Phase [w][v q g] mit v∈ *<br />
3. Vergleichsphase<br />
├ q [ ]b ...b[ ] mit Erkennung falls w=v.<br />
Bei LBA: beide Bereiche übereinanderlegen, d.h. Paare als Bandzeichen.
Satz 7.2:<br />
ℒ ,TM =ℒ , DTM <br />
Beweisidee:<br />
DTM durchsucht systematisch alle Berechnungsalternativen der TM.<br />
Offenes Problem:<br />
ℒ ,LBA ⊃?<br />
⊇ ℒ , DLBA?<br />
=?