12.07.2015 Aufrufe

4. Varianten des Turingmaschinen-Konzeptes

4. Varianten des Turingmaschinen-Konzeptes

4. Varianten des Turingmaschinen-Konzeptes

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>4.</strong> <strong>Varianten</strong> <strong>des</strong><strong>Turingmaschinen</strong>-<strong>Konzeptes</strong><strong>Varianten</strong> der Programmstruktur<strong>Varianten</strong> der Speicherstruktur<strong>4.</strong>1. VARIANTEN DER PROGRAMMSTRUKTUR:SCHLEIFENWir demonstrieren die Robustheit <strong>des</strong> <strong>Turingmaschinen</strong>-Konzepts,indem wir eine Reihe von <strong>Varianten</strong> angeben, die alle zu demGrundkonzept äquivalent sind, d.h. dieselbe Klasse von (partiell)berechenbaren Funktionen definieren.Sprechweise: Wir sagen, dass zwei Maschinen äquivalent sind, wenn sie dieselbe(partielle) Funktion berechnen, und wir sagen, dass zwei Maschinenkonzepteäquivalent sind, wenn es zu jeder Maschine <strong>des</strong> einen Konzepts eineäquivalente Maschine <strong>des</strong> anderen Konzepts gibt.Während die im Folgenden betrachtete Variante <strong>des</strong> Programm-Formats vor allem einer komfortableren Beschreibung dient, habendie <strong>Varianten</strong> <strong>des</strong> Speicherformats einen wesentlichen Einflussauf die Effizienz (Rechenzeit).Die Programme von <strong>Turingmaschinen</strong> benutzen die Konzepte der maschinennahenProgrammierung.Kontrollstrukturen sind• Sprünge• Fallunterscheidungenzusammengefasst in bedingten Anweisungen.Die der Programmzeile δ(z, a) = (a ′ , B, z ′ ) entsprechende bedingte Instruktion(z, a, a ′ , B, z ′ ) entspricht folgendem bedingten Sprung/Anweisung:z :if a auf AF thenbeginschreibe a ′ auf AF;verlege AF gemäß B;goto z ′end;Die Programmzustände dienen also als Sprungmarken.


ITERATIVE ANWEISUNGEN II: while-SCHLEIFENIn höheren Programmiersprachen werden Sprünge (und Fallunterscheidungen)durch Schleifen ersetzt. Im Folgenden führen wirsolch ein höhere Programmiersprache für das <strong>Turingmaschinen</strong>konzeptein (die sog. Turingoperatoren), die auf while-Schleifenbasiert.Iteration von f nach einem Test t : D → {0, 1}:Iter t (f)(s) = f ns (s),wobei n s das kleinste n mit t(f n (s)) = 1 ist, falls solch ein nexistiert, und Iter t (f)(s)↑ andernfalls.Wir erinnern hierzu zunächst an das Schleifenkonzept.D.h. f wird so oft ausgeführt, bis t erstmals positiv ist. Dabeiwird vor jeder Ausführung von f getestet, ob t gilt; ist t bereitszu Beginn positiv, wird also f nie ausgeführt (while-Schleife):Iter t (f)(s)ˆ= while t(s) = 0 do s := f(s)ITERATIVE ANWEISUNGEN I: for -SCHLEIFENTURINGOPERATOREN (TOs)n-fache Iteration Iter(f, n) = f n einer Operation f : D → D:Iter(f, 0)(s) = f 0 (s) = sIter(f, n + 1)(s) = f n+1 (s) = f(f n (s)) = f(Iter(f, n)(s)),D.h. es wird zu Beginn bereits festgelegt, wie oft f ausgeführtwird (klassische for -Schleife):Iter(f, n)(s)ˆ= for i = 1 to n do s := f(s)Auf Schleifen basierende <strong>Turingmaschinen</strong>-Programme definieren wir mit Hilfesog. Turingoperatoren.Solch ein Operator ist eine partielle TM-Speichertransformation basierendauf Verkettung und Iteration der elementaren TM-Operationen (Druck- undBewegungsbefehle), wobei die elementaren TM-Tests (Steht a auf dem Arbeitsfeld?)als Stoppkriterien bei den Iterationen dienen.Da die Speicherstruktur einer TM nur von deren Bandalphabet Γ abhängt,sprechen wir von Turingoperatoren P über Γ. Jeder solcher Operator P isteine partielle FunktionP : TB Γ → TB Γ ,wobei TB Γ = BI Γ × Z die Menge der Turingbänder über dem Bandalphabet Γsei.


Die Turingoperatoren (TO) P über Γ sind induktiv wie folgtdefiniert.1. R, L, S und alle a ∈ Γ sind Turingoperatoren (über Γ), wobeiR(f, z) = (f, z + 1) & L(f, z) = (f, z − 1) & S(f, z) = (f, z)a(f, z) = (f (a,z) , z) (wobei f (a,z) (z) = a und f (a,z) (z ′ ) = f(z ′ ) für z ′ ≠ z)Die Turingoperatoren dieser Gruppe sind also gerade die elementarenTM-Operationen.2. Sind P 1 und P 2 TOs, so auch P 1P 2, wobeiP 1P 2(f, z) = P 2(P 1(f, z))Verkettung (= Hintereinanderausführung) von P 1 und P 2Sprechweise: ”erst P 1, dann P 2“3. Ist P ein TO und a ∈ Γ, so ist auch [P ] a ein TO, wobei[P ] a(f, z) = Iter a? (P )(f, z).Iteration von P nach a? (wobei a?(f, z) = 1 ⇔ f(z) = a)Sprechweise: ”iteriere P so lange, bis a erstmals auf dem Arbeitsfeldsteht“Kopieroperator: K := R1R bb R0L 1 0R[1R bb 0L 1 0R] bLiegt das AF direkt vor einer endlichen Folge von Unärzahlen, so wird dieerste dieser Zahlen an das rechte Bandende kopiert und das AF wird hinterdie kopierte Zahl verlegt. Der Bandteil links der ursprünglichen Position <strong>des</strong>Arbeitsfel<strong>des</strong> wird dabei nicht verändert.K(. . . v b n 1 b n 2 b . . . n k b . . . ) = . . . v b n 1 b n 2 b . . . n k b n 1 b . . .Löschoperator: E := R[bR] bLiegt das AF direkt vor einer Unärzahl, so wird diese gelöscht und das AF wirdhinter die gelöschte Zahl verlegt. Der Rest <strong>des</strong> Ban<strong>des</strong> wird nicht verändert.E(. . . v b n b w . . . ) = . . . v b b n+1 b w . . .Durch das Löschen entsteht eine Lücke im relevanten Bandteil. Liegt diesezwischen den letzten beiden Unärzahlen auf dem Band, so kann man die Lückemit Hilfe <strong>des</strong> folgenden Transportoperators schließen.Transportoperator: T := R1L 0 RR0R 1 bR[1L 0 R0R 1 bR] b L 0 L bT (. . . v m b k+1 b n b . . . ) = . . . v m b n b . . .BEISPIELE von TOs über dem Bandalphabet Γ = {b, 0, 1}VON EINEM TO P BERECHNETE (PARTIELLE) FUNKTIONRechts- und Linksoperatoren (a ∈ Γ):R a := [R] a und L a := [L] aVerlege das AF so lange nach rechts (links), bis es erstmals den Buchstabena enthält! (Steht a bereits auf dem AF, so wird das AF nicht verlegt!)Bandendeoperatoren:R bb := R b R[R b R] b L und L bb := L b L[L b L] b RVerlege das AF so lange nach rechts (links), bis erstmals das AF und seinrechtes (linkes) Nachbarfeld beide leer sind!Stellt man sicher, dass im relevanten Bandteil niemals zwei Blanks direkt nebeneinanderstehen, so wird das AF an das rechte (linke) Ende <strong>des</strong> relevantenBandteils verlegt.Die von einem TO P über Γ beschriebene Speichertransformation kann manals Rechnung auffassen. Fügt man den üblichen Ein- und Ausgabemechanismusvon <strong>Turingmaschinen</strong> hinzu, so erhält man die von P berechnete Funktion(en).Seien Σ, T ⊆ Γ − {b} und m ≥ 0. Die von dem TO P über Γ berechnetepartielle Funktionϕ P,Σ,T,m : (Σ ∗ ) m → T ∗ist durchϕ P,Σ,T,m ( ⃗w) = out(P (in( ⃗w))gegeben, wobei in und out wie die Ein- und Ausgabefunktion einer TuringmaschineM = (Σ, m, T, Γ, Z, z 0, δ) über dem Bandalphabet Γ zur Berechnungvon Funktionen vom Typ (Σ ∗ ) m → T ∗ definiert sind (wobei bei der Ausgabe(von in) bzw. bei der Eingabe (von out) der Zustand unterdrückt wird).


BEISPIELE:1. Die in einem früheren Beispiel beschriebene Vorgehensweise zur Berechnungder Summe zweier Zahlen lässt sich mit einem TO wie folgt beschreiben:Da Ein/Ausgabe bei TOs und TMs gleich definiert ist, genügtes folgen<strong>des</strong> Lemma zu zeigen.P + = R[R] b 0[L] b RbRb = RR b 0L b RbRb2. Die Funktion f(n) = 2n wird von den folgenden Operatoren (jeweils aufunterschiedliche Weise) berechnet:LEMMA. Zu jedem TO P über Γ gibt es eine Turingmaschine Müber dem Bandalphabet Γ mit Startzustand α M und ausgezeichnetem(Stopp-)Zustand ω M , sodass für alle Bänder (f, z) über Γgilt:P f = R bb R0L bb RbR[R bb 0R0L bb RbR] bP ′ f = K0L bbRbRbP ′′f = KL bbP +(i) Ist P (f, z) definiert, so ist die maximale mit (α M , (f, z)) beginnendeKonfigurationenfolge endlich und endet mit der Stoppkonfiguration(ω M , P (f, z)).Bei TOs gehen wir (wie bei TMs) davon aus, dass Zahlen in der modifiziertenUnärdarstellung n = 0 n+1 gegeben sind.(ii) Ist P (f, z) undefiniert, so ist die maximale mit (α M , (f, z))beginnende Konfigurationenfolge unendlich.ÄQUIVALENZ VON TURINGMASCHINEN UND TURINGOPE-RATORENBEWEIS DES LEMMAS:<strong>Turingmaschinen</strong> und Turingoperatoren berechnen dieselben Zahlfunktionen.D.h. fürgilt:• F(TM) (n) = {ψ : N n → N : ψ partiell TM-berechenbar}F(TM) = ⋃ n≥0 F(TM)(n) und F tot(TM) = {f ∈ F(TM) : f total}• F(TO) (n) = {ψ : N n → N : ψ partiell TO-berechenbar}F(TO) = ⋃ n≥0 F(TO)(n) und F tot(TO) = {f ∈ F(TO) : f total}SATZ. F (tot) (TO) = F (tot) (TM).Wir zeigen zunächst nur die Inkusion F (tot) (TO) ⊆ F (tot) (TM). Die andereInklusion werden wir später zeigen.Der Beweis ist durch Induktion nach Aufbau (= Länge) <strong>des</strong> TO P .1. P = a ∈ Γ oder P = B ∈ Bew. Dann besteht das Programm δ von M ausden Instruktionen (α M , a ′ , a, S, ω M ) bzw. (α M , a ′ , a ′ , B, ω M ) für alle a ′ ∈ Γ.2. P = P 1P 2. Nach I.V. gibt es dann die die TOs P i simulierenden MaschinenM i mit Zustandsmengen Z i und ausgezeichneten Zuständen α Mi und ω Mi (i =1, 2). Durch eventuelles Umbenennen der Zustände können wir erreichen,dass Z 1 ∩ Z 2 = {ω M1 } und ω M1 = α M2 gilt. Das Programm von M ist dann dieVereinigung der Programme von M 1 und M 2, α M = α M1 und ω M = ω M2 .3. P = [P 1] a (a ∈ Γ). Nach I.V. gibt es dann eine den TO P 1 simulierendeMaschine M 1 mit ausgezeichneten Zuständen α M1 und ω M1 . Das Programmder Maschine M erhält man aus dem Programm von M 1 durch Hinzufügender Instruktionen (α M , a, a, S, ω M ) und (α M , a ′ , a ′ , S, α M1 ) (für alle a ′ ≠ a), wobeiα M = ω M1 während ω M neu ist.


k-BAND-TURINGMASCHINENSeien Σ, T, Γ Alphabete mit Σ ∪ T ⊆ Γ \ {b} und seien k, m ≥ 1.<strong>4.</strong>2 VARIANTEN DER SPEICHERSTRUKTUR:MEHRBAND-TURINGMASCHINEN UNDHALBBAND-TURINGMASCHINENEine k-Band-Turing-Basismaschine M mit Bandalphabet Γ zur Berechnungm-stelliger partieller Funktionen von Σ ∗ nach T ∗ wird durch ein TupelM = (k, Σ, m, T, Γ, Z, z 0, δ)gegeben, wobei k die Anzahl der Bänder ist und - wie bei den bisher betrachteten(1-Band-)TMs - Σ, T und Γ das Eingabe-, Ausgabe- und Bandalphabet, Zdie endliche Menge der Zustände und z 0 ∈ Z der ausgezeichnete Startzustandsind. Das Programm δ ist nun eine partielle Funktion vom Typδ : Z × Γ k → (Γ × Bew) k × Z.Eine ’Zeile’ δ(z, a 1, . . . , a k ) = (a ′ 1 , B1, . . . , a′ k , B k, z ′ ) von δ (in Tabellenform dargestellt)wird als bedingte Anweisung (z, a 1, . . . , a k , a ′ 1 , B1, . . . , a′ k , B k, z ′ ) mitBedingungsteil (z, a 1, . . . , a k ) und Anweisungsteil (a ′ 1 , B1, . . . , a′ k , B k, z ′ ) gelesenund wie folgt interpretiert: Stehen im Programmzustand z die Buchstabena 1, . . . , a k auf den Arbeitsfeldern der k-Bänder von M, so werden diese zunächstmit a ′ 1 , . . . , a′ k neu beschriftet und dann gemäß den Bewegungen B1, . . . , B k verlegt.Schließlich wird z ′ als neuer Zustand angenommen.MEHRBAND-TURINGMASCHINENARBEITSWEISE DER k-BAND-TM MDer Speicherzugriff bei <strong>Turingmaschinen</strong> ist recht umständlich.Man erhält effizientere Speicherstrukturen, wenn man mehrereKöpfe oder mehrere Bänder (mit je einem Kopf) zulässt (oderbei<strong>des</strong>). Die Anzahl der Köpfe bzw. Bänder ist dabei fest, die Zugriffeder verschiedenen Köpfe bzw. auf die verschiedenen Bändervoneinander unabhängig.Wir formalisieren hier das Konzept der k-Band-TM (k ≥ 1) undüberlassen die Formalisierung der (weniger populären) k-KopfTM (oder allgemeiner k-Kopf-k ′ -Band-TM) als Übung. Unserbisheriges Konzept wird gerade der Spezialfall der 1-Band-TMsein.Wir verzichten auf eine formale Beschreibung der Arbeitsweise der k-Band-TM M, da sich diese aus der bereits gegebenen Interpretation der einzelnenInstruktionen entsprechend zum Fall der 1-Band-TM leicht angeben lässt.(Z.B. ist eine Konfiguration nun ein Tupel (f 1, p 1, . . . , f k , p k , z), wobei (f i, p i)das i-te Band und z der (Programm-)Zustand ist.)Festlegen müssen wir hierzu lediglich noch den Ein- und Ausgabemechanismusvon M:EINGABE• Die Eingabe wird rechts <strong>des</strong> Arbeitsfel<strong>des</strong> auf das ansonstenleere erste Band geschrieben. Die anderen Bänder sind leer.AUSGABE• Die Ausgabe wird dem letzten Band rechts <strong>des</strong> Arbeitsfel<strong>des</strong> entnommen.


RECHENZEIT UND PLATZBEDARF DER k-BAND-TM MRechenzeit und Platzbedarf sind in Entsprechung zum Fall der Einbandmaschinedefiniert:RECHENZEITTerminiert M bei Eingabe ⃗x, so ist die Rechenzeit von M bei Eingabe ⃗x,time M (⃗x), die Länge der Rechnung. Terminiert M nicht, so ist time M (⃗x) undefiniert.PLATZBEDARFDie Größe einer Konfiguration ist nun die kleinste Zahl s, sodass der relevanteBandteil aller Bänder im Adressintervall [−s, +s] liegt. Hieraus erhält manden Platzbedarf dann wie gehabt: Terminiert M bei Eingabe ⃗x, so ist derPlatzbedarf von M bei Eingabe ⃗x, space M (⃗x), das Maximum der Größen derin der Rechnung vorkommenden Konfigurationen. Terminiert M nicht, so istspace M (⃗x) undefiniert.Programm δ der Maschine M wobei Z = {0, . . . , 5}, z 0 = 0 und i = 0, 1:Z × Γ × Γ → Γ × Bew × Γ × Bew × Z0 b b b R b S 11 i b i R i L 11 b b b L b S 22 i b i L b S 22 b b b R b R 33 i i b R b R 33 i 1 − i b S b L 43 b b b S 0 L 44 b b b S 0 L 5EIN BEISPIEL FÜR DIE HÖHERE EFFIZIENZ VON MEHRBAND-TMsWir betrachten die Sprache der Palindrome über dem binären Alphabet:A = {w ∈ {0, 1} ∗ : w = w R }Eine 2-Band-TM M = (2, {0, 1}, 1, {1}, {b, 0, 1}, Z, z 0, δ), die A erkennt (d.h.die charakteristische Funktion c A von A berechnet) arbeitet anschaulich wiefolgt:(1) Lese die Eingabe w (von links nach rechts) und schreibe gleichzeitigdas Spiegelwort w R (von rechts nach links) auf Band 2.(2) Setze den Kopf auf Band 1 vor die Eingabe w zurück.(Der Kopf auf Band 2 steht bereits vor w R !)(3) Lese w auf Band 1 und w R auf Band 2 gleichzeitig (jeweils von linksnach rechts). Wird ein Unterschied gefunden, so wird 0 (= 0) ausgegeben,andernfalls 1 (= 00).Die Rechenzeit von M ist linear, d.h. time M (w) = O(|w|).Das naive Programm zur Lösung <strong>des</strong> Palindromproblems auf einer1-Band-TM hat dagegen einen Zeitbedarf der GrößenordnungO(|w| 2 ): Hier vergleicht man den ersten mit dem letztenBuchstaben, streicht diese und führt (bei Gleichheit) das Verfahrenrekursiv für das Restwort aus. Dies erfordert je VergleichO(|w|), O(|w| − 2), O(|w| − 4), ... Schritte, da das Wort w bzw.das aktuelle Restwort hierzu durchlaufen werden muss.Man kann tatsächlich zeigen, dass jede 1-Band-TM zur Lösung<strong>des</strong> Palindromproblems für unendlich viele Eingaben einen derGrößenordnung nach quadratischen Zeitbedarf hat. Dies zeigt,dass Mehrband-TMs im allgemeinen effizienter als 1-Band-TMssind, weshalb man bei Komplexitätsfragen das Mehrband-TM-Modell zugrundelegt.Mehrband-TMs sind jedoch nicht prinzipiell mächtiger als 1-Band-TMs.


BANDREDUKTIONSSATZ.Das Mehrband-<strong>Turingmaschinen</strong>-Konzept ist äquivalent zum (1-Band-)<strong>Turingmaschinen</strong>-Konzept. D.h. zu jeder k-Band-TuringmaschineM = (k, Σ, m, T, Γ, Z, z 0 , δ) mit k ≥ 1 gibt es eine äquivalente(1-Band-)TM M ′ = (Σ, m, T, Γ ′ , Z ′ , z ′ 0 , δ′ ).Gehen wir davon aus, dass m = 1 und time M (x) ≥ |x| stets gilt,so lässt sich Zeit- und Platzbedarf von M ′ wie folgt abschätzen:time M ′(x) ≤ O(time M (x) 2 )space M ′(x) ≤ space M (x) + O(1)D.h. die Einschränkung auf ein Band kann zu einem quadratischenZeitverlust führen aber zu (praktisch) keinem Platzverlust.BEWEISIDEE (Fortsetzung):Das Programm δ ′ von M ′ besteht dann aus 3 Teilprogrammen δ ′ = δ ′ 1 ∪ δ′ 2 ∪ δ′ 3mit folgenden Funktionen:δ 1 ′ : Überführung der Startkonfiguration in das (kodierte) Format der Mehrbandmaschine.δ 2 ′ : Schritt-für-Schritt-Simulation von M: Beginnend im Zustand [z, a1, a2]und dem Arbeitsfeld am linken Rand <strong>des</strong> relevanten Bandteils, simuliertM ′ die bedingte M-Instruktion I = (z, a 1, a 2, a ′ 1 , B1, a′ 2 , B2, z′ ), indem es diekodierten M-Arbeitsfelder aufsucht und deren Inschriften und Positionenaktualisiert, dann an den linken Rand <strong>des</strong> relevanten Bandteils zurückläuftund in den Zustand [z ′ , a ′ 1 , a′ 2 ] geht.δ 3 ′ : Überführung der kodierten Stoppkonfiguration der Mehrband-Maschinein die äquivalente Stoppkonfiguration der 1-Band-Maschine.BEWEISIDEE:BEWEIS (Teil 1): Das Bandalphabet Γ ′ von M ′Die 1-Band-TM M ′ simuliert die gegebene k-Band-TM M Schrittfür-Schritt.D.h. jeder Rechenschritt von M wird durch eine geeigneteRechenschrittfolge von M ′ simuliert.Hierzu wählt man das Bandalphabet Γ ′ von M ′ so, dass (intuitiv)das Band in 2k Spuren zerlegt wird, wobei zu jedem Band von Mzwei dieser Spuren korrespondieren. In der oberen Spur wird dasArbeitsfeld <strong>des</strong> k-ten Ban<strong>des</strong> durch ein + (sonst −) markiert,während die untere Spur die Bandinschrift enthält.In der folgenden Beschreibung der Details der Konstruktion beschränkenwir uns auf den Fall k = 2 und m = 1.Im Folgenden beschreiben wir M ′ formal, wobei wir uns jedoch auf den Falleiner 2-Band-TM M (d.h. k = 2) zur Berechnung einer 1-stelligen Funktion(d.h. m = 1) beschränken.Γ ′ = Γ ∪ {(σ 1, a 1, σ 2, a 2) T : σ 1, σ 2 ∈ {+, −} & a 1, a 2 ∈ Γ} ∪ {[, ]}• (σ 1, a 1, σ 2, a 2) beschreibt die Inschriften der 4 Spuren eines Fel<strong>des</strong>von links nach rechts (d.h. der transponierte Vektor (σ 1, a 1, σ 2, a 2) Tbeschreibt diese von oben nach unten):σ i gibt an, ob es sich um das Arbeitsfeld von M auf Band i handelt,und a i ist die Feldbeschriftung auf Band i (i = 1, 2).• Mit [ und ] klammern wir den in die Spurendarstellung gebrachten,relevanten Bandteil ein.


BEWEIS (Teil 2): Das Teilprogramm δ ′ 1Das Programm δ ′ 1 muss für ein Eingabewort w = w(0) . . . w(n) ∈ Σ∗ (n ≥ −1)die folgende Konfigurationentransformation leisten (wir markieren das M ′ -Arbeitsfeld mit ↑ statt ):+ − −. . . bw(0) . . . w(n)b . . .∗⇒ M′ . . . [ b w(0) . . . w(n) ] . . .↑ ↑ + − −z 0 ′ [z 0, b, b] b b bDies wird realisiert durch:Z ′ × Γ ′ → Γ ′ × Bew × Z ′z 0 ′ b b L 11 b [ R 22 b (+, b, +, b) T R 33 a ∈ Σ (−, a, −, b) T R 33 b ] L 44 a ∈ Γ ′ − {[} a L 44 [ [ S [z 0, b, b]BEWEIS (Teil 4): Das Teilprogramm δ ′ I von δ′ 2 (Arbeitsweise)Das Teilprogramm δ ′ I zur Simulation von I = (z, a1, a2, a′ 1 , L, a′ 2 , R, z′ ) muss dieKonfiguration− + − − − −. . . [ . . . a 1,l a 1 a 1,r . . . aˆ1,l â 1 aˆ1,r . . . ] . . .↑ − − − − + −[z, a 1, a 2] aˆ2,l â 2 aˆ2,r a 2,l a 2 a 2,rin folgende Konfiguration überführen:+ − − − − −. . . [ . . . a 1,l a ′ 1 a 1,r . . . aˆ1,l â 1 aˆ1,r . . . ] . . .↑ − − − − − +[z ′ , a ′ 1 , a′ 2 ] aˆ2,l â 2 aˆ2,r a 2,l a ′ 2 a 2,rHierbei muss das M-Arbeitsfeld AF1 auf Band 1 nicht links <strong>des</strong> M-Arbeitsfel<strong>des</strong> AF2 aufBand 2 liegen, sondern es kann auch rechts davon oder an der selben Stelle liegen. Weitermuss, falls AF1 direkt rechts von [ bzw AF2 direkt links von ] liegt, der relevante Bandteilentsprechend erweitert werden, um die erforderliche Links- bzw. Rechtsbewegung durchführenzu können.Die Idee <strong>des</strong> folgenden Programmes δ I ′ ist, zunächst das 1. Band zu aktualisieren,dann das 2. Band.BEWEIS (Teil 3): Das Teilprogramm δ ′ 2Das Programm δ 2 ′ besitzt für jede bedingte Instruktion I vonM ein Programmstück δ I′ zur Simulation von I. Die Strukturvon δ I ′ hängt dabei von den Bewegungsbefehlen in I ab. Von den9 = 3·3 möglichen Fällen betrachten wir hier nur einen typischenFall (Linksbewegung auf Band 1; Rechtsbewegung auf Band 2),d.h. wir nehmen an, dass I die GestaltI = (z, a 1 , a 2 , a ′ 1 , L, a′ 2 , R, z′ )entsprechend der Programmzeilehat.δ(z, a 1 , a 2 ) = (a ′ 1 , L, a′ 2 , R, z′ )BEWEIS (Teil 5): Das Teilprogramm δ ′ I von δ′ 2 (Definition)Z ′ Γ ′ Γ ′ Bew Z ′[z, a 1, a 2] [ [ R [z, a 1, a 2, −, −][z, a 1, a 2, −, −] (−, a, +/−, a ′ ) T (−, a, +/−, a ′ ) T R [z, a 1, a 2, −, −][z, a 1, a 2, −, −] (+, a 1, +/−, a ′ ) T (−, a ′ 1 , +/−, a′ ) T L [z, a 1, a 2, ←, −][z, a 1, a 2, ←, −] (−, a, +/−, a ′ ) T (+, a, +/−, a ′ ) T L [z, a 1, a 2, +, −]←[z, a 1, a 2, +, −]← (−, a, +/−, a ′ ) T (−, a, +/−, a ′ ) T L [z, a 1, a 2, +, −]←[z, a 1, a 2, +, −]← [ [ R [z, a 1, a 2, +, −][z, a 1, a 2, ←, −] [ (+, b, −, b) T L [z, a 1, a 2, +, −][[z, a 1, a 2, +, −][ b [ R [z, a 1, a 2, +, −][z, a 1, a 2, +, −] (+/−, a, −, a ′ ) T (+/−, a, −, a ′ ) T R [z, a 1, a 2, +, −][z, a 1, a 2, +, −] (+/−, a, +, a 2) T (+/−, a, −, a ′ 2 )T R [z, a 1, a 2, +, →][z, a 1, a 2, +, →] (+/−, a, −, a ′ ) T (+/−, a, +, a ′ ) T L [z, a 1, a 2, +, +] ←[z, a 1, a 2, +, +] ← (+/−, a, +/−, a ′ ) T (+/−, a, +/−, a ′ ) T L [z, a 1, a 2, +, +] ←[z, a 1, a 2, +, +] ← [ [ S [z ′ , a ′ 1 , a′ 2 ][z, a 1, a 2, +, →] ] (−, b, +, b) T R [z, a 1, a 2, +, +]][z, a 1, a 2, +, +]] b ] L [z, a 1, a 2, +, +] ←


BEWEIS (Teil 6): Das Teilprogramm δ ′ 3 (Arbeitsweise)Die Simulationsphase ist beendet, wenn M ′ einen Zustand [z, a 1, a 2] erreicht,sodass δ(z, a 1, a 2) undefiniert ist. Der 3. Programmteil von δ ′ stellt dann dieAusgabe für das 1-Bandmodell her, indem es im Bereich der Ausgabe dieSpurendarstellung auflöst und nur die Inschrift <strong>des</strong> 2. Ban<strong>des</strong> (<strong>des</strong> Ausgabeban<strong>des</strong>)bewahrt. D.h. für je<strong>des</strong> [z, a 1, a 2] mit δ(z, a 1, a 2) ↑ wird δ 3 ′ die Konfigurationσ 1,0 σ 1,1 σ 1,n+1 σ 1,n+2. . . [ . . . a 1,0 a 1,1 . . . a 1,n+1 a 1,n+2 . . . ] . . .↑ + − − −[z, a 1, a 2] a 2 v(0) v(n) a(wobei v = v(0) . . . v(n) ∈ T ∗ (n ≥ −1) und a ∈ Γ \ T) in die Konfigurationσ 1,n+2. . . b v(0) . . . v(n) a 1,n+2 . . . ] . . .↑−z e′ aüberführen (z ′ e ist der ’Stoppzustand’ von M ′ ).BEWEIS (Teil 8): Komplexität von M ′PLATZBEDARF: Da nur die Randmarken hinzugefügt werden müssen, gilt(1) space M ′(x) ≤ space M(x) + O(1)ZEITBEDARF: Die Rechenzeit setzt sich zusammen ausInitialisierung: Die Zeit ist linear in der Eingabenlänge beschränkt, also(2 1) time in(x) ≤ O(|x|) ≤ O(time M(x))Simulation: Die Zeit um einen M-Schritt zu simulieren ist linear beschränkt in der Längeder aktuellen M ′ -Konfiguration, also wegen (1) linear beschränkt in space M(x). Da (wegentime M(x) ≥ |x|), space M(x) linear beschränkt in time M(x) ist, folgt(2 2) time sim(x) ≤ time M(x) · O(time M(x))Endphase: Die Zeit ist linear in den Konfigurationenlängen beschränkt, weshalb (wie oben)Insgesamt gilt also:(2 3) time out(x) ≤ O(time M(x))(2) time M ′(x) = time in(x) + time sim(x) + time out(x) ≤ O(time M(x) 2 )BEWEIS (Teil 7): Das Teilprogramm δ ′ 3 (Definition)Z ′ × Γ ′ → Γ ′ × Bew × Z ′[z, a 1, a 2] [ b R →→ (+/−, a, −, a ′ ) b R →→ (+/−, a, +, a ′ ) b R convertconvert (+/−, a, −, a ′ ) (a ′ ∈ T) a ′ R convertconvert (+/−, a, −, a ′ ) (a ′ ∉ T) (+/−, a, −, a ′ ) L ←← a ∈ T a L ←← b b S z e′Hierbei ist in der ersten Programmzeile [z, a 1, a 2] ein beliebiger M ′ -Zustand,für den δ(z, a 1, a 2) ↑ gilt; a, a ′ ∈ Γ beliebig.Hiermit ist δ ′ und damit M ′ vollständig beschrieben.Weitere Speichervarianten bei <strong>Turingmaschinen</strong>:• Mehrdimensionale <strong>Turingmaschinen</strong>Im 2-dimensionalen Fall bestehen hier die Felder aus denKästchen“ der Zahlenebene, d.h. die Adressierung der Feldererfolgt hier durch Z 2 . Bei den Kopfbewegungen kommen”entsprechend die Befehle O ( nach oben“) und U ( nach unten“)hinzu. Den höher dimensionalen Fall beschreibt man” ”analog.• Halbband-<strong>Turingmaschinen</strong>Hier ist das Band (oder die Bänder) nur nach rechts unbeschränkt,d.h. die Adressen sind natürliche statt ganzerZahlen.


Auch hier lässt sich wiederum die Äquivalenz zum ursprünglichenKonzept zeigen. Wir betrachten hier nur den Fall der Halbband-Maschinen.Beweisidee für die Simulation einer (Vollband-) TuringmaschineM durch eine Halbband-TM M ′ mit Hilfe einer Variante der Spurentechnik:Das M ′ -Halbband besteht aus 2 Spuren, wobei dieobere Spur die rechte Bandhälfte von M und die untere Spur diegespiegelte linke Bandhälfte aufnimmt. (D.h. anschaulich, dassman vor Beginn der Rechnung das M-Band am Arbeitsfeld zerschneidetund die linke Bandhälfte unter die rechte Bandhälfteumklappt.)Sowohl Rechenzeit als auch Platzbedarf von M und M ′ sind linear korreliert,d.h. Zeit- und Platzkomplexität von (1-Band-)TMs und Halbband-TMs unterscheidensich nur um einen linearen Faktor.Eine weitere Variante <strong>des</strong> Speichers erhalten wir durch Normierung <strong>des</strong> Bandalphabets:Eine Turingmaschine M = (Σ, m, T, Γ, Z, z 0, δ) ist Bandalphabet-normiert wennΓ = Σ ∪ T ∪ {b, 0, 1}gilt (wobei 0, 1 in Σ ∪ T vorkommen dürfen). Als zusätzliche Hilfszeichen werdenim Speicher neben dem Blank also höchstens die Bits 0 und 1 zugelassen.NORMIERUNGSSATZ. Zu jeder (k-Band-)Turingmaschine M gibt es eineäquivalente Bandalphabet-normierte (k-Band-)Turingmaschine M ′ . Weiter gilt,dass time M ′(x) ≤ O(time M (x)) und space M ′(x) ≤ O(space M (x)).BEWEISIDEE: Im Speicher von M ′ werden die Buchstaben a i <strong>des</strong> BandalphabetesΓ = {a 1, . . . , a n} durch deren Binärkodierung 0 i 1 n−i dargestellt. JederBuchstabe aus Γ wird also durch einen Block der Länge n von Buchstabenüber dem normierten Bandalphabet dargestellt, weshalb sich der Platzbedarfum den Faktor n erhöht. Entsprechen<strong>des</strong> gilt für die Zeit, da das Lesen eineskodierten Buchstabens aus Γ die Zeit O(n) erfordert. Ähnliches gilt für dasSchreiben und das Verlegen <strong>des</strong> M-Arbeitsfel<strong>des</strong>.BEMERKUNG: Ähnlich zeigt man die Äquivalenz von <strong>Turingmaschinen</strong>und 2-Stapel-Maschinen (oder – wie man meist sagt– 2-Kellermaschinen oder 2-Push-Down-Automaten). Der Speichereiner k-Stapel-Maschine über dem Speicheralphabet Γ bestehtaus k Stapeln (stacks) über Γ. Bei der Simulation stellt mandie linke Bandhälfte der TM durch den ersten Stapel, die rechteBandhälfte durch den zweiten Stapel dar (und umgekehrt).1-Stapel-Maschinen sind dagegen weit weniger mächtig, wie wirim Teil über Formale Sprachen sehen werden.KONKLUSION:Das “minimalistische” <strong>Turingmaschinen</strong>modell ist äquivalent zu“komfortableren” Modellen, die man durch Veränderungen <strong>des</strong>Programmformats bzw. der Speicherstruktur erhält. Für Untersuchungen<strong>des</strong> Berechenbarkeitsbegriffs sowie der Grenzen derBerechenbarkeit ist das Grundmodell daher ausreichend.Die betrachteten Erweiterungen der Turingmaschine erlauben jedochz.T. schnellere Verfahren. Für Komplexitätsuntersuchungenist das Basismodell daher nicht adäquat. Hier werden wirdas Mehrband-<strong>Turingmaschinen</strong>modell zugrundelegen.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!