簡體   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