具有两个堆栈的PDA可以接受RE语言吗?

时间:2020-05-29 10:32:53

标签: turing-machines formal-languages deterministic pushdown-automaton decidable

因此,我很难弄清楚图灵机不会停止的字符串的确切含义。我在某处看到图灵机等效于具有2个堆栈的确定性自动机。但是具有2个堆栈的确定性自动机将如何接受一个不会停止的字符串,而对于任何有限的字符串,它都被确定要停止...我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

具有两个堆栈的PDA等效于图灵机。为了显示TM至少与两栈PDA一样强大,我们可以使用一个事实,即TM与两磁带TM一样强大。在两带TM中,我们可以限制磁带的使用以模拟它们的堆栈。因此,TM肯定可以完成两层PDA所能做的事情。

要显示具有两个堆栈的PDA至少要和具有两个堆栈的TM一样强大,但这有点棘手,但从根本上讲,您可以使用两个堆栈模拟单个磁带,如下所示:

  1. 调用一个堆栈L,另一个调用R
  2. L的内容代表磁带头左侧的所有内容(包括当前符号)
  3. R的内容代表磁带头右边的所有内容
  4. 要覆盖当前符号:从L弹出并推到L
  5. 要在磁带中向左移动:从L弹出并推到R
  6. 要在磁带中向右移动:从R弹出并推到L

因此,我们可以左右移动并覆盖符号。这样我们就可以模拟磁带,而TM仍然可以完成这一切。