29.08.2013 Aufrufe

Turingmaschinen.pdf

Turingmaschinen.pdf

Turingmaschinen.pdf

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 />

=?

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!