Entscheiden, ob eine Turingmaschine eine Bewegung nach links ausgeführt hat

7

Wenn Sie eine Entscheidung für eine Maschine schreiben, um zu sehen, ob sie bei einer Eingabe von w eine Bewegung nach links ausgeführt hat oder nicht , wird gesagt, dass, wenn wir die Berechnung für fortsetzen|w|+N+1 (N : Anzahl der Zustände) Anzahl der Schritte, wir können eine Entscheidung für diese Entscheidung treffen.

Ich habe nicht verstanden warum |w|+N+1Anzahl der Schritte. Könnte jemand dies genauer erklären?

msn
quelle

Antworten:

9

|w| Zum Scannen der Eingabe sind Schritte erforderlich, wenn während dieses Scanvorgangs eine Linksbewegung ausgeführt wird.

Andernfalls befindet sich am Ende der Eingabe der Kopf der Turing-Maschine auf dem leeren Teil des Bandes (über dem ersten leeren Symbol nach der Eingabe). Angenommen, der Zustand istqi1. Wenn die Turingmaschine keinen Schritt nach links macht und im Zustand bleibtqi1, dann wird es es für immer tun (es wird sich weiter rechts auf dem unendlichen leeren Band-Ein-Zustand bewegen qi1). Aber es kann sich nach rechts bewegen und in den Zustand wechselnqi2,i1i2.

Wenn Sie mit dieser Argumentation fortfahren, sehen Sie, dass es nur zwei Möglichkeiten gibt:

  • es bewegt sich nach links oder

  • es tritt in einen Zustand ein qik+j zum zweiten mal und damit wird es für immer schleifen: qikqik+1...qik+j=qikqik+1...

Aber es gibt nur N verschiedene Zustände also höchstens N+1 Es sind weitere Schritte erforderlich, um eine solche Schleife zu erkennen.

Vor
quelle
Ich denke, dies funktioniert nur mit dieser Anzahl von Schritten, wenn die Maschine auch keine "neutrale" Bewegung ausführen kann (z. B. bleiben). Andernfalls sind einige weitere Schritte erforderlich (abhängig vom BandalphabetΓ).
Frafl
1
@frafl: Sie haben Recht (aber die Standarddefinition der Turing-Maschine enthält nicht den "Aufenthalt", sondern nur L / R). Zu diesem Zeitpunkt kann es jedoch eine gute Übung für das OP sein, sich für diese Art von TM zu entscheiden :-)
Vor dem
Vielen Dank für Ihre Antwort, aber lassen Sie mich auch folgende Fragen stellen: 1) Stimmt es immer, dass die Maschine die Eingabe zuerst bis zum Ende scannt, bevor sie etwas unternimmt (ich meine, gibt es keine Möglichkeit, dass die Maschine vorher links abbiegt? das Ende der Eingabe erreichen)? 2) Dies war die maximale Anzahl von Schritten zum Ausprobieren. Wie kann die Maschine in jedem Schritt eine Bewegung nach links erkennen?
MSN
@mahdisaeedi: 1) nein, es kann sich während des Eingabescans nach links bewegen; Wenn es sich jedoch nach links bewegt, hört Ihr Entscheider einfach auf, es zu simulieren, und bleibt bei JA stehen. 2) Der Entscheider muss die Ziel-Turing-Maschine am Eingang simulierenwSchritt für Schritt; aber wie ich in der Antwort schrieb, reicht es aus, es für zu simulieren|w|+N.+1Schritte
Vor