Как работают ɛ-переходы в недетерминированных конечных автоматах?

Меня смущает реализация языка автоматом. Переходит ли автомат сразу в следующее состояние, если есть ɛ-переход? Предположим, у меня есть автомат, состоящий из трех состояний a, b и c (где a — начальное состояние, а c — принимающее состояние) с алфавитом {0,1}. Как работает следующее?

 a----ɛ--->(b----0---->a)
             (b----1---->c)

Принимается ли строка "1"? Что, если бы у нас было

   a---1--->b----ɛ--->c

? Будет ли принята строка «1»?


person mrahmat    schedule 09.01.2015    source источник


Ответы (1)


Переходит ли автомат сразу в следующее состояние, если есть ɛ-переход?

Грубо говоря, да. ɛ-переход (в недетерминированном конечном автомате, или сокращенно NFA) переход, который не связан с потреблением какого-либо символа (в данном случае 0 или 1). Как только вы это поймете, легко (в данном случае) вывести детерминированные конечные автоматы (или DFA , для краткости), которые эквивалентны вашим NFA и определяют языки, которые описываются последними.

Предположим, у меня есть автомат [...] Принимается ли строка «1»?

да. Вот более красивая диаграмма (любезно предоставленная LaTeX и tikz) вашего первого NFA:

введите здесь описание изображения

Эквивалентный DFA будет:

введите здесь описание изображения

Как только вы это сделаете, легко увидеть, что язык, принятый этим NFA, представляет собой набор строк, которые

  • начните с нуля или более 0,
  • заканчиваться ровно одним 1.

Строка "1", поскольку она начинается с нуля 0 и заканчивается единицей 1, действительно принимается.

Что, если бы у нас было [...]? Будет ли принята строка «1»?

да. Вот более красивая диаграмма вашего второго NFA:

введите здесь описание изображения

Эквивалентный DFA будет:

введите здесь описание изображения

На самом деле, легко увидеть, что «1» — единственная допустимая строка здесь.

person jub0bs    schedule 09.01.2015
comment
@mrahmat Не за что. И спасибо. Если вы заинтересованы в создании красивых диаграмм автоматов, взгляните на этот другой мой ответ, где я разместил соответствующий код LaTeX. - person jub0bs; 09.01.2015