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

📅  最后修改于: 2021-09-27 15:08:06             🧑  作者: Mango

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

在下面的文章中,我们将看到一些非确定性有限自动机的设计来自给定的正则表达式 –

由于 NFA 可以更改为相应的 DFA。

正则表达式 1:正则语言,

L1 = ((a+b)(a+b)(a+b))* 

给定 RE 的语言是,

{aaa, aba, baa, bba, aab, abb, bab, bbb,...} 

字符串的长度可以被 3 整除((字符串的长度)mod 3 = 0)。
它的有限自动机将如下所示-

在上面的转换图中,我们可以看到初始状态 ‘W’ 在获取 ‘a’ 或 ‘b’ 作为输入时它转换到状态 ‘X’ 等其余状态。因此这个 FA 接受给定 RE 语言的所有字符串。

正则表达式 2:正则语言,

L2 = (a+b)(a+b).((a+b)(a+b)(a+b))* 

给定 RE 的语言是,

{aa, ab, ba, bb, aaaaa, aabab, ..........} 

字符串长度 mod 3 = 2
它的有限自动机将如下所示-

在上面的转换图中,我们可以看到初始状态 ‘W’ 在获取 ‘a’ 或 ‘b’ 作为输入时它转换到状态 ‘X’ 等其余状态。因此这个 FA 接受给定 RE 语言的所有字符串。

正则表达式 3:正则语言,

L3 = b*ab*ab* 

给定 RE 的语言是,

{baa, babab, bbabbabb, ......} 

‘a’ 的个数正好是 2。
它的有限自动机将如下所示-

在上面的转换图中,我们可以看到初始状态 ‘W’ 在将 ‘b’ 作为输入时它保持在它自己的状态,在获得 ‘a’ 作为输入时它转换到状态 ‘X’ 等等对于其余的州。因此这个 FA 接受给定 RE 语言的所有字符串。

正则表达式 4:正则语言,

L4 = b*ab*a(a+b)* 

给定 RE 的语言是,

{baa, babab, bbabbaabb, ......} 

‘a’ 的数量至少为 2。
它的有限自动机将如下所示-

在上面的转换图中,我们可以看到初始状态 ‘W’ 在将 ‘b’ 作为输入时它保持在它自己的状态,在获得 ‘a’ 作为输入时它转换到状态 ‘X’ 等等对于其余的州。因此这个 FA 接受给定 RE 语言的所有字符串。

正则表达式 5:正则语言,

L5 = b*(ε+a)b*(ε+a)b* 

给定 RE 的语言是,

{b, bb, bbb, bab, baab, babab, bbab, .....} 

‘a’ 的数量最多为 2。
它的有限自动机将如下所示-

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