如果以下 DFA 中的最终状态和非最终状态互换,那么新的 DFA 将接受字母 {a,b} 中的以下哪种语言?
(A)不以 ab 结尾的所有字符串的集合
(B)以 a 或 ab 开头的所有字符串的集合
(C)不包含子串 ab 的所有字符串的集合,
(D)正则表达式 b*aa*(ba)*b* 所描述的集合答案:(一)
解释:
表面上,通过交换最终和非最终状态获得的 DFA 将是给定常规语言的补充。因此,为了证明一个字符串族被 L 的补集接受,我们将依次证明它被 L 拒绝。
(一) 。不以 ab 结尾的所有字符串的集合——可以通过查看最终状态上的 b 标记的入射边和它们之前的标记边来证明这个陈述是正确的。给定 DFA 的补码将前两个状态作为最终状态。第一个状态没有任何 b 标记的边在它之前有一个标记的边。类似地,第二个最终状态没有任何此类必需的 b 标记边。类似地,可以证明给定 DFA 接受的所有字符串都以 ab 结尾。既然 L ∪ completion(L) = (a + b) ∗ ,L 应该是所有以 ab 结尾的字符串的集合,complement(L) 应该是所有不以 ab 结尾的字符串的集合。 [正确的]
(乙) 。以 a 或 ab 开头的所有字符串的集合 – 此语句不正确。为了证明我们只需要证明一个以 a 或 ab 开头的字符串存在,它被给定的 DFA 接受。字符串 abaab 被给定的 DFA 接受,因此它不会被它的补集接受。 [错误]
(三) 。设置不包含子串AB的所有字符串的-为了证明这个说法不对,我们需要显示一个字符串存在不包含子串AB,且不受当前DFA接受。因此,它将被其补语接受,从而使该陈述错误。此 DFA 不接受字符串 aba。 [错误]
(四)。正则表达式 b ∗ aa ∗ (ba) ∗ b ∗ – 字符串 abaaaba 描述的集合不被给定的 DFA 接受,因此被它的 com 接受
该解决方案由vineet purswani 提供。
这个问题的测验