[英]How do these two discrete finite automata differ?
我有以下语句定义的离散有限自动机:
{ω| ω是不在*∪b *}中的任何字符串
出于某种原因,我只是不理解“a *∪b *”部分。 我知道联盟是什么,但这与a * b *有什么不同? 这两个陈述的结果DFA是否相同? 我需要首先为此语言的补充创建DFA,然后使用该DFA基于此创建上述语言的DFA。
有人能帮助我理解这个吗?
让我们分解定义,然后看一下a* ∪ b*
和a* b*
之间的区别会更简单。
x*
指的是符号x
任何非负数(包括零)。 这包括空字符串( ε
), x
, xx
, xxx
等。 XY
指的是X
后跟Y
任何符号
X = {1, 2}
且Y = {a, b}
,则XY = {1a, 1b, 2a, 2b}
X ∪ Y
指的是由X
和Y
描述的集合的并集。 这包括可能在X
或Y
集合中但不一定都在两者中的任何符号。
X = {1, 2}
且Y = {a, b}
,那么X ∪ Y = {1, 2, a, b}
从上面我们可以推断出a* b*
中的元素集a*
集合a*
的任何元素,后跟集合b*
中的任何元素(记得因为我们使用*
表示法,所以包含空字符串)。 a* = {ε, a, aa, aaa, aaaa, ... }
和b* = {ε, b, bb, bbb, bbbb, ... }
。 因此a* b* = {ε, a, b, ab, aa, aab, aabb, bb, abb, aabb, ...}
。
类似地,我们现在知道a* ∪ b*
包括集合a*
OR b*
中的任何元素。 因此a* ∪ b* = {ε, a, b, aa, bb, aaa, bbb, aaaa, bbbb, ...}
。 请注意,没有任何元素同时具有符号a
AND b
因为它不在集合中。
最后,你可以问一下a* b*
BUT中的元素不在a* ∪ b*
。 a* b* \\ a* ∪ b* = { x ∈ a* b* | x ∉ a* ∪ b*} = { ab, abb, abbb, ... aab, aabb, aabbb, ..., aaab, aaabb, ... }
a* b* \\ a* ∪ b* = { x ∈ a* b* | x ∉ a* ∪ b*} = { ab, abb, abbb, ... aab, aabb, aabbb, ..., aaab, aaabb, ... }
。 这些是两个符号的元素a
和 b
在它们。
a* U b*
是所有串的语言a
只有伴随着所有字符串b
只: {empty, a, b, aa, bb, aaa, bbb, ...}
在这门语言的字符串是那些不仅含有字符串a
S或b
秒,但二者: {ab, ba, aab, aba, baa, abb, bab, bba, ...}
a*b*
又是它由其中任何一个的所有字符串的另一种语言的a
š任何来之前b
S: {empty, a, b, aa, ab, bb, ...}
a*b*
是a* U b*
的超集,但它不等于它。 它既不是字符串语言的子集也不是超集,而不是在a* U b*
但它在很多地方都重叠。 由于所有三种语言都是不同的,所以三种语言都有不同的DFA。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.