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

📅  最后修改于: 2021-09-28 10:26:00             🧑  作者: Mango

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

问题 1:在 {a, b} 上构造一个接受字符串集的最小 DFA,其中 a n b m ,其中 n 和 m 大于或等于 1。
说明:所需的语言将类似于:

L1 = {ab, aab, abb, aabb, aaabbb, aaabbbb, ...........}

注意:在上面的字符串,’b’ 后不应有任何 ‘a’。

在这里我们可以看到,语言的每个字符串包含 a 和 b 的幂大于或等于 1 但下面的语言不被这个 DFA 接受,因为下面的语言的一些字符串不包含 a 和 b 的幂大于或等于 1。

L2 = {ε, a, b, ..............}

此所需的 DFA 不接受此语言 L2。
所需语言的状态转换图如下所示:

在上面的 DFA 中,状态 ‘W’ 是初始状态,在将 ‘a’ 作为输入时,它转换到正常状态 ‘X’,在将 ‘a’ 作为输入时,它保持自身状态,并且在将 ‘b’ 作为输入时,它转换到最终状态 ‘Y’,在将 ‘b’ 作为输入时,它保持自身的状态,并在作为输入时转换到死状态 ‘Z’,当初始状态 ‘W’ 将 ‘b’ 作为输入,然后它过渡到死状态 ‘Z’。

状态“Z”被称为死状态,因为它无法在获得任何输入时进入最终状态。

问题 2:在 {a, b} 上构造一个接受字符串集的最小 DFA,其中 a n b m ,其中 n 和 m 大于或等于 0。
说明:所需的语言将类似于:

L1 = {ε, a, b, ab, aab, abb, aabb, aaabbb, aaabbbb, ...........}

注意:在上面的字符串,’b’ 后不应有任何 ‘a’。

在这里我们可以看到,语言的每个字符串都包含幂大于或等于 0 的 a 和 b 但以下语言不被此 DFA 接受,因为以下语言的某些字符串不包含其幂的 a 和 b大于或等于 0 或者它们可能不遵循 a 和 b 的格式,即在 ‘b’ 之后不应该有任何 ‘a’。

L2 = {ba, baa, bbaaa..............}

此所需的 DFA 不接受此语言 L2,因为它的字符串在“b”之后包含“a”。
所需语言的状态转换图如下所示:

在上面的 DFA 中,状态 ‘X’ 是初始和最终状态,在将 ‘a’ 作为输入时,它保持自身的状态,在获得 ‘b’ 作为输入时,它转换到最终的 ‘Y’在获得 ‘b’ 作为输入时,它保持自身的状态,在获得 ‘a’ 作为输入时,它转变为死状态 ‘Z’。

状态“Z”被称为死状态,因为它无法在获取任何输入字母表时进入最终状态。