Решетка из 14 слов Дайка длиной 8 - [и] интерпретируется как вверх и вниз
В теории формальных языков из информатики, математики и лингвистики, слово Дайка представляет собой сбалансированную строку квадратных скобок [и]. Набор слов Дейка образует язык Дейка .
Слова и язык Дика названы в честь математика Вальтера фон Дейка. У них есть приложения для синтаксического анализа выражений, которые должны иметь правильно вложенную последовательность скобок, например арифметические или алгебраические выражения.
Содержание
- 1 Формальное определение
- 1.1 Контекстно-свободная грамматика
- 1.2 Альтернативное определение
- 2 Свойства
- 3 Примеры
- 4 Обобщения
- 5 См. Также
- 6 Примечания
- 7 Ссылки
Формальное определение
Пусть будет алфавитом состоящий из символов [и]. Пусть обозначает его замыкание Клини. язык Дика определяется как:
Грамматика без контекста
Может быть полезно определить язык Дика с помощью контекстно-свободная грамматика в некоторых ситуациях. Язык Дика порождается контекстно-свободной грамматикой с одним нетерминальным S и производством:
- S → ε | "[" S "]" S
То есть S - это либо пустая строка (ε), либо "[", элемент языка Дайка, соответствие "]" и элемент языка Дейка.
Альтернативная контекстно-свободная грамматика для языка Дайка дается производным:
- S → ("[" S "]")
То есть S ноль или больше вхождения комбинации «[», элемента языка Дейка и соответствующего «]», где несколько элементов языка Дейка в правой части продукции могут отличаться друг от друга.
Альтернативное определение
В других контекстах вместо этого может быть полезно определить язык Дика, разделив на классы эквивалентности следующим образом. Для любого элемента длины , мы определяем частичные функции и by
- - это с ", вставленным в ая позиция
- is с удалением «» из -ой позиции
с пониманием того, что не определено для и не определено, если . Мы определяем отношение эквивалентности на следующим образом : для элементов мы имеем тогда и только тогда, когда существует последовательность из нуля или более приложений и функции, начинающиеся с и заканчивающиеся . То, что последовательность нулевых операций разрешена, составляет рефлексивность для . Симметрия следует из наблюдения, что любая конечная последовательность применения к строке можно отменить с помощью конечной последовательности приложений . Транзитивность ясна из определения.
Отношение эквивалентности разделяет язык на классы эквивалентности. Если мы возьмем для обозначения пустой строки, тогда язык, соответствующий классу эквивалентности называется языком Дейка .
Свойства
- Язык Дайка закрывается при операции конкатенации.
- путем обработки как алгебраический моноид при конкатенации мы видим, что структура моноида переносится на частный , в результате чего получается синтаксический моноид языка Дайка . Класс будет обозначен .
- синтаксический моноид Dyck язык не является коммутативным : если и , затем .
- Используя обозначения выше, но ни , ни не обратимы в .
- Синтаксический моноид языка Дика изоморфен бициклической полугруппе в силу свойств и , описанные выше.
- Хомск y – теорема представления Шютценбергера, любой контекстно-свободный язык является гомоморфным образом пересечения некоторого регулярного языка с языком Дейка на одном или нескольких типах пар скобок.
- Язык Дайка с двумя различными типами скобок можно распознать в классе сложности .
- Количество различных слов Дайка с точно n пар скобок и k самых внутренних пар (т.е. подстрока ) - это число Нараяны .
- Количество различных слов Дика с ровно n парами скобок равно n-му каталонскому числу . Обратите внимание, что язык Дейка слов с n парами скобок равен объединению по всем возможным k языкам Дика слов из n пар скобок с k самыми внутренними парами, как определено в предыдущем пункте. Поскольку k может принимать значения от 0 до n, мы получаем следующее равенство, которое действительно выполняется:
Примеры
Мы можем определить отношение эквивалентности на язык Дика . Для мы имеем тогда и только тогда, когда , т.е. и иметь одинаковую длину. Это отношение разделяет язык Дайка где . Обратите внимание, что пуст для нечетного .
. Введя слова Дика length , мы можем ввести для них отношения. Для каждого мы определяем отношение на ; для мы имеем тогда и только тогда, когда можно получить из серией правильных свопов . Правильный обмен в слове заменяет вхождение '] [' на ''. Для каждого отношение составляет в частично упорядоченный набор. Отношение является рефлексивным, потому что пустая последовательность правильных свопов занимает на . Транзитивность следует, потому что мы можем расширить последовательность правильных свопов, которая переводит в путем объединения его с последовательностью правильных свопов, которая переводит в формирует последовательность, которая переводит в . Чтобы увидеть, что также антисимметричный, мы вводим вспомогательную функцию определяется как сумма по всем префиксам из :
В следующей таблице показано, что строго монотонный в отношении к правильным свопам.
Строгая монотонность частичных сумм | | | | |
---|
| | ] | [ | |
---|
| | [ | ] | |
---|
частичные суммы | | | | |
---|
Разница частичных сумм | 0 | 2 | 0 | 0 |
---|
Следовательно, так что при наличии правильного свопа, требующего в . Теперь, если мы предположим, что оба и , тогда есть непустые последовательности правильных свопов, такие как . в и наоборот. Но тогда что бессмысленно. Следовательно, если оба и находятся в , мы имеем , следовательно, антисимметричен.
Частично упорядоченный набор показан на иллюстрации, сопровождающей введение, если мы интерпретируем [как восходящий и] как идущий вниз.
Обобщения
Существуют варианты языка Дейка с несколькими разделителями, например, в алфавите «(», «)», «[» и «]». Слова такого языка - это те слова, которые хорошо заключены в круглые скобки для всех разделителей, то есть можно читать слово слева направо, вставлять каждый открывающий разделитель в стек, и всякий раз, когда мы достигаем закрывающего разделителя, мы должны иметь возможность, чтобы извлечь соответствующий открывающий разделитель из верхней части стека.
См. Также
Примечания
Ссылки