Regularidade do meio exato das palavras de um idioma regular


8

Deixei Lser uma linguagem regular.
É o idiomaL2={y:x,z  s.t.|x|=|z| and xyzL} regular?

Eu sei que é muito semelhante à pergunta aqui , mas o problema é que não é uma simples substring de uma palavra em uma linguagem comum, mas um "meio exato" - temos que contar o comprimento do prefixo e do sufixo.

Portanto, presumo que não seja regular, mas não consegui encontrar uma maneira de provar isso. Eu também não conseguia pensar em nenhuma maneira de modificar o NFA deL aceitar L2.


"meio exato" parece sugerir |x|=|y|=|z|? A propósito, isso também será regular!
Hendrik Jan

Você já tentou as coisas da nossa pergunta de referência ?
Raphael

Respostas:


6

Dica: considere algum DFA para L. Para cadan0, deixei An seja o conjunto de estados sde modo que exista alguma palavra de comprimenton o que leva o DFA do estado inicial para s. DeixeiBn seja o conjunto de estados tde modo que exista alguma palavra de comprimenton que leva o DFA de tpara um estado de aceitação. Finalmente, para dois estadoss,t, deixei Rs,t ser o conjunto (regular) de palavras que conduzem o DFA de s para t. Nós temos

L2=n0sAntBnRs,t.
Uma vez que existem apenas finitas possibilidades para s,t, a união é de fato finita e muito regular.

3

Let ser um DFA para . Sem perda de generalidade, assume . Construímos um ε-NFA para da seguinte maneira:D=(Q,Σ,δ,q0,F)LqS,qFQN=(Q{qS,qF},Σ,Δ,qS,{qF})L2

Localizar cada caminho em de para qualquer . Para cada caminho, constrói os caminhos para (isto é, faça todas as “partes do meio” do caminho). Isso pode ser feito efetivamente. Construa combinando todos esses caminhos, juntamente com:Dq0fFpk:q0=qk,0αk,1qk,1αk,2αk,iqk,iαk,i+1αk,nkqk,nkpk(i):qk,iαk,i+1qk,i+1αk,i+2αk,nkiqk,nki0ink2Δ

  • (qS,ε,qk,i) para todos os como acimai
  • (qk,nki,ε,qF) para todos os como acimai

L(N) é regular por construção.

O esboço de prova de que : Seja . Por construção, sabemos que deve corresponder a pelo menos um dos caminhos acima. Cada um desses caminhos pertence a um caminho em , que contém um prefixo e sufixo adicionais de comprimento . Escolha como a palavra descrita por esse prefixo e a descrita pelo sufixo. Achamos que , com . Com raciocínio semelhante encontramos para cada um caminho em . Deixe seja o comprimento de eL(N)=L2wL(N)wpk(i)DixyxwyL|x|=|y|=iwL2Nixypertencente a . para alguns formulários .wpk(i)kw

Assim, .L(N)=L2


Como existem infinitos caminhos, a observação "Isso pode ser feito com eficiência" parece precisar de alguma explicação. Observe que não é estritamente necessário usar essa propriedade; veja a resposta de Yuval, que (para mim) é uma versão "ineficaz" do mesmo argumento.
Hendrik Jan

Você está certo. Você não precisa considerar loops duas vezes. O próximo ponto crítico parece existir algum pertencente a , pois, ao combinar os caminhos, podem surgir novos caminhos. Veja bem, eu não revi minuciosamente minha prova, mas acredito que todas essas questões poderiam ser resolvidas. pk(i)w
Ipsec
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.