Converter NFA para validação de e-mail em DFA
Sep 19 2020
Alguém pode ajudar a converter o NFA para esta validação de e-mail em um DFA?
Para fazer a conversão, criei primeiro a tabela de transição de estado, então alguém pode ajudar a criar o DFA?
Respostas
1 ggorlen Sep 19 2020 at 04:12
Produzir um DFA a partir de suas tampas épsilon parece direto. Cada fechamento forma um único estado DFA, e as transições no DFA são a agregação de transições para nós no fechamento épsilon do NFA. Esta é a tabela de transição para o DFA de seus fechamentos eletrônicos:
| a-z | 0-9 | @ | _ | . | com
---|-----|-----|---|----|----|-----
A^ | AB | | | | |
AB | AB | AB | C | | |
C | CD | CD | | CD | |
CD | CD | CD | | CD | CE |
CE | CD | CD | | CD | | F
F$ | | | | | |
Este é o DFA para esta tabela ( ver no graphviz ):
digraph G {
rankdir=LR;
node [shape=point]; qi;
node [shape=doublecircle]; F;
node [shape=circle];
qi -> A;
A -> AB [label="a-z"]
AB -> AB [label="a-z | 0-9"];
AB -> C [label="@"]
C -> CD [label="a-z | 0-9 | _"]
CD -> CD [label="a-z | 0-9 | _"]
CD -> CE [label="."]
CE -> CD [label="a-z | 0-9 | _"]
CE -> F [label="com"]
}
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino