📜  来自 RHS 的第三个符号是“a”的字符串的DFA

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

先决条件 – 有限自动机介绍,字符串的DFA,其中来自 RHS 的第二个符号是“a”
问题 –绘制包含 {a, b} 上所有字符串集合的语言的确定性有限自动机 (DFA),其中来自 RHS 的第三个符号是“a”。

倒数第三个符号是“a”的字符串是:

aaa, aab, aaab, aaaa, aabbaaa, bbbaba etc

接受此类字符串语言的 DFA 类似于接受正则表达式的 DFA:

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

例如:

Input: babaa
Output: NOT ACCEPTED

Input: aaabb
Output: ACCEPTED 

直接构造给定问题的 DFA 非常复杂。因此,在这里我们将设计非确定性有限自动机(NFA),然后将其转换为确定性有限自动机(DFA)。

包含来自 RHS 的第三个符号为“a”的所有字符串的语言的 NFA 是:

其中,A 是初始状态,D 是最终状态。

现在,我们要构建上述 NFA 的状态转移表。

之后我们将在NFA的状态转移表上使用子集配置绘制DFA的状态转移表。我们将提及 a 和 b 的所有可能转换。

现在,借助转换表绘制 DFA 变得非常容易。在这个 DFA 中,我们有 8 个不同的状态 A、AB、AC、AD、ABC、ABD、ACD 和 ABCD,其中 AD、ABD、ACD 和 ABCD 是最终状态,A 是 DFA 的初始状态。

这是我们所需的语言 DFA,其中包含 {a, b} 上所有字符串的集合,其中来自 RHS 的第三个符号是“a”。