Как я могу доказать, что дифференцирование в нормальной форме Хомского требует 2n - 1 шагов?

Я пытаюсь доказать следующее:

Если G является контекстно-свободной грамматикой в ​​нормальной форме Хомского, то для любой строки w принадлежит L(G) длины n ≥ 1, для любого вывода w требуется ровно 2n-1 шагов.

Как мне доказать это?

1 ответ

Как подсказка - так как каждое произведение в нормальной форме Хомского либо имеет вид

S → AB, для нетерминалов A и B или вида

S → x, для терминала x,

Тогда получение строки будет работать следующим образом:

  • Создайте строку из ровно n нетерминалов, затем
  • Разверните каждый нетерминал до одного терминала.

Применение продукций первой формы увеличит число нетерминалов с k до k + 1, поскольку вы заменяете один нетерминал (-1) на два нетерминала (+2) для чистого усиления +1 нетерминала. Поскольку вы начинаете с одного нетерминала, это означает, что вам нужно выполнить n - 1 произведений первой формы. Затем вам потребуется еще n второй формы для преобразования нетерминалов в терминалы, что дает в общей сложности n + (n - 1) = 2n - 1 произведений.

Чтобы показать, что вам нужно именно столько, я бы предложил сделать доказательство от противоречия и показать, что вы не можете сделать это больше или меньше. В качестве подсказки попробуйте подсчитать количество произведений каждого типа, которые сделаны, и показать, что если это не 2n - 1, либо строка слишком короткая, либо у вас останутся нетерминалы.

Надеюсь это поможет!

Другие вопросы по тегам