Computer science 计算理论-表明语言是规则的

Computer science 计算理论-表明语言是规则的,computer-science,finite-automata,regular-language,Computer Science,Finite Automata,Regular Language,我正在复习我的计算理论课程的一些笔记,我有点执着于展示下面的陈述,我希望有人能帮我解释一下:) 让A成为一种常规语言。语言B={ab|a存在于a中,而B不存在于a*} 为什么B是一种常规语言 有些观点对我来说是显而易见的。如果b仅仅是一个常量字符串,那么这是微不足道的。因为我们知道a在a中,b是字符串,正则语言在union下是封闭的,所以接受这两个字符串的语言的union显然是正则的。然而,我不确定b是常数。也许是的,如果是的话,这就不是什么问题了。我很难理解它。谢谢 问题中的a和b不是常量字符

我正在复习我的计算理论课程的一些笔记,我有点执着于展示下面的陈述,我希望有人能帮我解释一下:)

让A成为一种常规语言。语言B={ab|a存在于a中,而B不存在于a*} 为什么B是一种常规语言


有些观点对我来说是显而易见的。如果b仅仅是一个常量字符串,那么这是微不足道的。因为我们知道a在a中,b是字符串,正则语言在union下是封闭的,所以接受这两个字符串的语言的union显然是正则的。然而,我不确定b是常数。也许是的,如果是的话,这就不是什么问题了。我很难理解它。谢谢

问题中的
a
b
不是常量字符串,而是任意字符串,b是字符串的语言,字符串的开头在a中,而字符串的结尾不在a中。现在,由于正则表达式可以识别任意正则语言,如果
Ra
是识别语言A的正则表达式,那么与“
not Ra
”正则表达式连接的
Ra
就是识别语言B的正则表达式。因为B可以被正则表达式识别,所以它是正则语言


编辑:我最初错过了问题中B定义末尾A之后的星星。为了说明这一点,让正则表达式中识别
b
的部分也包括星形

你可以通过构造来证明:给出一个识别B的正则表达式。正则语言的类在并集、连接、星形和补码下是封闭的。

B是一种正则语言,因为它是在出现输入“B”时结束的语言。
我们可以为给定的语言B编写一个正则表达式,作为a*B

,或者更直接地说,正则语言在补码和连接下是封闭的,
ab
是正则语言与其补码的连接。