Вложенное слово
В информатике , точнее в автоматов и формального языка теории , вложенные слова — это концепция, предложенная Алуром и Мадхусуданом как совместное обобщение слов , традиционно используемых для моделирования линейно упорядоченных структур, и упорядоченных неранжированных деревьев , традиционно используемых для моделирования. иерархические структуры. Акцепторы конечного состояния для вложенных слов,так называемые вложенные словесные автоматы , то дают более выразительное обобщение конечных автоматов на слова. Линейные кодировки языков, принимаемые конечными вложенными словесными автоматами, образуют класс языков с видимым смещением вниз . Последний класс языков находится между обычными языками и детерминированными контекстно-свободными языками . С момента своего появления в 2004 году эти концепции послужили толчком для большого количества исследований в этой области. [1]
Формальное определение [ править ]
Чтобы определить вложенные слова , сначала определите отношения соответствия . Для неотрицательного целого числа , обозначение обозначает множество , в частном случае .
Отношение соответствия ↝ длины является подмножеством такой, что:
- все ребра вложенности направлены вперед, то есть если i ↝ j, то i < j ;
- ребра вложения никогда не имеют общей конечной позиции, то есть для −∞ < i < ∞ существует не более одной позиции h такой, что h ↝ i , и существует не более одной позиции j такой, что i ↝ j ; и
- ребра вложения никогда не пересекаются, то есть не существует i < i ′ ≤ j < j ′ таких, что и i ↝ j , и i ′ ↝ j ′ .
Позиция i называется
- позиция вызова , если i ↝ j для некоторого j ,
- если ожидающий вызов, i ↝ ∞,
- обратная позиция , если h ↝ i для некоторого h ,
- если ожидающий доход, −∞ ↝ i и
- внутренняя позиция во всех остальных случаях.
слово Вложенное длины над алфавитом Σ — это пара ( w ,↝), где w — слово или строка длины над Σ и ↝ является отношением согласования длины .
Кодирование вложенных слов в обычные слова [ править ]
Вложенные слова в алфавите могут быть закодированы в «обычные» слова в алфавите тегов , в котором каждый символ a из Σ имеет три помеченных аналога:символ ⟨a для кодирования позиции вызова во вложенном слове, помеченном , символ a⟩ для кодирования позиции возврата, помеченной , и, наконец, сам символ a для представления внутренней позиции, помеченной . Точнее, пусть φ — функция, отображающая вложенные слова над Σ в слова над такое, что каждое вложенное слово ( ,↝) отображается в слово , где буква равно ⟨a , a и a⟩ , если и i представляет собой (возможно, ожидающую) позицию вызова, внутреннюю позицию и (возможно, ожидающую) позицию возврата соответственно.
Пример [ править ]
Для иллюстрации пусть n = ( w ,↝) — вложенное слово в троичном алфавите с w = abaabccca и отношением соответствия ↝ = {(−∞,1),(2,∞),(3,4),(5 ,7),(8,∞) }. Тогда его кодировка в виде слова читается как φ ( n ) = a ⟩⟨ b ⟨ aa ⟩⟨ bcc ⟩⟨ ca .
Автоматический [ править ]
Автомат вложенных слов [ править ]
Автомат с вложенными словами имеет конечное число состояний и работает почти так же, как детерминированный конечный автомат с классическими строками: классический конечный автомат считывает входное слово. слева направо и состояние автомата после прочтения j -й буквы зависит от того, в каком состоянии находился автомат перед чтением .
Во вложенном словесном автомате позиция во вложенном слове (w,↝) может быть позиция возврата; если да, то состояние после прочтения будет зависеть не только от того , в каком линейном состоянии находился автомат до чтения , но также и на иерархическом состоянии, распространяемом автоматом в тот момент, когда он находился в соответствующей позиции вызова. По аналогии с регулярными языками слов множество L вложенных слов называется регулярным, если оно принимается некоторым (конечным) автоматом вложенных слов.
Видимый автомат с выдвижным механизмом [ править ]
Автоматы с вложенными словами — это модель автомата, принимающая вложенные слова. Существует эквивалентная автоматная модель, работающая с (обычными) словами. А именно, понятие детерминированного автомата с видимым понижением уровня является ограничением понятия детерминированного автомата с понижением уровня .
Вслед за Алуром и Мадхусуданом, [2] детерминированный автомат с видимым нажатием формально определяется как 6-кортежный где
- это конечное множество состояний ,
- — входной алфавит , который, в отличие от алфавита обычных автоматов с выталкиванием, разбит на три множества , , и . Алфавит обозначает набор символов вызова , содержит символы возврата и набор содержит внутренние символы ,
- — это конечное множество, называемое стековым алфавитом , содержащее специальный символ обозначающий пустой стек,
- — это функция перехода , которая разделена на три части, соответствующие переходам вызова, обратным переходам и внутренним переходам, а именно
- , функция перехода вызова
- , функция обратного перехода
- , внутренняя функция перехода ,
- — начальное состояние , а
- — это набор принимающих состояний .
Понятие вычисления автомата с видимым опусканием вниз является ограничением того, которое используется для автоматов с понижением уровня . Автоматы с видимым нажатием вниз добавляют символ в стек только при чтении символа вызова. , они удаляют только верхний элемент из стека при чтении символа возврата и они не изменяют стек при чтении внутреннего события . Вычисление, заканчивающееся состоянием принятия, является принимающим вычислением .
В результате автомат, видимый сбрасываемым вниз, не может вводить и извлекать из стека один и тот же входной символ. Таким образом, язык не может быть принят автоматом с видимым нажатием вниз для любого раздела , однако существуют автоматы с понижением уровня, принимающие этот язык.
Если язык над размеченным алфавитом принимается детерминированным автоматом с видимым нажатием вниз, тогда называется явно выталкивающим языком .
Недетерминированные автоматы с видимым нажатием [ править ]
Недетерминированные автоматы с видимым нажатием столь же выразительны, как и детерминированные. Следовательно, можно преобразовать недетерминированный автомат с видимым нажатием вниз в детерминированный, но если бы недетерминированный автомат имел состояний, детерминированный может иметь до государства. [3]
Проблемы с решением [ править ]
Позволять быть размером описания автомата , то можно проверить, принято ли слово n автоматом за время . В частности, проблема пустоты разрешима во времени .Если фиксировано, оно разрешимо во времени и космос где — это глубина n при потоковом видении. Это также разрешимо с пространством и время , и однородной логической схемой глубины . [2]
Для двух недетерминированных автоматов A и B решение о том, является ли набор слов, принятый A , подмножеством слова, принятого B, является EXPTIME -полным. Также EXPTIME-полный, чтобы выяснить, есть ли слово, которое не принимается. [2]
Языки [ править ]
Как показывает определение явно раскрывающихся автоматов, детерминированные явно изменяемые автоматы можно рассматривать как частный случай детерминированных автоматов с видимым нажатием ; таким образом, набор VPL явно смещенных языков над образует подмножество множества DCFL детерминированных контекстно-свободных языков над набором символов в . В частности, функция, которая удаляет отношение соответствия из вложенных слов, преобразует обычные языки по вложенным словам в контекстно-свободные языки.
Свойства замыкания [ править ]
Набор явно раскрывающихся языков закрывается при следующих операциях: [3] [2]
- набор операций:
- союз
- пересечение
- дополнять,
- таким образом давая начало булевой алгебре .
Для операции пересечения можно построить VPA M, моделирующую два заданных VPA. и с помощью простой конструкции произведения ( Alur & Madhusudan 2004 ): Для , предполагать дается как . Тогда для автомата M множество состояний равно , начальное состояние , набор конечных состояний равен , алфавит стека определяется выражением , а начальный символ стека равен .
Если находится в состоянии при чтении символа вызова , затем толкает символ стека и идет в штат , где это символ стека, нажатый при переходе из состояния к при чтении ввода .
Если находится в состоянии при чтении внутреннего символа , затем идет в штат , в любое время переходы из состояния к при . чтении
Если находится в состоянии при чтении символа возврата , затем появляется символ из стека иидет в штат , где это символ стека, выскочивший при переходе из состояния к при чтении .
Корректность приведенной выше конструкции в решающей степени зависит от того факта, что действия толчка и выталкивания моделируемогомашины и синхронизируются по считанным входным символам. Фактически, подобное моделирование больше невозможно для детерминированных автоматов с выталкиванием , поскольку более крупный класс детерминированных контекстно-свободных языков больше не замкнут при пересечении.
В отличие от конструкции конкатенации, показанной выше, конструкция дополнения для автоматов с видимым выталкиванием параллельна стандартной конструкции. [4] для детерминированных автоматов с выталкиванием.
Более того, как и класс контекстно-свободных языков, класс языков с видимым расширением закрыт при закрытии и обращении префикса , а следовательно, и при закрытии суффикса.
Связь с другими языковыми классами [ править ]
Алур и Мадхусудан (2004) отмечают, что языки с видимым расположением вниз являются более общими, чем языки с круглыми скобками, предложенные Макнотоном (1967) . Как показали Креспи Региззи и Мандриоли (2012) , языки с видимым выталкиванием вниз, в свою очередь, строго содержатся в классе языков, описываемых грамматиками приоритета операторов , которые были введены Флойдом (1963) , и обладают теми же свойствами и характеристиками замыкания (см. Лонати и др. (2015) для ω-языков, логических и автоматных характеристик). По сравнению с конъюнктивными грамматиками , обобщением контекстно-свободных грамматик, Охотин (2011) показывает, что линейные конъюнктивные языки образуют суперкласс языков с видимым расположением вниз. В таблице в конце этой статьи семья языков явно смещена вниз по отношению к другим языковым семьям в иерархии Хомского .Раджив Алур и Партасарати Мадхусудан [5] [6] связал подкласс обычных языков двоичного дерева с языками с видимым расположением вниз.
Описание других моделей [ править ]
Видимые грамматики с выталкиванием вниз [ править ]
Языки с видимым сдвигом вниз — это именно те языки, которые можно описать с помощью грамматик с видимым сдвигом вниз . [2]
Визуально раскрывающиеся грамматики можно определить как ограничение контекстно-свободных грамматик . Визуально раскрывающаяся грамматика G определяется четырехкортежом :
где
- и являются непересекающимися конечными множествами; каждый элемент называется нетерминальным символом или переменной . Каждая переменная представляет отдельный тип фразы или предложения в предложении. Каждая переменная определяет подъязык языка, определенного и подъязыки те, у которых нет ожидающих звонков или ожидающих возвратов.
- — конечное множество терминалов s, не пересекающееся с , которые составляют фактическое содержание предложения. Набор терминалов представляет собой алфавит языка, определяемый грамматикой .
- является конечным отношением из к такой, что . Члены называются правилами (перезаписи) или продукцией грамматики. Существует три типа правил перезаписи. Для , и
- и если затем и
- и если затем
- — это начальная переменная (или начальный символ ), используемая для представления всего предложения (или программы).
Здесь звездочка обозначает операцию звезды Клини , а это пустое слово.
Равномерные логические схемы [ править ]
Проблема в том, является ли слово длины принимается заданным автоматом вложенных слов может быть решено с помощью однородных логических схем глубины . [2]
Логическое описание [ править ]
Регулярные языки над вложенными словами — это в точности набор языков, описываемых монадической логикой второго порядка с двумя унарными предикатами call и return , линейным преемником и отношением соответствия ↝. [2]
См. также [ править ]
Примечания [ править ]
- ^ Результаты поиска в Академии Google по запросу «вложенные слова» ИЛИ «видимо опускающиеся вниз»
- ^ Jump up to: а б с д и ж г Алур и Мадхусудан (2009)
- ^ Jump up to: а б Алур и Мадхусудан (2004)
- ^ Хопкрофт и Ульман (1979 , стр. 238 и f).
- ^ Алур, Р.; Мадхусудан, П. (2004). «Языки с видимым нажатием вниз» (PDF) . Материалы тридцать шестого ежегодного симпозиума ACM по теории вычислений - STOC '04 . стр. 202–211. дои : 10.1145/1007352.1007390 . ISBN 978-1581138528 . S2CID 7473479 . Раздел 4, Теорема 5,
- ^ Алур, Р.; Мадхусудан, П. (2009). «Добавление вложенности к словам» (PDF) . Журнал АКМ . 56 (3): 1–43. CiteSeerX 10.1.1.145.9971 . дои : 10.1145/1516512.1516518 . S2CID 768006 . Раздел 7
Ссылки [ править ]
- Флойд, RW (июль 1963 г.). «Синтаксический анализ и приоритет операторов» . Журнал АКМ . 10 (3): 316–333. дои : 10.1145/321172.321179 . S2CID 19785090 .
- Макнотон, Р. (1967). «Кробочные грамматики» . Журнал АКМ . 14 (3): 490–500. дои : 10.1145/321406.321411 . S2CID 10926200 .
- Алур, Р.; Аренас, М.; Барсело, П.; Этессами, К.; Иммерман, Н.; Либкин, Л. (2008). Гредель, Эрих (ред.). «Логика первого порядка и временная логика для вложенных слов». Логические методы в информатике . 4 (4). arXiv : 0811.0537 . дои : 10.2168/LMCS-4(4:11)2008 . S2CID 220091601 .
- Креспи Региззи, Стефано; Мандриоли, Дино (2012). «Приоритет операторов и свойство визуального нажатия» . Журнал компьютерных и системных наук . 78 (6): 1837–1867. дои : 10.1016/j.jcss.2011.12.006 .
- Лонати, Виолетта; Мандриоли, Дино; Панелла, Федерика; Праделла, Маттео (2015). «Языки приоритета операторов: их теоретико-автоматная и логическая характеристика». SIAM Journal по вычислительной технике . 44 (4): 1026–1088. дои : 10.1137/140978818 . HDL : 2434/352809 .
- Охотин, Александр: Сравнение линейных конъюнктивных языков с подсемействами контекстно-свободных языков , 37-я Международная конференция по современным тенденциям в теории и практике информатики (SOFSEM 2011).
- Хопкрофт, Джон Э.; Уллман, Джеффри Д. (1979). Введение в теорию автоматов, языки и вычисления . Аддисон-Уэсли. ISBN 978-0-201-02988-8 .