Aqui está como implementar sua solução. DeixeiA=⟨Q,q0,F,δ⟩ ser um DFA para L. Vamos construir uma NFAA′=⟨Q′,q′0,F′,δ′⟩ do seguinte modo:
- Q′={q′0}∪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):q1∈Q,q2∈F}. 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.
- δ′(q′0,ϵ)={(q,q0,q):q∈Q}. 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.
- q′0=q↦q, a função de identidade.
- δ′(f,a)=q↦δ(q,a).
- F′={f∈Q′: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).