答案 0 :(得分:7)
堆叠限制为包含20个项目的PDA相当于DFA。这是证据。
拿任何PDA-20,你可以把它变成一个等效的DFA。让我们说堆栈字母S在哪里| S | = N.你还有堆栈符号Z.我们想象一个额外的符号, - 我们也可以在堆栈上,代表“未使用”。堆栈现在等效于x = - * S * Z形式的字符串,其中| x |在所有情况下都是20。推入堆栈包括替换 - 的出现,而popping包括用LIFO方式替换其他符号。对于任何PDA-20,现在存在(N + 2)^ 20个堆栈的可能配置。要构造DFA,只需通过此因子复制DFA的每个状态,并且转换到DFA的状态将反映堆栈的新配置。这样,PDA-20中堆栈配置中包含的信息包含在DFA的当前状态中。
选择任何DFA,您可以将它变成等效的PDA-20。只是不要使用堆栈,并且你有一个PDA-20,它接受与DFA相同的语言。
为了说明证明的第一部分,考虑具有状态A,B,C,......,Z和许多转换的PDA-5。假设输入字母是{0,1}。然后有2 ^ 5 = 32种不同的堆栈配置,比方说。相当于这个PDA-5的DFA可能具有状态A1,B1,......,Z1,A2,B2,......,Z2,...,A32,B32,...,Z32,尽管它将具有转换次数与原始转换次数相同。如果原始PDA-5中的转换将从状态R中的配置#2到配置#17并且机器转到状态F,则DFA将从状态R2进入状态F17。