Чтобы начать преобразование в нормальную форму Хомского (используя Определение (1), предоставленное страницей Википедии), вам нужно найти эквивалентную по существу неконтрактную грамматику.Грамматика G
с начальным символом S
по сути не является договором, если
1. S is not a recursive variable
2. G has no ε-rules other than S -> ε if ε ∈ L(G)
Называть вашу грамматику G
эквивалентной грамматикой G'
с нерекурсивным начальным символом:
G' : S -> A
A -> aAb | bAa | ε
Ясно, что набор переменных, допускающих значение G'
, равен {S,A}
, поскольку A -> ε
- это произведение в G'
, а S -> A
- цепочечное правило.Я предполагаю, что вам был дан алгоритм удаления ε-правил из грамматики.Этот алгоритм должен создавать грамматику, аналогичную следующей:
G'' : S -> A | ε
A -> aAb | bAa | ab | ba
Грамматика G''
по сути не является контрактной;теперь вы можете применить оставшиеся алгоритмы к грамматике, чтобы найти эквивалентную грамматику в нормальной форме Хомского.