我正在研究会员算法,我正在研究这个特殊问题,其中包含以下内容:
展示一种算法,给定任何常规语言L,确定是否L = L *
所以,我的第一个想法是,我们有L *是L的Kleene星并确定L = L *,我们不能只说因为L是常规的,我们知道L *是定义的声称常规语言家族在星光关闭下关闭。 因此L总是等于L *?
我觉得肯定还有很多东西,可能有些东西我不知道了。任何帮助,将不胜感激。再次感谢。
答案 0 :(得分:6)
由于L是常规的,我们知道L *根据定义表明常规语言族在星形闭合下是封闭的。因此L总是等于L *?
没有。 Regular(L) --> Regular(L*)
,但这并不意味着L == L*
。仅仅因为两种语言都是常规语言并不意味着它们是相同的常规语言。例如,a*
和b*
都是常规语言,但这并不能使它们成为同一种语言。
L != L*
的示例是语言L = a*b*
,因此L* = (a*b*)*
。字符串abab
是L*
的一部分,但不属于L
。
就算法而言,让我提醒您,常规语言的概念是可以由DFA解析的概念 - 对于任何给定的DFA,该DFA都有一个最佳减少。
答案 1 :(得分:1)
你所说的含义是错误的。如果L是常规的,则Kleene星下的闭合性仅意味着L *再次是规则的。 检查L = L *的一种可能性是计算两者的最小自动机,然后检查等效性。