[英]What is the language of this deterministic finite automata?
鉴于:
我不知道接受的语言是什么。
通过查看它,您可以获得几个最终结果:
1.) bb
2.) ab(a,b)
3.) bbab(a, b)
4.) bbaaa
在任何自动机中,状态的目的就像记忆元素。 状态自动存储一些信息,如 ON-OFF 风扇开关。
确定性有限自动机 (DFA) 称为有限自动机,因为以状态形式存在的内存量是有限的。 对于任何正则语言 (RL),DFA 始终是可能的。
让我们看看 DFA 中存储了哪些信息(参考我的彩色图)。
(注意:在我的解释中,任何数字表示零次或多次, Λ
是空符号)
State-1:是START状态,其中存储的信息是偶数a
已经到来。 和零b
。
此状态的正则表达式 (RE) 为= (aa)*
。
国家4:奇数a
已经来临。 和零b
。
此状态的正则表达式为= (aa)*a
。
图:一个BLUE状态=的偶数a
,和RED状态=的ODD数a
已经到来。
注意:一旦第一个b来了,移动就不能回到状态 1 和状态 4。
状态 5:在Yellow b
。 Yellow b
表示在b after odd numbers of a
。
一旦你得到b
的奇数后a
(在国家的5)每一件事情是可以接受的,因为有自我为(B,A)在国家的5环。
您可以为 state-5 编写: Yellow-b 后跟 a, b 的任何字符串,即= Yellow-b
(a + b)*
状态 6:只是为了区分是奇数a
还是偶数。
状态 2:在a
之后,然后是b
然后是任意数量的b
。 = (aa)*
bb*
状态 3:在状态 2 之后,然后首先a
然后是通过状态 6 的循环。 我们可以写为 state-3 come = state-2
a
(aa)*
= (aa)*bb*
a
(aa)*
因为在我们的 DFA 中,我们有三个最终状态,所以 DFA 接受的语言是三个 RL(或三个 RE)的并集(RE 中的+)。
所以DFA接受的语言对应三个接受状态-2,3,5 ,我们可以这样写:
State-2 + state-3 + state-5
(aa)*bb*
+ (aa)*bb*
a
(aa)*
+ Yellow-b
(a + b)*
我忘了解释how Yellow-b comes?
答案: Yellow-b
是状态 4 或状态 3 之后的b
。 我们可以这样写:
Yellow-b
= ( state-4 + state-3 )
b
= ( (aa)*a
+ (aa)*bb*
a
(aa)*
) b
[答案]
(aa)*bb*
+ (aa)*bb*
a
(aa)*
+ ( (aa)*a
+ (aa)*bb*
a
(aa)*
) b
(a + b)*
英语语言描述:DFA 接受三种语言的结合
a
,后跟一个或多个b
,a
,后跟一个或多个b
,后跟奇数个a
。a
和b
与奇数a
的,其次是b
,其次是任何字符串a
和b
与Λ
。英语描述很复杂,但这是描述语言的唯一方法。 您可以通过首先将给定的 DFA 转换为最小化的 DFA 然后编写 RE 和描述来改进它。
此外,还有一种派生方法可以使用Arden 定理从给定的转换图中找到 RE。 我在这里解释了如何使用 Arden 定理为 DFA 编写正则表达式。 转换图必须首先转换为没有空移动和单启动状态的标准形式。 但我更喜欢通过分析而不是使用数学推导方法来学习计算理论。
我想这个问题不再相关:) 指导你完成它然后只是陈述答案可能更好,但我想我有一个涵盖它的基本表达(它可能可以最小化),所以我会写它为未来的搜索者打下基础
(aa)*b(b)* // for stoping at 2
U
(aa)*b(b)*a(aa)* // for stoping at 3
U
(aa)*b(b)*a(aa)*b((a)*(b)*)* // for stoping at 5 via 3
U
a(aa)*b((a)*(b)*)* // for stoping at 5 via 4
您在那里提供的示例 (1 - 4)不是DFA 接受的语言。 它们只是属于DFA 接受的语言的字符串。 因此,它们都属于同一种语言。
如果您想找出定义该 DFA 的正则表达式,您将需要执行称为k 路径归纳的操作,您可以在 此处阅读。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.