Language agnostic 确定性有限自动机与确定性下推自动机
我想知道是否有人能给我一个简单的解释这两个术语之间的关系,因为我被术语弄糊涂了。确定性(DPDA)是一种(DFA),它也可以访问后进先出(LIFO)数据结构 通过访问某种形式的内存,DPDA可以识别比DFA更多种类的字符串。例如,给定一种带有符号a和B的语言,可以构造DFA来识别AB、AABB、AAABBB,但不能构造DFA来识别所有n的a^nB^n,而使用DPDA很容易做到这一点,其工作原理如下:Language agnostic 确定性有限自动机与确定性下推自动机,language-agnostic,dfa,pushdown-automaton,Language Agnostic,Dfa,Pushdown Automaton,我想知道是否有人能给我一个简单的解释这两个术语之间的关系,因为我被术语弄糊涂了。确定性(DPDA)是一种(DFA),它也可以访问后进先出(LIFO)数据结构 通过访问某种形式的内存,DPDA可以识别比DFA更多种类的字符串。例如,给定一种带有符号a和B的语言,可以构造DFA来识别AB、AABB、AAABBB,但不能构造DFA来识别所有n的a^nB^n,而使用DPDA很容易做到这一点,其工作原理如下: 进入启动状态 将$推到堆栈中 从字符串中读出字母。 如果为B,则转到终端不接受状态 如果为A,
$
推到堆栈中- 如果为B,则转到终端不接受状态
- 如果为A,则在堆栈上按A,然后转到状态4
- 如果为A,则在堆栈上按A并保持此状态
- 如果为B,则从堆栈中弹出顶部值。
- 如果弹出的值为A,则转到状态5
- 如果弹出的值为$,则转到终端非接受状态
- 如果为B,则从堆栈中弹出顶部值。
- 如果弹出的值是A,则保持此状态
- 如果弹出的值为$,则转到终端非接受状态
- 如果我们读取字符串的结尾,则从堆栈中弹出顶部值
- 如果弹出的值为$,则转到接受状态
- 如果弹出的值是A,则转到终端非接受状态
- 如果我们从字符串中读取任何其他内容,请转到终端非接受状态