Вложенное слово - Nested word

В Информатика, более конкретно в автоматы и формальный язык теория вложенные слова являются концепцией, предложенной Алур и Мадхусудан как совместное обобщение слова, как традиционно используется для моделирования линейно упорядоченный структур, а также заказанных безрейтинговых деревья, как традиционно используется для моделирования иерархических структур. Конечные акцепторы для вложенных слов, так называемые вложенные словесные автоматы, то дадим более выразительное обобщение конечные автоматы на словах. Линейные кодировки языков, принимаемые конечными автоматами с вложенными словами, дают класс явно выталкивающие языки. Последний языковой класс находится между обычные языки и детерминированные контекстно-свободные языки. С момента своего появления в 2004 году эти концепции вызвали множество исследований в этой области.[1]

Формальное определение

Определять вложенные слова, сначала определите соответствующие отношения. Для неотрицательное целое число , обозначение обозначает множество , с особым случаем .

А соответствие отношения ↝ длины это подмножество такой, что:

  1. все грани вложения направлены вперед, т.е. если я ↝ j тогда я < j;
  2. ребра вложенности никогда не имеют общего конечного положения, то есть для −∞ < я < ∞, есть не более одной позиции час такой, что час ↝ я, и есть не более одной позиции j такой, что яj; и
  3. края вложенности никогда не пересекаются, то есть нет я < я ′ ≤ j < j ′ так что оба я ↝ j и я ′ ↝ j ′.

Позиция я упоминается как

  • а позиция вызова, если яj для некоторых j,
  • а ожидающий вызов если я ↝ ∞,
  • а вернуть позицию, если чася для некоторых час,
  • а ожидающий возврата если −∞ ↝ я, и
  • ан внутреннее положение во всех остальных случаях.

А вложенное слово длины над алфавит Σ - пара (ш, ↝), где ш это слово, или нить, длины над Σ и ↝ - отношение согласования длины .

Кодирование вложенных слов в обычные слова

Вложенные слова по алфавиту могут быть закодированы в "обычные" слова поверх отмеченный алфавит , в котором каждый символ а из Σ имеет три помеченных аналога: символ ⟨A для кодирования позиции вызова во вложенном слове, помеченном а, символ а⟩ для кодирования позиции возврата, помеченной а, и, наконец, символ а сам для представления внутренней позиции, помеченной а. Точнее, пусть φ - функция, отображающая вложенные слова над Σ в слова над так что каждое вложенное слово (, ↝) отображается в слово , где буква равно ⟨A, а, и а⟩, если и я - это (возможно, ожидающая) позиция вызова, внутренняя позиция и (возможно, ожидающая) позиция возврата соответственно.

Пример

Для иллюстрации пусть п = (ш, ↝) - вложенное слово над тернарным алфавитом с ш=abaabccca и соответствие отношения ↝ = {(−∞,1),(2,∞),(3,4),(5,7),(8,∞)}. Тогда его кодировка как слово читается как φ(п) = а⟩⟨баа⟩⟨скрытая копия⟩⟨ок.

Автоматы

Вложенный словарный автомат

А вложенное слово автомат имеет конечное число состояний и работает почти так же, как детерминированный конечный автомат на классических строках: классический конечный автомат читает входное слово слева направо, а состояние автомата после прочтения jое письмо зависит от того, в каком состоянии находился автомат перед чтением .

Во вложенном словесном автомате позиция во вложенном слове (w, ↝) может быть позиция возврата; если да, то состояние после прочтения будет зависеть не только от линейное состояние в котором был автомат до чтения , но и на иерархическое состояние распространяются автоматом в то время, когда он находился в соответствующей позиции вызова. По аналогии с обычные языки слов, набор L вложенных слов называется обычный если это принимается некоторым (конечным) вложенным словесным автоматом.

Заметно выталкивающий автомат

Автоматы с вложенными словами - это модель автомата, принимающая вложенные слова. Существует эквивалентная модель автомата, работающая на (обычных) словах. А именно, понятие детерминированный автомат с видимым опусканием является ограничением понятия детерминированный автомат выталкивания.

Следуя за Алуром и Мадхусуданом,[2] детерминированный автомат с видимым выталкиванием формально определяется как набор из 6 куда

  • конечный набор состояния,
  • это вводить алфавит, который - в отличие от обычных автоматов с выталкиванием - разделен на три набора , , и . Алфавит обозначает набор символы вызова, содержит символы возврата, а множество содержит внутренние символы,
  • конечное множество, которое называется сложить алфавит, содержащий специальный символ обозначает пустой стек,
  • это функция перехода, который разделен на три части, соответствующие переходам вызовов, переходам возврата и внутренним переходам, а именно
    • , то вызов функции перехода
    • , то вернуть функцию перехода
    • , то функция внутреннего перехода,
  • это начальное состояние, и
  • это набор принимающие государства.

Понятие вычисление явно выталкивающего автомата является ограничением того, что используется для выталкивающие автоматы. Заметно выталкивающие автоматы добавляют символ в стек только при чтении символа вызова , они удаляют только верхний элемент из стека при чтении символа возврата и они не изменяют стек при чтении внутреннего события . Вычисление, заканчивающееся в состоянии принятия, является принятие вычисления.

В результате автомат с явным выталкиванием вниз не может нажимать и выталкивать из стека с одним и тем же входным символом. Таким образом, язык не могут быть приняты автоматом видимого выталкивания для любого раздела , однако есть автоматические устройства, поддерживающие этот язык.

Если язык над отмеченным алфавитом принимается детерминированным автоматом с видимым опусканием, тогда называется явно выталкивающий язык.

Недетерминированные явно выталкивающие автоматы

Недетерминированный явно выталкивающие автоматы столь же выразительны, как и детерминированные. Следовательно, можно преобразовать недетерминированный автомат с видимым выталкиванием вниз в детерминированный, но если бы недетерминированный автомат имел состояний, детерминированный может иметь до состояния.[3]

Проблемы с решением

Позволять быть размером с описание автомата , то можно проверить, есть ли слово п принимается автоматом вовремя . В частности, проблема пустоты решается во времени. .Если фиксировано, разрешимо во времени и космос куда глубина п в потоковом видении. Это также разрешимо с пространством и время , и равномерной логической схемой глубины .[2]

Для двух недетерминированных автоматов А и B, решая, принимает ли набор слов А это подмножество слова, принятое B является EXPTIME -полный. Это также EXPTIME-complete, чтобы выяснить, есть ли слово, которое не принято.[2]

Языки

Как показывает определение автоматов с видимым выталкиванием, детерминированные автоматы с видимым выталкиванием можно рассматривать как частный случай детерминированные автоматы выталкивания; таким образом, набор VPL языков явно вытесняющих образует подмножество множества DCFL из детерминированные контекстно-свободные языки над набором символов в . В частности, функция, которая удаляет отношение соответствия из вложенных слов, преобразует обычные языки вместо вложенных слов в контекстно-свободные языки.

Свойства закрытия

Набор языков с явным выталкиванием закрывается при следующих операциях:[3]

  • установить операции:
    • союз
    • пересечение
    • дополнение
таким образом породив логическая алгебра.

Для операции пересечения можно построить VPA M моделирование двух данных VPA и простой конструкцией продукта (Алур и Мадхусудан 2004 ): За , предполагать дается как . Тогда для автомата M, множество состояний , начальное состояние , набор конечных состояний , стековый алфавит задается формулой , а начальный символ стека - .

Если в состоянии при чтении символ вызова , тогда толкает символ стека и идет к состоянию , куда символ стека выталкивается при переходе из состояния к при чтении ввода .

Если в состоянии при чтении внутренний символ , тогда переходит в состояние , в любое время переходы из состояния к по чтению а.

Если в состоянии при чтении символ возврата , тогда появляется символ из стека и переходит в состояние , куда символ стека появляется при переходе из состояния к по чтению .

Правильность приведенной выше конструкции во многом зависит от того факта, что толкающие и толкающие действия моделируемых машин и синхронизируются по считанным входным символам. Фактически, подобное моделирование уже невозможно для детерминированные автоматы выталкивания, поскольку более широкий класс детерминированных контекстно-свободных языков больше не замкнут при пересечении.

В отличие от конструкции конкатенации, показанной выше, конструкция дополнения для явно выталкивающих автоматов параллельна стандартной конструкции[4] для детерминированных автоматов выталкивания.

Более того, как и класс контекстно-свободных языков, класс языков с явным выталкиванием закрывается под закрытие префикса и разворот, отсюда и закрытие суффикса.

Отношение к другим языковым классам

Алур и Мадхусудан (2004) обратите внимание на то, что языки с явным выталкиванием являются более общими, чем языки скобок, предложенные в Макнотон (1967). Как показано Креспи Регицци и Мандриоли (2012), явно выталкиваемые языки, в свою очередь, строго входят в класс языков, описанных грамматики приоритета операторов, которые были введены Флойд (1963) и пользоваться теми же свойствами и характеристиками закрытия (см. Lonati et al. (2015) для ω языков и характеризаций на основе логики и автоматов). В сравнении с конъюнктивные грамматики, обобщение контекстно-свободных грамматик, Охотин (2011) показывает, что линейные конъюнктивные языки образуют суперкласс явно вытесняемых языков. Таблица в конце этой статьи помещает семейство явно вытесняемых языков по отношению к другим языковым семьям в Иерархия Хомского Раджив Алур и Партхасарати Мадхусудан[5][6] связывает подкласс обычных языков двоичного дерева с языками явно выталкивающего типа.

Другие модели описания

Заметно выталкивающие грамматики

Языки явно выталкивающего типа - это именно те языки, которые можно описать с помощью явно выталкивающие грамматики.[2]

Заметно выталкивающие грамматики можно определить как ограничение контекстно-свободные грамматики. Заметная грамматика грамм определяется 4-кортеж:

куда

  • и непересекающиеся конечные множества; каждый элемент называется нетерминальный персонаж или Переменная. Каждая переменная представляет отдельный тип фразы или предложения в предложении. Каждая переменная определяет подъязык языка, определяемого , и подязыки без ожидающих вызовов или ожидающих возвратов.
  • конечный набор Терминалs, не пересекается с , которые составляют фактическое содержание предложения. Набор терминалов - это алфавит языка, определенный грамматикой .
  • конечное отношение из к такой, что . Члены называются (переписать) правилоs или производствоs грамматики. Есть три типа правил перезаписи. За , и
    • и если тогда и
    • и если тогда
  • это начальная переменная (или же начальный символ), используемый для представления всего предложения (или программы).

Здесь звездочка обозначает Клини звезда операция и это пустое слово.

Равномерные булевы схемы

Проблема в том, длинное ли слово принимается данным вложенным словом автомат может быть решен единообразным логические схемы глубины .[2]

Логическое описание

Обычные языки по вложенным словам - это в точности набор языков, описанных монадический логика второго порядка с двумя унарными предикатами вызов и возвращаться, линейный преемник и отношение согласования ↝.[2]

Смотрите также

Примечания

  1. ^ Результаты поиска Google Scholar для "вложенных слов" ИЛИ "явно выдвигающегося вниз"
  2. ^ а б c d е ж Алур и Мадхусудан (2009)
  3. ^ а б Алур и Мадхусудан (2004)
  4. ^ Хопкрофт и Ульман (1979), п. 238 е).
  5. ^ Alur, R .; Мадхусудан, П. (2004). «Языки с явным раскрытием» (PDF). Материалы тридцать шестого ежегодного симпозиума ACM по теории вычислений - STOC '04. С. 202–211. Дои:10.1145/1007352.1007390. ISBN  978-1581138528.CS1 maint: ref = harv (связь) Раздел 4, теорема 5,
  6. ^ Alur, R .; Мадхусудан, П. (2009). «Добавление структуры вложенности к словам» (PDF). Журнал ACM. 56 (3): 1–43. CiteSeerX  10.1.1.145.9971. Дои:10.1145/1516512.1516518.CS1 maint: ref = harv (связь) Раздел 7

Рекомендации

внешняя ссылка