正则表达式 描述模式的手段 例: (01)0* = ({0}{1}){0}* = {0,1}{0}* 《理论计算机科学基础》

Slides:



Advertisements
Similar presentations
一、模型与计算公式 二、基本的组合分析公式 三、概率直接计算的例子 第 1.3 节 古典概率 四、抽签与顺序无关 五、二项分布与超几何分布 六、概率的基本性质.
Advertisements

林園高中適性入學 高雄區免試入學 及 特色招生介紹 1. 國中學生 國中教育會考 1 ( 每年五月 ) 特色招生 術科考試 五專 免試入學 ( 每年六月 ) 特色招生 甄選入學 高中高職 免試入學 擇一報到 林園高中適性入學  入學管道流程 2.
实数与代数式是初中数学中重要的基础知识, 是中考的必考内容.这部分知识散布于多个章节之中, 知识点琐碎,但概念性强,在中考试卷中多以填空题、 选择题、化简、探索或求值的形式出现.在复习中, 一定要加强对各个概念、性质和公式的辨析和理 解.注重让学生在实际背景中理解基本的数量关系和 变化规律,注重使学生经历从实际问题中建立数学模.
說 劍 《莊子‧雜篇》─ 第 一 組 賴泊錞 謝孟儒 張維真 羅苡芸
德 国 鼓 励 生 育 的 宣 传 画.
复习: :对任意的x∈A,都有x∈B。 集合A与集合B间的关系 A(B) A B :存在x0∈A,但x0∈B。 A B A B.
温 度 定义: 表示物体冷热程度的物理量。 国际单位:开尔文(K) 单位 常用单位:摄氏度(℃) 原理: 根据液体热胀冷缩的性质制成的。
第十二章 小组评估 本章重点问题: 评估的设计 测量工具的选择和资料的收集 与分析.
判断推理,必须学会这些 主讲老师:小胡胡 2016年3月25日20:00 YY频道:
敦煌诗歌 敦煌诗歌指的是敦煌遗书中保存的诗歌,也包括唐五代时期莫高窟题壁的个别诗作。 从时间上看,既有先唐时期作品,更有唐五代宋初的作品;
平面直角坐标系(1) 营口市第十七中学 杨晋.
第六章 遺傳 遺傳學:研究親代的性狀如何傳給後代的科學.
第三章 函数逼近 — 最佳平方逼近.
巧用叠词,妙趣横生.
忠孝國小自立午餐老師的叮嚀 教師指導手冊.
血 液 循 环.
形式语言与自动机 第四章 正则表达式 南京航空航天大学 计算机科学与技术学院 关东海
《电子商务师实验室》 电子商务交易模式之“B2C”.
第八章 股票价格指数 王玉霞 证券投资学 东 北 财 经 大 学 第8章 股票价格指数.
四种命题.
常用逻辑用语 第一章 “数学是思维的科学” 逻辑是研究思维形式和规律的科学. 逻辑用语是我们必不可少的工具.
一、原函数与不定积分 二、不定积分的几何意义 三、基本积分公式及积分法则 四、牛顿—莱布尼兹公式 五、小结
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
第二章 导数与微分 第二节 函数的微分法 一、导数的四则运算 二、复合函数的微分法.
第4章 种群和群落 第3节 群落的结构 自主学习案   合作探究案 课后练习案. 第4章 种群和群落 第3节 群落的结构 自主学习案   合作探究案 课后练习案.
初中数学八年级下册 (苏科版) 10.4 探索三角形 相似的条件(2).
第5章 §5.3 定积分的积分法 换元积分法 不定积分 分部积分法 换元积分法 定积分 分部积分法.
如何寫工程計畫書 臺北市童軍會考驗委員會 高級考驗營 版.
LR(1)分析方法.
数字电子技术 Digital Electronics Technology
计算机数学基础 主讲老师: 邓辉文.
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
第一章 函数 函数 — 研究对象—第一章 分析基础 极限 — 研究方法—第二章 连续 — 研究桥梁—第二章.
字符串(1) 字母表: 任意非空有穷集合 (字符)串: 连接: ={0,1} ={a,b,c,…,x,y,z,空格}
2.3 正则表达式 主要内容: 1.正则表达式和正则集; 2.正则表达式和有限自动机的相互转化。.
《编译原理与技术》 期末复习 计算机科学与技术学院 郑启龙 李 诚 25/12/2018.
比與比值 比例式 應用問題 自我評量.
班級:財金一A 姓名:吳佩玲 學號:4990S024 指導老師:蔡享翰 老師
实数与向量的积.
自动机与形式语言 报告人:姜勇刚 郑奘巍.
集合的概念和性质,以及集合之间的运算 集合{所有课程全体}和集合{所有教室}这两个集合之间就存在着某种联系。
第二章 词法分析3 非确定有限自动机NFA 非确定有限自动机(NFA)的定义 NFA的确定化:NFA到DFA的转换(子集法)
第二部分 集合论 第六章 集合代数 主要内容 集合的基本概念 属于、包含 幂集、空集 文氏图等 集合的基本运算 并、交、补、差等 集合恒等式
第四章 一次函数 4. 一次函数的应用(第1课时).
离散数学─归纳与递归 南京大学计算机科学与技术系
軌跡圖 Loci Drawing 姓名: 班別: ( ) 軌跡圖.
電子白板百萬小學堂 本活動建議搭配電子白板 學生最多可分成2~6組(請按組別按鈕) 老師可以視時間多少,來進行活動 每一組要回答十個問題。
复习: 若A(x1,y1,z1) , B(x2,y2,z2), 则 AB = OB - OA=(x2-x1 , y2-y1 , z2-z1)
定理21.9(可满足性定理)设A是P(Y)的协调子集,则存在P(Y)的解释域U和项解释,使得赋值函数v(A){1}。
第16讲 相似矩阵与方阵的对角化 主要内容: 1.相似矩阵 2. 方阵的对角化.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
3.1.2 空间向量的数量积运算 1.了解空间向量夹角的概念及表示方法. 2.掌握空间向量数量积的计算方法及应用.
1.2 子集、补集、全集习题课.
1.设A和B是集合,证明:A=B当且仅当A∩B=A∪B
第一节 不定积分的概念与性质 一、原函数与不定积分的概念 二、不定积分的几何意义 三、基本积分表 四、不定积分的性质 五、小结 思考题.
第三章 函数的微分学 第二节 导数的四则运算法则 一、导数的四则运算 二、偏导数的求法.
线段 射线 直线.
第一章-第二节 –有理数的加法(2).
上杭二中 曾庆华 上杭二中 曾庆华 上杭二中 曾庆华.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
第四节 串联电路和并联电路 第二课时 并联电路的分流作用和电流表.
主讲教师 欧阳丹彤 吉林大学计算机科学与技术学院
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
第四章 函数的 积分学 第七节 定积分的换元积分法     与分部积分法 一、定积分的换元积分法 二、定积分的分部积分法.
陪集 例:三次对称群S3={e,1, 2, 3, 4, 5}的所有非平凡子群是:
§4.5 最大公因式的矩阵求法( Ⅱ ).
其解亦可表为向量形式.
最小生成树 最优二叉树.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
Presentation transcript:

正则表达式 描述模式的手段 例: (01)0* = ({0}{1}){0}* = {0,1}{0}* 《理论计算机科学基础》

例2.25 ={0,1} 是任意字母表 (01)* = {0,1}* = * 表示所有长为1的串组成的语言 * 表示所有串组成的语言 *1 表示所有以1结尾的串组成 的语言 (0*)(*1)表示所有以0开头或 以1结尾的串组成的语言 《理论计算机科学基础》

正则表达式的形式定义 定义2.26: R是正则表达式 当且仅当R是 L(R): R表示的语言 a, a; /* 表示 {a} */ ; /* 表示 {} */ ; /* 表示  */ (R1R2), R1和R2都是正则表达式; (R1R2), R1和R2都是正则表达式; (R1*), R1是正则表达式. L(R): R表示的语言 《理论计算机科学基础》

说明 归纳定义 省略括号 优先级 用较小的表达式定义较大的表达式 最外层 规定优先级 星号 > 连接 > 并 《理论计算机科学基础》

例2.27 设={0,1} 0*10* = { w | w恰好有一个1 } *1* = { w | w至少有一个1 } 《理论计算机科学基础》

例2.27(续) 0110 = { 01, 10 } 0*0  1*1  0  1 = { w | w首尾符号相同 } (0)1* = 01*1* (0)(1) = {,0,1,01} 1* =  * = {} 《理论计算机科学基础》

几个恒等式 R = R R = R 一般 R  R, R  R R = R{} R =  《理论计算机科学基础》

例 数值常量 {+,-,}(DD*DD*.D*D*.DD*) D={0,1,2,3,4,5,6,7,8,9} 72 3.14159 +7. -.01 《理论计算机科学基础》

正则表达式与自动机等价性 定理2.28: 一个语言是正则的 当且仅当可用正则表达式描述 这个语言. 引理2.29:正则表达式描述 正则语言. 引理2.32:正则语言可用 正则表达式描述. 《理论计算机科学基础》

引理2.29 引理2.29:正则表达式描述正则语言. 《理论计算机科学基础》

引理2.29 引理2.29:正则表达式描述正则语言. 证明思路: 把正则表达式转化成 等价NFA 《理论计算机科学基础》

引理2.29 引理2.29:正则表达式描述正则语言. 证明: 1) R=a, a. L( R )={a}, N=({q1,q2},,,q1,{q2}), (q1,a)={q2}, (r,b)=, 若rq1或ba. a q1 q2 N 《理论计算机科学基础》

引理2.29 引理2.29:正则表达式描述正则语言. 证明: 2) R=. L( R )={}, N=({q1},,,q1,{q1}), r,b, (r,b)=. q1 N 《理论计算机科学基础》

引理2.29 引理2.29:正则表达式描述正则语言. 证明: 3) R=. L( R )=, N=({q1},,,q1,), r,b, (r,b)=. q1 N 《理论计算机科学基础》

引理2.29 引理2.29:正则表达式描述正则语言. 证明: 4) R=(R1R2), N N1   N2 《理论计算机科学基础》

引理2.29 引理2.29:正则表达式描述正则语言. 证明: 5) R=(R1R2), N1 N2 N   《理论计算机科学基础》

引理2.29 引理2.29:正则表达式描述正则语言. 证明: 6) R=(R1*), N  N1   # 《理论计算机科学基础》

例2.30 (aba)* 《理论计算机科学基础》

例2.30 (aba)* a a 《理论计算机科学基础》

例2.30 (aba)* a b a b 《理论计算机科学基础》

例2.30 (aba)* a b ab a b a  b 《理论计算机科学基础》

例2.30 (aba)* a b ab aba a b a  b a  b  a  《理论计算机科学基础》

例2.30 (aba)* a b ab aba a b a  b a  b  a   a  b    a #  《理论计算机科学基础》

例2.31 (ab)*aba 《理论计算机科学基础》

例2.31 (ab)*aba a a 《理论计算机科学基础》

例2.31 (ab)*aba a b a b 《理论计算机科学基础》

例2.31 (ab)*aba a b ab a b a  b  《理论计算机科学基础》

例2.31 (ab)*aba a b ab (ab)* a b a  b   a    b  《理论计算机科学基础》

例2.31 (ab)*aba aba a b a a  b  a 《理论计算机科学基础》

例2.31 (ab)*aba (ab)* aba  a    b  a  b  a 《理论计算机科学基础》

例2.31 (ab)*aba  a    b     a  b  a # 《理论计算机科学基础》

引理2.32 引理2.32: 正则语言可用正则表达式描述. 《理论计算机科学基础》

引理2.32 引理2.32: 正则语言可用正则表达式描述. 证明思路 给定DFA或NFA,构造等价正则表达式 《理论计算机科学基础》

引理2.32 引理2.32: 正则语言可用正则表达式描述. 证明思路 给定DFA或NFA,构造等价正则表达式 《理论计算机科学基础》

引理2.32 引理2.32: 正则语言可用正则表达式描述. 证明思路 给定DFA或NFA,构造等价正则表达式 《理论计算机科学基础》

引理2.32 引理2.32: 正则语言可用正则表达式描述. 证明思路 广义非确定型有穷自动机(GNFA) 从DFA构造等价的GNFA 《理论计算机科学基础》

GNFA: 箭头标号是正则表达式 ab* aa qstart a* abba  (aa)* b* qaccept ab b 《理论计算机科学基础》

GNFA的特殊形式 初始状态 接受状态 其他每个状态 有到所有其他状态的箭头 所有其他状态都没有到它的箭头 唯一, 且与初始状态不同 没有到任何其他状态的箭头 所有其他状态都有到它的箭头 其他每个状态 都有到自身和其他状态的箭头 《理论计算机科学基础》

从DFA到GNFA a DFA b    GNFA  ab  《理论计算机科学基础》

从GNFA到正则表达式 依次把GNFA状态数减少1个 R4 qi qj R1 R3 qrip R2 (R1)(R2)*(R3)(R4) 《理论计算机科学基础》

引理2.32 引理2.32: 正则语言可用 正则表达式描述. 《理论计算机科学基础》

引理2.32 引理2.32: 正则语言可用 正则表达式描述. 证明: 设正则语言A被DFA M识别. 《理论计算机科学基础》

引理2.32 引理2.32: 正则语言可用 正则表达式描述. 证明: 设正则语言A被DFA M识别. 把M转换成等价的GNFA G. 《理论计算机科学基础》

引理2.32 引理2.32: 正则语言可用 正则表达式描述. 证明: 设正则语言A被DFA M识别. 把M转换成等价的GNFA G. 利用过程CONVERT(G)把G转换成等价的正则表达式. 《理论计算机科学基础》

引理2.32 引理2.32: 正则语言可用 正则表达式描述. 证明: 下面分别给出: GNFA的形式定义 过程CONVERT(G) 《理论计算机科学基础》

GNFA的形式定义 GNFA是5元组(Q,,,qstart,qaccept) Q是有穷状态集 是输入字母表 :(Q-{qaccept})(Q-{qstart})R 是转移函数 (R是字母表上 全体正则表达式的集合) qstart是初始状态 qaccept是接受状态 《理论计算机科学基础》

GNFA计算的形式定义 输入w=w1w2…wk, wi* 计算: 状态序列 q0,q1,…,qk 接受计算: q0=qstart 是初始状态 i, wiL(Ri), Ri=(qi-1,qi) 接受计算: qk=qaccept是接受状态 《理论计算机科学基础》

过程CONVERT(G) 令k是G的状态数. 若k=2, 则返回正则表达式 (qstart,qaccept). 若k>2, 则 任取qripQ-{qstart,qaccept}, Q’=Q-{qrip}. 对每个qiQ’-{qaccept}和qjQ’-{qstart}, ’(qi,qj)=(R1)(R2)*(R3)(R4), 其中 R1=(qi,qrip), R2=(qrip,qrip), R3=(qrip,qj), R4=(qi,qj) GNFA G’=(Q’,,’,qstart,qaccept). 返回CONVERT(G’). 《理论计算机科学基础》

断言2.34 断言2.34: 对于任意GNFA G, CONVERT(G)都等价于G. 《理论计算机科学基础》

断言2.34 断言2.34: 对于任意GNFA G, CONVERT(G)都等价于G. 证明: 对G的状态数k作归纳证明. 《理论计算机科学基础》

断言2.34 断言2.34: 对于任意GNFA G, CONVERT(G)都等价于G. 证明: 对G的状态数k作归纳证明. 1) k=2时. 《理论计算机科学基础》

断言2.34 断言2.34: 对于任意GNFA G, CONVERT(G)都等价于G. 证明: 对G的状态数k作归纳证明. 1) k=2时. 当G只有2个状态时, 《理论计算机科学基础》

断言2.34 断言2.34: 对于任意GNFA G, CONVERT(G)都等价于G. 证明: 对G的状态数k作归纳证明. 1) k=2时. 当G只有2个状态时, G只能有一个箭头从初始状态到接受状态, 《理论计算机科学基础》

断言2.34 断言2.34: 对于任意GNFA G, CONVERT(G)都等价于G. 证明: 对G的状态数k作归纳证明. 1) k=2时. 当G只有2个状态时, G只能有一个箭头从初始状态到接受状态, 箭头上标记的正则表达式描述能使G到达接受状态的所有字符串. 《理论计算机科学基础》

断言2.34 断言2.34: 对于任意GNFA G, CONVERT(G)都等价于G. 证明: 对G的状态数k作归纳证明. 1) k=2时. 当G只有2个状态时, G只能有一个箭头从初始状态到接受状态, 箭头上标记的正则表达式描述能使G到达接受状态的所有字符串. 因此这个表达式等价于G. 《理论计算机科学基础》

断言2.34 证明: (续) 2) 设断言对k-1个状态为真. 《理论计算机科学基础》

断言2.34 证明: (续) 2) 设断言对k-1个状态为真. 先证明G与G’等价. 《理论计算机科学基础》

断言2.34 证明: (续) 2) 设断言对k-1个状态为真. 先证明G与G’等价. 设G接受输入w, 《理论计算机科学基础》

断言2.34 证明: (续) 2) 设断言对k-1个状态为真. 先证明G与G’等价. 设G接受输入w, 设一种可能的计算为qstart,q1,q2,q3,…,qaccept. 《理论计算机科学基础》

断言2.34 证明: (续) 2) 设断言对k-1个状态为真. 先证明G与G’等价. 设G接受输入w, 设一种可能的计算为qstart,q1,q2,q3,…,qaccept. 若该计算中不含被删除的状态qrip, 《理论计算机科学基础》

断言2.34 证明: (续) 2) 设断言对k-1个状态为真. 先证明G与G’等价. 设G接受输入w, 设一种可能的计算为qstart,q1,q2,q3,…,qaccept. 若该计算中不含被删除的状态qrip, 则G’显然也接受w. 《理论计算机科学基础》

断言2.34 证明: (续) 2) 设断言对k-1个状态为真. 先证明G与G’等价. 设G接受输入w, 设一种可能的计算为qstart,q1,q2,q3,…,qaccept. 若该计算中不含被删除的状态qrip, 则G’显然也接受w. 若该计算中含有qrip, 《理论计算机科学基础》

断言2.34 证明: (续) 2) 设断言对k-1个状态为真. 先证明G与G’等价. 设G接受输入w, 设一种可能的计算为qstart,q1,q2,q3,…,qaccept. 若该计算中不含被删除的状态qrip, 则G’显然也接受w. 若该计算中含有qrip, 则删除这些qrip, 《理论计算机科学基础》

断言2.34 证明: (续) 2) 设断言对k-1个状态为真. 先证明G与G’等价. 设G接受输入w, 设一种可能的计算为qstart,q1,q2,q3,…,qaccept. 若该计算中不含被删除的状态qrip, 则G’显然也接受w. 若该计算中含有qrip, 则删除这些qrip,得到G’的接受计算. 《理论计算机科学基础》

断言2.34 证明: (续) 2) 设断言对k-1个状态为真. 先证明G与G’等价. 设G接受输入w, 设一种可能的计算为qstart,q1,q2,q3,…,qaccept. 若该计算中不含被删除的状态qrip, 则G’显然也接受w. 若该计算中含有qrip, 则删除这些qrip,得到G’的接受计算. 设状态qi和qj之间有若干连续的qrip, 《理论计算机科学基础》

断言2.34 证明: (续) 2) 设断言对k-1个状态为真. 先证明G与G’等价. 设G接受输入w, 设一种可能的计算为qstart,q1,q2,q3,…,qaccept. 若该计算中不含被删除的状态qrip, 则G’显然也接受w. 若该计算中含有qrip, 则删除这些qrip,得到G’的接受计算. 设状态qi和qj之间有若干连续的qrip,则它们之间箭头上的新正则表达式就描述G中使qi经过qrip到qj的所有字符串. 《理论计算机科学基础》

断言2.34 证明: (续) 2) 设断言对k-1个状态为真. 先证明G与G’等价. 设G接受输入w, 设一种可能的计算为qstart,q1,q2,q3,…,qaccept. 若该计算中不含被删除的状态qrip, 则G’显然也接受w. 若该计算中含有qrip, 则删除这些qrip,得到G’的接受计算. 设状态qi和qj之间有若干连续的qrip,则它们之间箭头上的新正则表达式就描述G中使qi经过qrip到qj的所有字符串. 因此G’接受w. 《理论计算机科学基础》

断言2.34 证明: (续) 设G’接受输入w, 《理论计算机科学基础》

断言2.34 证明: (续) 设G’接受输入w, 由于G’中任意两个状态qi和qj之间箭头上的正则表达式描述G中使qi直接或经过qrip到qj的所有字符串, 《理论计算机科学基础》

断言2.34 证明: (续) 设G’接受输入w, 由于G’中任意两个状态qi和qj之间箭头上的正则表达式描述G中使qi直接或经过qrip到qj的所有字符串, 因此G接受w. 《理论计算机科学基础》

断言2.34 证明: (续) 设G’接受输入w, 由于G’中任意两个状态qi和qj之间箭头上的正则表达式描述G中使qi直接或经过qrip到qj的所有字符串, 因此G接受w. 因此, G和G’等价. 《理论计算机科学基础》

断言2.34 证明: (续) 设G’接受输入w, 由于G’中任意两个状态qi和qj之间箭头上的正则表达式描述G中使qi直接或经过qrip到qj的所有字符串, 因此G接受w. 因此, G和G’等价. 由归纳假设, CONVERT(G’)等价于G’. 由于CONVERT(G)就是CONVERT(G’), 所以CONVERT(G)等价于G. # 《理论计算机科学基础》

引理2.32 引理2.32: 正则语言可用正则表达式描述. 《理论计算机科学基础》

引理2.32(不严格证明) 引理2.32: 正则语言可用正则表达式描述. 证明: 1) 加新始终点 (使始点不再进, 终点不再出);  《理论计算机科学基础》

引理2.32(不严格证明) 引理2.32: 正则语言可用正则表达式描述. 证明: 1) 加新始终点 (使始点不再进, 终点不再出); 2) 合并平行边;  r s (rs) 《理论计算机科学基础》

引理2.32(不严格证明) 引理2.32: 正则语言可用正则表达式描述. 证明: 1) 加新始终点 (使始点不再进, 终点不再出); 2) 合并平行边; 3) 去中间点 (使顶点个数减少);  r s (rs) r1 rk s1 sh t rk i j rit*sj 《理论计算机科学基础》

引理2.32(不严格证明) 引理2.32: 正则语言可用正则表达式描述. 证明: # 1) 加新始终点 (使始点不再进, 终点不再出); 2) 合并平行边; 3) 去中间点 (使顶点个数减少); 4) 重复2)和3)至完成. #  r s (rs) r1 rk s1 sh t rk i j rit*sj R 《理论计算机科学基础》

例2.35 1 2 a b a,b 《理论计算机科学基础》

例2.35 1 2 a b a,b s  《理论计算机科学基础》

例2.35 1 2 a b a,b s  b(ab)* 《理论计算机科学基础》

例2.35 1 2 a b a,b s  b(ab)* a*b(ab)* 《理论计算机科学基础》

例2.36 1 3 2 a b 《理论计算机科学基础》

例2.36 1 3 2 a b s  《理论计算机科学基础》

例2.36 1 3 2 a b s  3 2 a baa aab s b ab  bb 《理论计算机科学基础》

例2.36 1 3 2 a b s  3 2 a baa aab s b ab  bb a(aab)* a(aab)*abb (baa)(aab)*abbb 《理论计算机科学基础》

例2.36 1 3 2 a b s  3 2 a baa aab s b ab  bb a(aab)* a(aab)*abb (baa)(aab)*abbb s 3 (a(aab)*abb)((baa)(aab)*abbb)* ((baa)(aab)*)a(aab)* 《理论计算机科学基础》

非正则语言 为 B = { 0n1n | n0 } 设计DFA ? 《理论计算机科学基础》

非正则语言 为 B={0n1n | n0} 设计DFA ? B={0n1n | n0}是不是正则的 ? 《理论计算机科学基础》

非正则语言 设 ={0,1} B={0n1n | n0} ? 《理论计算机科学基础》

非正则语言 设 ={0,1} B={0n1n | n0} ? C={w | w中0和1一样多} ? 《理论计算机科学基础》

非正则语言 设 ={0,1} B={0n1n | n0} ? C={w | w中0和1一样多} ? B=C0*1* 《理论计算机科学基础》

非正则语言 设 ={0,1} B={0n1n | n0} ? C={w | w中0和1一样多} ? B=C0*1* D={w | w中子串01和10一样多} ? 《理论计算机科学基础》

非正则语言 设 ={0,1} B={0n1n | n0} ? C={w | w中0和1一样多} ? B=C0*1* D={w | w中子串01和10一样多 } ? 01000000111111100101110111 《理论计算机科学基础》

非正则语言 设 ={0,1} D是正则的, B和C不是 B={0n1n | n0} ? C={w | w中0和1一样多} ? D={w | w中子串01和10一样多 } ? 01000000111111100101110111 D是正则的, B和C不是 《理论计算机科学基础》

泵引理 定理2.37(泵引理): 设A是正则语言, 《理论计算机科学基础》

泵引理 定理2.37(泵引理): 设A是正则语言, 则存在常数p(称为泵长度), 《理论计算机科学基础》

泵引理 定理2.37(泵引理): 设A是正则语言, 则存在常数p(称为泵长度), 使得若sA且|s|p, 则 《理论计算机科学基础》

泵引理 定理2.37(泵引理): 设A是正则语言, 则存在常数p(称为泵长度), 使得若sA且|s|p, 则s=xyz, 并且满足下述条件: 《理论计算机科学基础》

泵引理 定理2.37(泵引理): 设A是正则语言, 则存在常数p(称为泵长度), 使得若sA且|s|p, 则s=xyz, 并且满足下述条件: 1) i0, xyizA; 《理论计算机科学基础》

泵引理 定理2.37(泵引理): 设A是正则语言, 则存在常数p(称为泵长度), 使得若sA且|s|p, 则s=xyz, 并且满足下述条件: 1) i0, xyizA; 2) |y|>0; 《理论计算机科学基础》

泵引理 定理2.37(泵引理): 设A是正则语言, 则存在常数p(称为泵长度), 使得若sA且|s|p, 则s=xyz, 并且满足下述条件: 1) i0, xyizA; 2) |y|>0; 3) |xy|p. 《理论计算机科学基础》

泵引理 定理2.37(泵引理): 设A是正则语言, 则存在常数p(称为泵长度), 使得若sA且|s|p, 则s=xyz, 并且满足下述条件: 1) i0, xyizA; 2) |y|>0; 3) |xy|p. x y z 《理论计算机科学基础》

x y z 泵引理 证明: 《理论计算机科学基础》

x y z 泵引理 证明: 设A=L(M), M=(Q,,,q1,F), 《理论计算机科学基础》

泵引理 证明: 设A=L(M), M=(Q,,,q1,F), |Q|=p, s=s1s2…snA, np. y x z 《理论计算机科学基础》

x y z 泵引理 证明: 设A=L(M), M=(Q,,,q1,F), |Q|=p, s=s1s2…snA, np. 设M在s上计算r1,r2,…,rn+1, (ri,si)=ri+1. 《理论计算机科学基础》

x y z 泵引理 证明: 设A=L(M), M=(Q,,,q1,F), |Q|=p, s=s1s2…snA, np. 设M在s上计算r1,r2,…,rn+1, (ri,si)=ri+1. 根据鸽巢原理, 存在j<l,使得 rj=rl, lp+1. 《理论计算机科学基础》

x y z 泵引理 证明: 设A=L(M), M=(Q,,,q1,F), |Q|=p, s=s1s2…snA, np. 设M在s上计算r1,r2,…,rn+1, (ri,si)=ri+1. 根据鸽巢原理, 存在j<l,使得 rj=rl, lp+1. 令 x=s1…sj-1, y=sj…sl-1, z=sl…sn+1. 《理论计算机科学基础》

x y z 泵引理 证明: 设A=L(M), M=(Q,,,q1,F), |Q|=p, s=s1s2…snA, np. 设M在s上计算r1,r2,…,rn+1, (ri,si)=ri+1. 根据鸽巢原理, 存在j<l,使得 rj=rl, lp+1. 令 x=s1…sj-1, y=sj…sl-1, z=sl…sn+1. 由于x让M从r1到rj, y让M从rj到rj, z让M从rj到rn+1, 而rn+1是接受状态, 所以i0, xyizA. 《理论计算机科学基础》

x y z 泵引理 证明: 设A=L(M), M=(Q,,,q1,F), |Q|=p, s=s1s2…snA, np. 设M在s上计算r1,r2,…,rn+1, (ri,si)=ri+1. 根据鸽巢原理, 存在j<l,使得 rj=rl, lp+1. 令 x=s1…sj-1, y=sj…sl-1, z=sl…sn+1. 由于x让M从r1到rj, y让M从rj到rj, z让M从rj到rn+1, 而rn+1是接受状态, 所以i0, xyizA. 由于jl, 所以|y|>0. 《理论计算机科学基础》

x y z 泵引理 证明: 设A=L(M), M=(Q,,,q1,F), |Q|=p, s=s1s2…snA, np. 设M在s上计算r1,r2,…,rn+1, (ri,si)=ri+1. 根据鸽巢原理, 存在j<l,使得 rj=rl, lp+1. 令 x=s1…sj-1, y=sj…sl-1, z=sl…sn+1. 由于x让M从r1到rj, y让M从rj到rj, z让M从rj到rn+1, 而rn+1是接受状态, 所以i0, xyizA. 由于jl, 所以|y|>0. 由于lp+1, 所以|xy|p. # 《理论计算机科学基础》

泵引理用法 证明语言B不是正则的. 《理论计算机科学基础》

泵引理用法 证明语言B不是正则的. (反证) 假设B是正则的, 设p是泵长度. 《理论计算机科学基础》

泵引理用法 证明语言B不是正则的. (反证) 假设B是正则的, 设p是泵长度. 取sB, |s|p. 《理论计算机科学基础》

泵引理用法 证明语言B不是正则的. (反证) 假设B是正则的, 设p是泵长度. 取sB, |s|p. 根据泵引理, s=xyz, i0, xyizB. |xy|p, |y|>0, 《理论计算机科学基础》

泵引理用法 证明语言B不是正则的. (反证) 假设B是正则的, 设p是泵长度. 取sB, |s|p. 根据泵引理, s=xyz, i0, xyizB. |xy|p, |y|>0, 证明i0, 使得xyizB, 矛盾. 《理论计算机科学基础》

例2.38 B = { 0n1n | n0 }不是正则的. 《理论计算机科学基础》

例2.38 B = { 0n1n | n0 }不是正则的. 证明: (反证) 假设B是正则的, 设p是泵长度. 《理论计算机科学基础》

例2.38 B = { 0n1n | n0 }不是正则的. 证明: (反证) 假设B是正则的, 设p是泵长度. 令s=0p1p, 《理论计算机科学基础》

例2.38 B = { 0n1n | n0 }不是正则的. 证明: (反证) 假设B是正则的, 设p是泵长度. 令s=0p1p, 则s=xyz, 对任意i0, xyizB. 《理论计算机科学基础》

例2.38 B = { 0n1n | n0 }不是正则的. 证明: (反证) 假设B是正则的, 设p是泵长度. 令s=0p1p, 则s=xyz, 对任意i0, xyizB. 下面分3种情况: 《理论计算机科学基础》

例2.38 B = { 0n1n | n0 }不是正则的. 证明: (反证) 假设B是正则的, 设p是泵长度. 令s=0p1p, 则s=xyz, 对任意i0, xyizB. 下面分3种情况: y0*0, 则xy2z中0比1多, 矛盾; 《理论计算机科学基础》

例2.38 B = { 0n1n | n0 }不是正则的. 证明: (反证) 假设B是正则的, 设p是泵长度. 令s=0p1p, 则s=xyz, 对任意i0, xyizB. 下面分3种情况: y0*0, 则xy2z中0比1多, 矛盾; y1*1, 则xy2z中1比0多, 矛盾; 《理论计算机科学基础》

例2.38 B = { 0n1n | n0 }不是正则的. 证明: (反证) 假设B是正则的, 设p是泵长度. 令s=0p1p, 则s=xyz, 对任意i0, xyizB. 下面分3种情况: y0*0, 则xy2z中0比1多, 矛盾; y1*1, 则xy2z中1比0多, 矛盾; y0*011*, 则xy2z0*1*, 矛盾. # 《理论计算机科学基础》

例2.39 C={ w|w中0和1个数相等 }不是正则的. 《理论计算机科学基础》

例2.39 C={ w|w中0和1个数相等 }不是正则的. 证明:(反证) 假设C是正则的. 设p是C的泵长度,令 s= 《理论计算机科学基础》

例2.39 C={ w|w中0和1个数相等 }不是正则的. 证明:(反证) 假设C是正则的. 设p是C的泵长度,令 s=0p1p. 《理论计算机科学基础》

例2.39 C={ w|w中0和1个数相等 }不是正则的. 证明:(反证) 假设C是正则的. 设p是C的泵长度,令 s=0p1p. 于是 s=xyz, |xy|p, y0*0, 且对任意i, xyiz 属于C. 《理论计算机科学基础》

例2.39 C={ w|w中0和1个数相等 }不是正则的. 证明:(反证) 假设C是正则的. 设p是C的泵长度,令 s=0p1p. 于是 s=xyz, |xy|p, y0*0, 且对任意i, xyiz 属于C. 但 xy2z 中 0的个数比1的个数多, 《理论计算机科学基础》

例2.39 C={ w|w中0和1个数相等 }不是正则的. 证明:(反证) 假设C是正则的. 设p是C的泵长度,令 s=0p1p. 于是 s=xyz, |xy|p, y0*0, 且对任意i, xyiz 属于C. 但 xy2z 中 0的个数比1的个数多, 所以 xy2z不属于C, 矛盾. # 《理论计算机科学基础》

例2.40 F={ ww | w{0,1}* }不是正则的. 《理论计算机科学基础》

例2.40 F={ ww | w{0,1}* }不是正则的. 证明:(反证) 假设F是正则的. 设p是F的泵长度,令s= 《理论计算机科学基础》

例2.40 F={ ww | w{0,1}* }不是正则的. 证明:(反证) 假设F是正则的. 设p是F的泵长度,令s=0p10p1. 《理论计算机科学基础》

例2.40 F={ ww | w{0,1}* }不是正则的. 证明:(反证) 假设F是正则的. 设p是F的泵长度,令s=0p10p1. 于是 s=xyz, |xy|p, y0*0, 且对任意i,xyiz属于F. 《理论计算机科学基础》

例2.40 F={ ww | w{0,1}* }不是正则的. 证明:(反证) 假设F是正则的. 设p是F的泵长度,令s=0p10p1. 于是 s=xyz, |xy|p, y0*0, 且对任意i,xyiz属于F. 但 xy2z 不属于F, 矛盾. # 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明思路: 完全平方序列 0, 1, 4, 9, 16, 25, ….. 中的间隔越来越大 泵引理中s=xyz, xy0z, xy1z, xy2z, xy3z, xy4z, …… 的长度间隔是固定的|y| 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明思路: 设m=n2 (n+1)2-n2= 2n+1= 2m+1 设|xyiz|=m 若|y|<2|xyiz|+1, 则产生矛盾 设p是泵长度 令s=1p^2=xyz, 则|y||s|=p2 欲让2|xyiz|+1>(i|y|)i p2  |y|, 只需取i=p4. 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明:(反证) 假设D是正则的. 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明:(反证) 假设D是正则的.设p是D的泵长度,令s 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明:(反证) 假设D是正则的.设p是D的泵长度,令s=1p^2. 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明:(反证) 假设D是正则的.设p是D的泵长度,令s=1p^2.于是s=xyz, 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明:(反证) 假设D是正则的.设p是D的泵长度,令s=1p^2.于是s=xyz,0<|y||s|=p2, 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明:(反证) 假设D是正则的.设p是D的泵长度,令s=1p^2.于是s=xyz,0<|y||s|=p2,且对任意i,xyiz属于D. 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明:(反证) 假设D是正则的.设p是D的泵长度,令s=1p^2.于是s=xyz,0<|y||s|=p2,且对任意i,xyiz属于D.令i=p4, 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明:(反证) 假设D是正则的.设p是D的泵长度,令s=1p^2.于是s=xyz,0<|y||s|=p2,且对任意i,xyiz属于D.令i=p4,设|xyiz| =m=n2. 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明:(反证) 假设D是正则的.设p是D的泵长度,令s=1p^2.于是s=xyz,0<|y||s|=p2,且对任意i,xyiz属于D.令i=p4,设|xyiz| =m=n2. 则(n+1)2-n2=2n+1 =2m+1=2|xyiz|+1>(i|y|) i p2, 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明:(反证) 假设D是正则的.设p是D的泵长度,令s=1p^2.于是s=xyz,0<|y||s|=p2,且对任意i,xyiz属于D.令i=p4,设|xyiz| =m=n2. 则(n+1)2-n2=2n+1 =2m+1=2|xyiz|+1>(i|y|) i p2,但|xyi+1z|-|xyiz|=|y|p2. 《理论计算机科学基础》

例2.41 D={ 1n^2 | n0 }不是正则的. 证明:(反证) 假设D是正则的.设p是D的泵长度,令s=1p^2.于是s=xyz,0<|y||s|=p2,且对任意i,xyiz属于D.令i=p4,设|xyiz| =m=n2. 则(n+1)2-n2=2n+1 =2m+1=2|xyiz|+1>(i|y|) i p2,但|xyi+1z|-|xyiz|=|y|p2. 这说明|xyi+1z|不是完全平方数,与xyi+1z属于D矛盾. # 《理论计算机科学基础》

例2.42 E={ 0i1j | i>j }不是正则的. 《理论计算机科学基础》

例2.42 E={ 0i1j | i>j }不是正则的. 证明:(反证) 假设E是正则的.设p是E的泵长度.令s= 《理论计算机科学基础》

例2.42 E={ 0i1j | i>j }不是正则的. 证明:(反证) 假设E是正则的.设p是E的泵长度.令s=0p+11p. 《理论计算机科学基础》

例2.42 E={ 0i1j | i>j }不是正则的. 证明:(反证) 假设E是正则的.设p是E的泵长度.令s=0p+11p. 于是s=xyz, y只含0. 《理论计算机科学基础》

例2.42 E={ 0i1j | i>j }不是正则的. 证明:(反证) 假设E是正则的.设p是E的泵长度.令s=0p+11p. 于是s=xyz, y只含0. 考虑串xyyz. 《理论计算机科学基础》

例2.42 E={ 0i1j | i>j }不是正则的. 证明:(反证) 假设E是正则的.设p是E的泵长度.令s=0p+11p. 于是s=xyz, y只含0. 考虑串xy0z=xz. 《理论计算机科学基础》

例2.42 E={ 0i1j | i>j }不是正则的. 证明:(反证) 假设E是正则的.设p是E的泵长度.令s=0p+11p. 于是s=xyz, y只含0. 考虑串xy0z=xz. 删除y使0的个数减少, s中0只比1多一个, 因此xz中的0不可能比1多, 所以xz不是E的成员, 这与泵引理矛盾. # 《理论计算机科学基础》