Как преобразовать контекстно-свободную грамматику в DFA? Это легко сделать, если у нас есть переходы типа A->a B. Но когда у нас есть переходы типа A->a B c. Тогда как мы должны представить его как DFA
Теория автоматов: преобразование контекстно-свободной грамматики в DFA
Ответы (2)
Во-первых, вы должны преобразовать свой язык в CNF (нормальная форма Хомски). Затем шаги для преобразования таковы:
Преобразование его в левую/правую грамматику называется обычной грамматикой.
Преобразование обычной грамматики в конечные автоматы Переходы для автоматов получаются следующим образом. каждая продукция A -> aB делает δ (A, a) = B, то есть make an, помечена буквой «a» от A до B. Для каждой продукции A -> a make δ (A, a) = конечное состояние. Для каждой продукции A -> ϵ сделайте δ (A, ϵ) = A, и A будет конечным состоянием.
Не существует общей процедуры для преобразования произвольной CFG в DFA. Например, рассмотрим эту CFG:
S → aSb | ε
Эта грамматика предназначена для языка { anbn | n ≥ 0 }, который является каноническим нерегулярным языком. Поскольку мы можем создавать DFA только для обычных языков, нет возможности создать DFA с тем же языком, что и эта CFG.
A -> a B c
Только одно производственное правило (не грамматика), поэтому ваш вопрос не имеет смысла - person Grijesh Chauhan   schedule 30.03.2014