Esta interseção de DFAs está correta?


7

Estou construindo um autômato finito determinístico (DFA) para um idioma de todas as strings definidas sobre cujo comprimento é par e o número de s é ímpar. Eu construí cada DFA separadamente e depois combinei:{0,1}1

dfas e sua união

  • O procedimento fornecido para combinar DFAs está correto?
    EDIT: Originalmente escreveu união; realmente fazendo o cruzamento.
  • Será que alguém sugerir materiais na construção DFAs
    dadas restrições à duração e número de s ou s?01

De acordo com o link fornecido por Merbs, desenvolvi esta FA. insira a descrição da imagem aqui
Esta FA não aceita um idioma de tamanho uniforme.


11
Sua abordagem parece correta, mas você deve usar a interseção e não a união dos dois DFAs.
— A.Schulz

Aprendi apenas três métodos, como união de FAs, concatenação de FAs e encerramento de FAs. Estou procurando, mas não consigo encontrar a interseção de FAs. Você pode me indicar algum link útil?
— Rafay Zia Mir

11
Em uma pesquisa no Google: este site é bom, mas o essencial é que você faça a interseção dos estados que aceitam.
— Merbs

Eu visitei este link, mas isso fornece um exemplo específico, não uma regra, bcz, quando encontramos uma FA difícil, seria difícil construir uma interseção.
— Rafay Zia Mir

Dado dois DFAs com e estados, a construção de um DFA com estados (com cada estado representando um par de estados nos DFA originais) é a regra; e, em seguida, você pode minimizar o DFA resultante por meio de um conjunto de procedimentos (principalmente heurísticos?). mnmn
— Merbs

Respostas:


8

Sim, isso é chamado de produtos Constuction - dada DFAs e , podemos construir :M1M2M=M1×M2

  • M consiste em pares de estados de seus DFAs constituintes; portanto, se os DFAs originais tiverem estados e , o produto seria .A,B,Cx,y,z{Ax,Ay,Az,Bx,By,Bz,Cx,Cy,Cz}
  • A função de transição é atualizada para que, em uma etapa específica, uma string faça com que a transição do estado para e para a transição de para , o produto faça a transição de paraM1ABM2xyAxBy
  • O estado inicial é o par que consiste nos estados iniciais dos DFAs constituintes (ou seja, ).Ax
  • Se nós estamos construindo o DFA que determina se ambos dos dois DFAs constituintes aceitaria a corda, então a estados aceitar de é a interseção (os pares formados por aceitar estados de ambos). Se estivermos construindo o DFA que determina se um dos dois DFAs constituintes aceitaria a sequência, os estados de aceitação de são a união (aqueles pares constituídos por estados de aceitação de qualquer um). No seu exemplo, e são os estados de aceitar e ; a interseção seriaM
    M
    x1y0M1M2{x1y0}enquanto a união seria .{x1y0,x1y1,x0y0}

Incluí alguns outros DFAs sobre restrições de comprimento para referência.

exemplo dfas


Em casos de união, o conjunto de estados aceitantes não deve ser ? (Não que alguém usaria essa construção para união; casos, estados são suficientes em oposição a essa construção produz. Pelo menos se estivermos falando de NFA.)M1Q2∪Q1M2|Q1|+|Q2|+1|Q1||Q2|
— Raphael

@Raphael, seu comentário, embora correto, foi complicado o suficiente para que eu não entendesse sem pensar mais, por isso tentei "separar o tamanho" dele. Se você quiser editar minha resposta para incluir uma discussão sobre os NFAs, crie um wiki da comunidade (ou adicione sua própria resposta).
— Merbs

@ Merbs, obrigado por sua ajuda e resposta. Desculpe pela resposta tardia, mas eu tentei esse método para outras FA e isso foi bem-sucedido.
— Rafay Zia Mir

1

OK, "leigos" um pouco. Pegue os e . Considere o DFA , em que é definido por: a ideia é que o estado de registra os estados em que e seria se eles processados a corda separadamente. aceita apenas se os dois aceitarem.M1=(Q1,Σ,δ1,q1,F1)M2=(Q2,Σ,δ2,q2,F2)M=(Q1×Q2,Σ,δ,(q1,q2),F1×F2)δ

δ((q′,q″),a)=(δ1(q′,a),δ2(q″,a))
MM1M2M

11
Não tenho certeza de que maneira isso é "leigos"; esta é a definição formal (correta) para a construção do produto. Você deve mencionar como o conjunto de estados de pode ser reduzido em muitos casos; ninguém quer desenhar toda essa porcaria. M
— Raphael
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.