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.

Tomer
fonte
"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.
Yuval Filmus
fonte
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

ipsec
fonte
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