конечный автомат избыточное состояние - PullRequest
0 голосов
/ 18 декабря 2011

У меня есть конечный автомат. Мое регулярное выражение: \+[0-9]+\+%\+[0-9]+ Проблема в том, что q3 находится в избыточном состоянии (так же, как q1). Мне интересно, как это обойти. Должен ли я просто переименовать q3 в q1 или как? Благодарю. enter image description here

EOS - конец строки. Если вы не помните RegX. В основном это означает, что принятая строка будет: "+[0-9] ([0-9] любое количество раз, но не менее одного.) +%+[0-9]" ([0-9] любое количество раз, но не менее одного )

UPD1 новый FSM, вопрос тот же: q4 - это то же самое, что и q2, как это преодолеть?

1 Ответ

3 голосов
/ 19 декабря 2011

Здесь действительно нет проблем. Вы пишете, что q₄ "совпадает с" q₂, но это не так: только один из них приводит к q₃, если вы даете ему +%+, и только один из них приводит к q₅, если вы даете ему конец строки. Следовательно, они должны быть представлены отдельными внутренними состояниями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...