我试图以多种方式解决这个问题,并且在几个地方没有回答。问题如下:
[问题]
鉴于两种常规语言(可称为有限描述语言,idk)L1
和L2
,我们定义了一种新语言:
L = {w1w2| there are two words, x,y such that : xw1 is in L1, w2y is in L2}
我应该用来表示L is regular
,但我有以下限制:
我必须使用Equivalence类,而不是其他方式
我不能使用Rank(L)
,因为它显示了等价类数量的限制,而是我必须显示它们
我不期待一个完整的证明(虽然这将被赞赏)但是对如何处理这样的事情的解释。
提前致谢。
答案 0 :(得分:0)
L = {w1w2 |有两个词,x,y使得:xw1在L1中,w2y在L2中}如果L 1 且L 2 是常规语言则是规则的。
L suff = {w 1 | xw 1 ∈L 1 }
L pref = {w 2 | w 2 y∈L 2 }
并强>
L = L suff L pref
我们可以通过L
的构造有限自动机轻松证明。
假设L 1 的有限自动机(FA)是M 1 而L 2 的FA是M 2 。
<强> [溶液] 强>
L的非确定性有限自动机(NFA)可以通过将M 1 中的每个状态的NULL转换(^ -edge)引入M 2 中的每个状态来绘制。然后NFA可以转换为DFA。
e.g。
L 1 = {ab,ac}和L 2 = {12,13}
L = {ab,ac,12,13,a12,a2,ab12,ab2,a13,a3,ab13,ab3,............} 注意: w 1 和w 2 可以为NULL
M 1 =由Q = {q 0 ,q 1 ,q f }组成边缘:
q 0 --- a -----&gt; q 1 ,
q 1 --- b / c ---&gt; q f
同样:
M 2 =由Q = {p 0 ,p 1 ,p f }组成边缘:
p 0 --- 1 -----&gt; p 1 ,
p 1 --- 2/3 ---&gt; p f
现在,名为M的L的NFA将由Q = {q 0 ,q 1 ,q f ,p 0 ,p 1 ,p f }其中M的最终状态为p f 且边缘为:
q 0 --- a -----&gt; q 1 ,
q 1 --- b / c ---&gt; q f ,
p 0 --- 1 -----&gt; p 1 ,
p 1 --- 2/3 ---&gt; p f ,q 0 ---- ^ ----&gt; P <子> 0 子>,
q 1 ---- ^ ----&gt; P <子> 0 子>,
q f ---- ^ ----&gt; p 0 ,q 0 ---- ^ ----&gt; P <子> 1 子>,
q 1 ---- ^ ----&gt; P <子> 1 子>,
q f ---- ^ ----&gt; p 1 ,q 0 ---- ^ ----&gt; P <子>˚F子>,
q 1 ---- ^ ----&gt; P <子>˚F子>,
q f ---- ^ ----&gt; p f
^
表示NULL-Transition。
现在,NFA可以轻松转换为DFA。(我留给你)
<强> [ANSWER] 强>
L的DFA是可能的,因此L是常规语言。
我强烈建议您绘制DFA / NFA数据,然后概念就会明确。&gt;
答案 1 :(得分:0)
注意强>
我正在写这个答案,因为我认为现有的答案并不真正满足职位要求,即
我必须使用Equivalence类,没有别的方法
<强>答案强>
更直接和简单的方法是不由于时间原因构建DFA / NFA,而只是检查#EquivalenceClasses < ∞
是否成立。具体来说,你可以在这里找到以下内容:
[w1] = {all w1 in L1}
[e]
[w1w2] = L
所以ind(R)
,等价关系的索引是3
,因此是有限的。因此,L
是常规的。 Q.E.D。
为了更清楚,只需看看语言的等价关系的定义,即R_L
。
此外,常规语言在连接下关闭。事实上,你只需要将两个DFA / NFA连接成一个。