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

📅  最后修改于: 2021-09-28 09:51:19             🧑  作者: Mango

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

问题 1:在 {a, b} 上构造一个接受字符串集的最小 DFA,其中每个字符串包含 ‘a’ 作为子字符串。

解释:
所需的语言如下:

L1 = {a, aa, ab, ba, ..............}

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

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

包含 ‘a’ 作为子字符串的语言的状态转换图将如下所示:

另外,在上述DFA,状态“X”和“Y”是初始和最终状态分别,它接受所有包含“a”作为子字符串的字符串。在这里,正如我们看到的那样,在将输入作为 ‘b’ 时,它保持在 ‘X’ 本身的状态,但在将 ‘a’ 作为输入时,它转换到最终状态 ‘Y’,因此这样的字符串被上面的 DFA 接受。

问题 2:在 {a, b} 上构造一个接受字符串集的最小 DFA,其中每个字符串包含 ‘ab’ 作为子字符串。

说明:所需的语言将类似于:

L1 = {ab, aab, abb, bab, ..............}

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

L2 = {aba, bba, bbbaaa, ..............}

包含 ‘ab’ 作为子字符串的语言的状态转换图将如下所示:

另外,在上述DFA,状态“X”和“Z”是的初始和最终状态分别,它接受所有含有“AB”作为子字符串的字符串。正如我们所看到的,在获得 ‘b’ 作为输入时,它保持在初始状态本身,在获得 ‘a’ 作为输入时,它转换到状态 ‘Y’,然后在获得 ‘b’ 时它最终转换到状态最终状态“Z”,因此这个 DFA 接受所有包含“ab”的语言作为子字符串。