You are on page 1of 7

' $

k-Band-Turingmaschinen – 1

Def. Eine k-Band-Turingmaschine, k ≥ 2, ist eine Turingmaschine


M = (Q, Γ, Σ, B, q0 , F, δ) mit modfizierter Übergangsfunktion
δ : Q × Γk → Q × Γk × {L, R, N}k
(wie bisher i.a. nur partiell definiert). M hat also k Bänder, wovon jedes
Slide 1 einen eigenen LSK besitzt. Die Aktionen dieser LSKe werden durch einen
gemeinsamen Zustand synchronisiert. Ein Schritt
δ(q, a1 , . . . , ak ) = (q ′ , a′1 , . . . , a′k , D1 , . . . , Dk )
bedeutet (i = 1, . . . , k): Falls in q auf Band i das Symbol ai gelesen wird,
so ersetze ai durch a′i , bewege LSK i in Richtung Di und gehe in q ′ .

Ein-/Ausgabe erfolgt auf Band 1. Konfiguration, Akzeptierungs-


modus wird analog zu Turingmaschinen (1 Band) definiert.
& %

' $
k-Band-Turingmaschinen – 2

Satz (k-Band-Turingmaschinen).
Sei M = (Q, Γ, Σ, B, q0 , F, δ) eine k-Band-Turingmaschine. Dann findet
man eine Turingmaschine M ′ , die das gleiche Ein-/Ausgabe-Verhalten
wie M besitzt, d.h. LM ′ = LM (bzw. fM ′ = fM ) und HM ′ = HM .

Slide 2 Idee: Das Band von M ′ hat 2k+1 Spuren und jeder M -Konfiguration
(illustriert für k = 2)

Bd 1 ··· B an ··· a1 a b1 ··· bm B ···


↑q
Bd 2 ··· B cr ··· c1 c d1 ··· ds B ···
↑q
entspricht die folgende M ′ -Konfiguration:
& %
' $
k-Band-Turingmaschinen – 3

··· B an ··· a1 a b1 ··· bm B ···


··· B ∗ B ···
··· B cr ··· c1 c d1 ··· ds B ···
··· B ∗ B ···
Slide 3 ··· B  B ··· ··· B  B ···
↑q

Band i = Spur 2i − 1 (Alphabet Γ)

Kopfposition auf Band i = Marke ∗ in Spur 2 · i (Alphabet {∗, B})

Anfang und Ende = Marken  und  in Spur 2k + 1
(Alphabet {, , /, B})
Die Simulation von M durch M ′ erfolgt in zwei (Wortproblem) bzw.
drei (Berechnungsproblem) Phasen.
& %

' $

k-Band-Turingmaschinen – 4

Auf Eingabe x = (a1 , . . . , an ) ∈ Σ∗ arbeitet M ′ wie folgt:


1. Initialisierung: Aus initM ′ (x) erzeuge die Konfiguration
       
a1 a2 an B
 ∗  B B   ∗ 
       
B B B   B 
Slide 4
 ∗  B B   ∗ 
       
(q0 ,  .. )  ..  . . .  ..  bzw. (q0 ,  .. ) für n = 0.
 .   .   .   . 
B B B   B 
       
 ∗  B B   ∗ 
 B  /
Ab nun haben die Konfigurationen von M ′ die Form (q, V0 )V1 . . . Vl ,
wobei Vi ein entsprechendes Bandsymbol mit 2k+1 Spuren“ ist, und

(V0 [2k + 1] =  und Vl [2k + 1] = ) oder V0 [2k + 1] = / für l = 0.
& %
' $
k-Band-Turingmaschinen – 5
2. Simulation eines M -Schrittes: aktuell (q, V0 )V1 . . . Vl mit q ∈ Q.
a) Der LSK fährt von  nach  und wieder zurück, speichert dabei die
mit ∗ markierten Symbole b1 , . . . , bk in den Spuren 1, 3, . . . , 2k − 1.
b) M ′ bestimmt δ(q, b1 , . . . , bk ) in der Steuereinheit.
1. Fall: δ(q, b1 , . . . , bk ) ↑. Dann hält M ′ im Zustand q bei einem
Slide 5 Wortproblem; andernfalls springt M ′ in die Nachbereitungsphase 3.
2. Fall: δ(q, b1 , . . . , bk ) = (q ′ , b′1 , . . . , b′k , D1 , . . . , Dk ).
LSK-Bewegung wie in a): Jedes bi in Spur 2i−1 mit Marke ∗ wird
durch b′i ersetzt; ferner wird ∗ im Fall Di = R in der L-R-Bewegung
um 1 Feld nach rechts versetzt, und bei Di = L um 1 Feld nach links
in der R-L-Bewegung. Wird dabei ∗ rechts von  (links von )
gesetzt, so wird  () um 1 Feld nach rechts (links) versetzt.
Fahre LSK auf  zurück, gehe in den Zustand q ′ , d.h. springe zu a).
& %

' $

k-Band-Turingmaschinen – 6
3. Nachbereitung: (Ausgabe von fM (x)) Gelte δ(q, b1 , . . . , bk ) ↑.
(In der aktuellen Konfiguration existiert also eine Zelle V = (b1 , ∗, . . .)
mit Marke ∗ auf Spur 2. Diese Position (b1 ) ist der mögliche Anfang der
Ausgabe fM (x) von M ′ — falls b1 = B so ist fM (x) = ε)
Slide 6
a) M ′ fährt den LSK auf das erste Blanksymbol in Spur 1 rechts von
der Zelle V = (b1 , ∗, . . .).
b) Auf Zelle V zurückfahrend wird nun jedes Bandsymbol
V ′ = (c1 , . . . , c2k+1 ) durch c1 ersetzt, insbesondere auch V durch b1 .
Halte auf b1 im Zustand q.

& %
' $

Zeit- bzw. Platzkomplexität – 1

Def. Sei M = (Q, Γ, Σ, . . .) eine k-Band-TM (k ≥ 1) und x ∈ Σ∗ .



 #Schritte, die M auf x ausführt, falls M auf x hält
• tM (x) :=
 ∞, sonst.
Slide 7 • sM (x) := #verschiedener Zellen, auf die die Köpfe von M bei
Eingabe x schreibend zugreifen (∈ N ∪ {∞}).
• TM (n) := sup{tM (x) | x ∈ Σn } worst-case-Zeitkomplexität
• SM (n) := sup{sM (x) | x ∈ Σn } worst-case-Platzkomplexität
• M heißt b(n)-zeitbeschränkt bzw. b(n)-platzbeschränkt, für ein
b : N → R+ , falls ∀n ∈ N : TM (n) ≤ b(n) bzw. SM (n) ≤ b(n).

& %

' $
Zeit- bzw. Platzkomplexität – 2

Bem. sM (x) < ∞ ist möglich, auch wenn x ∈ / HM . Ferner umfaßt


sM (x) alle einmal besuchten Zellen, auch die nur gelesenen (Lesen ist
ein Speziellfall des schreibenden Zugriffs: δ(q, a) = (q, a, D)), bis auf
eventuell diejenige Zelle, auf der M hält. Insbesondere gilt sM (ε) = 0,
falls M auf ε sofort“ hält.

Slide 8 • Für x ∈ HM gilt |fM (x)| ≤ |x| + tM (x) und sM (x) ≤ k · tM (x).

Zusatz (k-Band-Turingmaschinen). Ist M eine t(n)-zeitbeschränkte


und s(n)-platzbeschränkte k-Band-TM und ist M ′ die skizzierte M
simulierende Turingmaschine (1 Band), so gilt:
• M ′ ist s(n)-platzbeschränkt.
• M ′ ist O(t(n) · s(n))-zeitbeschränkt.
• M ′ ist O(t(n)2 )-zeitbeschränkt.
& %
' $

Unterprogrammtechnik – 1 (vgl. Aufgabe 2, Übungsblatt 3)

Bei der Konstruktion einer TM M kann man eine gegebene (o.E.)


1-Band-TM M ′ als Unterprogramm verwenden.
1. Initialisierung. In einem Zustand q schreibt M das mit aktueller
Kopfposition beginnende, maximale Σ-Wort x auf ein (anfänglich
Slide 9 leeres) Band k und stellt dessen LSK auf den Anfang von x.
2. Aufruf M ′ . Durch Umschalten auf den Startzustand von M ′
arbeitet nun M auf Band k wie M ′ auf Eingabe x.
3. Fortsetzung M , falls M ′ auf x hält, etwa in q̂. Variante 1
• M löscht Inschrift von Band k.
• M setzt Rechnung an ursprünglicher Kopfposition fort, in einem
1 0
Zustand qret , falls q̂ ∈ F , andernfalls in qret .
& %

' $

Unterprogrammtechnik – 2

3. Fortsetzung M , falls M ′ auf x hält. Variante 2


• M ersetzt x auf Band 1 durch fM ′ (x).
• M löscht Inschrift von Band k.
• M setzt Rechnung an ursprünglicher Kopfposition in einem
Slide 10
Zustand qret fort.
Bem. Für das Löschen der Bandinschrift muß M stets Anfang und
Ende der Bandinschrift kennen. Geht! (vgl. Aufgabe 1, Übungsblatt 3)

Variante. Das Löschen der Bandinschrift ist unnötig, falls M ′ eine


TM mit einseitig unbeschränktem Band ist. Hier schreibt M die Eingabe
x für M ′ stets rechts an das Ende der Inschrift von Band k.

& %
' $

Unterprogrammtechnik – 3

Zusatz (Variante). Soll M ′ von M in verschiedenen Situationen


(Zuständen) während der Rechnung aufgerufen und das Ergebnis
weiterverarbeitet werden, so schreibt M neben der Eingabe x für M ′
1 0
auch die Rücksprungadressen qret und qret (bzw. qret bei Variante 2)
rechts an das Ende der Inschrift von Band k, d.h. M erweitert die
Slide 11 Inschrift von Band k um
1 0
#qret #qret #x (bzw. #qret #x bei Variante 2)
und startet dann M ′ auf x.

Bem. In ähnlicher Weise können auch rekursive Unterprogramme


oder sich gegenseitig aufrufende rekursive Unterprogramme
realisiert werden.
& %

' $

Textsuche (engl. pattern matching“) – 1



Lemma (Textsuche). Sei Σ ein Alphabet mit # ∈ / Σ. Dann gibt es eine
3-Band-TM MMuster , die auf Eingabe a1 . . . an #b1 . . . bm ∈ Σ+ {#}Σ+
die folgende Ausgabe“ out auf Band 2 erzeugt:
 ”
 bin(j) falls j = min{i | b . . . b
i i+n−1 = a1 . . . an } existiert
out :=
Slide 12  ε sonst

Dabei soll die Eingabe erhalten bleiben und im Falle, daß j existiert, soll
der LSK von Band 1 auf bj stehenbleiben.

Beweis. Auf Eingabe x ∈ (Σ ∪ {#})∗ arbeitet MMuster wie folgt:


1. Syntaxcheck. Teste, ob x = a1 . . . an #b1 . . . bm ∈ Σ+ {#}Σ+ .
Falls nein“, gib ε auf Band 2 aus.

& %
' $
Textsuche – 2

2. Initialisierung. Erzeuge die folgende Konfiguration:

··· B a1 ··· an # b1 ··· bm B ···


Bd 1
··· B ∗ B ···
↑q
Slide 13 Bd 2 ··· B Zähler pos := 1 B ···
↑q
Bd 3 ··· B a1 ··· an B ···
↑q

Damit betritt man nun eine Schleife“, in der man (von links nach

rechts lesend) Buchstabe für Buchstabe das Muster a1 . . . an mit
einem Teilwort im Text b1 . . . bm zu matchen“ versucht.
& %

' $

Textsuche – 3

3. Wiederhole. (a, b = aktuelle Zeichen auf den Bändern 3 und 1.)


• Falls a = B, so fahre LSK 1 auf das Feld mit Marke ∗ und halte.
• Falls a = b 6= B, bewege LSKe 1 und 3 um ein Feld nach rechts.
Slide 14 • Falls a 6= b und b 6= B, so
– erhöhe Zähler (pos)2 binär um 1,
– fahre LSK 1 und LSK 3 auf ∗ bzw. a1 zurück,
– verschiebe Marke ∗ um 1 Feld nach rechts (LSK 1 steht auf ∗).
• Falls a 6= b und b = B, so gib ε auf Band 2 aus.

Man überlegt sich leicht, daß dies das Gewünschte leistet.

& %

You might also like