Lassen Gibt es eine Turingmaschine R, die die Sprache L ∅ entscheidet (ich meine nicht erkennt) ?
Es scheint, dass dieselbe Technik, die verwendet wurde, um zu zeigen, dass hier funktionieren sollte.
Lassen Gibt es eine Turingmaschine R, die die Sprache L ∅ entscheidet (ich meine nicht erkennt) ?
Es scheint, dass dieselbe Technik, die verwendet wurde, um zu zeigen, dass hier funktionieren sollte.
Antworten:
Mit Markieren meinen Sie wahrscheinlich die Erreichbarkeitsanalyse - die Suche nach einem Pfad vom Ausgangszustand zum akzeptierenden Zustand. In der Tat ist die Sprache eines DFA leer, wenn es keinen solchen Pfad gibt.
Beginnen wir mit einem Beispiel, warum dies in TMs fehlschlägt. Stellen Sie sich ein TM vor, das in seine Eingabe ignoriert, aber a auf sein Band schreibt , den Kopf nach rechts bewegt und in den Zustand q 1 wechselt. In q 1 ignoriert es erneut die Eingabe, schreibt a , bewegt den Kopf nach links und geht bis q 2 . In q 2 , wenn er liest ein , dann schreibt es ein , bewegt sich der Kopf nach rechts und geht zurück auf q 1 .
Das heißt, die Maschine schreibt nur und wechselt zwischen zwei Zuständen ( und q 2 ) und hat immer zwei benachbarte a auf dem Band.
Wir fügen nun einen Übergang von , der beim Lesen von b in einen akzeptierenden Zustand übergeht und anhält.
Die Sprache dieser Maschine ist leer. In der Tat bleibt der Lauf immer in der -Schleife stecken und wird niemals in den akzeptierenden Zustand gelangen. Es gibt jedoch einen staatlichen Weg zu einem akzeptierenden Staat. Also, was ist schief gelaufen?
Nun, intuitiv ist der "Zustand" eines TM nicht informativ genug, um die Fortsetzung des Laufs zu beschreiben. Um alle Informationen zu erhalten, benötigen Sie die Konfiguration des TM, die den Status, die Position des Kopfes und den Inhalt des Bandes enthält. Wenn Sie einen Konfigurationspfad (der als Ausführen bezeichnet wird ) zu einer akzeptierenden Konfiguration finden, ist die Sprache tatsächlich nicht leer und es handelt sich um eine iff-Bedingung.
Das Problem bei der Verwendung der Erreichbarkeitsanalyse im Konfigurationsdiagramm besteht darin, dass sie möglicherweise unendlich ist. Deshalb ist die Entscheidung über die Leere der Sprache unentscheidbar.
Dies ist auch der Grund, warum die Nichtleere der Sprache erkennbar ist. Sie können ein BFS für das Diagramm mit der unendlichen Konfiguration durchführen. Wenn es einen Weg zu einem akzeptierenden Zustand gibt, werden Sie ihn schließlich finden. Wenn dies jedoch nicht der Fall ist, können Sie bei einer unendlichen Suche stecken bleiben.
ist aufgrund desSatzesvonRiceunentscheidbar, der besagt, dass nicht triviale Eigenschaften von Teilfunktionen nicht entscheidbar sind.
Dies bedeutet, dass die von Elementen von berechneten Funktionen eine nicht triviale Eigenschaft haben. Daher ist A nicht entscheidbar.
nur unter der Annahme entschieden werden, dass DFAs auf spezielle Weise wie Zustandsübergangstabelle usw. codiert sind (wir können aufgrund des Satzes von Rice nicht entscheiden, ob ein TM nur reguläre Sprachen akzeptiert!). In diesem Fall ist der Satz von Rice nicht anwendbar, da die bestimmte Codierung eines Elements erforderlich ist, um über E zu entscheiden. Wir entscheiden uns also nicht nur für Teilfunktionen.
(Das heißt, wenn das Problem wäre, zu entscheiden, ob ein bestimmtes TM ein DFA - oder ein DFA-berechenbares - ist und die von ihm akzeptierte Sprache leer ist, wäre durch den Satz von Rice unentscheidbar. Beachten Sie, dass in diesem Fall A = E ist .)
Ein weiterer Hinweis: Versuchen Sie, das Halteproblem auf reduzieren .
(Der ursprüngliche Hinweis ist, den Satz von Rice zu verwenden, aber in diesem Fall ist ein direkter Beweis auch ziemlich einfach.)
Lemma 1 : Wenn L unentscheidbar ist, ist auch das Komplement von L.
Wir wissen, dass das Halteproblem unentscheidbar ist. Daher ist gemäß Lemma 1- Komplement des Stoppproblems auch unentscheidbar.
=
=
=
Angenommen, ist entscheidbar. Wir werden auf reduzieren - mit anderen Worten, wir werden zeigen, wie man eine Turingmaschine konstruiert , die Verwendung des TM entscheidet, , das . Dies gibt uns einen Widerspruch, weil wir wissen, dass unentscheidbar ist, und so kann nicht existieren. Das Wort „reduzieren“ bedeutet einfach, ein bestimmtes Problem zu lösen, indem es in ein anderes Problem umgewandelt wird, dessen Lösung wir bereits kennen. Die Turingmaschine für kann also wie folgt aufgebaut sein:
= „on Eingang
1. Konstruieren Sie den Code für ein TM, , das Folgendes ausführt:
= "am Eingang
1. Simulieren Sie auf .
2. Akzeptiere, wenn anhält. "
2. Führen auf
3. Akzeptieren Sie, wenn akzeptiert, lehnen Sie etwas anderes ab. "
Es ist wichtig zu verstehen, dass das TM niemals tatsächlich simuliert wird - eine solche Simulation könnte in eine Endlosschleife gehen. Wir konstruieren lediglich den Code für .
ist so aufgebaut, dass es bei jeder Eingabe mit der Eingabe simuliert. kann auf anhalten oder eine Schleife bilden,und daher kann es zwei Fälle geben:
1. accepts all inputs if halts on . will reject as .
2. If loops on , will also loop for every input given to it. Anyway, as is a decider it will reject and halt on input as .
: Since always halts (by our assumption), also always halts. accepts if accepts, that is if which happens if loops on .
rejects if rejects that is which happens if halts on . Thus, decides which is a contradiction as is undecidable.
Let R be the reduction from to .
The reduction gives:
i)
M loops on input x iff the language recognised by accepts nothing
ii)
M halts on input x iff the language recognised by accepts something
Proof by contradicting , (which we know is undecidable).
Assume the existence of , a TM that decides
Use can then use in the construction of a TM , which is a decider for
"On input , where is the encoding of a TM and is a string:
Modify , taking into account the input , such that the new (call it ) rejects all input which is not equal to , where is built into its description. If the input is equal to , then runs on and outputs whatever outputs.
Run with the input
Output the opposite of s output."
The assumption that there exists a Turing Machine deicer for , allows us to construct a decider for , which is a contradiction.
E={ | M is a TM and L(M)=Φ}. Is E Turing-recognizable?
E is a language, to accept language E we construct a Turing Machine. Suppose we create a Turing EM for the language E.
EM will be provided as input the encoding of another Turing machines, If that inputted machine M accepts an empty language then it will be a member of language E, else it will be not a member of language.
Suppose we have a Turing Machine M, we need to check if it accepts an empty language. Turing Machine EM have M and strings eps, a, b, aa, bb, ..... EM will check if M can reach a final state for at least on a single input, and if it accepts at least a single input it will be discarded and not included in language E. Now, see a possibility T.M M gets into a loop so M will keep on running and we couldn't decide whether it can accept or can't accept anything. Hence, this given language E is NOT RE.
PS: I think the complement of this given Language E will be RE.