O conjunto de codificações de uma classe não trivial de idiomas que contém o conjunto vazio pode ser recursivamente enumerável?


8

Seja um conjunto não trivial de linguagens recursivamente enumeráveis ​​( ) e seja L o conjunto de codificações de máquinas de Turing que reconhecem algum idioma em C : L = \ {\ langle M \ rangle \ mid L (M) \ em C \}CCCRECRELLCCL={ML(M)C}

L={ML(M)C}

Suponha que MloopyLMloopyL , onde MloopyMloopy é uma TM que nunca pára. Gostaria de saber se é possível que LRELRE ?

Pelo teorema de Rice, eu sei que LRLR (o conjunto de linguagens recursivas), então LRELRE ou ¯LREL¯¯¯¯RE . Tem que ser a primeira opção desde MloopyLMloopyL ?


1
Você deve explicar sua notação. O que é MM ? O que é L(M)L(M) ? O que é ¯LL¯¯¯¯ ? A única coisa que você explicou foi o que RE representa, e essa é a única coisa que você não precisa explicar.
Andrej Bauer

2
@AndrejBauer: Essa é uma notação bastante padrão. Eles querem dizer, da esquerda para a direita, a codificação de M, a linguagem aceita por MM , e o complemento de LL .
Raphael

Você quer dizer "então LRELRE ou ¯LREL¯¯¯¯RE ", presumo?
Raphael

1
existe uma extensão do teorema de Rice que descreve as condições que produzem . Talvez eu tenha tempo depois para escrevê-lo, a menos que outros o façam. MAS , se (que está implícito na existência de ), então . Isto também se segue do thm de Rice com a prova padrão. LRELRECCMloopLMloopLLRELRE
Ran G.

@Raphael, você está certo.
Numerador

Respostas:


3

Não, isso não é possível. Existe uma versão estendida do teorema de Rice¹ para provar que um conjunto de índices não é recursivamente enumerável.

Em sua notação, as teorema que se uma (não-trivial) contém uma linguagem que tem um super adequada não em , então . A intuição é que nenhum algoritmo pode separar codificações de e ; eles não podem decidir que a máquina codificada não aceita nenhuma palavra de após um período finito de tempo, o que eles precisavam.CCL1L1L2L2 CCLRELREL1L1L2L2L2L1L2L1

Agora você requer mas ; portanto, o teorema se aplica e não é recursivamente enumerável.CCC2ΣC2ΣLL


  1. O artigo da Wikipedia é horrível, cuidado!

Posso afirmar que, desde que , obtemos a máquina de turing Empty, que não aceita nenhuma palavra e, devido ao teorema do arroz, sabemos que (todas as condições de Rice estão bem) então porque temos esse ? L(Mloop)=L(Mloop)=EtmLEtmLLRLREtmCoREEtmCoRELRELRE
Numerador

@ Numerator: O que é Etm? De qualquer forma, não está necessariamente em , portanto não. Se fosse, esse raciocínio funcionaria, sim. LLco-REco-RE
Raphael

4

Para completar a resposta de Rafael, há uma extensão do teorema de Rice que diz o seguinte:

Teorema do Arroz Generalizado

Seja alguma propriedade e seja todas as TMs que satisfazem a propriedade , ou seja, Então, se e somente se todas as seguintes condições :SRESRELSLSSSLS={ML(M)S}.

LS={ML(M)S}.
LSRELSRE
  1. para qualquer , se e então .L1,L2REL1,L2REL1SL1SL1L2L1L2L2SL2S
  2. se seguida, existe uma finito tal que .L1SL1SL2L1L2L1L2SL2S
  3. A linguagem de 'todas as línguas finitas em ' está em RE. (em outras palavras, existe um TM que, se é um idioma finito, e são fornecidos a como entrada, aceita somente se .SS
    MSMSLLL={w1,w2,wk)L={w1,w2,wk)(w1,w2,,wk)(w1,w2,,wk)MSMSMMLSLS

Agora, de volta à pergunta original. Nós agora que de modo . Mas pois essa TM nunca é interrompida. Isto significa que .MloopyLMloopyLL(Mloopy)CL(Mloopy)CL(Mloopy)=L(Mloopy)=CC

Agora vamos ver a primeira condição do teorema acima. QUALQUER linguagem satisfaz . Assim, para satisfazer a condição 1, deve ser que . No entanto, a pergunta afirma que e, portanto, pelo teorema, .LLLLC=REC=RECRECRELRELRE


Existe uma fonte onde eu possa aprender mais sobre esse teorema? Não consegui encontrar um online que fosse satisfatório.
Gokul

1
@Gokul Disseram-me que esse teorema aparece no livro de Hopcroft, Motwani, Ullman, mas apenas em sua primeira versão (aparentemente foi removido em versões posteriores).
Ran G.

@Ran G. Não consegui encontrar o livro mencionado para verificar isso, mas o número 3 parece errado, pois para S=RES=RE, o idioma de todos os idiomas finitos não é RERE. Você pode querer dizer outra condição semelhante:x(xeuSvocê(Df(você)Wx))x(xLSu(Df(u)Wx)), Onde DD é a codificação canônica de linguagens finitas, WW a enumeração padrão de RERE idiomas e ffalguma função totalmente computável. Nesse caso, esta condição é apenas equivalente aeuSLS ser RERE. (Veja Teoria das Funções Recursivas e Computabilidade Efetiva de H. Rogers, pág . 322 ) Embora os itens 1 e 2 sejam suficientes aqui.
Beleg

@ Beleg Não vejo por que está errado. E seS=RES=RE então qualquer linguagem finita está em SS, portanto, a TM que aceita qualquer string (ou melhor, qualquer string bem formatada) é decisiva para o conjunto de todos os idiomas finitos em S. Se você ainda não concorda, vamos continuar no bate-papo de ciência da computação .
Ran G.

0

É possível que euLé um reset. Considere o casoC=REC=RE. EntãoeuLé o conjunto de todos os códigos de todas as máquinas de Turing. Este é um conjunto recursivo, de fato, dependendo dos detalhes da codificação, poderíamos tereu=NL=N. Portanto, é realmente falso queeuL não pode ser recursivo.

Eu suspeito que você formulou mal a pergunta.


O PO excluiu RERE.
Raphael

@Raphael Eu não tenho certeza (depende se foi planejado como estrito), mas se é o que torna a pergunta interessante, vamos assumir CC não é o todo RE.
Gilles 'SO- stop be evil'

@Andrej Obrigado pela resposta, mas Raphael está certo, excluí RE.
Numerator
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.