确定性有限自动机与确定性下推自动机

时间:2013-05-03 17:42:42

标签: language-agnostic dfa pushdown-automaton

我想知道是否有人可以给我一个关于这两个术语之间关系的简单解释,因为我对术语感到非常困惑。

1 个答案:

答案 0 :(得分:4)

确定性Pushdown Automaton(DPDA)是Deterministic Finite Automaton(DFA),也可以访问Stack,这是一种后进先出(LIFO)数据结构。< / p>

有权访问某种形式的内存,DPDA可以识别比DFA更多种类的字符串。例如,给定具有符号A和B的语言,可以构造DFA以识别AB,AABB,AAABBB,但是不能构造DFA来识别所有n的A ^ nB ^ n,而使用DPDA可以轻松完成其工作原理如下:

  1. 输入开始状态。
  2. $推送到堆栈。
  3. 读取字母串中的字母。
    • 如果是B,则转到终端非接受状态。
    • 如果是A,请在堆栈上按A,然后转到状态4.
  4. 从字符串中读取一封信
    • 如果A,在堆栈上按A并保持此状态
    • 如果是B,则从堆栈中弹出最高值
      • 如果弹出的值为A,请转到状态5.
      • 如果弹出值为$,则转到终端非接受状态。
  5. 从字符串中读取一封信
    • 如果是B,则从堆栈中弹出最高值
      • 如果弹出值为A,则保持此状态。
      • 如果弹出值为$,则转到终端非接受状态。
    • 如果我们读取字符串的结尾,则从堆栈中弹出最高值
      • 如果弹出值为$,请转到接受状态
      • 如果弹出的值为A,则转到终端非接受状态。
    • 如果我们从字符串中读取其他内容,请转到终端不接受状态。
  6. PDA识别context-free languages,DPDAs仅识别无上下文语言的确定性子集。就可识别的语言数量而言,它们比DFA更强大,但强度低于Turing Machines