繁体   English   中英

非确定性有限自动机(NFA)校正

[英]Nondeterministic finite automata (NFA) correction

我正在尝试解决有关NFA的问题。 说明如下:字母{a,b,c}。 •L1是所有最后一个字符与第五个最后一个字符相同的字符串。 例如,字符串aaacbacbca应该被接受,因为倒数第二个字符和最后一个字符都是a。 字符串ccaab应该被拒绝,因为倒数第二个字符是c,最后一个字符是b。 这是我的想法,但我确实是该主题的初学者,并且不确定是否正确: 在此处输入图片说明

您目前拥有的自动机仅接受以acbca结尾的字符串。 以下是到达解决方案的步骤:

  • 更改您拥有的自动机,使其可以接受所有具有倒数和倒数第五个符号a字符串
  • 对符号bc
  • 结合3个自动机

您几乎是正确的,但是您绘制的自动机只接受以acbca结尾的acbca 这将接受您想要的字符串

a,b,c     a      a,b,c   a,b,c   a,b,c    a     a,b,c
,--->[q0]--->[q1]--->[q2]--->[q3]--->[q4]--->{q5}----+>[q16]-----.
|    /|   b      a,b,c   a,b,c   a,b,c    b     a,b,c|   ^ a,b,c |
`---´ +----->[q6]--->[q7]--->[q8]--->[q9]--->{q10}---+   `-------´
      |   c      a,b,c   a,b,c   a,b,c    c     a,b,c|
      `----->[q11]-->[q12]-->[q13]-->[q14]-->{q15}---´

{q5}这样的状态正在接受状态,而像[q0]这样的状态则不在接受状态。 q16的含义是确保两个相等的字母的字符串相距4个字符,但不以该字符结尾,该字符串陷入非接受状态。 同样可能是字母b,c状态[q4]对于字母a,c状态[q9]并为字母a,b状态[q14]但为了绘图清楚起见,我省略了它们。

暂无
暂无

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

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