Formale Sprachen und Komplexit¨ at
Sommersemester 2019
Kontextsensitive und Typ 0-Sprachen
Prof. Dr. David Sabel
LFE Theoretische Informatik
Letzte ¨Anderung der Folien: 29. Juni 2019
Inhalt
Typ 1- und Typ 0-Sprachen
Maschinenmodelle, die dazu passen
Turingmaschinen und linear beschr¨ ankte Turingmaschinen LBA-Probleme
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 2/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Erinnerung: Typ 1- und Typ 0-Sprachen
Typ 1: |`| ≤ |r| f¨ ur alle Produktionen ` → r Typ 1-Grammatik = kontextsensitive Grammatik aber (im Gegensatz zu Typ 2): ` ∈ (Σ ∪ V )
+Typ 0: alles erlaubt
In manchen B¨ uchern werden unsere Typ 1-Grammatik auch monotone Grammatiken genannt
In manchen B¨ uchern wird f¨ ur kontextsensitive Grammatiken gefordert: Produktionen von der Form α
1Aα
2→ α
1α
3α
2mit α
36= ε
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 3/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Kuroda-Normalform f¨ ur Typ 1-Sprachen
(benannt nach dem japanischen Linguisten Sige-Yuki Kuroda) Definition
Eine Typ 1-Grammatik G = (V, Σ, P, S) ist in Kuroda-Normalform, falls alle Produktionen in P einer der folgenden vier Formen entsprechen:
A → a A → B A → BC AB → CD
wobei a ∈ Σ und A, B, C, D ∈ V . Bemerkung: Die Kuroda-Normalform
” erweitert“ kontextfreie Grammatiken um Regeln der Form AB → CD.
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 4/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Herstellen der Kuroda-Normalform
Satz
Sei L eine kontextsensitive Sprache mit ε 6∈ L. Dann gibt es eine Grammatik in Kuroda-Normalform, die L erzeugt.
Beweis: Algorithmus 10 (n¨ achste Folie) bewerkstelligt dies.
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 5/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Algorithmus 10: Herstellung der Kuroda-Normalform
Eingabe:Eine Typ 1-GrammatikG= (V,Σ, P, S)mitε6∈L(G)
Ausgabe:Eine Typ 1-Grammatik in Kuroda-Normalform dieL(G)erzeugt.
Beginn
f¨ur allea∈Σtue
/* F¨uhre neue VariableAaf¨uraein, und ersetze Vorkommen vonadurch das Nichtterminal */
G:= (V∪{A· a},Σ,{`[Aa/a]→r[Aa/a]|`→r∈P}, S);
/* Nun sind alle Regeln von der FormA→aoderA1· · ·Am→B1· · ·BnmitAi, Bj∈V */
f¨ur alleA→B1· · ·Bn∈Pmitn >2tue SeienC1, . . . , Cn−2neue Variablen;
V :=V∪{C· 1, . . . , Cn−2};
/* Ersetze inPdie ProduktionA→B1· · ·Bndurch neue Regeln */
P:=(P\ {A→B1· · ·Bn})
∪{A→B1C1} ∪ {Ci→Bi+1Ci+1|i= 1, . . . , n−3} ∪ {Cn−2→Bn−1Bn};
f¨ur alleA1· · ·Am→B1· · ·Bn∈P mitm >2odern >2tue SeienD2, . . . , Dn−1neue Variablen;
V :=V∪{D· 2, . . . , Dn−1};
/* Ersetze inPdie ProduktionA1· · ·Am→B1· · ·Bndurch neue Regeln */
P:=(P\ {A1· · ·Am→B1· · ·Bn})
∪{A1A2→B1D2} ∪ {DiAi+1→BiDi+1|i= 2, . . . , m−1}
∪{Di→BiDi+1|i=m, . . . , n−2} ∪ {Dn−1→Bn−1Bn} Gebe die so entstandene Grammatik aus;
Entfernt allea∈Σaus den Regeln bis auf neueA→a-Regeln
“Zerhacken” von rechten Seiten wie bei Chomsky-NF Effekt:
Ableitung vorher: xA1· · ·Amy
⇒xB1· · ·Bny Ableitung nachher:
xA1A2· · ·Amy
⇒xB1D2A3· · ·Amy
⇒xB1B2D3A4· · ·Amy
⇒. . .
⇒xB1· · ·Bm−2Dm−1Amy
⇒xB1· · ·Bm−1Dmy
⇒xB1· · ·Bm−1BmDm+1y
⇒. . .
⇒xB1· · ·Bn−2Dn−1y
⇒xB1· · ·Bn−2Bn−1Bny
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 6/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Algorithmus 10: Herstellung der Kuroda-Normalform
Eingabe:Eine Typ 1-GrammatikG= (V,Σ, P, S)mitε6∈L(G)
Ausgabe:Eine Typ 1-Grammatik in Kuroda-Normalform dieL(G)erzeugt.
Beginn
f¨ur allea∈Σtue
/* F¨uhre neue VariableAaf¨uraein, und ersetze Vorkommen vonadurch das Nichtterminal */
G:= (V∪{A· a},Σ,{`[Aa/a]→r[Aa/a]|`→r∈P}, S);
/* Nun sind alle Regeln von der FormA→aoderA1· · ·Am→B1· · ·BnmitAi, Bj∈V */
f¨ur alleA→B1· · ·Bn∈P mitn >2tue SeienC1, . . . , Cn−2neue Variablen;
V :=V∪{C· 1, . . . , Cn−2};
/* Ersetze inPdie ProduktionA→B1· · ·Bndurch neue Regeln */
P:=(P\ {A→B1· · ·Bn})
∪{A→B1C1} ∪ {Ci→Bi+1Ci+1|i= 1, . . . , n−3} ∪ {Cn−2→Bn−1Bn};
f¨ur alleA1· · ·Am→B1· · ·Bn∈P mitm >2odern >2tue SeienD2, . . . , Dn−1neue Variablen;
V :=V∪{D· 2, . . . , Dn−1};
/* Ersetze inPdie ProduktionA1· · ·Am→B1· · ·Bndurch neue Regeln */
P:=(P\ {A1· · ·Am→B1· · ·Bn})
∪{A1A2→B1D2} ∪ {DiAi+1→BiDi+1|i= 2, . . . , m−1}
∪{Di→BiDi+1|i=m, . . . , n−2} ∪ {Dn−1→Bn−1Bn} Gebe die so entstandene Grammatik aus;
Entfernt allea∈Σaus den Regeln bis auf neueA→a-Regeln
“Zerhacken” von rechten Seiten wie bei Chomsky-NF Effekt:
Ableitung vorher:
xA1· · ·Amy
⇒xB1· · ·Bny Ableitung nachher:
xA1A2· · ·Amy
⇒xB1D2A3· · ·Amy
⇒xB1B2D3A4· · ·Amy
⇒. . .
⇒xB1· · ·Bm−2Dm−1Amy
⇒xB1· · ·Bm−1Dmy
⇒xB1· · ·Bm−1BmDm+1y
⇒. . .
⇒xB1· · ·Bn−2Dn−1y
⇒xB1· · ·Bn−2Bn−1Bny
Motivation f¨ ur Turingmaschinen
Einschr¨ ankungen der Kellerautomaten
PDAs erkennen genau die CFLs, daher m¨ ussen Automaten f¨ ur Typ 1- und Typ 2-Sprachen
” mehr k¨ onnen“
Wesentliche Beschr¨ ankung bei PDAs: Zugriff auf Speicher nur von oben m¨ oglich
Z.B. kann man {a
ib
ic
i| i ∈
N>0} nicht mit PDA erkennen, da man die Anzahl i
. . . beim Lesen dera0sim Keller speichert;
. . . beim Lesen derb0svergleichen muss und das geht nur durch sukzessives Entnehmen aus dem Keller;
beim Lesen derc0snicht mehr hat!
Mit beliebigem Lesen des Speichers w¨ are es kein Problem,
a
ib
ic
izu erkennen.
Turingmaschine:Illustration
· · · a
1a
2a
3· · · a
n· · · Band mit Feldern
(nach links und rechts unbeschr¨ ankt) Schreib-Lesekopf
(Bewegung nach links/rechts m¨ oglich)
endliche Steuerung
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 8/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Formale Definition der Turingmaschine
Definition (Turingmaschine)
Eine Turingmaschine (TM) ist ein 7-Tupel M = (Z, Σ, Γ, δ, z
0,
2, E) mit Z ist eine endliche Menge von Zust¨ anden,
Σ ist das (endliche) Eingabealphabet, Γ ⊃ Σ ist das (endliche) Bandalphabet, δ ist die Zustands¨ uberf¨ uhrungsfunktion
deterministische TM (DTM):
δ : Z × Γ → Z × Γ × {L, R, N}, nichtdeterministische TM (NTM):
δ : Z × Γ → P(Z × Γ × {L, R, N }) z
0∈ Z ist der Startzustand,
2
∈ Γ \ Σ ist das Blank-Symbol E ⊆ Z ist die Menge der Endzust¨ ande.
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 9/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Zustandswechsel, informell
DTM:
Ein Eintrag δ(z, a) = (z
0, b, x) bedeutet:
Falls die TM im Zustand z ist und das Zeichen a an der aktuellen Position des Schreib-Lesekopfs ist, dann
Wechsele in Zustand z
0Ersetze a durch b auf dem Band
Falls x = L: Verschiebe den Schreib-Lesekopf ein Position nach links Falls x = R: Verschiebe den Schreib-Lesekopf ein Position nach rechts Falls x = N : Lasse Schreib-Lesekopf unver¨ andert (Neutral)
NTM:
δ(z, a) ist eine Menge solcher m¨ oglichen Schritte, und die NTM macht in einem Lauf irgendeinen davon (nichtdeterministisch)
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 10/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Konfigurationen
Definition (Konfiguration einer Turingmaschine)
Eine Konfiguration einer Turingmaschine ist ein Wort k ∈ Γ
∗ZΓ
∗D.h. eine Konfiguration ist ein Wort wzw
0, sodass:
die TM ist im Zustand z,
auf dem Band steht · · ·
22ww
022· · · und
der Schreib-Lesekopf steht auf dem ersten Symbol von w
0Definition (Startkonfiguration einer TM)
F¨ ur ein Eingabewort w ist die Startkonfiguration einer TM M = (Z, Σ, Γ, δ, z
0,
2, E) das Wort z
0w.
Im Spezialfall w = ε ist die Startkonfiguration z
02D.h. am Anfang steht der Kopf auf dem ersten Symbol der Eingabe.
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 11/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Transitionsrelation einer TM
Definition (Transitionsrelation f¨ ur Konfigurationen einer TM) Sei M = (Z, Σ, Γ, δ, z
0,
2, E) eine TM. Die Relation `
Mist definiert durch (wobei δ(z, a) = (z
0, c, x) f¨ ur eine NTM (z
0, c, x) ∈ δ(z, a) meint):
b
1· · · b
mza
1· · · a
n`
Mb
1· · · b
mz
0ca
2· · · a
n, wenn δ(z, a
1) = (z
0, c, N ), m ≥ 0, n ≥ 1, z 6∈ E b
1· · · b
mza
1· · · a
n`
Mb
1· · · b
m−1z
0b
mca
2· · · a
n, wenn δ(z, a
1) = (z
0, c, L), m ≥ 1, n ≥ 1, z 6∈ E b
1· · · b
mza
1· · · a
n`
Mb
1· · · b
mcz
0a
2· · · a
n, wenn δ(z, a
1) = (z
0, c, R), m ≥ 0, n ≥ 2, z 6∈ E b
1· · · b
mza
1`
Mb
1· · · b
mcz
02,
wenn δ(z, a
1) = (z
0, c, R) und m ≥ 0, z 6∈ E za
1· · · a
n`
Mz
02ca
2· · · a
n,
wenn δ(z, a
1) = (z
0, c, L) und n ≥ 1, z 6∈ E
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 12/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Transitionsrelation einer TM (2)
Weitere Notation dazu:
`
iM: die i-fache Anwendung von `
M`
∗Mdie reflexiv-transitive H¨ ulle von `
MWenn M klar ist, schreiben wir nur `, `
i, bzw. `
∗. Bemerkung:
Wir nehmen an, dass die TM anh¨ alt, sobald sie einen Endzustand erreicht.
(Sch¨ oning-Buch erlaubt weiterrechnen)
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 13/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Akzeptierte Sprache einer TM
Definition (Akzeptierte Sprache einer TM) Sei M = (Z, Σ, Γ, δ, z
0,
2, E) eine TM.
Die von M akzeptierte Sprache L(M) ist definiert als L(M ) := {w ∈ Σ
∗| ∃u, v ∈ Γ
∗, z ∈ E : z
0w `
∗Muzv}
Triviale Beispiele:
F¨ ur Turingmaschinen der Form M = (Z, Σ, Γ, δ, z
0,
2, E) mit z
0∈ E gilt L(M) = Σ
∗, denn diese Turingmaschinen
akzeptieren jede Eingabe sofort.
F¨ ur Turingmaschinen der Form M = (Z, Σ, Γ, δ, z
0,
2, ∅) gilt L(M ) = ∅, denn sie akzeptieren nie.
Notation als Zustandsgraph
Darstellung analog zu DFA / NFA / PDA F¨ ur (z
0, b, x) ∈ δ(z, a) zeichnen wir
z z
0a : (b, x)
Beispiel (aus Sch¨ oning-Buch)
TM M = ({z
0, z
1, z
2, z
3}, {0, 1}, {0, 1,
2}, δ, z
0,
2, {z
3}) mit δ(z
0, 0) = (z
0, 0, R) δ(z
0, 1) = (z
0, 1, R) δ(z
0,
2) = (z
1,
2, L) δ(z
1, 0) = (z
2, 1, L) δ(z
1, 1) = (z
1, 0, L) δ(z
1,
2) = (z
3, 1, N ) δ(z
2, 0) = (z
2, 0, L) δ(z
2, 1) = (z
2, 1, L) δ(z
2,
2) = (z
3,
2, R) δ(z
3, 0) = (z
3, 0, N ) δ(z
3, 1) = (z
3, 1, N ) δ(z
3,
2) = (z
3,
2, N ) Zustandsgraph:
z0 z1 z2
z3
0 : (0, R), 1 : (1, R) 2: (2, L)
1 : (0, L)
0 : (1, L)
2: (1, N)
0 : (0, L), 1 : (1, L) 2: (2, R)
0 : (0, N), 1 : (1, N), 2: (2, N)
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 16/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Beispiel (Forts.)
TM interpretiert Eingabe w ∈ {0, 1}
∗als Bin¨ arzahl und addiert 1:
In z
0wird das rechte Ende gesucht, dann in z
1gewechselt In z
1wird versucht 1 zur aktuellen Ziffer hinzu zu addieren:
Gelingt das ohne ¨ Ubertrag, dann in z
2Bei ¨ Ubertrag: Weitermachen in z
1und +1 zur n¨ achsten Ziffer links In z
2: bis zum Anfang links laufen, dann in z
3.
In z
3wird akzeptiert.
z0 z1 z2
z3
0 : (0, R), 1 : (1, R) 2: (2, L)
1 : (0, L)
0 : (1, L)
2: (1, N)
0 : (0, L), 1 : (1, L) 2: (2, R)
0 : (0, N), 1 : (1, N), 2: (2, N)
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 17/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Beispiellauf
z0 z1 z2
z3
0 : (0, R), 1 : (1, R) 2: (2, L)
1 : (0, L)
0 : (1, L)
2: (1, N)
0 : (0, L), 1 : (1, L) 2: (2, R)
0 : (0, N), 1 : (1, N), 2: (2, N)
z
00011
` 0z
0011
` 00z
011
` 001z
01
` 0011z
02` 001z
11
2` 00z
110
2` 0z
1000
2` z
20100
2` z
20100
2` z
220100
2`
2z
30100
2TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 18/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
LBAs: Spezielle Turingmaschinen
Ideen und Notationen:
Linear beschr¨ ankte Turingmaschinen:
Schreib-Lesekopf darf den
Bereich der Eingabeauf dem Band
nicht verlassenZum Erkennen des Endes:
Letztes Symbol der Eingabe wird markiert Kopie des Alphabets:
F¨ ur Alphabet Σ = {a
1, . . . , a
n} bezeichne Σ =
b{
ba
1, . . . ,
ba
n}.
Eingabe bei LBAs: Statt a
1· · · a
mnun a
1· · · a
m−1ba
mTM arbeitet auf Σ
0= Σ ∪ Σ
bLinkes Ende muss die Maschine selbst markieren!
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 19/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
LBAs: Definition
Definition (LBA)
Eine NTM M = (Z, Σ ∪ Σ,
bΓ, δ, z
0,
2, E ) heißt linear beschr¨ ankt (LBA, linear bounded automaton), wenn f¨ ur alle a
1· · · a
m∈ Σ
+und
alle Konfigurationen uzvmit z
0a
1· · · a
m−1ba
m`
∗M uzvgilt:
|uv| ≤m.Die akzeptierte Sprache eines LBA M ist L(M ) :=
a
1· · · a
m∈ Σ
∗z
0a
1· · · a
m−1ba
m`
∗Muzv, wobei u, v ∈ Γ
∗und z ∈ E
Beachte: LBAs sind NTMs
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 20/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Kontextsensitive Sprachen durch LBAs erkennbar
Satz
Jede kontextsensitive Sprache wird von einem LBA erkannt.
Beweis:
Sprache sei als G = (V, Σ, P, S) in Kuroda-Normalform gegeben.
Konstruiere TM mit Bandalphabet ((Σ ∪ V ) ∪ Σ
\∪ V ∪
2) ⊆ Γ Zur einfacheren Illustration unterscheiden wir nicht zwischen a und
ba und schreiben a auch f¨ ur den letzten Buchstaben der Eingabe, aber:
Wir gehen davon aus, dass der LBA entsprechend programmiert ist, die notwendigen Ersetzungen zu machen.
Die TM versucht nichtdeterministisch f¨ ur w ∈ Σ
∗das Startsymbol S der Grammatik r¨ uckw¨ arts herzuleiten, durch r¨ uckw¨ arts Anwenden der Produktionen ` → r ∈ P : ersetze Vorkommen von r durch ` . . .
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 21/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Kontextsensitive Sprachen durch LBAs erkennbar (2)
F¨ ur Produktionen A → a, A → B, AB → CD kann man direkt ersetzen, f¨ ur den Fall A → BC wird BC durch
2A ersetzt und dann alle Zeichen von links um eins nach rechts verschoben.
Akzeptiere, wenn Startsymbol S alleine auf dem Band steht.
Nichtdeterminismus: Welche Produktion wird r¨ uckw¨ arts angewendet und f¨ ur welches Vorkommen einer rechten Seite.
Suche nach einer rechter Seite r:
Beginne links an der Eingabe und laufe diese durch.
Speichere im aktuellen Zustand: Symbol links vom Schreib-Lesekopf Entscheide mit dem aktuellen Symbol, ob es passende Produktion gibt (da rechte Seiten von Produktionen in Kuroda-Normalform aus maximal 2 Zeichen bestehen, gen¨ ugt dies).
Kontextsensitive Sprachen durch LBAs erkennbar (3)
Ersetzung r durch `:
F¨ ur A → a und A → B wird das aktuelle Symbol durch A ersetzt, anschließend wird der n¨ achste Schritt gestartet (d.h. es gibt einen Zustand, der den Schreib-Lesekopf nach links f¨ ahrt).
F¨ ur AB → CD, wird B geschrieben und der Kopf nach links wechseln, dann A geschrieben und der n¨ achste Schritt gestartet.
F¨ ur A → BC schreibe A und wechsele nach links, schreibe
2, fahre ganz nach links und starte Prozedur zum Verschieben der Zeichen nach rechts, solange bis die L¨ ucke geschlossen ist.
Verschieben nach rechts:
Zustand speichert das linkeste Symbol
Laufen nach rechts: aktuelles Symbol mit dem gespeicherten vertauschen
Vertauschen beenden nachdem
2mit einem anderen Symbol
vertauscht wird.
Kontextsensitive Sprachen durch LBAs erkennbar (4)
Die TM ist ein LBA:
Da f¨ ur alle Produktionen ` → r ∈ P gilt: |`| ≤ |r|, werden nur Teilworte r durch gleichlange oder k¨ urzere Teilworte l ersetzt TM kommt mit dem Platz der Eingabe aus
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 24/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Bemerkungen und Typ 0-Grammatiken
Bemerkung 1:
Konstruktion funktioniert auch f¨ ur Grammatiken nicht in Kuroda-Normalform, ist aber komplizierter:
Speichere im Zustand q − 1 Zeichen, wobei q die L¨ ange der l¨ angsten rechten Seite
Funktioniert immer noch mit endlich vielen Zust¨ anden und als LBA
Bemerkung 2:
Konstruktion funktioniert auch f¨ ur Typ 0-Grammatiken: Platz allerdings dann unbeschr¨ ankt (kein LBA!)
Satz
Jede Typ i-Sprache (f¨ ur i=0,1,2,3) wird von einer nichtdeterministischen Turing-Maschine akzeptiert.
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 25/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
LBAs erkennen kontextsensitive Sprachen
Satz
Sei M ein LBA. Dann ist L(M ) eine kontextsensitive Sprache.
Beweis:
Sei M = (Z, Σ ∪ Σ,
bΓ, δ, z
0,
2, E)
Wir konstruieren eine Typ 1-Grammatik G mit L(G) = L(M ) Idee f¨ ur die Grammatik:
1 Erzeuge beliebigesw∈Σ∗und Startkonfiguration von M f¨urw
2 Simuliere LBA zum Pr¨ufen, obw∈L(M)
3 Wenn LBA akzeptiert erzeugewendg¨ultig
Variablen der Grammatik:
Neue Variablen S undA Variablen der Form
u v
wobeiu∈Σundv∈Γ∪(ZΓ)
Obere Komponenten ergeben Wortw, untere Komponenten ergeben TM-Konfiguration.
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 26/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
LBAs erkennen kontextsensitive Sprachen (2)
Regeln zur Erzeugung von w ∈ Σ
∗Startkonfiguration zw:
P1:=
S →A
a ba
|a∈Σ
∪
A→A a
a
|a∈Σ
∪
A→ a
z0a
|a∈Σ
Worte w ∈ L(M) mit |w| < 2 k¨ onnen dadurch nicht erzeugt werden, daher direkt alle Worte aus L(M) der L¨ ange < 2 erzeugen:
P
0= {S → w | |w| < 2, w ∈ L(M )}
F¨ ur a
1· · · a
n∈ Σ
∗mit n > 1 gilt:
S⇒P1 A anban
⇒∗P
1
a1
z0a1
a2
a2
· · · an
ban
Regelsatz P
2simuliert M auf
den unterenKomponenten. Wir bilden:
P2:=
a u
b v
→ a
u0 b v0
|a, b∈Σunduv→u0v0∈P2unten
∪ a
u
→ a
u0
|a∈Σundu→u0∈P2unten(mitu, u0∈Γ∪(ZΓ))
wobei wir P
2untennoch definieren.
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 27/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
LBAs erkennen kontextsensitive Sprachen (3)
P
2unten:= {c za → z
0c b | f¨ ur alle c ∈ Γ und (z
0, b, L) ∈ δ(z, a)}
∪ {za c → b z
0c | f¨ ur alle c ∈ Γ und (z
0, b, R) ∈ δ(z, a)}
∪ {za → zb | f¨ ur alle c ∈ Γ und (z
0, b, N ) ∈ δ(z, a)}
Es gilt:
wzw
0`
∗Muz
0u
0g.d.w. wzw
0⇒
∗Punten 2uz
0u
0Dabei: Darstellung von z, z
0in der Ableitung immer verbunden mit einem Zeichen aus Γ
P
3: Nach Akzeptieren des LBA, erstelle aus Tupelfolgen das Wort a
1· · · a
nP
3:=
b za
→ b | z ∈ E, a ∈ Γ, b ∈ Σ
∪ b
a
→ b | a ∈ Γ, b, b
0∈ Σ
Es gilt a
1b
1· · · a
mb
ma
m+1zb
m+1a
m+2b
m+2· · · a
nb
n⇒
∗P3
a
1· · · a
n.
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 28/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
LBAs erkennen kontextsensitive Sprachen (4)
Sei
G=
{S, A} ∪
u
v
|u∈Σ, v∈Γ∪(ZΓ)
,Σ, P0∪P1∪P2∪P3, S
.
Dann gilt f¨ ur alle w ∈ Σ
∗: S ⇒
∗Gw genau dann, wenn w ∈ L(M ).
Des weiteren gilt, dass G eine kontextsensitive Grammatik ist, da es keine verk¨ urzenden Regeln gibt.
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 29/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Satz von Kuroda
Theorem (Satz von Kuroda)
Kontextsensitive Sprachen werden genau von den LBAs erkannt.
Typ 0-Sprachen
Die Konstruktion der Typ 1-Grammatik aus einem LBA kann f¨ ur beliebige NTMs angepasst werden:
Zus¨ atzliche Tupel $
c
f¨ ur c ∈ Γ ∪ ZΓ und $ ein neues Symbol.
Darstellung von Konfiguration, die l¨ anger als das Eingabewort sind:
a
1c
1
· · · a
nc
n$ c
n+1
· · ·
$
z
ic
m$ c
r
Regelsatz P
3enth¨ alt Regeln $
c
i→ ε (nicht kontextsensitiv!)
Satz
Die durch (allgemeine) nichtdeterministischen Turingmaschinen
akzeptierten Sprachen sind genau die Typ 0-Sprachen.
TM vs. NTM
Nichtdeterministische Turingmaschinen k¨ onnen durch deterministische Turingmaschinen simuliert werden:
Probiere alle Berechnungsm¨ oglichkeiten der NTM nacheinander durch
Daher gilt der letzte Satz auch f¨ ur DTM
Unterschied zwischen NTMs und DTMs kommt erst zum Tragen, wenn wir das Laufzeitverhalten betrachten (s. Kapitel zur Komplexit¨ atstheorie)
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 32/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
LBA-Probleme
1. LBA-Problem
Erkennen deterministische LBAs die selben Sprachen wie nichtdeterministische LBAs?
Bis heute ungekl¨ art!
2. LBA-Problem
Sind die kontextsensitiven Sprachen abgeschlossen unter Komplementbildung?
Formuliert 1964 von Kuroda, 1987 gel¨ ost von Neil Immerman als auch R´ obert Szelepcs´ enyi
Uberraschenderweise positiv: ¨
Theorem (Satz von Immerman und Szelepcs´ enyi) Die kontextsensitiven Sprachen sind abgeschlossen unter Komplementbildung.
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 33/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Satz von Immerman und Szelepcs´ enyi
Beweisskizze:
Sei G = (V, Σ, P, S) eine Typ 1-Grammatik mit L(G) = L.
Konstruiere LBA M f¨ ur L = Σ
∗\ L
Sei w ∈ Σ
∗. M berechnet die exakte Anzahl a ∈ N der von S aus erzeugbaren Satzformen der L¨ ange n ≤ |w|
a ≤ (|V | + |Σ| + 1)
nund kann daher in (k + 1) · n-Bits dargestellt werden: Die passen auf das Band von M, wenn man Symbole f¨ ur je k + 1-Bitbl¨ ocke hat
Anschließend: Z¨ ahle alle Satzformen u der L¨ ange ≤ |n| aus (V ∪ Σ
∗) auf (außer w selbst) und pr¨ ufe ob S ⇒
∗Gu gilt Dabei wird ein Z¨ ahler mitgef¨ uhrt, der hochgez¨ ahlt wird, wenn Ableitung m¨ oglich ist
Wenn der Z¨ ahler die Zahl a erreicht, dann akzeptiert M:
Es wurden alle ableitbaren Worte der L¨ ange ≤ n aufgez¨ ahlt, w war nicht dabei. Also w 6∈ L und damit w ∈ L.
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 34/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Satz von Immerman und Szelepcs´ enyi (2)
Berechnung der Zahl a:
Sei a(m, n) die Zahl der Satzformen, die in h¨ ochstens m Schritten aus S erzeugbar sind und deren L¨ ange n nicht
¨
uberschreitet:
a(m, n) = |{w ∈ (V ∪ Σ)
∗| |w| ≤ n, S ⇒
≤mw}|).
Wenn wir a(i, n) f¨ ur i = 0, 1, 2, . . . berechnen, muss irgendwann a(i, n) = a(i + 1, n) gelten, dann haben wir a gefunden.
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 35/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Berechnung von a(m, n)
Starte mit a(0, n) = |{S}| = 1
Berechne
result= a(m + 1, n) durch Eingabe von a(m, n) Initial:
result= 0.
Außere Schleife z¨ ¨ ahlt alle Satzformen u bis zur L¨ ange n auf
Innere Schleife z¨ ahlt nochmal alle Satzformen v bis zur L¨ ange n auf.
Vor Beginn der inneren Schleife:
count= 0
In der inneren Schleife: pr¨ ufe nichtdeterministisch, ob S ⇒
≤mv Wenn ja
count=
count+ 1;
Wenn v = u oder v ⇒ u gilt,
result=
result+ 1
Nach Ablauf der inneren Schleife, pr¨ ufe ob
count= a(m, n) gilt.
Wenn nein, dann verwerfe diese nichtdeterministische Berechnung Wenn ja, dann war dies die richtige nichtdeterministische Berechnung und es wurde f¨ ur alle in ≤ m-Schritten aus S herleitbaren
Satzformen v gepr¨ uft, ob durch Verl¨ angern mit = oder ⇒ eine der Satzformen u herleitbar ist d. h.
resultenth¨ alt den Wert a(m + 1, n).
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 36/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme
Zusammenfassung
Typ 1-Sprachen: Kuroda-Normalform Turingmaschinen (DTM und NTM) linear beschr¨ ankte NTMs (LBAs)
Satz von Kuroda: LBAs erkennen genau die Typ 1-Sprachen TMs erkennen genau die Typ 0-Sprachen
LBA-Probleme
TCS | 06 Typ 1- und Typ 0-Sprachen | SoSe 2019 37/37 Kuroda-NF TMs LBAs TMs und Typ 0 LBA-Probleme