В теории автоматов, детерминированный автомат выталкивания (DPDA или DPA ) является разновидностью автомат выталкивания. Класс детерминированных автоматов выталкивания принимает детерминированные контекстно-свободные языки, собственное подмножество контекстно-свободных языков.
. Переходы машин основаны на текущем состоянии и входном символе, а также на текущем самый верхний символ стека. Символы ниже в стопке не видны и не имеют немедленного действия. Действия машины включают толкание, выталкивание или замену вершины стопки. Детерминированный автомат выталкивания имеет не более одного допустимого перехода для одной и той же комбинации входного символа, состояния и символа верхнего стека. Этим он отличается от недетерминированного автомата выталкивания вниз.
A (не обязательно детерминированный) PDAможет быть определен как кортеж из семи:
где
M является детерминированным, если он удовлетворяет обоим следующим условиям:
Есть два возможных критерия приемлемости: принятие пустым стеком и принятие окончательным состоянием. Эти два не эквивалентны для детерминированного автомата выталкивания (хотя они предназначены для недетерминированного автомата выталкивания). Языки, принимаемые пустым стеком, - это те языки, которые принимаются конечным состоянием и не содержат префиксов: ни одно слово в языке не является префиксом другого слова в языке.
Обычным критерием приемлемости является конечное состояние, и именно этот критерий приемлемости используется для определения детерминированных контекстно-свободных языков.
Если - это язык, принятый КПК , он также может быть принят DPDA тогда и только тогда, когда есть одно вычисление от начальной конфигурации до принятия один для всех строк, принадлежащих . Если может быть принят КПК, это контекстно-свободный язык, а если он может быть принят DPDA, это детерминированный контекстно-свободный язык (DCFL).
Не все контекстно-зависимые языки детерминированы. Это делает DPDA строго более слабым устройством, чем КПК. Например, язык L p четной длины палиндромов на алфавите 0 и 1 имеет контекстно-свободную грамматику S → 0S0 | 1S1 | ε. Если DPDA для этого языка существует и видит строку 0, он должен использовать свой стек для запоминания длины n, чтобы иметь возможность различать его возможные продолжения 0 11 0 ∈ L p и 0 11 0 ∉ L p. Следовательно, после чтения 0 11 0 сравнение длины после «11» с длиной до «11» снова сделает стопку пустой. По этой причине строки 0 11 0 0 11 0 ∈ L p и 0 11 0 0 11 0 ∉ L p не могут быть различимы.
Ограничение DPDA до одного состояния сокращает класс языков, принятых до LL (1) languages , который является надлежащим подклассом DCFL. В случае КПК это ограничение не влияет на класс принимаемых языков.
Свойства замыкания детерминированных контекстно-свободных языков (принимаемых детерминированным КПК конечным состоянием) кардинально отличаются от контекстно-свободных языков. Например, они (эффективно) закрыты при дополнении, но не закрыты при объединении. Сложно доказать, что дополнение языка, принимаемого детерминированным КПК, также принимается детерминированным КПК. В принципе, следует избегать бесконечных вычислений.
Как следствие дополнения, можно решить, принимает ли детерминированный КПК все слова по своему входному алфавиту, путем проверки его дополнения на пустоту. Это невозможно для контекстно-свободных грамматик (следовательно, не для обычных КПК).
Жеро Сенизерг (1997) доказал, что проблема эквивалентности для детерминированного КПК (т. Е. Для двух детерминированных КПК A и B, является ли L (A) = L (B)?) разрешимый, доказательство, которое принесло ему 2002 премию Гёделя. Для недетерминированного КПК эквивалентность неразрешима.
| month =
()| month =
()