Inautomata theory, adeterministic pushdown automaton (DPDA orDPA) is a variation of thepushdown automaton. The class of deterministic pushdown automata accepts thedeterministic context-free languages, a proper subset ofcontext-free languages.[1]
Machine transitions are based on the current state and input symbol, and also the current topmost symbol of the stack. Symbols lower in the stack are not visible and have no immediate effect. Machine actions include pushing, popping, or replacing the stack top. A deterministic pushdown automaton has at most one legal transition for the same combination of input symbol, state, and top stack symbol. This is where it differs from the nondeterministic pushdown automaton.
A (not necessarily deterministic)PDA can be defined as a 7-tuple:
where
M isdeterministic if it satisfies both the following conditions:
There are two possible acceptance criteria: acceptance byempty stack and acceptance byfinal state. The two are not equivalent for the deterministic pushdown automaton (although they are for the non-deterministic pushdown automaton). The languages accepted byempty stack are those languages that are accepted byfinal state and are prefix-free: no word in the language is the prefix of another word in the language.[2][3]
The usual acceptance criterion isfinal state, and it is this acceptance criterion which is used to define thedeterministic context-free languages.
If is a language accepted by a PDA, it can also be accepted by a DPDA if and only if there is a single computation from the initial configuration until an accepting one for all strings belonging to. If can be accepted by a PDA it is a context free language and if it can be accepted by a DPDA it is a deterministic context-free language (DCFL).
Not all context-free languages are deterministic. This makes the DPDA a strictly weaker device than the PDA. For example, the languageLp of even-lengthpalindromes on the alphabet of 0 and 1 has the context-free grammar S → 0S0 | 1S1 | ε. If a DPDA for this language exists, and it sees a string 0n, it must use its stack to memorize the lengthn, in order to be able to distinguish its possible continuations0n 11 0n ∈Lp and0n 11 0n+2 ∉Lp. Hence, after reading0n 11 0n, comparing the post-"11" length to the pre-"11" length will make the stack empty again. For this reason, the strings0n 11 0n 0n 11 0n ∈Lp and0n 11 0n 0n+2 11 0n+2 ∉Lp cannot be distinguished.[4]
Restricting the DPDA to a single state reduces the class of languages accepted to theLL(1) languages,[5] which is a proper subclass of the DCFL.[6] In the case of a PDA, this restriction has no effect on the class of languages accepted.
Closure properties of deterministic context-free languages (accepted by deterministic PDA by final state) are drastically different from the context-free languages. As an example they are (effectively) closed under complementation, but not closed under union. To prove that the complement of a language accepted by a deterministic PDA is also accepted by a deterministic PDA is tricky because one has to avoid infinite computations and correctly handle transitions that manipulate the stack without reading input symbols.[7]
As a consequence of the complementation it is decidable whether a deterministic PDA accepts all words over its input alphabet, by testing its complement for emptiness. This is not possible for context-free grammars (hence not for general PDA).
Géraud Sénizergues (1997) proved that the equivalence problem for deterministic PDA (i.e. given two deterministic PDA A and B, is L(A)=L(B)?) is decidable,[8][9][10] a proof that earned him the 2002Gödel Prize. For nondeterministic PDA, equivalence is undecidable.
{{cite book}}: CS1 maint: location (link)