• pumping lemma


    正规语言版本

    L L L是正规语言,则存在整数 p ≥ 1 p\ge 1 p1
    对于任意长度大于等于 p p p的字符串 w ∈ L w\in L wL,存在一种分解 w = x y z w=xyz w=xyz,满足下面3个条件
    ∣ y ∣ ≥ 1 \left|y\right|\ge 1 y1
    ∣ x y ∣ ≤ p \left|xy\right|\le p xyp
    ∀ n ≥ 0 , x y n z ∈ L \forall n\ge 0,xy^nz\in L n0,xynzL


    ( ∀ L ⊆ Σ ∗ ) (  regular  ( L ) ⇒ ( ( ∃ p ≥ 1 ) ( ( ∀ w ∈ L ) ( ( ∣ w ∣ ≥ p ) ⇒ ( ( ∃ x , y , z ∈ Σ ∗ ) ( w = x y z ∧ ( ∣ y ∣ ≥ 1 ∧ ∣ x y ∣ ≤ p ∧ ( ∀ n ≥ 0 ) ( x y n z ∈ L ) ) ) ) ) ) ) )

    (LΣ)( regular (L)((p1)((wL)((|w|p)((x,y,zΣ)(w=xyz(|y|1|xy|p(n0)(xynzL))))))))" role="presentation">(LΣ)( regular (L)((p1)((wL)((|w|p)((x,y,zΣ)(w=xyz(|y|1|xy|p(n0)(xynzL))))))))
    (LΣ)( regular (L)((p1)((wL)((wp)((x,y,zΣ)(w=xyz(y1xyp(n0)(xynzL))))))))

    证明:
    根据Myhill–Nerode theorem,正则语言可以转为有限自动机
    设这个有限自动机由 p p p个状态

    对于一个长度大于等于 p p p字符串 w w w,进入自动机需要经过 p + 1 p+1 p+1个状态
    根据抽屉原理,至少有一个状态被访问两遍,如图
    在这里插入图片描述
    ∣ y ∣ ≥ 1 \left|y\right|\ge 1 y1,因为要有环
    ∣ x y ∣ ≤ p \left|xy\right|\le p xyp,(因为还没走完?
    显然 x y i z ∈ L xy^i z\in L xyizL

    举个例子,比如 L = { 0 n 1 n ∣ n > 0 } L=\left\{0^n1^n|n>0\right\} L={0n1nn>0}不是正则语言
    w = 0 p 1 p w=0^p1^p w=0p1p
    因为 ∣ x y ∣ ≤ p \left|xy\right|\le p xyp,所以 y ∈ 0 ∗ y\in 0^* y0
    x = 0 p − m , y = 0 m , z = 1 p ( m ≥ 1 ) x=0^{p-m},y=0^m,z=1^p\left(m\ge1\right) x=0pm,y=0m,z=1p(m1)
    于是 w = x y z = 0 p − m 1 m 1 p w=xyz=0^{p-m}1^m1^p w=xyz=0pm1m1p
    x y 0 z = x z = 0 p − m 1 p ∉ L xy^0z=xz=0^{p-m}1^p\notin L xy0z=xz=0pm1p/L

    另一个例子 L = { a b c d } L=\left\{abcd\right\} L={abcd}
    p = 5 p=5 p=5,因为没有 ∣ w ∣ ≥ 5 \left|w\right|\ge5 w5,所以成立

    反过来不一定成立:
    L = { a b n c n ∣ n ≥ 1 } ∪ { a k ( b ∣ c ) ∗ ∣ k ≠ 1 } L=\left\{ab^nc^n|n\ge1\right\}\cup\left\{a^k(b|c)^*|k\neq 1\right\} L={abncnn1}{ak(bc)k=1}
    选定 p = 2 p=2 p=2
    对于 w = a b n c n w=ab^nc^n w=abncn,选择 x = ϵ , y = a , z = b n c n x=\epsilon,y=a,z=b^nc^n x=ϵ,y=a,z=bncn
    对于 w = ( b ∣ c ) ∗ w=\left(b|c\right)^* w=(bc),选择 x = ϵ x=\epsilon x=ϵ, y y y选择第一个/前两个字符, z z z选择剩下的
    对于 w = a k ( b ∣ c ) ∗   k ≥ 2 w=a^k\left(b|c\right)^*\ k\ge 2 w=ak(bc) k2,选定 x = ϵ , y = a a x=\epsilon,y=aa x=ϵ,y=aa, z z z选择剩下的
    即可满足pumping lemma

    但是显然 { a b n c n ∣ n ≥ 1 } ∩ { a k ( b ∣ c ) ∗ ∣ k ≠ 1 } = ∅ \left\{ab^nc^n|n\ge1\right\}\cap\left\{a^k(b|c)^*|k\neq 1\right\}=\empty {abncnn1}{ak(bc)k=1}=
    并且 { a b n c n ∣ n ≥ 1 } \left\{ab^nc^n|n\ge1\right\} {abncnn1}不是正则语言,所以 L L L不是正则语言

    https://cs.stackexchange.com/questions/9181/languages-that-satisfy-the-pumping-lemma-but-arent-regular

  • 相关阅读:
    安全狗再次入选中国数字安全百强报告
    iNFTnews | 500万高薪不在话下,元宇宙人才成香饽饽?
    岛屿问题(用DFS遍历二维数组)
    Windows 安装TVM 及各种报错解决!无GPU版本
    Android Studio Bumblebee | 2021.1.1 发布,快来看看更新了什么
    全功能WebRTC应用程序AppRTC应用服务阿里云搭建测试总结并docker化提供镜像
    齐护K210系列教程(十一)_显示摄像头图像
    FX粒子(Niagara系统)、顶点法线材质函数、材质参数集——雪和简单地形材质积雪效果
    python爬虫思维
    ubuntu 添加、删除用户,修改用户名称,修改主机名
  • 原文地址:https://blog.csdn.net/qq_39942341/article/details/127906924