📜  从正则表达式设计有限自动机(第 3 组)

📅  最后修改于: 2021-09-27 14:31:35             🧑  作者: Mango

先决条件:有限自动机、正则表达式、语法和语言、从正则表达式设计有限自动机(第 2 集)

在下面的文章中,我们将看到给定正则表达式的有限自动机设计。

正则表达式 1: ‘ab*’(’a’ 后跟任意数量的 ‘b’)。给定 RE 的语言是,

L1 = {a, ab, abb, abbb, .........} 

它的有限自动机将如下所示-

在上面的转换图中,我们可以看到状态 ‘X’ 在将 ‘a’ 作为输入时,它转换到最终状态 ‘Y’,在将 ‘b’ 作为输入时,它保持自身状态。因此这个 FA 接受给定 RE 语言的所有字符串。

正则表达式 2: ‘(ab)*’(’a’ 后跟 ‘b’ 但子字符串 ‘ab’ 可以重复任意次)。给定 RE 的语言是,

L2 = {ε, ab, abab, ababab, .........} 

它的有限自动机将如下所示-

在上面的转换图中,我们可以看到初始和最终状态 ‘X’ 在将 ‘a’ 作为输入时,它转换到最终状态 ‘Y’,而在将 ‘b’ 作为输入时,它又回到状态’X’。因此这个 FA 接受给定 RE 语言的所有字符串。

正则表达式 3: ‘(a+b)*’(’a’ union ‘b’ 但子字符串 ‘a+b’ 可以重复任意次)。给定 RE 的语言是,

L3 = {ε, a, b, aa, aaab, bbbbb, ba, .......} 

包含ε 和任意数量的’a’ 或’b’ 或两者组合的语言。
它的有限自动机将如下所示-

在上面的转换图中,我们可以看到状态 ‘X’ 在将 ‘a’ 作为输入时它保持在它自己的状态,而在获得 ‘b’ 作为输入时它转换到另一个最终状态 ‘Y’在获得 ‘b’ 或 ‘a’ 作为输入时,它保持自身状态。因此这个 FA 接受给定 RE 语言的所有字符串。

注 –正则表达式 (a+b)* 的最小 DFA 将只有单个状态,即起始状态和最终状态。这将只包含字母“a”和“b”的循环。

正则表达式 4: ‘(ab+ba)*’(’ab’ union ‘ba’ 但子串 ‘ab+ba’ 可以重复任意次)。给定 RE 的语言是,

L4 = {ε, ab, abab, abba, ba, baba, ........ } 

包含 ε 和任意数量的“ab”或“ba”或两者结合的语言。
它的有限自动机将如下所示-

在上面的转换图中,初始和最终状态 ‘X’ 在将 ‘a’ 作为输入时进入状态 ‘Y’,在获得 ‘b’ 作为输入时进入另一个状态 ‘Z’,依此类推对于其余的州。因此这个 FA 接受给定 RE 语言的所有字符串。

正则表达式 5: ‘a+’(不包括 ε 的任意数量的 ‘a’)。
给定 RE 的语言是

L5 = {a, aa, aaa, aaaa, .........} 

它的有限自动机将如下所示-

在上面的转换图中,初始状态 ‘X’ 在获得 ‘a’ 作为输入时它转换到最终状态 ‘Y’,在获得 ‘a’ 作为输入时它保持自身状态。因此这个 FA 接受给定 RE 语言的所有字符串。