繁体   English   中英

下推自动机以显示语言

[英]Push down automata for a language

我想为该语言设计下推自动机

L = { a^i b^j c^k | i = j or k <= j <= 2k}

讲师提出的解决方案如下图所示。 PDA图

但是我在这里担心的是,当|2c| > |b|时,它不处理以下形式的字符串 |2c| > |b| 那就是当处于q8状态时,如果所有B都堆叠在一起,但输入C尚未完成怎么办。 该过渡未在此处捕获。

我的担心正确吗? 或建议的解决方案是正确的PDA。

请记住,j> = k,因此意味着| b |。 > = | c |。

如果读取了输入中的所有“ b”,则堆叠的B的数量大于(或等于)要在输入中读取的“ c”的数量。

  • 如果j = k,则它将使用从q8到q8的转换,直到输入完成。
  • 如果j = 2k,它将读取一个“ c”(q8-> q9)并从堆栈中取出两个B(q9-> q8),因此仅| b |的字符串 = 2 | c | 可以接受。
  • 如果j <2k,它将使用q8-> q9和q9-> q8,直到B的堆叠数量等于要在输入中读取的“ c”的数量。 然后它将使用q 8-> q8直到输入完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM