09.09.2013 Aufrufe

Das zweite LBA-Problem

Das zweite LBA-Problem

Das zweite LBA-Problem

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.

Referatsausarbeitung<br />

Thema: <strong>Das</strong> <strong>zweite</strong> <strong>LBA</strong>-<strong>Problem</strong><br />

Vorlesung:<br />

Sequentielle und parallele Komplexitätstheorie<br />

Übung<br />

Dozent Datum Referenten<br />

Dr. Renate Winter 08.01.1998 Marcus Hörning<br />

Michael Muth<br />

Ronny Böhm<br />

Inhalt<br />

1 GRUNDLAGEN .......................................................................................................................................... 1<br />

1.1 WAS SIND <strong>LBA</strong>’S? ................................................................................................................................... 1<br />

1.2 KONTEXTSENSITIVE SPRACHEN ................................................................................................................ 1<br />

2 DIE <strong>LBA</strong>-PROBLEME............................................................................................................................... 2<br />

2.1 DIE GESCHICHTE DES ZWEITEN <strong>LBA</strong>-PROBLEMS ....................................................................................... 2<br />

2.2 WAS SIND <strong>LBA</strong>-PROBLEME ...................................................................................................................... 2<br />

3 BEWEIS....................................................................................................................................................... 3<br />

3.1 ALGORITHMUS FÜR DAS KOMPLEMENT VON A........................................................................................... 3<br />

3.1.1 Konstruktion .................................................................................................................................... 3<br />

3.2 DIE FUNKTION F(N).................................................................................................................................. 4<br />

3.2.1 Voraussetzungen .............................................................................................................................. 4<br />

3.2.2 A als kontextsensitive Sprache ......................................................................................................... 4<br />

3.2.3 Berechnung von g(n) mit linearem Platzverbrauch........................................................................... 5<br />

3.2.4 Analyse ............................................................................................................................................ 6


DAS ZWEITE <strong>LBA</strong>-PROBLEM<br />

1 Grundlagen<br />

1.1 Was sind <strong>LBA</strong>’s?<br />

<strong>LBA</strong> steht für Linear Beschränkte Automaten. Sie dienen zur Charakterisierung von kontextsensitiven<br />

Sprachen. Ein <strong>LBA</strong> ist definiert als ein Tupel M = (Σ, Q, δ, q0, F, 0) mit:<br />

− Σ ist eine endliche Menge von erlaubten Eingabesymbolen,<br />

− Q ist eine endliche Menge von Zuständen,<br />

− δ ist eine Überführungsrelation bzw. im deterministischen Fall eine Überführungsfunktion:<br />

Q×{0} → Q×{0}×{-1, 0, 1},<br />

− q0 ist der Anfangszustand,<br />

− F ⊆ Q ist die Menge der End- oder Finalzustände und,<br />

− 0 ist ein Symbol aus Σ und dient als Beschränkungsmarkierung.<br />

Eine Menge (oder Sprache) U ⊆ Σ* heißt lt. Def. von einem <strong>LBA</strong> akzeptiert, wenn gilt:<br />

U = {p | p ∈ (Σ\{0})* ∧ ∃q (q ∈ F ∧ [q0, p] a [q, 0])}.<br />

Ein <strong>LBA</strong> ist also eine Turingmaschine, die anstatt eines möglicherweise unendlichen Bandes, auf dem sie<br />

rechnen kann, auf den Teil des Bandes beschränkt ist, der die Eingabe und die Beschränkungssymbole enthält.<br />

Der Begriff „linear beschränkt“ rührt daher, daß die Bandgröße der TM nun eine lineare Funktion der<br />

Eingabelänge ist. Wichtig hierbei ist, daß das 0-Symbol anfangs auf dem Band ist, wo es als beidseitige<br />

Begrenzungsmarkierung fungiert, aber nicht zum Wort selbst gehört.<br />

Zeichenerklärung:<br />

− Großbuchstaben A, B, C und S stehen für Nichtterminale<br />

− Kleinbuchstaben a, b und c stehen für Terminale<br />

− oft stehen dabei x, y, z, u, v und w für Zeichenketten aus diesen<br />

− griechische Kleinbuchstaben stehen hier für Zeichenketten aus Terminalen und Nichtterminalen<br />

1.2 Kontextsensitive Sprachen<br />

Kontextsensitive Sprachen sind solche Sprachen, die von einer kontextsensitiven Grammatik erzeugt werden<br />

können. Im Allgemeinen bedeutet eine Produktion α → β, daß in Ableitungen die Zeichenkette α durch die<br />

Zeichenkette β ersetzt werden kann.<br />

Eine kontextsensitive Grammatik ist ein System von Produktionen der Form α → β mit |β| ≥ |α|. So<br />

sind zum Beispiel ABA → ACA und ABA → AbacCbA zulässige Produktionen, nicht aber ABA → AA.<br />

Zusätzlich ist die Produktion S → ε erlaubt, wenn S Startsymbol ist und nie auf der rechten Seite einer<br />

Produktion auftritt.<br />

Der Name „kontextsensitiv“ entspringt einer Normalform, in der alle Produktionen die Form αBγ → α<br />

βγ mit nichtleerem β haben. Die von kontextsensitiven Grammatiken erzeugten Sprachen heißen<br />

kontextsensitive Sprachen. Und dies sind genau die Sprachen, die von einer beidseitig beschränkten NTM, dem<br />

<strong>LBA</strong>, erkannt werden.<br />

1<br />

Marcus Hörning, Michael Muth, Ronny Böhm<br />

1


DAS ZWEITE <strong>LBA</strong>-PROBLEM<br />

2 Die <strong>LBA</strong>-<strong>Problem</strong>e<br />

2.1 Die Geschichte des <strong>zweite</strong>n <strong>LBA</strong>-<strong>Problem</strong>s<br />

Die Lösung des sogenannten <strong>zweite</strong>n <strong>LBA</strong>-<strong>Problem</strong>s kam 1987 völlig überraschend und unabhängig von einem<br />

Amerikaner und einem Slowaken gleichzeitig. <strong>Das</strong> Resultat besagt unter anderem, daß die Klasse der kontextsensitiven<br />

Sprachen unter Komplementbildung abgeschlossen ist.<br />

<strong>Das</strong> <strong>Problem</strong> wurde im Jahre 1964 von S.Y. Kuroda (Classes of languages and linearbounded<br />

automata, Inform. Contr. 7 (1964), 207-233) gestellt. Die Bedeutung der beiden <strong>LBA</strong>-<strong>Problem</strong>e wurde immer<br />

wieder hervorgehoben und diskutiert. Im Jahre 1987 schien dann die Zeit irgendwie „reif“ geworden zu sein.<br />

Völlig unabhängig voneinander wurde das <strong>zweite</strong> <strong>LBA</strong>-<strong>Problem</strong> von einem amerikanischen Wissenschaftler,<br />

N. Immerman (NSPACE is closed under complement, SIAM Journal on Computing 17 (1988), 935-938) und<br />

einem slowakischen Studenten, R. Szelepcsényi (The method of forced enumeration for nondeterministic<br />

automata, Acta Informatica 26 (1988), 279-284)) gelöst.<br />

Interessant: Der Beweis ist wesentlich einfacher, als man dies bei einem 23 Jahre lang ungelösten <strong>Problem</strong><br />

erwartet hätte. Außerdem ist die Lösung gerade komplementär zu der Vermutung, die zuvor<br />

bestand.<br />

2.2 Was sind <strong>LBA</strong>-<strong>Problem</strong>e<br />

Kuroda zeigte in seiner Arbeit von 1964, daß die Klasse der Sprachen, die durch nichtdeterministische linear<br />

band-beschränkte TM (<strong>LBA</strong>) erkannt werden, mit der Klasse der kontextsensitiven Sprachen übereinstimmt.<br />

<strong>Das</strong> Resultat – in heutiger Terminologie ausgedrückt – besagt:<br />

NSPACE(n) = ksS<br />

• <strong>Das</strong> erste <strong>LBA</strong>-<strong>Problem</strong> ist die Frage, ob deterministische und nichtdeterministische <strong>LBA</strong>’s äquivalent<br />

sind, also:<br />

NSPACE(n) = DSPACE(n) ?<br />

Der Lösung dieses <strong>Problem</strong>s am nächsten kommt der Satz von Savitch (J. Savitch: Relationships between<br />

nondeterministic and deterministic tape complexities. Journal of Computer and Systems Sciences 4 (1970),<br />

177-192), der besagt, daß folgendes gilt:<br />

für alle s(n) ≥ log n, also:<br />

NSPACE(s(n)) ⊆ DSPACE(s 2 (n))<br />

NSPACE(n) ⊆ DSPACE(n 2 ).<br />

• <strong>Das</strong> <strong>zweite</strong> <strong>LBA</strong>-<strong>Problem</strong> ist die Frage, ob die Klasse der durch nichtdeterministische <strong>LBA</strong>’s<br />

akzeptierbaren Sprachen komplementabgeschlossen ist:<br />

NSPACE(n) = co-NSPACE(n) ?<br />

Aus der negativen Lösung des <strong>zweite</strong>n <strong>LBA</strong>-<strong>Problem</strong>s ergibt sich natürlich sofort die negative Lösung des<br />

ersten <strong>LBA</strong>-<strong>Problem</strong>s, denn DSPACE(n) ist komplementabgeschlossen.<br />

<strong>Das</strong> <strong>zweite</strong> <strong>LBA</strong>-<strong>Problem</strong> ist nun gelöst (das erste aber nach wie vor ungelöst). <strong>Das</strong> Resultat ist also, daß die<br />

Klasse NSPACE(n) unter Komplement abgeschlossen ist, im Gegensatz zur vorherigen allgemeinen<br />

Vermutung! (Daraus ergibt sich jedoch noch keine unmittelbare Folgerung auf das erste <strong>LBA</strong>-<strong>Problem</strong>).<br />

2<br />

Marcus Hörning, Michael Muth, Ronny Böhm<br />

2


DAS ZWEITE <strong>LBA</strong>-PROBLEM<br />

Aus dem folgenden Beweis ergibt sich sofort:<br />

für alle s(n) ≥ log n.<br />

NSPACE(s(n)) = co-NSPACE(s(n))<br />

3 Beweis<br />

Ziel dieses Beweises ist es, ausgehend von einem nichtdeterministischen Algorithmus zur Erkennung einer<br />

Sprache, einen ebenfalls nichtdeterministischen Algorithmus zu konstruieren, welcher unter linearer Platzbeschränkung<br />

das Komplement eben dieser Sprache erkennt. Gelingt dieses, wäre damit gezeigt, daß gilt:<br />

NSPACE(n) = co-NSPACE(n).<br />

3.1 Algorithmus für das Komplement von A<br />

3.1.1 Konstruktion<br />

Wir gehen nun also davon aus, daß sich die Mitgliedschaft in einer Sprache A mittels eines (bezüglich gewisser<br />

Resourcenbeschränkungen im Moment nicht näher spezifizierten) nichtdeteterministischen Algorithmus′ M<br />

entscheiden läßt. Desweiteren solle die Anzahl der Wörter in A zu einer gegebenen Länge durch eine<br />

„einfach“ 1 zu berechnende Funktion f : N ⎯ → N berechnet werden können.<br />

Unter Berücksichtigung dieser Voraussetzungen läßt sich der folgende Algorithmus M’ zur Entscheidung von<br />

A konstruieren:<br />

(1) INPUT x;<br />

(2) k := f(|x|);<br />

(3) p := 0;<br />

(4) FOR y ∈ Σ * , |y| = |x| DO<br />

(5) Starte M auf y;<br />

(6) IF M akzeptiert THEN<br />

(7) IF y = x THEN REJECT;<br />

(8) p := p + 1;<br />

(9) END;<br />

(10) END;<br />

(11) IF p = k THEN ACCEPT ELSE REJECT.<br />

Dieser Algorithmus entscheidet also, ob das als Eingabe bereitgestellte Wort x im Komplement von A enthalten<br />

ist (x ∈ A ?). Nach dem Einlesen der Eingabe x in Zeile (1) wird in Zeile (2) mittels der o.g. Funktion f die<br />

Anzahl der Wörter in A berechnet, deren Länge gleich der von x ist. In der Schleife (4) - (10) werden alle über<br />

dem Alphabet Σ * möglichen Wörter y, deren Länge der von x entspricht, durchlaufen. Hierbei wird M auf jedes<br />

y angesetzt, und die von M akzeptierten Wörter werden gezählt. Falls ein solches von M akzeptiertes Wort<br />

identisch mit x ist, verwirft der Algorithmus die Eingabe, da x dann nicht im Komplement von A liegen kann.<br />

Dieses Zählen ist notwendig, um nach Beendigung der Schleife sicherstellen zu können, daß alle y ∈ A<br />

betrachtet und von M akzeptiert wurden.<br />

Die Korrektheit dieses Algorithmus’ läßt sich recht einfach überlegen. Gilt x ∉ A, so muß die nichtdeterministische<br />

Rechnung, welche M auf y durchführt, in jeder Iteration akzeptieren, falls y ∈ A. Somit gilt<br />

nach Beendigung der Schleife: p = k, d.h., es wurden alle y ∈ A innerhalb der Schleife von M korrekt als solche<br />

erkannt. Da keines dieser y identisch mit x war, gilt folglich, daß x im Komplement von A liegt (x ∈ A ).<br />

1<br />

„Einfach“ bedeutet hier, daß der Aufwand zum Berechnen von f nicht den Gesamtaufwand für die Bearbeitung<br />

der zugrundeliegenden <strong>Problem</strong>atik übersteigt.<br />

3<br />

Marcus Hörning, Michael Muth, Ronny Böhm<br />

3


DAS ZWEITE <strong>LBA</strong>-PROBLEM<br />

Wir haben nun also einen Algorithmus M’ konstruiert, der zur Entscheidung von A herangezogen werden<br />

kann. Betrachten wir nun die Zeit- und Platzkomplexität unseres neuen Algorithmus’, wobei uns für die<br />

Beweisführung insbesondere letztere interessiert. Hierfür setzen wir für M die Zeitkomplexität tM(n) und die<br />

Platzkomplexität sM(n) voraus. Die Funktion f möge in Zeit tf(n) und mit Platz sf(n) berechnet werden können.<br />

Für den neuen Algorithmus ergibt sich somit:<br />

Zeitkomplexität: tf(n) + 2 O(n) ⋅ tM(n)<br />

Platzkomplexität: sf(n) + O(n) + sM(n)<br />

Die erste Komponente der Zeitkomplexität ist die für die Berechnung von f erforderliche Zeit. In der Schleife<br />

werden alle Wörter y über dem Alphabet Σ * , für die |y| = |x| gilt, betrachtet, und M wird auf jedes y angesetzt.<br />

Für ein Alphabet Σ mit zwei Zeichen (z.B. Σ = {0,1}) wird die Schleife höchstens 2 n -mal durchlaufen, wobei in<br />

jeder Iteration M ausgeführt wird. Da die Schleife in Zeile (7) vorzeitig verlassen werden kann, ergibt sich die<br />

Laufzeit für die Schleife zu 2 O(n) ⋅ tM(n). Die Platzkomplexität setzt sich zunächst aus dem von f und M<br />

benötigten Platz zusammen. Hinzu kommt der vom eigentlichen neuen Algorithmus benötigte Platz. Dieser<br />

setzt sich hauptsächlich aus den beiden Wörtern x und y zusammen. Da beide linearen Platz beanspruchen<br />

(|x| = |y| = n), ergibt sich diese dritte Komponente der Platzkomplexität zu O(n).<br />

Wir verfügen nun über Informationen zur Zeit- und Platzkomplexität unseres Algorithmus’ zur Entscheidung<br />

von A . Sei nun A eine kontextsensitive Sprache, dann gilt: A ∈ CSL = NSPACE(n). Falls es nun gelingt, f(n)<br />

mit linearer Platzkomplexität zu berechnen, gilt somit nach unseren Erkenntnissen über die Platzkomplexität:<br />

A ∈ NSPACE(O(n)) = NSPACE(n). Um den Beweis nun zum Ziel zu führen, ist noch zu zeigen, wie f mit<br />

linearer Platzbeschränkung berechnet werden kann.<br />

3.2 Die Funktion f(n)<br />

3.2.1 Voraussetzungen<br />

Die Berechnung der Funktion f(n) erfolgt ebenfalls auf nichtdeterministischem Wege. Wir wollen nun also eine<br />

nichtdeterministische, linear platzbeschränkte Maschine zur Berechnung von f konstruieren. Zuvor sollte<br />

jedoch überlegt werden, über welche Eigenschaften der Algorithmus verfügen muß, um f innerhalb des<br />

Algorithmus für A korrekt berechnen zu können. Es sind hauptsächlich folgende Eigenschaften von der<br />

nichtdeterministischen Maschine, welche f berechnet, zu erwarten:<br />

1. Jede nichtdeterministische Rechnung ist entweder „erfolgreich“, wobei ein berechneter Zahlenwert<br />

ausgegeben wird, oder sie endet mit „nicht erfolgreich“.<br />

2. Mindestens eine Rechnung ist erfolgreich, liefert also einen Ausgabewert.<br />

3. Alle erfolgreichen Rechnungen liefern denselben Wert, nämlich f(n).<br />

Diese Forderungen an die f(n) berechnende Maschine stellen sicher, daß wir stets ein Ergebnis erhalten,<br />

welches eindeutig ist, d.h., es können bei verschiedenen (erfolgreichen) nichtdeterministischen Rechnungen<br />

nicht verschiedene Werte geliefert werden.<br />

3.2.2 A als kontextsensitive Sprache<br />

Es besteht nun die Aufgabe, die Funktion f entsprechend den obigen Bedingungen zu realisieren. Dazu geht<br />

man von der Kontextsensitivität der Sprache A aus. Zu dieser Sprache existiert eine entsprechende<br />

kontextsensitive Grammatik G mit Variablenmenge V und Terminalalphabet Σ, welche die Sprache A erzeugt.<br />

Man definiere für alle n,i ∈ N Teilmengen T n i von ( V ∪ Σ ) * wie folgt:<br />

T n i = { x | |x| ≤ n, S ⇒ i G x }.<br />

4<br />

Marcus Hörning, Michael Muth, Ronny Böhm<br />

4


DAS ZWEITE <strong>LBA</strong>-PROBLEM<br />

Diese Teilmengen beinhalten alle Wörter x, die in höchstens i Schritten vom Startsymbol S aus durch die<br />

Grammatik G ableitbar sind. Dabei bedeutet S ⇒ i G x, daß die Satzform x in höchstens i Schritten aus dem<br />

Startsymbol S ableitbar ist.<br />

Für alle n gilt T n 0 = {S}. Dies ist unmittelbar ersichtlich, da T n 0 aller Wörter enthält, welche mit<br />

höchstens 0 Schritten aus dem Startsymbol S ableitbar sind – nur das Startsymbol selbst. Für die<br />

kontextsensitive Grammatik G ist klar, daß es für jedes n ein m gibt mit T n m = T n m+1. Einen Beweis für diese<br />

Aussage möchten wir hier nicht angeben; falls daran Interesse bestehen sollte, sei hier auf das Buch von Uwe<br />

Schöning: Theoretische Informatik kurz gefaßt, Bibl. Inst, 1992 verwiesen, in welchem diese Thematik<br />

ausführlich behandelt wird. Wir führen hier statt dessen nur eine anschauliche Begründung des Sachverhaltes<br />

an: Die Teilmengen T n i bilden nach Definition die Menge aller Wörter x, welche in höchstens i Schritten vom<br />

Startsymbol S durch die Grammatik G ableitbar sind. Man beginnt mit 0 Schritten und erhöht die Anzahl der<br />

möglichen Schritte zur Bildung von Wörter über dem Alphabet (V ∪ Σ) * sukzessive um eins. Durch diese<br />

fortschreitende Erhöhung konstruiert man die entsprechenden Teilmengen T n i , bis man eine Schrittanzahl m+1<br />

erreicht. Vergleicht man nun die Teilmengen T n m und T n m+1 miteinander, so stellt man fest, daß trotz der<br />

Vergrößerung der Anzahl der möglichen Schritte, kein neues Wort zur Menge T n m hinzugekommen ist, d.h. es<br />

konnten keine neuen Wörter mehr gebildet werden, also enthält die Menge T n m schon alle Wörter der Sprache<br />

A, welche durch die Grammatik G gebildet werden können.<br />

Sei g(n) = |T n m| nun eine Funktion, welche die Kardinalzahl der Teilmenge T n m berechnet, d.h. die<br />

Anzahl der Wörter der Sprache A, wobei m die eben beschriebene Zahl sei. Die Funktion g(n) soll hier als<br />

Realisierung der Funktion f unter den genannten Komplexitätsbedingungen aufgefaßt werden.<br />

Man kann den Algorithmus M’ soweit modifizieren, daß statt der Funktion f die Funktion g benutzt<br />

werden kann.<br />

Modifizierung des Algorithmus’ M’:<br />

1. Die FOR – Schleife in M’ läuft jetzt über alle Satzformen y, anstatt über Terminalstrings in folgender<br />

Form:<br />

FOR y ∈ ( V ∪ Σ ) * , |y| ≤ n DO.<br />

2. Anstelle „Starte M auf x“ steht „Verifiziere, daß S ⇒ * y“.<br />

Werden diese Veränderungen an M’ vorgenommen, kann f durch g ersetzt werden, .<br />

3.2.3 Berechnung von g(n) mit linearem Platzverbrauch<br />

Um den Beweis zu vervollständigen, muß gezeigt werden, daß sich g nichtdeterministisch mit linearem Platzverbrauch<br />

berechnen läßt. Dahinter verbirgt sich die sogenannte induktive Zählmethode. Und zwar berechnen<br />

wir einfach (nichtdeterministisch) rekursiv der Reihe nach 1 = |T n 0|, |T n 1|, |T n 2|, ... bis für ein m gilt<br />

|T n m| = |T n m+1|. Diese Zahl geben wir dann als g(n) aus. Was jetzt noch gebraucht wird, ist ein Verfahren,<br />

welches (nichtdeterministisch) die Teilmenge T n i+1 bzw. |T n i+1| korrekt berechnet, unter der Voraussetzung, daß<br />

aus der vorhergehenden Runde |T n i| korrekt vorliegt.<br />

Zunächst das Verfahren:<br />

(1) {Es gelte k = |T n i|}<br />

(2) p : = 0;<br />

(3) FOR y ∈ (V ∪ Σ) * , |y| ≤ n DO<br />

(4) f : = FALSE;<br />

(5) m : = 0;<br />

(6) FOR z ∈ (V ∪ Σ) * , |z| ≤ n DO<br />

(7) IF S ⇒ i G z THEN<br />

(8) m : = m + 1;<br />

(9) IF (z ⇒G y) OR (z == y) THEN f : = TRUE END;<br />

(10) END;<br />

(11) END;<br />

(12) IF m < k THEN REJECT END;<br />

(13) IF f THEN p : = p + 1 END;<br />

(14) END;<br />

5<br />

Marcus Hörning, Michael Muth, Ronny Böhm<br />

5


DAS ZWEITE <strong>LBA</strong>-PROBLEM<br />

Wie oben bereits erwähnt arbeitet das Verfahren rekursiv, d.h., in diesem Fall bezieht sich rekursiv auf die<br />

Übernahme des Wertes |T n i| aus der vorhergehenden Runde, wie dies in Zeile (1) angedeutet wird. Dieser Wert<br />

wird als Vergleichskriterium gebraucht (Zeile (12)), um festzustellen, ob bei der nichtdeterministischen<br />

Auswahl – eingerahmter Teil der Zeile (7) – alle Wörter gebildet wurden, welche in höchstens i Schritten aus<br />

dem Startsymbol S ableitbar sind. Diese Wörter bilden die Menge T n i . Auf diese Weise wird gewährleistet, daß<br />

die Anzahl p, die sich am Ende ergibt, korrekt ist.<br />

Die Bildung der Menge T n i – Zeilen (6) bis (10) – ist notwendig, da nur so die Menge T n i+1 konstruiert<br />

werden kann. Die FOR – Schleife in Zeile (6) läuft über alle Wörter z ∈ ( V ∪ Σ ) * mit einer Länge |z| ≤ n. In<br />

Zeile (7) wird dann überprüft, ob z aus S in i Schritten ableitbar ist. Wenn ja wird der Zähler m um eins<br />

inkrementiert und in der darauffolgenden IF – Anweisung geprüft, ob z durch einen zusätzlichen Schritt zu y<br />

erweitert werden kann, oder ob z schon y ist. Falls dieser Fall eintritt, wurde ein Wort der Menge T n i+1<br />

gefunden und das Flag f auf TRUE gesetzt. Wenn alle Wörter z in der inneren FOR – Schleife benutzt wurden<br />

sind, wird in Zeile (12) der schon beschriebene Vergleich m < k durchgeführt. Es ist notwendig diesen Test<br />

durchzuführen, da sichergestellt werden muß, daß wirklich alle Wörter der Menge T n i erreicht wurden. Zeile<br />

(13) schließlich testet Flag f auf TRUE und im Falle der Korrektheit des Testes wird der Zähler p um eins<br />

erhöht.<br />

Zu dem Zeitpunkt, an dem alle Wörter y der äußeren FOR – Schleife gebildet wurden sind und durch<br />

Zeile (12) kein Abbruch des Verfahrens zu irgendeinem vorherigen Zeitpunkt veranlaßt wurde, steht mit p die<br />

Anzahl der Wörter die in höchstens i Schritten aus dem Startsymbol S ableitbar sind, korrekt zur Verfügung<br />

und kann in der nächsten Rekursion als Vergleichswert benutzt werden. <strong>Das</strong> Verfahren läuft dann bis zum<br />

Erreichen des Wertes m+1, d.h., bis alle Wörter aus A gebildet worden sind.<br />

3.2.4 Analyse<br />

Zur Analyse des Verfahrens ist zu sagen, daß es in der Tat mit linearem Platzbedarf auskommt.<br />

Begründung:<br />

<strong>Das</strong> Verfahren braucht O(n) Platz für die Satzform y und O(n) Platz für die Satzform z, da beide<br />

Wörter höchstens die Länge n haben können – Bedingungen der FOR – Schleife. Dies ergibt<br />

insgesamt eine Platzkomplexität von O(n).<br />

Durch Anwendung dieser Berechnungsart von g im Algorithmus M’, kann A durch M’ so berechnet werden,<br />

daß die geforderten Komplexitätsbedingungen erfüllt werden und Ā ∈ NSPACE(O(n)) = NSPACE(n) gilt.<br />

Damit ist der Beweis zur Lösung des <strong>zweite</strong>n <strong>LBA</strong> – <strong>Problem</strong>s abgeschlossen und hat die Korrektheit der<br />

Lösung bestätigt.<br />

Literatur<br />

[1] U. Schöning: Perlen der Theoretischen Informatik<br />

6<br />

Marcus Hörning, Michael Muth, Ronny Böhm<br />

6

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!