Fechamento contra quociente certo com um idioma fixo

13

Eu realmente adoraria sua ajuda com o seguinte:

Para qualquer fixo L2 I precisa decidir se há fechamento nas seguintes operadores:

  1. Ar(L)={xyL2:xyL}

  2. Al(L)={xyL:xyL2} .

As opções relevantes são:

  1. Os idiomas regulares estão fechados em resp. A r , para qualquer idioma L 2AlArL2

  2. Para alguns idiomas , os idiomas regulares são fechados em A l resp. A r , e para alguns idiomas L 2 , os idiomas regulares não estão fechados em A l resp. A r .L2AlArL2AlAr

Eu acreditava que a resposta para (1) deveria ser (2), porque quando eu recebo uma palavra em e w = x y eu posso construir um autômato que pode adivinhar onde x está se voltando para y , mas é preciso verificar que y pertence a L 2 e se não for regular, como faria isso? A resposta para isso é (1).wLw=xyxyyeu2

O que devo fazer para analisar corretamente esses operadores e determinar se os idiomas regulares estão fechados sob eles ou não?

Jozef
fonte
O que é ? Você quer dizer ' não está fechado' na segunda parte de (b)? O que é L ? UMAeu
Alex-Brink-
Você ainda não definiu ? eu
Gopi
@Gopi é um idioma de entrada. A ( ) é um operador em idiomas nos dois casos. LA()
Lucas Cozinhe
@ Gopi: é um parâmetro de A , L 2 é fixo. LAL2
Raphael
Opa meu mal, como eu não vi isso oO.
Gopi

Respostas:

11

Para responder a essa pergunta, precisamos permitir qualquer . Então, vamos pensar que L 2 é uma linguagem muito complexa (digamos, uma linguagem indecidível).L2L2


Vamos começar com a pergunta fácil: (parte 2 da pergunta). Pegue L 2 para ser indecidível e L = { ε } . O que acontece?Al(L)L2L={ε}

(moral: sempre verifique os "extremos": vazio , L = { ε } e L = Σ ...)LL={ε}L=Σ


Agora para . Essa é uma ótima pergunta (geralmente uma pergunta bônus em Final / Trabalho de casa). De fato, idiomas regulares são fechados em A r para qualquer idioma L 2 . Mesmo L 2 indecidível . Legal certo?ArArL2L2

Então, como podemos construir um autômato para se não houver uma máquina que aceite L 2 ?Ar(L)L2

Aí vem a mágica do "pensamento abstrato", isto é, a prova existencial . Se alguém nos der , podemos usar essas informações para mostrar que existe algum autômato para resolver A ( L ) . Agora os detalhes.L2A(L)

Começamos a partir do autômato de (a chamada é D F A L ). Suponha que após o processamento x terminemos em um estado q . Temos de aceitar se existe y L 2 de tal modo que se continue a partir do q processamento y que vai acabar num estado final de D F A G . Não existe uma máquina que possa nos dizer se y está em L 2 , mas podemos fazer q um estado final de D F A A LLDFALxqyL2qyDFALyL2qDFAALSe a condição acima detém, isto é, se existe algum de tal modo que se inicie a q e processo y que acabam em um estado final de D F A G .yL2qyDFAL

Portanto, para construir , examinamos cada um dos estados de D F A L e tornamos cada estado q um estado aceitante, se pudermos levar algum y L 2 e esse y nos levará de q a um estado aceitante de D F A G .DFAALDFALqyL2yqDFAL

Então, ok, é infinito, e talvez não haja um computador para listar todas as palavras em L 2 , mas tudo isso não importa ... o autômato acima é bem definido, mesmo que eu não consiga desenhá-lo para você estado por estado. Magia.L2L2

Tocou.
fonte
Parece que você postou uma resposta para o problema em si ao mesmo tempo. :]
Lucas Cook
bem .. minha resposta tem spoilers nele .. talvez eu devesse colocar um alerta de spoiler, então pode-se começar com a sua resposta e se isso não é suficiente - então obter os detalhes ..
Ran G.
Uau, resposta maravilhosa, muito útil. Muito obrigado Ran!
Jozef
7

Não tenho certeza se você está procurando uma resposta para o problema ou não, então não a forneço diretamente. (Eu posso, se você quiser, no entanto.)

Você perguntou:

O que devo fazer para analisar corretamente esses operadores e determinar se os idiomas regulares estão fechados sob eles ou não?

Sua abordagem inicial é boa. Como em todas as questões teóricas "abertas", você deve ter uma idéia intuitiva se é verdade ou não. Geralmente, isso é feito através de exemplos experimentais (comuns e de casos extremos) ou investigação de casos especiais (por exemplo, e se for regular? Livre de contexto?). Para esse problema, você precisa adivinhar se pode criar um autômato / regex para os operadores ou não. Depois disso:L2

  • Se você acha que você pode, você precisa ser capaz de construir este autômato / regex para qualquer idioma de entrada regular .L
  • Se você acha que não pode, normalmente encontrará os idiomas de exemplo e L 2 de forma que A x não esteja fechado.LL2Ax

(e se uma abordagem não estiver funcionando, você poderá sempre tentar a outra.)


Para o problema em si:

Ambos são o operador de quociente certo. (Acredito que o quociente esquerdo envolve deixar o postfix em vez do prefixo.) A diferença entre os dois é que enquanto A r ( L ) = L / L 2 , em que L 2 está fixo em ambos os casos.Al(L)=L2/LAr(L)=L/L2L2

Você tem alguma intuição sobre , por isso está aqui algo para se pensar em um l : Um l dá uma versão modificada do L 2 . Desde L 2 poderia ser não regular, é possível para um l para deixar L 2 inalterados? Se assim for, então Um l não é regular nesse caso. Caso contrário, teremos que argumentam que um l faz L 2 regular em todos os casos.ArAlAlL2L2AlL2AlAl L2

Lucas Cook
fonte