язык Дейка
Эта статья в значительной степени или полностью опирается на один источник . ( апрель 2015 г. ) |
В теории формальных языков информатики представляет , математики и лингвистики слово Дейка собой сбалансированную строку скобок.Совокупность слов Дика образует язык Дика . Самый простой, D1, использует только две совпадающие скобки, например ( и ).
Слова и язык Дейка названы в честь математика Вальтера фон Дейка . Они применяются при анализе выражений, которые должны иметь правильно вложенную последовательность скобок, например арифметических или алгебраических выражений.
Формальное определение
[ редактировать ]Позволять — алфавит, состоящий из символов [ и ]. Позволять обозначим его замыкание Клини .Язык Дейка определяется как:
Контекстно-свободная грамматика
[ редактировать ]В некоторых ситуациях может быть полезно определить язык Дейка с помощью контекстно-свободной грамматики .Язык Дайка генерируется контекстно-свободной грамматикой с одним нетерминальным S и постановкой:
- С → ε | " SS " [
То есть S — это либо пустая строка ( ε ), либо «[», элемент языка Дика, соответствующий «]» и элемент языка Дика.
Альтернативная контекстно-свободная грамматика языка Дейка задается постановкой:
- С → («[» С »]») *
То есть S — это ноль или более вхождений комбинации «[», элемента языка Дика, и соответствующего «]», где несколько элементов языка Дика в правой части продукции могут отличаться от друг друга.
Альтернативное определение
[ редактировать ]В других контекстах вместо этого может быть полезно определить язык Дейка, разделив на классы эквивалентности следующим образом.Для любого элемента длины , мы определяем частичные функции и к
- является с " "вставлено в позиция
- является с " "удалено из позиция
с пониманием того, что не определено для и не определено, если . Определим отношение эквивалентности на следующим образом: для элементов у нас есть тогда и только тогда, когда существует последовательность нуля или более применений и функции, начинающиеся с и заканчивая . То, что последовательность нулевых операций разрешена, рефлексивность объясняет . Симметрия следует из наблюдения, что любая конечная последовательность применений к строке можно отменить с помощью конечной последовательности применений . Транзитивность ясна из определения.
Отношение эквивалентности разделяет язык на классы эквивалентности. Если мы возьмем для обозначения пустой строки, то язык, соответствующий классу эквивалентности называется языком Дейка .
Характеристики
[ редактировать ]- Язык Дейка замкнут по отношению к операции конкатенации .
- Леча как алгебраический моноид при конкатенации, мы видим, что структура моноида переходит на фактор , что приводит к синтаксическому моноиду языка Дейка . Класс будет обозначен .
- Синтаксический моноид языка Дейка не коммутативен : если и затем .
- С учетом приведенных выше обозначений но ни ни обратимы в .
- Синтаксический моноид языка Дика изоморфен бициклической полугруппе в силу свойств и описано выше.
- По теореме о представлении Хомского-Шютценбергера любой контекстно-свободный язык представляет собой гомоморфный образ пересечения некоторого регулярного языка с языком Дика на одном или нескольких типах пар скобок. [1]
- Язык Дейка с двумя различными типами скобок можно распознать в классе сложности. . [2]
- Количество различных слов Дика ровно с n парами круглых скобок и k самыми внутренними парами (а именно, подстрокой ) — число Нараяны .
- Количество различных слов Дика, в которых ровно n пар скобок, есть n -е каталонское число. . Обратите внимание, что язык Дика слов с n парами круглых скобок равен объединению по всем возможным k языков Дика слов с n парами круглых скобок с k самыми внутренними парами , как определено в предыдущем пункте. Поскольку k может принимать значения от 0 до n , мы получаем следующее равенство, которое действительно имеет место:
Примеры
[ редактировать ]Мы можем определить отношение эквивалентности на языке Дейка . Для у нас есть тогда и только тогда, когда , то есть и иметь одинаковую длину. Это отношение разделяет язык Дейка: . У нас есть где . Обратите внимание, что пусто для нечетного .
Введя слова Дика о длине , мы можем ввести на них связь. Для каждого мы определяем отношение на ; для у нас есть тогда и только тогда, когда можно добраться из серией правильных обменов . Правильный обмен одним словом заменяет вхождение '][' на '[]'.Для каждого отношение делает в частично упорядоченное множество . Отношение является рефлексивным, поскольку пустая последовательность правильных перестановок занимает к . Транзитивность возникает потому, что мы можем расширить последовательность правильных перестановок, которая принимает к путем объединения его с последовательностью правильных обменов, которая занимает к образуя последовательность, которая принимает в . Чтобы увидеть это также антисимметрична, введем вспомогательную функцию определяется как сумма по всем префиксам из :
Следующая таблица иллюстрирует это относительно строго монотонно правильных перестановок.
частичные суммы | ||||
---|---|---|---|---|
] | [ | |||
[ | ] | |||
частичные суммы | ||||
Разница частичных сумм | 0 | 2 | 0 | 0 |
Следовательно так когда есть правильный обмен, который занимает в . Теперь, если мы предположим, что оба и , то существуют непустые последовательности правильных перестановок такие принимается во внимание и наоборот. Но тогда что бессмысленно. Поэтому всякий раз, когда оба и находятся в , у нас есть , следовательно является антисимметричным.
Частично упорядоченное множество показано на иллюстрации, сопровождающей введение, если мы интерпретируем [ как движение вверх, а ] как движение вниз.
Обобщения
[ редактировать ]Существуют варианты языка Дейка с несколькими разделителями, например, D2 в алфавите «(», «)», «[» и «]». Слова такого языка - это слова, которые заключены в круглые скобки для всех разделителей, т. е. можно читать слово слева направо, помещать каждый открывающий разделитель в стек, и всякий раз, когда мы достигаем закрывающего разделителя, мы должны иметь возможность чтобы вытащить соответствующий открывающий разделитель из вершины стека. (Приведенный выше алгоритм подсчета не обобщает).