Может ли кто-нибудь помочь в том, как преобразовать NFA для этой проверки электронной почты в DFA?
Чтобы сделать преобразование, я сначала создал таблицу перехода состояний, а затем может ли кто-нибудь помочь создать DFA?
Может ли кто-нибудь помочь в том, как преобразовать NFA для этой проверки электронной почты в DFA?
Чтобы сделать преобразование, я сначала создал таблицу перехода состояний, а затем может ли кто-нибудь помочь создать DFA?
Создание DFA из ваших эпсилон-замыканий кажется прямым. Каждое замыкание формирует одно состояние DFA, а переходы в DFA представляют собой совокупность переходов для узлов эпсилон-замыкания NFA. Вот таблица переходов для DFA из ваших электронных закрытий:
| 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$ | | | | | |
Вот DFA для этой таблицы (посмотреть на графике):
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"]
}
a-z
должен различатьcom
иc
? Например, кажется, что[email protected]
не пройдет синтаксический анализ, или я не совсем понимаю, какcom
может быть токеном, учитывая кажущуюся односимвольную схему синтаксического анализа. - person ggorlen   schedule 18.09.2020