计算理论

一,计算模型:
1. 有穷(状态)自动机
确定型 有穷自动机
定义:由5元组组成,字母集,状态集,转移函数,初始状态,接受状态
如果A是机器M接受的全部字符串集,则称A是机器M的语言,记做L(M)=A。也叫M识别A。
A={w|M接受w}
如果一个语言被一台有穷自动机识别,则称它为正则语言。
注意:一般情况描述:机器接受字符串,机器识别语言,M接受w, M识别A
给定某个语言,如何设计一台确定型有穷自动机?
设计 确定型 有穷自动机是一个创作过程,没有公式可言。先要根据语言特征来确定有哪些状态,然后再确定转移函数。
正则语言的运算:并,连接和星号。
A并B运算=两个集合求并
A连接B运算=A和B笛卡尔积的集合
A的星号运算=A的0次方并上A的1次方并上A的2次方...。0次方是空串,1次方是A本身,2次方是A连接A...
定理:两个正则语言求并得到的新语言也是正则语言,连接运算和星号运算也是同理。
有穷自动机分为确定型DFA和非确定型NFA,每一台NFA都有一台等价的DFA,构造NFA比构造DFA代价小。
集合A的幂集是指A的所有子集的集合。
一个正则语言,有且仅有一台(非)确定型有穷自动机识别。

2.正则表达式
是使用正则运算符(并,连接,星号)把元素(字母表集合或字符串)组合起来的表达式R。
{0,1}*001{0,1}*该表达式能够表达含有001字符串的语言。L(R)=A语言。
如何判断一个语言是不是正则的,可以使用泵引理进行证明(?)
是正则语言,则一定可以设计出相应的正则表达式或有穷自动机,相反非正则语言就是正则表达式和有穷自动机的局限性。
有穷自动机和正则表达式一般应用于文本处理,编译程序的词法分析器,硬件设计(如:超市自动门) 


3.上下文无关的文法
定义:由四元组组成
(1.变元集
(2.终结符集
(3.替换规则或产生式:变元 (大写字母表示) ->字符串(由终结符 (小写字母表示) 和变元组成)
(4.起始变元
根据上下文无关的文法由起始变元推出的所有由终结符组成的字符串的集合叫做上下文元关的语言。
有穷自动机能识别的语言,   上下文无关的文法也一定能识别。 反之则不然。
根据调用不同顺序的替换规则,可能产生不同的语法分析树,但最终派生出相同的字符串,说明该文法是有歧义的,解决办法是规则推导顺序,有最左推导和最右推导。
根据乔姆斯基范式生成的上下文无关的文法是简单简洁的。
设计上下文无关的文法也是需要创造力,没有公式可言。

上下文无关的文法一般用于程序设计语言的规范说明和编译程序的语言法分析器

4.下推自动机
下推自动机(识别器,主要看某语言的字符串能否被识别)的能力与上下文无关的文法(生成器,主要看文法能生成哪些字符串)等价



二,可计算性理论
图灵机

三,复杂性理论


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值