📜  DFA中的补全流程

📅  最后修改于: 2021-09-28 09:33:07             🧑  作者: Mango

先决条件——设计一个有限自动机
假设我们有一个由 ( Q, \Sigma  , \delta  , q0, F ) 并且它接受语言 L 1 。然后,接受语言 L 2其中 L 2 = ̅L 1 ‘的 DFA 将定义如下:

(问, \Sigma , \delta , q0, QF )

可以通过将非最终状态作为最终状态来获得 DFA 的补充,反之亦然。被补充的 DFA L 2接受的语言是语言 L 1的补充。

示例 1:
L 1 : {a, b} 上偶数长度的所有字符串的集合

L 1 = { \epsilon , ab, aa, aaba, aaba, ….}

L 2 :奇数长度 {a, b} 上所有字符串的集合

L2 = { a, b, aab, aaa, bba, bbb, ...} 

在这里,我们可以看到 L 2 = ̅L 1

让我们首先绘制接受偶数长度字符串的 L 1的 DFA。

现在,为了设计 L 2的 DFA,我们只需要补充上述 DFA。我们将非最终状态更改为最终状态,将最终状态更改为非最终状态。

这是我们所需的补充 DFA。

示例 2:
L 1 :{a, b} 上以’a’ 开头的所有字符串的集合。

L1 ={ a, ab, aa, aba, aaa, aab, ..} 

L 2 :{a, b} 上所有不以 ‘a’ 开头的字符串的集合。

L 2 ={ \epsilon , b, ba, bb, bab, baa, bba, …}

在这里,我们可以看到 L 2 = ̅L 1

让我们首先绘制 L 1的 DFA,它接受 {a, b} 上以 ‘a’ 开头的所有字符串的集合

现在,为了设计 L 2的 DFA,我们只需要补充上述 DFA。我们将非最终状态更改为最终状态,将最终状态更改为非最终状态。

这是我们要求的补充 DFA,它接受不以“a”开头的字符串。
注意:正则语言在补语下是封闭的(即正则语的补语也将是正则的)。