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 \}CC∅⊊C⊊RE∅⊊C⊊RELLCCL={⟨M⟩∣L(M)∈C}

L={⟨M⟩∣L(M)∈C}

Suponha que ⟨Mloopy⟩∈L⟨Mloopy⟩∈L , onde MloopyMloopy é uma TM que nunca pára. Gostaria de saber se é possível que L∈REL∈RE ?

Pelo teorema de Rice, eu sei que L∉RL∉R (o conjunto de linguagens recursivas), então L∉REL∉RE ou ¯L∉REL¯¯¯¯∉RE . Tem que ser a primeira opção desde Mloopy∈LMloopy∈L ?


1
Você deve explicar sua notação. O que é ⟨M⟩⟨M⟩ ? 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 L∉REL∉RE ou ¯L∉REL¯¯¯¯∉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. L∈REL∈RE∅∈C∅∈CMloop∈LMloop∈LL∉REL∉RE
— 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 CCL∉REL∉REL1L1L2L2L2∖L1L2∖L1

Agora você requer mas ; portanto, o teorema se aplica e não é recursivamente enumerável.∅∈C∅∈CC≠2Σ∗C≠2Σ∗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)=∅Etm⊂LEtm⊂LL∉RL∉REtm∈Co−REEtm∈Co−REL∉REL∉RE
— 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 :S⊆RES⊆RELSLSSSLS={⟨M⟩∣L(M)∈S}.

LS={⟨M⟩∣L(M)∈S}.
LS∈RELS∈RE
  1. para qualquer , se e então .L1,L2∈REL1,L2∈REL1∈SL1∈SL1⊆L2L1⊆L2L2∈SL2∈S
  2. se seguida, existe uma finito tal que .L1∈SL1∈SL2⊆L1L2⊆L1L2∈SL2∈S
  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)MSMSMML∈SL∈S

Agora, de volta à pergunta original. Nós agora que de modo . Mas pois essa TM nunca é interrompida. Isto significa que .⟨Mloopy⟩∈L⟨Mloopy⟩∈LL(⟨Mloopy⟩)∈CL(⟨Mloopy⟩)∈CL(⟨Mloopy⟩)=∅L(⟨Mloopy⟩)=∅∅∈C∅∈C

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, .LL∅⊆L∅⊆LC=REC=REC⊊REC⊊REL∉REL∉RE


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(x∈euS⟺∃você(Df(você)⊆Wx))∀x(x∈LS⟺∃u(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.