繁体   English   中英

这两个离散有限自动机有何不同?

[英]How do these two discrete finite automata differ?

我有以下语句定义的离散有限自动机:

{ω| ω是不在*∪b *}中的任何字符串

出于某种原因,我只是不理解“a *∪b *”部分。 我知道联盟是什么,但这与a * b *有什么不同? 这两个陈述的结果DFA是否相同? 我需要首先为此语言的补充创建DFA,然后使用该DFA基于此创建上述语言的DFA。

有人能帮助我理解这个吗?

让我们分解定义,然后看一下a* ∪ b*a* b*之间的区别会更简单。

  • 集合x*指的是符号x任何非负数(包括零)。 这包括空字符串( ε ), xxxxxx等。
  • 集合XY指的是X后跟Y任何符号
    • 如果X = {1, 2}Y = {a, b} ,则XY = {1a, 1b, 2a, 2b}
  • 集合X ∪ Y指的是由XY描述的集合的并集。 这包括可能在XY集合中但不一定都在两者中的任何符号。
    • 如果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.

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