Алгоритм Устранение недостижимых символов

 

Вход: КС-грамматика .

Выход: КС-грамматика , такая, что и для всех существует вывод , где .

Определим множество достижимых символов Z грамматики G, т.е. множество

 

Шаг 1. Положить

Шаг 2. Вычислить очередное приближение следующим образом:

Шаг 3. Если то положить i:=i+1 и перейти к шагу 2, иначе считать .

Шаг 4. Вычислить , где - это множество правил, содержащих недостижимые символы .

ПримерДанаграмматика с правилами

Преобразуем ее в эквивалентную грамматику по алгоритму 4.3:

W0 = {S};

W1 = {S, a, b};

W2 = {S, a, b}.

Т.к. W1=W2, то W={S, a, b}. Множество недостижимых символов Тогда после удаления недостижимых символов, получим грамматику с правилом