03.09.2013 Aufrufe

Komplexitaet-WS-2010.. - Parallele Systeme

Komplexitaet-WS-2010.. - Parallele Systeme

Komplexitaet-WS-2010.. - Parallele Systeme

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.

30 Vorlesungsskript von E. Best / Stand: 17. Januar 2011<br />

• Das Eingabewort w wird an einer sicheren Stelle gespeichert, z.B. eingeschlossen zwischen Sonderzeichen:<br />

$lw$r. Links davon werden Wörter u über dem Alphabet {1,...,r} in systematischer<br />

Reihenfolge gemäß dem Prinzip der Breitensuche, also<br />

” der Länge nach, kürzere zuerst, und bei gleicher Länge in lexikographischer Ordnung“,<br />

also ε, 1, 2, ..., r, 11, 12, ..., 1r, 21, ..., ..., rr, 111, ... usw.,<br />

erzeugt. Da das Band von det(M) nach links unendlich ist, steht stets genug Platz zur Erzeugung<br />

solcher Wörter u zur Verfügung. Jeder endliche Pfad im Konfigurationsbaum von M(w) entspricht<br />

einem solchen u. Z.B. bedeutet u = 1332: an der Wurzel die erste Alternative wählen, danach<br />

die dritte, dann wieder die dritte, danach die zweite. Es kann sein, dass eines der erzeugten u<br />

keine Auswahl darstellt, aber andersherum (und das ist entscheidend) ist jeder Knoten durch eine<br />

solche Auswahl erreichbar. Gegeben ein Wort u ∈ {1,...,r} ∗ , simuliert det(M) rechts neben $lw$r<br />

genau den Pfad des Konfigurationsbaums von M(w) der durch u beschrieben wird (falls ein solcher<br />

Pfad vorhanden ist). det(M) hält im Endzustand, wenn der aktuell simulierte Pfad auf ein Blatt<br />

des Konfigurationsbaums von M mit q0w als Wurzel führt, das eine akzeptierende Konfiguration<br />

darstellt:<br />

input w;<br />

u := ε;<br />

do simuliere M(w) mit Hilfe der Auswahl u;<br />

if Auswahl führt auf ein Blatt mit akzeptierender Konfiguration → halte<br />

else → skip<br />

fi;<br />

generiere nächstes u<br />

od.<br />

Der else-Fall in der inneren if-Anweisung kann eintreten, wenn u zu einer Konfiguration von M<br />

führt, die nicht akzeptiert oder wenn u zu keiner Konfiguration von M führt, weil der tatsächliche<br />

Grad des Nichtdeterminismus in M kleiner ist als r. det(M) kann in der do...od-Anweisung in<br />

eine unendliche Schleife geraten kann, nicht aber in der Simulation von M(w), da diese Simulation<br />

von u kontrolliert wird. 2.2.6<br />

Die Breitensuche wird gewählt, weil gewährleistet werden muss, dass jeder Knoten des Konfigurationsbaums<br />

von M(w) tatsächlich von det(M), angesetzt auf w, erreicht wird; würde stattdessen die Tiefensuche<br />

gewählt, könnte es vorkommen, dass ein unendlich langer Ast des Baumes durchlaufen wird und eine<br />

daneben liegende akzeptierende Konfiguration ” nicht gesehen“ wird. Insbesondere wird von det(M), angesetzt<br />

auf w, jeder akzeptierende Knoten von M(w) auch besucht, und det(M) stoppt dann. Bei anderen<br />

Knoten stoppt det(M) nicht, selbst wenn diese anderen Knoten w verwerfen oder wenn sie Stopp-Knoten<br />

von M(w) sind. D.h., die obige Konstruktion führt zu einer simulierenden deterministischen Maschine,<br />

die genau dann stoppt, wenn ein akzeptierender Knoten der simulierten nichtdeterministischen Maschine<br />

erreicht wird.<br />

2.2.5 Turingmaschinen als Sprachakzeptoren<br />

Wir definieren nun die Verwendung einer Turingmaschine zum Akzeptieren von Sprachen (und kommen<br />

damit zur Signifikanz der Parameter Σ und qa,qr in der Turingmaschinendefinition). Gegeben sei ein

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!