Exemplo 1:
Projete um NFA para a tabela de transição conforme mostrado abaixo:
Estado atual | 0 | 1 |
---|---|---|
→q0 | q0, q1 | q0, q2 |
q1 | terceiro trimestre | e |
q2 | q2, q3 | terceiro trimestre |
→q3 | terceiro trimestre | terceiro trimestre |
Solução:
O diagrama de transição pode ser desenhado usando a função de mapeamento fornecida na tabela.
Aqui,
δ(q0, 0) = {q0, q1} δ(q0, 1) = {q0, q2} Then, δ(q1, 0) = {q3} Then, δ(q2, 0) = {q2, q3} δ(q2, 1) = {q3} Then, δ(q3, 0) = {q3} δ(q3, 1) = {q3}
Exemplo 2:
Projetar um NFA com ∑ = {0, 1} aceita todas as strings que terminam em 01.
powershell versus bash
Solução:
Portanto, o NFA seria:
Exemplo 3:
Projete um NFA com ∑ = {0, 1} em que o duplo '1' é seguido pelo duplo '0'.
Solução:
conectividade java
O FA com duplo 1 é o seguinte:
Deve ser imediatamente seguido por duplo 0.
Então,
Agora, antes do duplo 1, pode haver qualquer sequência de 0 e 1. Da mesma forma, depois do duplo 0, pode haver qualquer sequência de 0 e 1.
Portanto, o NFA se torna:
convenção de nomenclatura para java
Agora considerando a string 01100011
q0 → q1 → q2 → q3 → q4 → q4 → q4 → q4
Exemplo 4:
Projete um NFA em que toda a string contenha uma substring 1110.
Solução:
A linguagem consiste em toda a string contendo a substring 1010. O diagrama de transição parcial pode ser:
Agora, como 1010 poderia ser a substring. Portanto, adicionaremos as entradas 0 e 1 para que a substring 1010 da linguagem possa ser mantida. Portanto, o NFA se torna:
java contém substring
A tabela de transição para o diagrama de transição acima pode ser fornecida abaixo:
Estado atual | 0 | 1 |
---|---|---|
→q1 | q1 | q1, q2 |
q2 | terceiro trimestre | |
terceiro trimestre | quarto trimestre | |
quarto trimestre | q5 | *q5 | q5 | q5 |
Considere uma string 111010,
δ(q1, 111010) = δ(q1, 1100) = δ(q1, 100) = δ(q2, 00)
Fiquei preso! Como não há caminho de q2 para o símbolo de entrada 0. Podemos processar a string 111010 de outra maneira.
δ(q1, 111010) = δ(q2, 1100) = δ(q3, 100) = δ(q4, 00) = δ(q5, 0) = δ(q5, ε)
Como o estado q5 é o estado de aceitação. Obtemos a digitalização completa e chegamos ao estado final.
Exemplo 5:
Projetar um NFA com ∑ = {0, 1} aceita todas as strings nas quais o terceiro símbolo da extremidade direita é sempre 0.
aplicativos de computação em nuvem
Solução:
Assim, obtemos o terceiro símbolo da extremidade direita como '0' sempre. O NFA pode ser:
A imagem acima é um NFA porque no estado q0 com entrada 0, podemos ir para o estado q0 ou q1.