繁体   English   中英

需要构造DFA(确定性有限自动机)

[英]Need to construct DFA (deterministic finite automaton)

我需要构造一个DFA来识别仅由0和1组成的所有字符串,以便thay具有偶数个零和被3整除的个数。我发现了偶数个0和偶数的自动机之1:

0和1的偶数自动机

我尝试通过添加一些状态,更改分支等从这里开始。但是,我仍然无法成功,通常由于我要添加的分支和状态而无法了解自动机的功能。 任何帮助将不胜感激。

您需要以2和3记录除数的状态,这意味着您需要6个状态。 只需将它们称为0|0 1|0 0|1 1|1 0|2 1|2 第一位告诉您到达状态时,您有一个偶数或奇数的零,第二位告诉您到达状态时,您有一个数字1,当被3除时,得到给定的模量。

您的状态图包含:

0|x   --0-->   1|x
1|x   --0-->   0|x 
y|0   --1-->   y|1
y|1   --1-->   y|2
y|2   --1-->   y|0

起始状态为0|0 ,这也是唯一的停止状态。

需要了解的重要一点是,每个状态分别记录读取的零或一的数目除以2所得的模数3。0 0|0则在两种情况下均为模数0,这是接受标准。 这都是可行的,因为要跟踪的不同状态的数量是有限的。 DFA这个名称已经告诉我们,要跟踪无数个州,它是行不通的。

一种查看方法是问题要求2种语言的交集:一种包含偶数个零,而另一种包含被3整除的个数。一种解决方法是使两种语言的DFA一致,然后制作另一个DFA,以便在读取输入符号时跟踪每个DFA中的状态对。

我用“ e”和“ o”来表示零的数目分别是偶数或奇数。 每个状态的第二位数字定义了用1的数目除以3得到的余数。

暂无
暂无

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

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