L'ensemble de codages d'une classe de langues non triviale qui contient l'ensemble vide peut-il être récursivement énumérable?


8

Soit un ensemble non trivial de langages récursivement énumérables ( ) et soit L l'ensemble des encodages des machines Turing qui reconnaissent un langage en C : L = \ {\ langle M \ rangle \ mid L (M) \ in C \}CCCRECRELLCCL={ML(M)C}

L={ML(M)C}

Supposons que MloopyLMloopyL , où MloopyMloopy est une MT qui ne s'arrête jamais. Je me demande s'il est possible que LRELRE ?

Par le théorème de Rice, je sais que LRLR (l'ensemble des langages récursifs), donc soit LRELRE ou ¯LREL¯¯¯¯RE . Doit-il être la première option depuis MloopyLMloopyL ?


1
Vous devez expliquer votre notation. Qu'est-ce que MM ? Qu'est-ce que L(M)L(M) ? Qu'est-ce que ¯LL¯¯¯¯ ? La seule chose que vous avez expliquée est ce que RE représente, et c'est la seule chose que vous n'avez pas besoin d'expliquer.
Andrej Bauer

2
@AndrejBauer: C'est une notation assez standard. Ils veulent dire, de gauche à droite, le codage de M, la langue acceptée par MM , et le complément de LL .
Raphael

Vous voulez dire "donc soit LRELRE ou ¯LREL¯¯¯¯RE ", je suppose?
Raphael

1
il y a une extension du théorème de Rice qui décrit les conditions qui font . Je pourrais avoir le temps plus tard de l'écrire, à moins que d'autres ne le fassent. MAIS , si (ce qui est impliqué par l'existence de ), alors . Cela découle également du thm de Rice avec la preuve standard. LRELRECCMloopLMloopLLRELRE
Ran G.

@Raphael, vous avez raison.
Numérateur

Réponses:


3

Non, ce n'est pas possible. Il existe une version étendue du théorème de Rice¹ pour prouver qu'un ensemble d'index n'est pas récursivement énumérable.

Dans votre notation, le théorème déclare que si un (non trivial) contient un langage qui a un sur-ensemble approprié pas en , alors . L'intuition est qu'aucun algorithme ne peut séparer les codages de et ; ils ne peuvent pas décider que la machine ne encodée pas accepter un mot de après un certain laps de temps fini, qu'ils devaient.CCL1L1L2L2 CCLRELREL1L1L2L2L2L1L2L1

Vous avez maintenant besoin de mais , donc le théorème s'applique et n'est pas récursivement énumérable.CCC2ΣC2ΣLL


  1. L' article Wikipedia est horrible, méfiez-vous!

Puis-je prétendre que puisque nous obtenons que la machine de turing vide, qui n'accepte aucun mot et en raison du théorème de Rice nous savons que (toutes les conditions de Rice sont OK) donc parce que nous obtenons que ? L(Mloop)=L(Mloop)=EtmLEtmLLRLREtmCo-REEtmCoRELRELRE
Numérateur

@Numerator: Qu'est-ce que Etm? Dans tous les cas, n'est pas nécessairement dans , donc non. Si c'était le cas, ce raisonnement fonctionnerait, oui. LLco-REco-RE
Raphael

4

pour compléter la réponse de Raphaël, il y a une extension du théorème de Rice qui dit ce qui suit:

Théorème de Rice généralisé

Soit une propriété et Soit toutes les MT qui satisfont la propriété , c'est-à-dire Ensuite, si et seulement si toutes les conditions suivantes sont réunies:SRESRELSLSSSLS={ML(M)S}.

LS={ML(M)S}.
LSRELSRE
  1. pour toute L1,L2REL1,L2RE, si L1SL1S et L1L2L1L2 puis L2SL2S.
  2. si L1SL1S alors il existe un fini L2L1L2L1 tel que L2SL2S.
  3. La langue de «toutes les langues finies en SS'est en RE.
    (en d'autres termes, il existe une MTMSMS que si LL est une langue finie L={w1,w2,wk)L={w1,w2,wk), et (w1,w2,,wk)(w1,w2,,wk) est donné à MSMS en entrée, MM accepte uniquement si LSLS.

Revenons maintenant à la question d'origine. Nous maintenantMloopyLMloopyL donc L(Mloopy)CL(Mloopy)C. MaisL(Mloopy)=L(Mloopy)=puisque cette TM ne s'arrête jamais. Cela signifie queCC.

Voyons maintenant la première condition du théorème ci-dessus. N'IMPORTE QUELLE langueLL satisfait LL. Ainsi, pour satisfaire à la condition 1, il faut queC=REC=RE. Cependant, la question indique queCRECRE et donc, par le théorème, LRELRE.


Y a-t-il une source où je peux en savoir plus sur ce théorème? Je n'ai pas pu en trouver un en ligne qui soit satisfaisant.
Gokul

1
@Gokul On me dit que ce théorème apparaît dans le livre de Hopcroft, Motwani, Ullman, mais seulement dans sa première version (apparemment il a été supprimé dans les versions ultérieures).
Ran G.

@Ran G. Je n'ai pas pu trouver le livre mentionné pour vérifier cela, mais le numéro 3 semble faux, car pour S=RES=RE, la langue de toutes les langues finies n'est pas RERE. Vous pourriez plutôt vouloir dire une autre condition similaire:X(XLSu(F(u)WX))x(xLSu(Df(u)Wx)), où D est le codage canonique des langages finis, WW l'énumération standard de RERE langues et Ffune fonction totalement calculable. Dans ce cas, cette condition équivaut uniquement àLSLS étant RERE. (Voir H. Rogers Theory of Recursive Functions and Effective Computability p324 ) Bien que # 1 et # 2 soient suffisants ici.
Beleg

@Beleg Je ne vois pas pourquoi c'est mal. SiS=RES=RE alors toute langue finie est en SS, par conséquent, la MT qui accepte n'importe quelle chaîne (ou plutôt, toute chaîne bien formatée) est un décideur pour l'ensemble de toutes les langues finies en S. Si vous n'êtes toujours pas d'accord, continuons dans le chat informatique .
Ran G.

0

Il est possible que LLest un re set. Considérez le casC=REC=RE. alorsLLest l'ensemble de tous les codes de toutes les machines Turing. Ceci est un ensemble récursif, en fait, selon les détails de l'encodage, nous pourrions avoirL=N. Il est donc faux queL ne peut pas être récursif.

Je soupçonne que vous avez mal formulé la question.


Le PO exclu RE.
Raphael

@Raphael, je ne suis pas sûr (cela dépend si était censé être strict), mais si c'est ce qui rend la question intéressante, supposons C n'est pas l'ensemble de RE.
Gilles 'SO- arrête d'être méchant'

@Andrej Merci pour la réponse, mais Raphael a raison, j'ai exclu RE.
Numérateur
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.