Обычный язык
В теоретической информатике и теории формального языка регулярный язык (также называемый рациональным языком ) [1] [2] — это формальный язык , который может быть определен регулярным выражением в строгом смысле этого слова в теоретической информатике (в отличие от многих современных механизмов регулярных выражений, которые дополнены функциями , позволяющими распознавать нерегулярные языки).
Альтернативно, регулярный язык можно определить как язык, распознаваемый конечным автоматом . Эквивалентность регулярных выражений и конечных автоматов известна как теорема Клини. [3] (в честь американского математика Стивена Коула Клини ). В иерархии Хомского регулярные языки — это языки, порожденные грамматиками типа 3 .
Формальное определение [ править ]
Коллекция регулярных языков над алфавитом Σ определяется рекурсивно следующим образом:
- Пустой язык Ø является регулярным языком.
- Для каждого a ∈ Σ ( a принадлежит Σ) одноэлементный язык { a } является регулярным языком.
- Если A — регулярный язык, A * ( звезда Клини ) — регулярный язык. Благодаря этому язык пустых строк {ε} также является регулярным.
- Если A и B — регулярные языки, то A ∪ B (объединение) и A • B (конкатенация) — регулярные языки.
- Никакие другие языки над Σ не являются регулярными.
См. «Регулярное выражение», чтобы узнать о синтаксисе и семантике регулярных выражений.
Примеры [ править ]
Все конечные языки регулярны; в частности, язык пустых строк {ε} = Ø* является регулярным. Другие типичные примеры включают язык, состоящий из всех строк алфавита { a , b }, которые содержат четное число a , или язык, состоящий из всех строк формы: несколько a , за которыми следует несколько b .
Простым примером нерегулярного языка является набор строк { a н б н | п ≥ 0}. [4] Интуитивно его невозможно распознать с помощью конечного автомата, поскольку конечный автомат имеет конечную память и не может запомнить точное количество а. приведены методы строгого доказательства этого факта Ниже .
формализмы Эквивалентные
Регулярный язык удовлетворяет следующим эквивалентным свойствам:
- это язык регулярных выражений (по приведенному выше определению)
- это язык, принимаемый недетерминированным конечным автоматом (NFA). [примечание 1] [примечание 2]
- это язык, принимаемый детерминированным конечным автоматом (DFA). [примечание 3] [примечание 4]
- его можно сгенерировать с помощью обычной грамматики [примечание 5] [примечание 6]
- это язык, принимаемый попеременным конечным автоматом
- это язык, принимаемый двусторонним конечным автоматом
- он может быть сгенерирован с помощью префиксной грамматики
- его может принять машина Тьюринга только для чтения
- его можно определить в монадической логике второго порядка ( теорема Бючи–Эльгота–Трахтенброта ) [5]
- он распознается некоторым конечным синтаксическим моноидом M , то есть является прообразом { w ∈ Σ * | f ( w ) ∈ S } подмножества S конечного моноида M при моноидном гомоморфизме f : Σ * → M из свободного моноида по его алфавиту [примечание 7]
- число классов эквивалентности его синтаксического соответствия конечно. [примечание 8] [примечание 9] (Это число равно числу состояний минимального детерминированного конечного автомата, допускающего L .)
Свойства 10 и 11 представляют собой чисто алгебраические подходы к определению регулярных языков; аналогичный набор утверждений можно сформулировать для моноида M ⊆ Σ * . В этом случае эквивалентность над M приводит к понятию распознаваемого языка.
Некоторые авторы используют одно из приведенных выше свойств, отличное от «1». как альтернативное определение регулярных языков.
Некоторые из приведенных выше эквивалентностей, особенно среди первых четырех формализмов, в учебниках называются теоремой Клини . Какой именно из них (или какое подмножество) называется таковым, варьируется у разных авторов. В одном учебнике эквивалентность регулярных выражений и NFA («1» и «2» выше) названа «теоремой Клини». [6] Другой учебник называет эквивалентность регулярных выражений и ДКА («1» и «3» выше) «теоремой Клини». [7] Два других учебника сначала доказывают выразительную эквивалентность NFA и DFA («2» и «3»), а затем утверждают «теорему Клини» как эквивалентность между регулярными выражениями и конечными автоматами (последние, как говорят, описывают «узнаваемые языки»). . [2] [8] Лингвистически ориентированный текст сначала приравнивает регулярные грамматики («4.» выше) к DFA и NFA, называет языки, порожденные (любым из) этих языков, «регулярными», после чего вводит регулярные выражения, которые он называет терминами для описания «рациональных языков». и, наконец, утверждает «теорему Клини» как совпадение регулярных и рациональных языков. [9] Другие авторы просто определяют «рациональное выражение» и «регулярные выражения» как синонимы и делают то же самое с «рациональными языками» и «регулярными языками». [1] [2]
Судя по всему, термин «регулярные» происходит из технического отчета 1951 года, где Клини представила термин «регулярные мероприятия» и открыто приветствовала «любые предложения относительно более описательного термина» . [10] Ноам Хомский использовал термин «регулярный» в своей основополагающей статье 1959 года сначала в другом значении (имея в виду то, что сегодня называется « нормальной формой Хомского » ), [11] но заметил, что его «конечные государственные языки» были эквивалентны «регулярным мероприятиям» Клини . [12]
Свойства замыкания [ править ]
Регулярные языки замкнуты относительно различных операций, т. е. если языки К и L регулярны, то регулярен и результат следующих операций:
- теоретико -множественные булевы операции : объединение K ∪ L , пересечение K ∩ L и дополнение L , а следовательно, и относительное дополнение K − L . [13]
- регулярные операции: K ∪ L , конкатенация и звезда Клини L * . [14]
- трио гомоморфизм операций: строк , обратный гомоморфизм строк и пересечение с регулярными языками. Как следствие, они замкнуты относительно произвольных преобразований с конечным состоянием , как фактор K / L с регулярным языком. Более того, регулярные языки замкнуты относительно факторов с произвольными языками: если L регулярен, то / K регулярен для любого K. L [15]
- реверс (или зеркальное отображение) L Р . [16] Учитывая недетерминированный конечный автомат для распознавания L , автомат для L Р можно получить, обратив все переходы и поменяв местами начальное и конечное состояния. Это может привести к появлению нескольких начальных состояний; Для их соединения можно использовать ε-переходы.
Свойства разрешимости [ править ]
Учитывая два детерминированных конечных автомата A и B , можно решить, принимают ли они один и тот же язык. [17] Как следствие, используя приведенные выше свойства замыкания, следующие проблемы также разрешимы для произвольно заданных детерминированных конечных автоматов A и B с принятыми языками L A и L B соответственно:
- Сдерживание: L A ⊆ L B ? [примечание 10]
- Дизъюнктность: L A ∩ L B = {}?
- Пустота: L A = {}?
- Универсальность: L A = Σ * ?
- Членство: при условии a ∈ Σ * , является ли a ∈ L B ?
Для регулярных выражений проблема универсальности NP-полна уже для одноэлементного алфавита. [18] Для больших алфавитов эта проблема является PSPACE-полной . [19] Если регулярные выражения расширены и позволяют использовать оператор возведения в квадрат , с " A 2 " обозначает то же самое, что и " АА ", но можно описать только обычные языки, но проблема универсальности имеет нижнюю границу экспоненциального пространства, [20] [21] [22] и фактически является полным для экспоненциального пространства относительно полиномиальной редукции по времени. [23]
Для фиксированного конечного алфавита теория множества всех языков — вместе со строками, принадлежностью строки к языку и для каждого символа функцией добавления символа к строке (и никакими другими операциями) — разрешима. , а его минимальная элементарная подструктура состоит именно из регулярных языков. Для двоичного алфавита теория называется S2S . [24]
Результаты по сложности [ править ]
В теории сложности вычислений всех класс сложности регулярных языков иногда называют REGULAR или REG и равен DSPACE (O(1)), проблемам решения , которые могут быть решены в постоянном пространстве (используемое пространство не зависит от размера входных данных). ). ОБЫЧНЫЙ ≠ переменный ток 0 , поскольку он (тривиально) содержит проблему четности определения того, является ли число 1 бит во входных данных четным или нечетным, и этой проблемы нет в AC 0 . [25] С другой стороны, REGULAR не содержит переменного тока. 0 , потому что неправильный язык палиндромов или неправильный язык оба могут быть распознаны в AC 0 . [26]
Если язык не требуется машина с объемом памяти не менее Ω (log log n является регулярным, для его распознавания ) (где n — размер ввода). [27] Другими словами, DSPACE( o (log log n )) соответствует классу регулярных языков. На практике большинство нерегулярных задач решаются машинами, занимающими как минимум логарифмическое пространство .
Местоположение в иерархии Хомского [ править ]
Чтобы найти регулярные языки в иерархии Хомского , нужно заметить, что каждый регулярный язык является контекстно-свободным . Обратное неверно: например, язык, состоящий из всех строк, имеющих одинаковое количество символов a и b , является контекстно-свободным, но не регулярным. Чтобы доказать, что язык не является регулярным, часто используют теорему Майхилла–Нероде и лемму о накачке . Другие подходы включают использование свойств замыкания обычных языков. [28] или количественная оценка колмогоровской сложности . [29]
Важные подклассы обычных языков включают
- Конечные языки, содержащие только конечное число слов. [30] Это регулярные языки, поскольку можно создать регулярное выражение , представляющее собой объединение каждого слова языка.
- Языки без звезд , те, которые могут быть описаны регулярным выражением, составленным из пустого символа, букв, конкатенации и всех логических операторов (см. Алгебру множеств ), включая дополнение , но не звезду Клини : этот класс включает все конечные языки. [31]
Количество слов в обычном языке [ править ]
Позволять обозначают количество слов длины в . Обычная производящая функция для L представляет собой формальный степенной ряд
Производящая функция языка L является рациональной функцией, если L регулярен. [32] Следовательно, для каждого регулярного языка последовательность является постоянно-рекурсивным ; то есть существует целая константа , комплексные константы и комплексные полиномы такой, что для каждого число слов длиной в является . [33] [34] [35] [36]
Таким образом, нерегулярность некоторых языков можно доказать, посчитав слова заданной длины в . Рассмотрим, например, язык Дика строк со сбалансированными круглыми скобками. Количество слов длиной на языке Дейка равно каталонскому числу , который не имеет вида ,свидетельствуя о нерегулярности языка Дейка. Необходимо соблюдать осторожность, поскольку некоторые собственные значения может иметь такую же величину. Например, количество слов длиной в языке все даже двоичные слова не имеют вида , но количество слов четной или нечетной длины имеет такой вид; соответствующие собственные значения равны . Вообще говоря, для каждого регулярного языка существует константа такой, что для всех , количество слов длиной асимптотически . [37]
Дзета -функция языка L равна [32]
Дзета-функция регулярного языка, вообще говоря, не рациональна, а функция произвольного циклического языка — рациональна. [38] [39]
Обобщения [ править ]
Понятие регулярного языка было обобщено на бесконечные слова (см. ω-автоматы ) и на деревья (см. древесный автомат ).
Рациональное множество обобщает понятие (регулярного/рационального языка) на моноиды, которые не обязательно свободны . Аналогично, понятие распознаваемого языка (конечным автоматом) имеет тезку как распознаваемое множество над моноидом, который не обязательно свободен. Говард Штраубинг отмечает по поводу этих фактов: «Термин «обычный язык» несколько неудачен. Статьи под влиянием Эйленберга монографии [40] часто используют либо термин «узнаваемый язык», который относится к поведению автоматов, либо «рациональный язык», который относится к важным аналогиям между регулярными выражениями и рациональными степенными рядами . (На самом деле Эйленберг определяет рациональные и узнаваемые подмножества произвольных моноидов; эти два понятия, в общем, не совпадают.) Эта терминология, хотя и более обоснованная, так и не прижилась, и «регулярный язык» используется почти повсеместно». [41]
Рациональный ряд — это еще одно обобщение, на этот раз в контексте формального степенного ряда по полукольцу . Этот подход приводит к взвешенным рациональным выражениям и взвешенным автоматам . В этом алгебраическом контексте регулярные языки (соответствующие логическим взвешенным рациональным выражениям) обычно называются рациональными языками . [42] [43] Также в этом контексте теорема Клини находит обобщение, называемое теоремой Клини-Шютценбергера .
Обучение на примерах [ править ]
Примечания [ править ]
- ^ 1. ⇒ 2. по алгоритму построения Томпсона.
- ^ 2. ⇒ 1. по алгоритму Клини или по лемме Ардена.
- ^ 2. ⇒ 3. по конструкции степенного набора
- ^ 3. ⇒ 2. поскольку первое определение сильнее второго.
- ^ 2. ⇒ 4. см. Хопкрофт, Ульман (1979), теорема 9.2, стр. 219.
- ^ 4. ⇒ 2. см. Хопкрофт, Ульман (1979), теорема 9.1, стр. 218.
- ^ 3. ⇔ 10. по теореме Майхилла – Нерода.
- ^ u ~ v определяется как: uw € L тогда и только тогда, когда vw € L для всех w €Σ *
- ^ 3. ⇔ 11. см. доказательство в статье Синтаксический моноид и см. стр. 160 в Холкомб, WML (1982). Алгебраическая теория автоматов . Кембриджские исследования по высшей математике. Том. 1. Издательство Кембриджского университета . ISBN 0-521-60492-3 . Збл 0489.68046 .
- ^ Проверьте, есть ли L A ∩ L B знак равно L A . Решение об этом свойстве является NP-сложным вообще ; см. файл:RegSubsetNP.pdf для иллюстрации идеи доказательства.
Ссылки [ править ]
- Берстель, Жан ; Ройтенауэр, Кристоф (2011). Некоммутативные рациональные ряды с приложениями . Энциклопедия математики и ее приложений. Том. 137. Кембридж: Издательство Кембриджского университета . ISBN 978-0-521-19022-0 . Збл 1250.68007 .
- Эйленберг, Сэмюэл (1974). Автоматы, языки и машины. Том А. Чистая и прикладная математика. Том. 58. Нью-Йорк: Академик Пресс. Збл 0317.94045 .
- Саломаа, Арто (1981). Жемчужины теории формального языка . Издательство Питман. ISBN 0-273-08522-0 . Збл 0487.68064 .
- Сипсер, Майкл (1997). Введение в теорию вычислений . Издательство ПВС. ISBN 0-534-94728-Х . Збл 1169,68300 . Глава 1: Обычные языки, стр. 31–90. Подраздел «Разрешимые проблемы, касающиеся регулярных языков» раздела 4.1: Разрешимые языки, стр. 152–155.
- Филипп Флажоле и Роберт Седжвик, Аналитическая комбинаторика : символическая комбинаторика. Интернет-книга, 2002.
- Джон Э. Хопкрофт; Джеффри Д. Уллман (1979). Введение в теорию автоматов, языки и вычисления . Аддисон-Уэсли. ISBN 0-201-02988-Х .
- Альфред В. Ахо, Джон Э. Хопкрофт и Джеффри Д. Ульман (1974). Проектирование и анализ компьютерных алгоритмов . Аддисон-Уэсли. ISBN 9780201000290 .
- ^ Jump up to: а б Руслан Митьков (2003). Оксфордский справочник по компьютерной лингвистике . Издательство Оксфордского университета. п. 754. ИСБН 978-0-19-927634-9 .
- ^ Jump up to: а б с Марк В. Лоусон (2003). Конечные автоматы . ЦРК Пресс. стр. 98–103. ISBN 978-1-58488-255-8 .
- ^ Шэн Юй (1997). «Регулярные языки» . В Гжегоже Розенберге; Арто Саломаа (ред.). Справочник по формальным языкам: Том 1. Слово, язык, грамматика . Спрингер. п. 41. ИСБН 978-3-540-60420-4 .
- ^ Эйленберг (1974), с. 16 (Пример II, 2.8) и с. 25 (пример II, 5.2).
- ^ М. Вейер: Глава 12 - Разрешимость S1S и S2S, с. 219, теорема 12.26. В: Эрих Гредель, Вольфганг Томас, Томас Вильке (ред.): Автоматы, логика и бесконечные игры: Путеводитель по текущим исследованиям. Конспекты лекций по информатике 2500, Springer 2002.
- ^ Роберт Седжвик; Кевин Дэниел Уэйн (2011). Алгоритмы . Аддисон-Уэсли Профессионал. п. 794. ИСБН 978-0-321-57351-3 .
- ^ Жан-Поль Аллуш; Джеффри Шалит (2003). Автоматические последовательности: теория, приложения, обобщения . Издательство Кембриджского университета. п. 129. ИСБН 978-0-521-82332-6 .
- ^ Кеннет Розен (2011). Дискретная математика и ее приложения. 7-е издание . МакГроу-Хилл Наука. стр. 873–880.
- ^ Хорст Бунке; Альберто Санфелиу (январь 1990 г.). Распознавание синтаксических и структурных образов: теория и приложения . Всемирная научная. п. 248. ИСБН 978-9971-5-0566-0 .
- ^ Стивен Коул Клини (декабрь 1951 г.). Представление событий в нервных сетях и конечном автомате (PDF) (Меморандум об исследовании). ВВС США/Корпорация РЭНД. Здесь: стр.46
- ^ Ноам Хомский (1959). «О некоторых формальных свойствах грамматик» (PDF) . Информация и контроль . 2 (2): 137–167. дои : 10.1016/S0019-9958(59)90362-6 . Здесь: Определение 8, стр.149.
- ^ Хомский 1959, сноска 10, стр. 150.
- ^ Саломаа (1981) стр.28
- ^ Саломаа (1981) стр.27
- ^ Товарищи, Майкл Р .; Лэнгстон, Майкл А. (1991). «Проблемы конструктивности в графовых алгоритмах». В Майерсе, Дж. Поле младшем; О'Доннелл, Майкл Дж. (ред.). Конструктивность в информатике, Летний симпозиум, Сан-Антонио, Техас, США, 19-22 июня, Материалы . Конспекты лекций по информатике. Том. 613. Спрингер. стр. 150–158. дои : 10.1007/BFB0021088 .
- ^ Хопкрофт, Ульман (1979), Глава 3, Упражнение 3.4g, с. 72
- ^ Хопкрофт, Ульман (1979), теорема 3.8, стр.64; см. также теорему 3.10, с.67
- ^ Ахо, Хопкрофт, Ульман (1974), Упражнение 10.14, стр.401
- ^ Ахо, Хопкрофт, Ульман (1974), теорема 10.14, стр. 399
- ^ Хопкрофт, Ульман (1979), Теорема 13.15, стр.351
- ^ А. Р. Мейер и Л. Дж. Стокмейер (октябрь 1972 г.). Проблема эквивалентности регулярных выражений с возведением в квадрат требует экспоненциального пространства (PDF) . 13-й ежегодный симпозиум IEEE. по теории коммутации и автоматов. стр. 125–129.
- ^ Л. Дж. Стокмейер; А. Р. Мейер (1973). «Словесные задачи, требующие экспоненциального времени». Учеб. 5-летие. симп. по теории вычислений (STOC) (PDF) . АКМ. стр. 1–9.
- ^ Хопкрофт, Ульман (1979), Следствие, стр.353
- ^ Вейер, Марк (2002). «Разрешимость S1S и S2S» . Автоматы, логика и бесконечные игры . Конспекты лекций по информатике. Том. 2500. Спрингер. стр. 207–230. дои : 10.1007/3-540-36387-4_12 . ISBN 978-3-540-00388-5 .
- ^ Ферст, Меррик; Сакс, Джеймс Б .; Сипсер, Майкл (1984). «Четность, схемы и иерархия полиномиального времени». Теория математических систем . 17 (1): 13–27. дои : 10.1007/BF01744431 . МР 0738749 . S2CID 14677270 .
- ^ Кук, Стивен; Нгуен, Фуонг (2010). Логические основы сложности доказательства (1-е изд.). Итака, Нью-Йорк: Ассоциация символической логики. п. 75. ИСБН 978-0-521-51729-4 .
- ^ Дж. Хартманис, П.Л. Льюис II и Р.Э. Стернс. Иерархии вычислений с ограниченной памятью. Труды 6-го ежегодного симпозиума IEEE по теории переключающих схем и проектированию логики , стр. 179–190. 1965.
- ^ «Как доказать, что язык неправильный?» . cs.stackexchange.com . Проверено 10 апреля 2018 г.
- ^ Хромкович, Юрай (2004). Теоретическая информатика: введение в автоматы, вычислимость, сложность, алгоритмика, рандомизация, коммуникация и криптография . Спрингер. стр. 76–77. ISBN 3-540-14015-8 . OCLC 53007120 .
- ^ Конечный язык не следует путать с (обычно бесконечным) языком, порожденным конечным автоматом.
- ^ Фолькер Дикерт; Пол Гастин (2008). «Определимые языки первого порядка» (PDF) . В Йорге Флуме; Эрих Гредель; Томас Уилк (ред.). Логика и автоматы: история и перспективы . Издательство Амстердамского университета. ISBN 978-90-5356-576-6 .
- ^ Jump up to: а б Хонкала, Джуха (1989). «Необходимое условие рациональности дзета-функции регулярного языка» . Теор. Вычислить. Наука . 66 (3): 341–347. дои : 10.1016/0304-3975(89)90159-х . Збл 0675.68034 .
- ^ Flajolet & Sedgweick, раздел V.3.1, уравнение (13).
- ^ «Количество слов в обычном языке $(00)^*$» . cs.stackexchange.com . Проверено 10 апреля 2018 г.
- ^ «Доказательство теоремы для произвольных ДКА» .
- ^ «Количество слов заданной длины в обычном языке» . cs.stackexchange.com . Проверено 10 апреля 2018 г.
- ^ Флажоле и Седжвик (2002) Теорема V.3
- ^ Берстель, Жан; Ройтенауэр, Кристоф (1990). «Дзета-функции формальных языков». Транс. Матем . 321 (2): 533–546. CiteSeerX 10.1.1.309.3005 . дои : 10.1090/s0002-9947-1990-0998123-x . Збл 0797.68092 .
- ^ Берстель и Ройтенауэр (2011) стр.222
- ^ Сэмюэл Эйленберг. Автоматы, языки и машины . Академическая пресса. в двух томах «А» (1974, ISBN 9780080873749 ) и «Б» (1976, ISBN 9780080873756 ), последний с двумя главами Брета Тилсона.
- ^ Штраубинг, Ховард (1994). Конечные автоматы, формальная логика и сложность схемы . Прогресс в теоретической информатике. Базель: Биркхойзер. п. 8 . ISBN 3-7643-3719-2 . Збл 0816.68086 .
- ^ Берстель и Ройтенауэр (2011) стр.47
- ^ Сакарович, Жак (2009). Элементы теории автоматов . Перевод с французского Рубена Томаса. Кембридж: Издательство Кембриджского университета . п. 86. ИСБН 978-0-521-84425-3 . Збл 1188.68177 .
Дальнейшее чтение [ править ]
- Клини, С.К .: Представление событий в нервных сетях и конечных автоматах. В: Шеннон, К.Э., Маккарти, Дж. (ред.) Исследования автоматов, стр. 3–41. Издательство Принстонского университета, Принстон (1956); это слегка измененная версия его RAND Corporation одноименного отчета 1951 года, RM704 .
- Сакарович, Дж (1987). «Возвращение к теореме Клини». Тенденции, методы и проблемы теоретической информатики . Конспекты лекций по информатике. Том. 1987. стр. 39–50. дои : 10.1007/3540185356_29 . ISBN 978-3-540-18535-2 .