Кажется, что это должно быть проще, чем есть, но у меня с этим проблема. Вот что спрашивают:
Постройте НКА для следующего языка L = {ab,ba}*. Итак, я понимаю, что у меня может быть любая комбинация ab или ba в строке, но нужно ли мне мертвое состояние, если, скажем, я получаю две буквы a подряд, или это просто начинается сначала? Вот два графика, которые у меня есть:
Являются ли они правильными? И поскольку они представляют собой NFA против DFA, мне нужно где-то здесь лямбда-край?
Изменить: будет ли этот третий правильным, потому что мне нужны два конечных состояния? а>
aab
). Ваши второй и третий примеры почти правильные, но не минимальные. Ни один DFA не принимает пустую строку, которая есть в языке. Возможен минимальный DFA с 3 состояниями (или 4 с явным мертвым состоянием). Состояния{q1, q2, q3}
,q1
являются начальным и принимающим состояниями. Переходы:q1,a,q2, q1,b,q3, q2,b,q1, q3,a,q1
. - person Welbog   schedule 26.09.2018