Язык Дика
Определение: |
Язык Дика (англ. Dyck language) — множество правильных скобочных структур вместе с пустой структурой, образующее язык над алфавитом . |
Определение: |
Производящей функцией (англ. generating function) языка производящая функция где есть число слов длины в языке . | называется
Правила вывода в языке Дика
Рассмотрим два правила вывода в языке Дика:
- 1)
- 2)
где
— буква, не входящая в алфавит ,стрелка
заменяет фразу: если в слове есть буква , то эту букву можно заменить на слово, стоящее справа от стрелки.Правила вывода можно понимать следующим образом:
Всякое слово в языке Дика есть либо
- 1) пустое слово,
- 2) слово, в котором внутри самой левой пары соответственных скобок стоит некоторое слово языка Дика и после этой пары стоит слово языка Дика.
Ясно, что для каждого слова такое представление единственно.
Производящая функция для языка Дика
Вычислим с помощью правил вывода производящую функцию для языка Дика. Для этой цели выпишем некоммутативный производящий ряд, перечисляющий слова языка. Этот ряд представляет собой формальную сумму всех слов языка, выписанных в порядке возрастания длины:
Теорема: |
Ряд удовлетворяет уравнению . |
Доказательство: |
Действительно, в левой части равенства записана сумма всех слов языка Дика. Равенство означает справедливость утверждения:Всякое слово в языке Дика есть либо
|
Чтобы перейти от некоммутативного производящего ряда к обычному, сделаем подстановку
. Уравнение примет вид .Отсюда, обозначив
через получимРешение чисел Каталана. Необходимость подстановки вместо объясняется тем, что в языке Дика длина слова, составленного из пар скобок, равна : мы перечисляем слова по числу скобок, а не пар скобок.
этого уравнения совпадает с производящей функцией дляСм. также
Источники информации
- С. А. Ландо: Лекции о производящих функциях
- Гросс М., Лантен А.: Теория формальных грамматик