📜  设计非确定性有限自动机(第 5 组)

📅  最后修改于: 2021-09-28 09:56:03             🧑  作者: Mango

先决条件:有限自动机简介
在本文中,我们将看到非确定性有限自动机 (NFA) 的一些设计。

问题1:最小NFA的构建接受一组字符串超过{A,B},其中该语言的每个字符串包含“AB”作为子字符串。
说明:所需的语言将类似于:

L1 = {ab, abba, abaa, ...........}

在这里我们可以看到,上述语言的每个字符串都包含“ab”作为子字符串,但此 NFA 不接受以下语言,因为以下语言的某些字符串不包含“ab”作为子字符串。

L2 = {bb, b, bbbb, .............}

所需语言的状态转换图如下所示:

在上述 NFA 中,初始状态 ‘X’ 在将 ‘a’ 作为输入时,它要么保持自身状态,要么转换到状态 ‘Y’,而在将 ‘b’ 作为输入时,它仍处于状态本身。

将 ‘b’ 作为输入时的状态 ‘Y’ 传输到最终状态 ‘Z’。将 ‘a’ 或 ‘b’ 作为输入的最终状态 ‘Z’ 保持其自身状态。

问题 2:构造一个最小 NFA,接受 {a, b} 上的一组字符串,其中语言的每个字符串不包含 ‘ab’ 作为子字符串。
说明:所需的语言将类似于:

L1 = {b, bb, bbbb, ...........}

在这里我们可以看到,上述语言的每个字符串都不包含“ab”作为子字符串,但此 NFA 不接受以下语言,因为以下语言的某些字符串包含“ab”作为子字符串。

L2 = {ab, aba, ababaab..............}

所需语言的状态转换图如下所示:

在上面的 NFA 中,初始和最终状态 ‘X’ 在获得 ‘b’ 作为输入时保持在它自己的状态,并在获得 ‘a’ 作为输入时它转换到另一个最终状态 ‘Y’。

另一个最终状态 ‘Y’ 将 ‘a’ 作为输入,它保持自身状态。