Une machine de Turing peut-elle décider du langage


11

Laissez

L={MM is a Turing Machine and L(M)=}.

Existe-t-il une machine de Turing R qui décide (je ne veux pas dire reconnaît) la langue L ?

Il semble que la même technique utilisée pour montrer que {AA is a DFA and L(A)=} devrait également fonctionner ici.


1
Qu'as-tu essayé? Par exemple, pouvez-vous penser à un DFA pour la langue vide? N'oubliez pas que les DFA peuvent être considérés comme des MT très limitées.
Shaull

1
Sûr. À partir de l'état de départ, passez à l'état "arrêt de rejet", quel que soit le contenu de la bande d'entrée. Cela accepte explicitement toutes les chaînes de la langue et rejette toutes les chaînes qui ne sont pas dans la langue.
Patrick87

8
@mahdisaeedi: Ce dernier est une question entièrement différente! Vous demandez s'il est décidable de décider si une MT donnée reconnaît la langue vide - et la réponse est non, voir le théorème de Rice
Shaull

Réponses:


9

Par marquage, vous entendez probablement une analyse d'accessibilité - à la recherche d'un chemin allant de l'état initial à un état acceptant. En effet, la langue d'un DFA est vide si ce chemin n'existe pas.

Commençons par un exemple expliquant pourquoi cela échoue dans les MT. Considérons une MT qui, en , ignore son entrée, mais écrit un sur sa bande, déplace la tête vers la droite et passe à l'état q 1 , puis en q 1, elle ignore à nouveau l'entrée, écrit a , déplace la tête vers la gauche et va à q 2 . Dans q 2 , s'il lit a , alors il écrit a , déplace la tête vers la droite et revient à q 1 .q0aq1q1aq2q2aaq1

C'est, la machine écrit juste et alterne entre deux états ( q 1 et q 2 ) et a toujours deux à côté d' un « s sur la bande.aq1q2a

Nous ajoutons maintenant une transition de qui, lors de la lecture de b, passe à un état d'acceptation et s'arrête.q2b

La langue de cette machine est vide. En effet, la course est toujours bloquée dans la boucle et n'atteindra jamais l'état d'acceptation. Pourtant, il existe une voie étatique vers un état acceptant. Alors qu'est-ce qui a mal tourné?q1q2

Eh bien, intuitivement, `` l'état '' d'une MT n'est pas suffisamment informatif pour décrire la suite de la course. Pour avoir toutes les informations, vous avez besoin de la configuration de la MT, qui comprend l'état, la position de la tête et le contenu de la bande. Si vous trouvez un chemin de configuration (qui est appelé une exécution ) vers une configuration acceptante, alors la langue n'est pas vide et c'est une condition siff.

Le problème avec l'utilisation de l'analyse d'accessibilité sur le graphique de configuration est qu'elle peut être infinie. C'est pourquoi décider du vide du langage est indécidable.

C'est aussi pourquoi le non-vide du langage est reconnaissable - vous pouvez effectuer un BFS sur le graphique de configuration infini. S'il existe un chemin vers un état acceptant, vous le trouverez éventuellement. S'il n'y en a pas, cependant, vous pouvez vous retrouver coincé dans une recherche infinie.


La fonction de transition d'une MT est la suivante: F (Q T) -> (Q T * {L, R}). Pourriez-vous écrire la fonction pour ignorer l'entrée?
msn

Oui. Dans ce cas, , F ( q 1 , a ) = F ( q 1 , b ) = ( q 2 , a , L ) , F ( q 2 , a ) q 1F(q0,a)=F(q0,b)=(q1,a,R)F(q1,a)=F(q1,b)=(q2,a,L) et F ( q 2 , b ) = ( q a c c , a , L ) (mais ce dernier n'est jamais atteint). F(q2,a)=(q1,a,R)F(q2,b)=(qacc,a,L)
Shaull

9

est indécidable à cause duthéorèmedeRiceA , qui déclare que les propriétés non triviales des fonctions partielles ne sont pas décidables.

  1. Il existe une MT qui n'accepte aucune chaîne. (Qui passe directement à l'état de rejet).
  2. Il existe une MT qui accepte chaque chaîne. (Qui va directement à l'état d'acceptation).

Cela signifie que les fonctions calculées par les éléments de ont une propriété non triviale. Par conséquent, A n'est pas décidable.AA

n'est décidable que dans l'hypothèse où les DFA sont encodés d'une manière spéciale comme une table de transition d'état ou etc. (nous ne pouvons pas décider si une MT n'accepte que des langues régulières, à cause du théorème de Rice!). Dans ce casthéorème de riz n'est pas applicable parce que le codage particulier d'un élément est nécessaire pour décider E . Nous ne décidons donc pas uniquement des fonctions partielles.EE

(C'est-à-dire si le problème était, décider si une MT particulière est un DFA - ou DFA calculable - et le langage accepté par elle est vide, serait indécidable via le théorème de Rice. Notez que dans ce cas A = E .)EA=E


6

Autre indice: essayez de réduire le problème d'arrêt à .L

(L'astuce d'origine est d'utiliser le théorème de Rice, mais dans ce cas, une preuve directe est également assez simple.)


@Yuval_Filmus Est-il exact de dire que cette langue n'est même pas reconnaissable par Turing?
sashas

1
Qu'est-ce que tu penses? Pouvez-vous prouver votre réclamation? Dans l'affirmative, il n'est pas nécessaire de poser la question.
Yuval Filmus

1

Lemme 1 : Si L est indécidable, le complément de L. l'est aussi

On sait que le problème d'arrêt, HTM est indécidable. Par conséquent, selon le complément du lemme 1 du problème d'arrêt, HTMc est également indécidable.

HTM ={M,x M is a TM and M halts on input x }

HTMc ={M,x M is a TM and M loops on input x }

ETM = {M M is a TM and L(M) = }

Supposons que ETM est décidable. Nous réduirons HTMc à ETM - en d' autres termes , nous montrerons comment construire une machine de Turing MHTMc qui décide HTMc à l' aide du TM, METM qui décide ETM . Cela nous donne une contradiction, car nous savons que HTMc est indécidable, et donc MHTMc cannot exist. The word “reduce” simply means solving a given problem by converting it into another problem which we already know to solve. So, the Turing Machine for HTMc can be constructed as follows:

MHTMc = “on input M,x

1. Construct the code for a TM, M1 that does the following:

M1 = "on input w

1. Simulate M on x.

2. Accept if M halts."

2. Run METM on M1

3. Accept if METM accepts, reject otherwise."

It is crucial to understand that the TM M1 is never actually simulated – such simulation could go into an infinite loop. All we are doing is constructing the code for M1.

M1 is constructed such that on any input w given to it, it will simulate M with input x. M can halt or loop on x and hence there can be two cases:

1. M1 accepts all inputs w if M halts on x. METM will reject M1 as L(M1).

2. If M loops on x, M1 will also loop for every input w given to it. Anyway, as METM is a decider it will reject and halt on input M1 as L(M1)=.

CorrectnessMETMMHTMcMHTMcMETML(M1)=Mx
MHTMc rejects if METM rejects that is L(M1) which happens if M halts on x. Thus, MHTMc decides HTMc which is a contradiction as HTMc is undecidable.


Nb:

Let R be the reduction from HTMc to ETM.

The reduction gives:

i) M,xHTMcR(M,x)ETM

M loops on input x iff the language recognised by R(M,x) accepts nothing

ii) M,xHTMcR(M,x)ETM

M halts on input x iff the language recognised by R(M,x) accepts something


0

Proof by contradicting ATM={M,wM is a Turing Machine which accepts w}, (which we know is undecidable).

Assume the existence of RTM, a TM that decides L

Use can then use RTM in the construction of a TM STM, which is a decider for ATM

STM=definition "On input M,w, where M is the encoding of a TM and w is a string:

  1. Modify M, taking into account the input w, such that the new M (call it M1) rejects all input which is not equal to w, where w is built into its description. If the input is equal to w, then M1 runs M on w and outputs whatever M outputs.

  2. Run RTM with the input M1,w

  3. Output the opposite of RTMs output."

The assumption that there exists a Turing Machine deicer for L, allows us to construct a decider for ATM, which is a contradiction.


Isn't the input of RTM a TM (without extra w)? How do you run RTM on M1,w?
xskxzr

-2

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.


Unfortunately, this intuitive argument doesn't constitute a proof. There could be a different way of deciding E, and this is not ruled out by your argument.
Yuval Filmus

yes correct, but the way i explained can someone make understand in layman language.
Manu Thakur

This site is not for laypersons. It's for academic-level theoretical computer science.
Yuval Filmus

2
All you've done is give an intuitive argument about why a particular computational technique seems to fail to solve this problem. But the question is asking for a proof that no possible technique works.
David Richerby
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.