Skip to main content

Class Notes on 10th Oct

语言非正则性证明

引理Σ\Sigma 为字母表,AΣA \subseteq \Sigma^\ast 为正则语言,则存在 n 满足:wA\forall w \in A,当 wn|w|\geq n 时,有

w=xyz,x,y,zΣw=xyz,x,y,z \in \Sigma^\ast

  • yϵy \neq \epsilon
  • xyn|xy| \leq n
  • xyizA,i=0,1,2,x y^i z \in A,i=0,1,2,\cdots

证明AA 被 DFA M=(Q,Σ,δ,q0,F)M=(Q,\Sigma,\delta,q_0,F) 识别,且 Q=n|Q|=n,既然 wAw \in A,有以下转移 δ(ri,ai+1)=ri+1\delta(r_i,a_{i+1})=r_{i+1},其中 w=a1a2am(mn)w=a_1 a_2 \cdots a_m(m \geq n)riQ,i=0,1,2,r_i \in Q,i=0,1,2,\cdotsr0=q0r_0=q_0rmF0r_m \in F_0。【?】

由于 Q=nm|Q| = n \leq m,所以 r0,,rmr_0,\cdots,r_m 中必定有两个状态相同,记为 rs,rt,0s<ttr_s,r_t,0 \leq s < t \leq t

若取 x=a1as,y=as+1at,z=at+1amx=a_1 \cdots a_s,y=a_{s+1} \cdots a_{t},z=a_{t+1} \cdots a_m,则定理中的条件必定满足。\blacksquare

Problem 1Σ={0,1}\Sigma = \{0, 1\}Lsame={0m1m:mN}L_{same} = \{0^m 1^m:m \in N\},证明其为非正则语言。

证明 (反证法)若 LsameL_{same} 是正则的,则存在 n1n \geq 1 满足泵引理,考虑 w=0n1nw=0^n 1^n,则有 w=xyzw=xyz,其中 yϵy \neq \epsilon,且 xyn|xy| \leq n,以及 xyizLsame,i=0,1,2,x y^i z \in L_{same},i=0,1,2,\cdots。 另 y=0k(k1),x=0k1,z=0k21ny = 0^k(k \geq 1),x = 0^{k_1},z = 0^{k_2} 1^n

显然当 i1i \neq 1 时,xyiz∉Lsamex y^i z \not\in L_{same},这是矛盾的,因此是 LsameL_{same} 非正则的。

Problem 2 Σ={0,1},A={0m1r:m,rN,m>r}\Sigma = \{ 0, 1 \},A = \{ 0^m 1^r : m, r \in N, m > r\},证明其是非正则的。

证明 (反证法)设 AA 是正则的,则存在 nn 满足泵原理。取 w=0n+11nAw = 0^{n+1} 1^n \in A,有 w=xyzw = xyz 满足

  • yϵy \neq \epsilon
  • xyn|xy| \leq n
  • xyizA,i=0,1,2,x y^i z \in A,i=0,1,2,\cdots

其中 y=0k(k1)y = 0^k (k \geq 1),然而 xz=0n+1k1n∉Axz = 0^{n+1-k} 1^n \not\in A,因此 AA 非正则。\blacksquare

Problem 3 Σ={0}\Sigma = \{ 0 \}Lsquare={0m2:mN}L_{square} = \{ 0^{m^2} : m \in N\},证明其是非正则的。

证明 (反证法)若 LsquareL_{square} 是正则的,则存在 nn 满足泵引理。取 w=0n2Lsquarew = 0^{n^2} \in L_{square},有 w=xyzw = xyz 满足

  • y=0k(k1)y = 0^k(k \geq 1)
  • xyn|xy| \leq n
  • xyizA,i=0,1,2,x y^i z \in A,i=0,1,2,\cdots

i=2i = 2 时,由于 n2+1n2+kn2+nn^2 + 1 \leq n^2 + k \leq n^2 + n,所以 n2+kn^2 + k 不是完全平方数,因此 xy2z∉Lsquarex y^2 z \not\in L_{square}\blacksquare

作业 证明 Lpal={wΣ:w=wR}L_{pal} = \{ w \in \Sigma^\ast : w = w^R \} 是非正则的,其中 Σ={0,1}\Sigma = \{ 0, 1 \}wRw^Rww 的反转,如 w=a1a2amw = a_1 a_2 \cdots a_m,则 wR=amam1a1w^R = a_m a_{m-1} \cdots a_1

证明 假设 LpalL_{pal} 是正则语言。根据正则语言的泵引理,存在一个整数 nn(称为泵长度),使得对于所有 wLpalw \in L_{pal}wn|w| \geq n 的字符串 ww,我们可以将其分解为 w=xyzw = xyz,并且满足以下条件:

  • xyn|xy| \leq n
  • y>0|y| > 0
  • 对于所有 i0i \geq 0xyizLpalxy^i z \in L_{pal}(即泵出的字符串仍然在语言中)。

w=0n10nw = 0^n 1 0^n,这是一个长度为 2n+12n + 1 的回文字符串,显然 wLpalw \in L_{pal},且 w=2n+1n|w| = 2n + 1 \geq n

根据泵引理,字符串 ww 可以分解为 w=xyzw = xyz,并且满足:

  1. xyn|xy| \leq n
  2. y>0|y| > 0

由于 xyn|xy| \leq n,可以得出 xxyy 都仅包含字符 0,因此 y=0ky = 0^k,其中 k>0k > 0

现在我们考虑 i=2i = 2 的情况。此时,泵出的字符串为:

w=xy2z=0n+k10nw' = xy^2z = 0^{n+k} 1 0^n

这是一个新的字符串,前缀为 0n+k0^{n+k},后缀为 0n0^n

显然,ww' 不是回文字符串,因为前缀和后缀的长度不同。具体地,前缀包含 n+kn + k 个 0,而后缀只包含 nn 个 0,因此 wwRw' \neq w'^R,即 wLpalw' \notin L_{pal}

根据泵引理的条件,所有泵出的字符串 xyizxy^i z 都应属于语言 LpalL_{pal}。但是,我们已经证明当 i=2i = 2 时,wLpalw' \notin L_{pal}。这与泵引理的结论矛盾。

因此,语言 LpalL_{pal} 不是正则语言。

正则语言的进一步讨论

对于 wΣw \in \Sigma^\astwRw^R 定义为

  • w=ϵw = \epsilon,则 wR=ϵw^R = \epsilon
  • w=ax,(aΣ,xΣ)w = a x, (a \in \Sigma, x \in \Sigma^\ast),则 wR=xRaw^R = x^R a
  • AΣA \in \Sigma^\astAR={wR:wA}A^R = \{ w^R: w \in A \}
  • (AB)R=ARBR(A \cup B)^R = A^R \cup B^R
  • (AB)R=BRAR(AB)^R = B^R A^R
  • (A)R=(AR)(A^\ast)^R = (A^R)^\ast

Question 若 A 是正则的,ARA^R 是否为正则的?

命题 若 AΣA \subseteq \Sigma^\ast 是正则的,则 ARA^R 也是正则的。

证明

(方法1) 如果 S 是正则表达式,则其反转也可用递归定义:

  • S=SR=S = \varnothing \rightarrow S^R = \varnothing
  • S=ϵSR=ϵS = \epsilon \rightarrow S^R = \epsilon
  • S=a,aΣ,SR=aS = a, a \in \Sigma, S^R = a
  • S=S1S2S = S_1 \cup S_2S1,S2S_1, S_2 其中为正则表达式,SR=S1RS2RS^R = S_1^R \cup S_2^R
    • S=(S1S2)SR=(S2R,S1R)S = (S_1 S_2) \rightarrow S^R = (S_2^R, S_1^R)
    • S=(S1)((S1R))S = (S_1^\ast) \rightarrow \left(\left(S_1^R\right)^\ast\right)

可见正则表达式的反转也是正则表达式,且 L(SR)=L(S)RL(S^R) = L(S)^R,其中 SS 为正则表达式。

something need to fill

对称差

AB=(A\B)(B\A)A \triangle B = (A \backslash B) \cup (B \backslash A)

AB=(AB)(AB)A \triangle B = (A \cap \overline B) \cup (\overline A \cap B)

前缀、后缀和子串

AΣA \subseteq \Sigma^\ast,则

  • Prefix(A)={xΣ:vΣ,xvA}\text{Prefix}(A) = \{ x \in \Sigma^\ast : \exists v \in \Sigma^\ast, xv \in A \}
  • Suffix(A)={xΣ:vΣ,vxA}\text{Suffix}(A) = \{ x \in \Sigma^\ast : \exists v \in \Sigma^\ast, vx \in A \}
  • Substring(A)={xΣ:u,vΣ,uxvA}\text{Substring}(A) = \{ x \in \Sigma^\ast : \exists u, v \in \Sigma^\ast, uxv \in A \}

命题AΣA \subseteq \Sigma^\ast 为正则语言,则上述三个均为正则语言。

证明 设 DFA M=(Q,Σ,δ,q0,F)M=(Q, \Sigma, \delta, q_0, F) 识别 AA,记

R={qQ:wΣ,δ(q0,w)=q}R = \{ q \in Q : \exists w \in \Sigma^\ast, \delta(q_0, w) = q \} P={pQ:wΣ,δ(p,w)F}P = \{ p \in Q : \exists w \in \Sigma^\ast, \delta(p, w) \in F \}

构造 DFA K=(Q,Σ,δ,q0,P)K = (Q, \Sigma, \delta, q_0, P),则 L(K)=Prefix(A)L(K) = \text{Prefix}(A)

NFA N=(Q{r0},Σ,η,r0,F),η(r0,ϵ)=R,η(q,a)={δ(q,a)},qQ,aN = (Q \cup \{ r_0 \}, \Sigma, \eta, r_0, F), \eta(r_0, \epsilon) = R, \eta(q, a) = \{ \delta(q, a) \}, q \in Q, a \in