形式语言Npda图

时间:2017-10-27 19:26:36

标签: formal-languages

我试图为这种语言画一个npda,但似乎无法得到它

enter image description here

我想知道如何编写npda为输入序列w = aacb完成的移动序列。是否接受了字符串?

谢谢我似乎无法做到这一点

1 个答案:

答案 0 :(得分:1)

  1. 至少读取两个a而不触及堆栈。如果你看到别的什么就会崩溃。
  2. 继续读取一个并将一个a推入堆栈中,每个读取一个。
  3. 如果您阅读了c,那么您必须立即阅读b或崩溃。不要改变堆栈。
  4. 如果您读了b,请准备一遍又一遍地开始阅读(ac)。不要改变堆栈。
  5. 如果堆栈不为空,则必须读取a然后c或崩溃。如果你确实读了a然后是c,那么从堆栈中弹出一个a。
  6. 继续运行,直至崩溃或多次读取(ac)后堆栈变空。如果输入已用尽,请接受。否则,崩溃。
  7. 如果您希望查看状态转换图以使其更具体,请告诉我。我鼓励你先尝试自己写作。