E se

7

Estou interessado em provar que L={w:wwL} é regular se Lé regular, mas parece que não estou chegando a lugar algum. Se possível, eu estava esperando uma dica para me levar na direção certa. Obrigado pela ajuda.

Minha idéia para demonstrar a regularidade da linguagem raiz quadrada foi tentar considerar duas máquinas rodando em conjunto. Um deles aceita o idioma originalLe o outro executa a mesma máquina ao contrário (espero que seja um NFA). Eu queria aceitar as palavras que se encontravam no meio (isto é,(q,q):qQ Onde Q são os estados do DFA que aceitam L) No entanto, não acho que isso funcione.

user99163
fonte
2
As duas máquinas devem correr para a frente. É só que o segundo deve começar onde o primeiro terminará. Portanto, o segundo deve adivinhar seu estado inicial e lembrar-se desse palpite.
babou
@ PålGD Obrigado pela sua resposta. Essa é uma solução interessante, mas não consigo fazer com que a indução funcione na etapa indutiva. O que recebo é o seguinte:
δ^(q0,wa)=δ(δ^(q0,w),a)=δ(f,a)=g
Onde f(q)=δ^(q,w)pela hipótese indutiva. assim
g(q)=f(δ(q,b))=δ^(δ(q,b),w)=δ^(q,bw)
Se você pudesse me dizer onde errei, ficaria grato.
user99163
@babou Obrigado pela sua resposta. Você está sugerindo um NFA no qual possa iniciar em qualquer ponto do DFA original que aceiteL?
user99163
Sim. Isso é feito com um método não determinísticoϵ-transição no começo. Os estados são triplos do estado original da máquina, um para a primeira simulação, um para a segunda simulação e outro para lembrar onde a segunda simulação foi iniciada, para garantir que a primeira termine lá.
babou

Respostas:

1

Aqui está como implementar sua solução. DeixeiA=Q,q0,F,δ ser um DFA para L. Vamos construir uma NFAA=Q,q0,F,δ do seguinte modo:

  • Q={q0}Q3. O Estado(q1,q2,q3) significa que adivinhamos que quando A termina de ler a primeira cópia do w, estará no estado q1; a primeira cópia deA, começou às q0, está no estado q2; e a segunda cópia deA, começou às q1, está no estado q3.
  • F={(q1,q1,q2):q1Q,q2F}. Assim, aceitamos se a primeira cópia doA está no estado adivinhado e a segunda cópia do A está em um estado de aceitação.
  • δ(q0,ϵ)={(q,q0,q):qQ}. Isso inicializa a simulação das duas cópias doA.
  • δ((q1,q2,q3),a)={(q1,δ(q2,a),δ(q3,a))}. Isso simula as duas cópias doA, mantendo o estado adivinhado.

Deixamos ao leitor a prova formal de que L(A)=L(A).


Aqui está outra solução, que cria um DFA. Agora corremos|Q| cópias de A em paralelo, começando em cada estado de A:

  • Q=QQ.
  • q0=qq, a função de identidade.
  • δ(f,a)=qδ(q,a).
  • F={fQ:f(f(q0))F}.

Qual é o significado da condição f(f(q0))F? Depois de ler uma palavraw, o autômato A está em um estado f dado por f(q)=δ(q,w). portantof(f(q0))=δ(δ(q0,w),w)=δ(q0,w2).

Yuval Filmus
fonte
Pode haver muitos tipos dessas funções, como SQRT (L), MEIA (L), etc. Existe alguma maneira geral de combinar todas elas? Eu estava pensando nas linhas do Teorema de Myhill Nerode. Isso é o que também é chamado de metade. sqrt éy st |y|=|x|2 e xyL
Usuário não encontrado