离散数学(16) 陈斌 gischen@pku.edu.cn 2009.12.25.

Slides:



Advertisements
Similar presentations
首页 全国高等学校招生考试统一考试 监考员培训 广州市招生考试委员会办公室.
Advertisements

人口增长.
報告人:教育部會計處處長 黃 永 傳 日 期:103 年12 月27 日
新材料作文.
通州国税纳税信用等级A类纳税人 取消发票认证操作培训 2016 通州国税.
第一章 会计法律制度 补充要点.
二、个性教育.
2011年10月31日是一个令人警醒的日子,世界在10月31日迎来第70亿人口。当日凌晨,成为象征性的全球第70亿名成员之一的婴儿在菲律宾降生。 ?
第五章 二次型. 第五章 二次型 知识点1---二次型及其矩阵表示 二次型的基本概念 1. 线性变换与合同矩阵 2.
第九课时 二元一次方程组 .
企劃撰寫.
七(7)中队读书节 韩茜、蒋霁制作.
初级会计实务 第八章 产品成本核算 主讲人:杨菠.
Tool Command Language --11级ACM班 金天行.
问题解决与创造思维 刘 国 权 吉林省高等学校师资培训中心.
中考阅读 复习备考交流 西安铁一中分校 向连吾.
第四单元 自觉依法律己 避免违法犯罪.
忠孝國小自立午餐老師的叮嚀 教師指導手冊.
大数的认识 公顷和平方千米 角的度量、平行四边形和梯形 四年级上册 三位数乘两位数 除数是两位数的除法 统计.
我国的宗教政策 第七课第三框.
中央广播电视大学开放教育 成本会计(补修)期末复习
《高等数学》(理学) 常数项级数的概念 袁安锋
人教版义务教育课程标准实验教科书 小学数学四年级上册第七单元《数学广角》 合理安排时间 248.
中考语文积累 永宁县教研室 步正军 2015.9.
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
课标教材下教研工作的 实践与思考 山东临沂市教育科学研究中心 郭允远.
小学数学知识讲座 应用题.
初中数学八年级下册 (苏科版) 10.4 探索三角形 相似的条件(2).
倒装句之其他句式.
程序的形式验证 - 简介 中国科学院软件研究所 张文辉 1.
第 22 课 孙中山的民主追求 1 .近代变法救国主张的失败教训: “师夷之长技以制 夷”“中体西用”、兴办洋务、变法维新等的失败,使孙中山
《中级经济法》模考点评 主讲老师:武劲松.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
正则表达式 描述模式的手段 例: (01)0* = ({0}{1}){0}* = {0,1}{0}* 《理论计算机科学基础》
走进编程 程序的顺序结构(二).
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
字符串(1) 字母表: 任意非空有穷集合 (字符)串: 连接: ={0,1} ={a,b,c,…,x,y,z,空格}
第二章 Java语言基础.
2.3 正则表达式 主要内容: 1.正则表达式和正则集; 2.正则表达式和有限自动机的相互转化。.
第3,4次课 一个简单的语法制导翻译器 2.3~2.5.
第一章 函数与极限.
第2章 高级语言及其语法描述 2.1 程序语言的定义 2.2 高级语言的一般特征 2.3 程序语言的语法描述.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
知识点二 国际环境法的实施.
自动机与形式语言 报告人:姜勇刚 郑奘巍.
离散数学─归纳与递归 南京大学计算机科学与技术系
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
1.2 有理数 第1课时 有理数 伏家营中学 付宝华.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
课前注意 课前注意 大家好!欢迎加入0118班! 请注意以下几点: 1.服务:卡顿、听不清声音、看不见ppt—管家( ) 2.课堂秩序:公共课堂,勿谈与课堂无关或消极的话题。 3.答疑:上课听讲,课后答疑,微信留言。 4.联系方式:提示老师手机/微信: QQ:
第4章 Excel电子表格制作软件 4.4 函数(一).
定理21.9(可满足性定理)设A是P(Y)的协调子集,则存在P(Y)的解释域U和项解释,使得赋值函数v(A){1}。
第九节 赋值运算符和赋值表达式.
1.2 子集、补集、全集习题课.
1.设A和B是集合,证明:A=B当且仅当A∩B=A∪B
概 率 统 计 主讲教师 叶宏 山东大学数学院.
College of Computer Science & Technology
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
主讲教师 欧阳丹彤 吉林大学计算机科学与技术学院
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
数据表示 第 2 讲.
畢氏定理(百牛大祭)的故事 張美玲 製作 資料來源:探索數學的故事(凡異出版社).
顺序结构程序设计 ——关于“字符串”和数值.
5-4 实验:研究平抛运动.
编译原理实践 6.程序设计语言PL/0.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
102年人事預算編列說明 邁向頂尖大學辦公室製作.
Presentation transcript:

离散数学(16) 陈斌 gischen@pku.edu.cn 2009.12.25

目录 数理逻辑 集合论 图论 抽象代数 形式语言和自动机 语言和对语言的研究 形式语言的语法表示 有限状态自动机 半群、机器和语言

语法和语言的表示BNF BNF(Backus-Naur Form)范式 1960年提出,用于描述ALGOL60语言 形式简单,仅包含三个符号 “::=”,定义为;“|”,或;“<>”,用来区分非终结符 可以表示2、3型语法(上下文无关、正则) 产生式左部仅有一个非终结符 相同左部的产生式合并用“|”隔开 非终结符用“<>”标记

语法和语言的表示BNF BNF例子:“中文句子” BNF例子:“a(bb)*c” <句子>::=<主语><谓语> <主语>::=张三|李四 <谓语>::=<副词><动词> <副词>::=深情地|狂野地 <动词>::=歌唱|奔跑 BNF例子:“a(bb)*c” <v0>::=a<w> <w>::=bb<w>|c 递归出现一次,并在最右,称为正规的,3型语法中的递归产生式都是正规的

语法和语言的表示BNF BNF例子:“十进制数” <十进制数>::=<无符号整数> | <小数> | <无符号整数><小数> <无符号整数>::=<数字> | <数字><无符号整数> <小数>::=.<无符号整数> <数字>::=0|1|2|3|4|5|6|7|8|9

语法和语言的表示BNF BNF例子:“标识符” 字母开始的字母数字串,用于程序设计语言中的变量、函数等名称 <标识符>::=<字母> | <字母><后部> <后部>::=<字母> | <数字> | <字母><后部> | <数字><后部> <字母>::=a|b|c|d|e|…..|z <数字>::=0|1|2|3|4|5|6|7|8|9

语法和语言的表示BNF 扩展BNF 可选项:用“[]”表示 重复项:用“{}”表示重复0次或者多次 便于区分单个符号的终结符,加引号 <if语句>::=if <逻辑表达式> then <语句> [ else <语句> ] end if; 重复项:用“{}”表示重复0次或者多次 <标识符>::=<字母>{<字母>|<数字>} 便于区分单个符号的终结符,加引号 <语句序列>::=<语句> { “;” <语句> } 有时也用粗体字表示终结符,非终结符不加尖括号,可读性更好

语法和语言的表示BNF 用BNF定义BNF  <规则> ::= <非终结符>::=<表达式> <非终结符> ::= <<单词>> <单词> ::= <字母> | <字母><单词> <表达式> ::= <项> | <项>|<表达式> <项> ::= <因子> | <因子><项> <因子> ::= <单词> | <非终结符>

语法和语言的表示 语法图(Syntax Diagram) 用方框表示非终结符,用圆表示终结符 用带箭头线表示连接关系和连接顺序 类似程序流程图 顺序结构(连接) 可选分支结构(BNF或) 循环结构(非终结符递归) w a b <w>::=ab<w> a w w w1 w2 w3 b <w>::=a | b <w>::=<w1><w2><w3>

语法图化简与等价 <v0>::=a<w>,<w>::=bb<w>|c

语法图化简与等价 例子“标识符”

语法图化简与等价 例子“十进制数”

语法图化简与等价 例子“十进制数”

语法图化简与等价 例子“十进制数”

正则语法和正则表达式 S是有限集合,LS*。则L是正则集合,当且仅当对某个正则语法G,有L=L(G) 将G的语法组合为一个大图,其中仅包含v0和终结符,称作主导图(master diagram) 图中终结符对应正则表达式中的终结符

主导图翻译成正则表达式 串联子图,对应子表达式α1α2 并联子图,对应子表达式α1|α2 回路子图,对应子表达式α* D1 D2 D1 D

主导图翻译成正则表达式 a) a|b|c* b) (a|b)cd* c) (a|bc)*

有限状态机 给定一个字符串,判定是否属于给定语法G的语言L(G) 机器machine 一般来说,这是个难解的问题 对于正则语法和正则语言,可以通过一个“识别机器”来判定 机器machine 一个系统,接受输入,改变自身的状态,产生输出 状态指为了完成机器的任务而对输入序列进行的归类 如果状态的数目有限,称为有限状态机(Finite State Machine)

有限状态机 有限状态机FSM是一个五元组M(A,S,Y,s0,F) A:输入字符串的字母表 S:机器的有限状态集合 s0∈S:初始状态 F:S×A→S:状态转移函数,指明在某个状态下接受输入字符所引起的状态变迁

有限状态机例子 A={a,b} S={s0,s1,s2},Y={s0,s1},s0初始状态 F如下表 F a b s0 s1 s2

状态图 FSM通常用状态图来表示 状态图D=D(M)是带标记的有向图,节点为状态,转移函数决定边的走向和标记 接受状态用双圈表示 如果F(sj,a)=sk,则从节点si做标记为a的有向边到节点sk 初始状态s0用一个特殊的无源箭头标识

状态图例子 a,b a b s2 s1 b s0 a

有限状态机M决定的语言L M所识别的A上的所有字符串 看看上图的例子是否识别 例子机器识别什么模式的字符串? w=a1a2…am∈A*,确定一个状态序列s0,s1,s2…sm,其中F(si-1,ai)=si 也就是确定拟路径P=(s0,a1,s1,a2,s2,…,am,sm) 如果sm∈Y则称M识别w 看看上图的例子是否识别 ababba、baab、空串 例子机器识别什么模式的字符串? 所有不包含连续两个b的字符串

正则语言和FSM Kleen定理:字母表A上的形式语言L是正则的当且仅当存在一个有限状态机M使得L=L(M) 例:构造自动机M,识别恰好以bb结尾的字符串 正则表达式:(a|b)*bb a b b b s0 s1 s2 s2 a a

泵Pumping引理 长度超过状态数目的接受串w,都可以表示成w=xyz形式,而xynz都会被M接受 设w对应的状态序列为s0,s1,s2,…,sn n大于状态的数目|S|,所以根据鸽笼原理必有si=sj(i<j) 令x=a1a2…ai,y=ai+1…aj,z=aj+1…an x以si状态结尾,xy以sj=si状态结尾,所以xym也以状态si结尾,xymz结尾状态仍为sn y x z s0 si s2 sn

泵引理应用※ 证明:L={ambm:m>0}不是正则语言 我们以前的例子amcbm也不是正则语言 假设L是正则语言,则有有限状态机M接受L,假设M状态个数为k 令w=akbk,则一定有|w|>k,根据泵引理,w=xyz,其中y非空,而且xy2z也被M接受 如果y仅含有a或仅含有b,那么xy2z中a,b的个数就不相等了,应该不属于L 如果y同时含有a和b那么y2中一定会出现a在b之后的情况, xy2z也应该不属于L 两个矛盾说明假设错误,L不是正则语言 我们以前的例子amcbm也不是正则语言

参考文献 离散数学结构,王家钦编著,清华大学出版社 离散数学,[美]S.利普舒尔茨 M.利普森著,科学出版社

END 特殊符号表 ∴,∵,╞═╡,╞═,∈,≠,∑,↓,∪,∩,╞,┠PC αΑ,βΒ,γΓ,δΔ,εΕ,ζΖ,ηΗ,θΘ,ιΙ,κΚ,λΛ,μΜ,νΝ,ξΞ,οΟ,πΠ,ρΡ,ς΢,σΣ,τΤ,υΥ,φΦ,χΧ,ψΨ,ωΩ {¬,∧,∨,→,↔} ≦≧≠≤ø 