встроенный автомат выталкивания вниз или EPDA вычислительная модель для анализа языков, созданных с помощью смежных с деревом грамматик (TAG). Он похож на контекстно-свободную грамматику -парсинг автомат выталкивания, но вместо использования простого стека для хранения символов он имеет стек повторяющихся стеков которые хранят символы, давая тегам возможность генерации между контекстными и контекстно-зависимыми грамматиками или подмножеством умеренно контекстно-зависимых грамматик. Встроенные выталкивающие автоматы не следует путать с автоматами с вложенным стеком, которые обладают большей вычислительной мощностью.
EPDA впервые были описаны К. Виджаем-Шанкером в его докторской диссертации 1988 года. С тех пор они применялись для более полных описаний классов умеренно контекстно-зависимых грамматик и сыграли важную роль в уточнении иерархии Хомского. Таким образом, могут быть определены различные подграмматики, такие как линейно индексированная грамматика. EPDA также начинают играть важную роль в обработке естественного языка.
Хотя естественные языки традиционно анализировались с использованием контекстно-свободных грамматик (см. трансформационно-порождающая грамматика и вычислительная лингвистика ), эта модель не работает для языков с перекрестные зависимости, такие как голландский, ситуации, для которых хорошо подходит EPDA. Подробный лингвистический анализ доступен в Joshi, Schabes (1997).
EPDA - это конечный автомат с набором стеков, к которым можно получить доступ через встроенный стек. Каждый стек содержит элементы алфавита стека , поэтому мы определяем элемент стека как , где звездочка - это замыкание Клини алфавита.
Затем каждый стек можно определить в терминах его элементов, поэтому мы обозначаем -й стек в автомате с помощью символа двойного кинжала. : , где будет следующим доступным символом в стеке. Таким образом, вложенная стопка из может быть обозначена как .
Мы определяем EPDA по семерке (кортеж из семи)
Таким образом, функция перехода принимает состояние, следующий символ входной строки и верхний символ текущего стека и генерирует следующее состояние, стеки, которые должны быть помещены и выталкивается во встроенный стек, нажатие и выталкивание текущего стека, а также стеки, которые будут считаться текущими стеками при следующем переходе. Более концептуально, встроенный стек выталкивается и выталкивается, текущий стек опционально перемещается обратно во встроенный стек, а любые другие стеки, которые вы хотите, помещаются поверх него, причем последний стек является тем, из которого читается в следующей итерации.. Следовательно, стеки можно помещать как выше, так и ниже текущего стека.
Данная конфигурация определяется как
где - текущий состояние, s - это стеки во встроенном стеке, причем текущий стек, а для входной строки , - это часть строки, уже обработанная машиной, а - это часть, которая должна быть обработана, с заголовком текущего считываемого символа. Обратите внимание, что пустая строка неявно определяется как завершающий символ, где, если машина находится в конечном состоянии, когда пустая строка Считывается, вся входная строка принимается, а если нет, то отклоняется. Такие принятые строки являются элементами языка
где и определяет функцию перехода, применяемую столько раз, сколько необходимо для анализа строки.
Неофициальное описание EPDA также можно найти в Joshi, Schabes (1997), Sect.7, p. 23-25.
Более точно определенная иерархия языков, которая соответствует умеренно контекстно-зависимому классу, была определена Дэвидом Дж. Вейром. Основанная на работе Набила А. Хаббаза, иерархия языка управления Weir представляет собой иерархию включения счетного набора языковых классов, где Уровень-1 определен как контекстно-свободный, а Уровень-2 - это класс, примыкающий к дереву, а другой три грамматики.
Ниже приведены некоторые свойства языков уровня k в иерархии:
Эти свойства хорошо соответствуют (по крайней мере, для малых k>1) условиям умеренно контекстно-зависимых языков, наложенных Джоши, и по мере того, как k становится больше, языковой класс в некотором смысле становится менее контекстно-зависимым.