在构造确定性下推自动机时,每个状态都可以是最终状态吗?
我在构建一个接受以下语言的 DPDA 时遇到了麻烦:
L = { 0 n 1 m | n ≥ m }
我的方法是使初始状态成为最终状态,可以将 0 推入堆栈以获取输入 0,然后转换到另一个最终状态,该最终状态可以从堆栈中弹出 0 以获取输入 1。我相信这个解决方案是正确的,但是每个状态都是最终状态似乎不寻常,我想验证我的方法是否有效。
这是正确的方法吗?我可以将两种状态都作为最终状态吗?这是我的 DPDA 的确切转换函数 δ。
δ(q 0 , 0, Z 0 ) = { (q 0 , 0 Z 0 ) }
δ(q 0 , 0, 0) = { (q 0 , 0 0) }
δ(q 0 , 1, 0) = { (q 1 , ε) }
δ(q 1 , 1, 0) = { (q 1 , ε) }