计算理论导引笔记

  • 第0章 绪论
    • 自动机、可计算性与复杂性
  • 第1章 正则语言
  • 第2章 上下文无关文法
    • 2.1 上下文无关文法概述
    • 2.2 下推自动机
    • 2.3 非上下文无关语言
    • 2.4 确定性上下文无关语言
  • 第3章 丘奇-图灵论题
    • 3.1 图灵机
    • 3.2 图灵机的变形
    • 3.3 算法的定义
  • 第4章 可判定性
    • 4.1 可判定语言
    • 4.2 不可判定性
  • 第5章 可归约性
  • 第7章 时间复杂性
    • 7.1 度量复杂性
    • 7.2 P类
    • 7.3 NP类
    • 7.4 NP完全性

第0章 绪论

自动机、可计算性与复杂性
  • 为什么要学计算理论:计算理论是研究计算机的基本能力和局限性是什么
  • 计算理论的三个传统的核心领域:自动机、可计算性、复杂性。三个领域分别对计算机的三个方面进行了讨论
    • 在复杂性理论中,目标是把问题分成容易计算和难计算的;
    • 而在可计算性理论中,是把问题分成可解的和不可解的
    • 自动机理论阐述了计算的数学模型的定义和性质。有穷自动机模型用在文本处理、编译程序以及硬件设计中;上下文无关文法模型用在程序设计语言和人工智能上;自动机理论还有个应用:在编译原理中,FA与RE用于词法分析器设计,CFG用于语法分析器设计。
  • 定义,证明,定理,引理的区别:定义描述了我们使用的对象的概念,证明是一种逻辑论证,是人们确信一个命题为真,定理是被证明为真的数学命题,有助于证明另一个更有意义的命题的命题称为引理,由定理或其证明得出的另一些有关的命题为真的结论为这个定理的推论。
  • 证明类型:构造性证明、反证法、归纳法

第1章 正则语言

正则语言有三种表达方式:DFA、NFA、RE,下面我们针对这三种表达方式进行一一介绍

  • 有穷自动机

    • 只记忆有限量的信息,信息表示为有穷自动机的状态。状态随着输入改变而改变,改变的规则称为转移函数
    • 有穷自动机的形式化定义:一个5元组:状态机、输入字母表、动作规则、起始状态以及接受状态集。(Q,∑,δ,q0,F)(Q, \sum, \delta, q_0, F)(Q,∑,δ,q0​,F)
    • 如果A是机器M接受的全部字符串集,则称A是机器M的语言,记作L(M)=A
    • 一台机器可能接受若干字符串,但是它永远只能识别一个语言
  • 如果一个语言被一台有穷自动机识别,则称它是正则语言

  • 正则运算

    • 并:把两个语言中的所有字符串合并在一个语言中
    • 连接:把一个语言的一个字符串接在另一个语言的一个字符串的前面所得到的所有字符串
    • 星号:ε\varepsilonε总是A∗A*A∗的一个成员
    • 封闭:如果把某种运算应用于一个对象集合的成员的得到的对象仍在这个集合中,则称这个对象的集合在该运算下封闭
    • 正则语言类在并、连接、星号运算下封闭
  • 非确定性有穷自动机的形式化定义:一个5元组:状态机、输入字母表、动作规则、起始状态以及接受状态集。(Q,∑,δ,q0,F)(Q, \sum, \delta, q_0, F)(Q,∑,δ,q0​,F)

    其中δ:Q∗∑ε→P(Q),P(Q)是Q的幂集\delta: Q*\sum_\varepsilon\to P(Q),P(Q)是Q的幂集δ:Q∗∑ε​→P(Q),P(Q)是Q的幂集

  • 正则表达式

    • 正则表达式的值是一个语言
    • 正则表达式的形式化定义:使用归纳定义
    • 计算的优先级:星号,连接,并
    • R+⋃ε=R∗R+\bigcup \varepsilon=R*R+⋃ε=R∗
    • 正则表达式和有穷自动机是等价的
  • DFA与NFA与RE相互等价,只是一个语言的不同表示模式

    • RE、NFA的表达能力并没有DFA更强,只是他们在一些语境中能够更简洁的方式表达
    • NFA与DFA的等价性
      • 如果两台机器识别同样的语言,则称它们是等价的
      • 每一台NFA都等价于某一台DFA
      • NFA到DFA的转换:子集构造法
      • DFA是一种特殊的NFA
    • 正则表达式与NFA的等价性
      • RE->NFA: 汤姆孙转换法
      • NFA->R: GNFA+状态消解
  • 正则语言的泵引理:若A是一个正则语言,则存在一个数p(泵长度)使得,如果s是A中任一长度不小于p的字符串,那么s可以被分成3段,s=xyz,满足:1、对每一个i≥0,xyiz∈Ai\geq0,xy^iz\in Ai≥0,xyiz∈A,2、∣y∣>0|y|>0∣y∣>0, 3、∣xy∣≤p|xy|\leq p∣xy∣≤p

  • 使用泵引理反证一个语言不是正则语言

  • 语言类(一组语言的集合、例如正则语言)有两个重要属性:确定型(一个语言类的确定型是存在给定一个语言的正式表示,然后确定其是否具有一些属性(比如空属性))、闭包性(一个语言类在特定的运算中是否闭包,比如说正则语言在并、连接、星号下闭包)

第2章 上下文无关文法

由于正则语言只能存储少量信息,因此其不足以表达所有语言类,下面我们介绍一种表达能力更强的文法:上下文无关文法,正则语言是它的一个子集。上下文无关文法能够描述某些应用广泛的具有递归结构特征的语言。

2.1 上下文无关文法概述
  • 替换规则(产生式)、变元、终结符、起始变元

  • 根据文法获取一个字符串的替换序列称为派生。派生过程可用语法分析树描述。

  • 上下文无关文法的概念形式化:上下文无关文法是一个4元组(V,∑,R,S)(V,\sum, R,S)(V,∑,R,S), 其中V是变元集,∑\sum∑是终结符集,R是有穷规则集,S是起始变元

  • A→wA\to wA→w是文法的一个规则,称uAv生成uwv

  • 歧义性:如果文法以不同的方式产生同一个字符串,则称文法歧义地产生这个字符串。如果文法歧义地产生某个字符串,则称这个文法是歧义的

  • 乔姆斯基范式:每一个规则形式都为A→BCA\to BCA→BC 或者A→aA\to aA→a

  • 任意上下文无关语言都可以用一个乔姆斯基范式的上下文无关文法产生

    • 首先,添加一个新的起始变元,然后,删除所有形如A→εA\to \varepsilonA→ε规则, 再删除所有形如A→BA\to BA→B的单一规则。在删除时,要对文法做适当的弥补,以确保仍能产生相同的语言。最后,把所有留下来的规则转换成适当的形式
2.2 下推自动机

类似于非确定有穷自动机,但是下推自动机由一个栈,栈在控制器的有限存储量之外提供了附加的存储,使得下推自动机能够识别某些非正则语言。非确定型下推自动机在能力上与上下文无关文法等价

  • 下推自动机的形式化定义:下推自动机时一个6元组(Q,∑,Γ,δ,q0,F)(Q,\sum, \Gamma, \delta, q_0, F)(Q,∑,Γ,δ,q0​,F)

    • 下推自动机与上下文无关文法的等价性
2.3 非上下文无关语言

关于上下文无关语言的泵引理:

如果A是 上下文无关语言,则存在数p(泵长度),使得A中任何一个长度不小于p的字符串s都能被划分成5段s=uvxyz且满足下述条件:

1、对于每一个i≥0,uvixyiz∈Ai\ge 0, uv_ixy_iz \in Ai≥0,uvi​xyi​z∈A; 2、∣vy∣>0|vy|>0∣vy∣>0 ;3、∣vxy∣≤p|vxy|\le p∣vxy∣≤p

2.4 确定性上下文无关语言

第3章 丘奇-图灵论题

3.1 图灵机
  • 图灵机与有穷自动机相似,但它有无限大容量的存储且可以任意访问内部数据。图灵机是一种更加精确的通用计算机模型,能模拟实际计算机的所有计算行为。
  • 有穷自动机与图灵机之间的区别:图灵机在带子上既能读也能写;图灵机的读写头既能想左也能想右移动;图灵机的带子是无限长的;图灵机进入拒绝和接受状态将立即停机。(但由于存储的限制,现代计算机的’带子‘是有限的)
  • 图灵机的形式化定义:图灵机是一个7元组(Q,∑,Γ,δ,q0,qaccept,qreject)(Q,\sum,\Gamma, \delta, q_0,q_{accept},q_{reject})(Q,∑,Γ,δ,q0​,qaccept​,qreject​),其中∑\sum∑是输入字母表,Γ\GammaΓ是袋子字母表,包含特殊空白字符。运行图灵机可能出现三种结果:接受、拒绝、循环。
  • 图灵机计算过程中,当前状态、当前带子内容和读写头当前文字组合在一起,称为图灵机的格局。如果图灵机能合法地从格局C1一步进入C2,则称格局C1产生了格局C2。图灵机的起始格局是q0wq_0wq0​w
  • 如果一个语言能被某一图灵机识别,则称该语言是图灵可识别的。
  • 如果一个语言能被某一图灵机判定,则称它是图灵可判定的。对所有输入都停机的图灵机称为判定器。
3.2 图灵机的变形
  • 多带图灵机(可以类似于并行处理器)

    • 多带图灵机等价于某一个单带图灵机
  • 非确定型图灵机(可以类似于量子计算机)
    • 非确定型图灵机等价于某一个确定型图灵机
  • 原来的模型和它所有合理的变形有着同样的能力,也即识别相同的语言类
3.3 算法的定义
  • 算法是解决特定问题求解决步骤的描述,是为实现某个任务而构造的简单指令集。算法等于图灵机算法。为什么说算法等于图灵机算法呢?原因在于图灵机可以刻画所有的算法。

第4章 可判定性

4.1 可判定语言
  • ADFA,ANFA,AREX,EDFA,EQDFA,ACFG,ECFGA_{DFA},A_{NFA}, A_{REX},E_{DFA},EQ_{DFA},A_{CFG},E_{CFG}ADFA​,ANFA​,AREX​,EDFA​,EQDFA​,ACFG​,ECFG​是可判定语言
4.2 不可判定性
  • ATM,HALTTMA_{TM}, HALT_{TM}ATM​,HALTTM​是不可判定语言
  • 一个语言是可判定的,当且仅当它是图灵可识别的,也是补图灵可识别的

第5章 可归约性

  • 归约旨在将一个问题转化成另一个问题,且使得可以用第二个问题的解来解第一个问题。其中第一个问题不可能比第二个问题更难。
  • 根据将A_TM归约语言中,可以发现HALTTM,ETM,REGULARTM,EQTMHALT_{TM}, E_{TM}, REGULAR_{TM},EQ_{TM}HALTTM​,ETM​,REGULARTM​,EQTM​是不可判定的
  • PCP问题是不可判定的

第7章 时间复杂性

计算复杂性理论------一门研究求解计算问题所需要的时间、存储量或者其他资源的理论

7.1 度量复杂性
  • 大O和小o记法:大O记法指一个函数渐进地不大于另一个函数,小o记法指一个函数渐进地小于另一个函数
  • 多项式界与指数界
  • 时间复杂性类:TIME(t(n))为O(t(n))时间的图灵机判定的所有语言的集合
  • 在可计算理论中,丘奇-图灵论题断言,所有合理的计算模型都是等价的,即它们所判定的语言类都是相同的。在复杂性理论中,模型的选择影响语言的时间复杂度,如在一个模型上线性时间内可判定的语言在另一个模型上就不一定是线性时间内可判定的
  • 设t(n)是一个函数,t(n)≥nt(n)\ge nt(n)≥n。 则每一个t(n)时间的多带图灵机都和某一个O(t2(n))O(t^2(n))O(t2(n))时间的单带图灵机
  • 设t(n)是一个函数,t(n)≥nt(n)\ge nt(n)≥n。 则每一个t(n)时间的非确定型图灵机都和某一个2O(t(n))2^{O(t(n))}2O(t(n))时间的单带图灵机
7.2 P类
  • 问题的时间复杂度在确定型单带和多带图灵机上最多是平方或多项式的差异;在确定型和非确定型图灵机上,问题的时间复杂度最多是指数的差异
  • 所有合理的确定型计算模型都是多项式等价的
  • P是确定型单带图灵机在多项式时间内可判定的语言类
    • 对于所有与确定型单带图灵机多项式等价的计算模型来说,P是不变的
    • P大致对应于在计算机上实际可解的那一类问题
    • 每一个上下文无关语言都是P的成员
7.3 NP类
  • 多项式可验证性
  • NP是具有多下昂是时间验证机的语言类
  • 一个语言在NP中,当且仅当它能被某个非确定型多项式图灵机判定
  • CLIQUE属于NP,SUBSET-SUM属于NP
7.4 NP完全性
  • 如果一个问题存在多项式时间算法,那么所有NP问题都是多项式时间可解的,则称这个问题是NP完全的
  • SAT问题是NP完全的、3SAT是NP完全的、顶点覆盖问题是NP完全的、背包问题是NP完全的
  • 一个语言B是NP完全的,则满足:B属于NP;NP中每个A都多项式时间可归约到B

计算理论导引重点知识回顾相关推荐

  1. 【springmvc+mybatis项目实战】杰信商贸-6.重点知识回顾

    1.重点知识回顾 Maven 1)覆盖仓库文件,实际企业开发,公司会架一个测试服务器,在测试服务器中架私服.我们开发人员的程序,都连接私服.当本地没有项目中要使用的jar,Myeclipse mave ...

  2. 计算机理论导引第三版答案第四章,《计算理论导引》第四章:可判定性-学习笔记 | 诟屍...

    第四章:可判定性 4 Decidability 关于其他章节的内容,请点这:<计算理论导引>学习笔记 4.1 Decidable Languages 几个可判定的语言 acceptance ...

  3. tableau可视化数据分析60讲(八)-tableau计算函数(重点知识)

    前言 运算符是一个符号,通知编译器执行特定的数学或逻辑操作.Tableau 有多个运算符用于创建计算字段和公式. 关于tableau的高级部分内容,大家可自行订阅专栏 tableau可视化数据分析高级 ...

  4. 计算理论导引-图灵机

    复习使用 定义 图灵机形式定义: TMm=(Q,Σ,Γ,δ,q0,qaccept,qreject)TM m=(Q,\Sigma,\Gamma,\delta,q_{0},q_{accept},q_{re ...

  5. 计算理论导引第三版答案

    最近在学这本书,无奈课后习题很多,答案又找不到,没想到在github上找到了 直接上链接 https://github.com/gaurangsaini/sipser-computation-3rd- ...

  6. 数据科学导引欧高炎重点知识一

    数据科学导引重点知识 1.说明 2.数据预处理 2.1特征编码 数字编码 One-Hot编码 哑变量编码 2.2缺失值处理 原因 删除法 均值填补 随机填补 1.贝叶斯方法 2.近似贝叶斯 基于模型的 ...

  7. 计算机理论导引 期末,计算机理论导引实验报告_CFG是P成员

    计算机理论导引实验报告_CFG是P成员 (15页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 计算理论导引实验报告HUNAN UNIVER ...

  8. 计算机理论导引 试卷,计算机理论导引实验报告_CFG是P成员.doc

    计算机理论导引实验报告_CFG是P成员.doc (15页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 HUNAN UNIVERSITY计 ...

  9. 计算机理论导引 试卷,计算机理论导引实验————ADFA的可判定性

    <计算机理论导引实验----ADFA的可判定性>由会员分享,可在线阅读,更多相关<计算机理论导引实验----ADFA的可判定性(22页珍藏版)>请在金锄头文库上搜索. 1.HU ...

  10. 视觉计算理论简介【转】

    一:视觉计算理论与算法研究( 由×××自动化研究所马颂德等完成) "视觉计算理论与算法研究"的目标主要是研究计算机视觉,以使计算机具有通过二维图像感知三维环境信息的能力,包括感知. ...

最新文章

  1. OpenAI解析「AI算力」:3个半月翻一倍,6年超过30万倍
  2. 服务器文件嗅探,嗅探TFTP配置文件传输
  3. 记事本写python怎么运行-Python开发简单记事本
  4. Web前端开发笔记——第三章 CSS语言 第八节 CSS3文本文字设置
  5. php7中使用 xhprof 分析
  6. 玩转 Rockchip 的开发板,这些信息你要知道
  7. 元素属性、类名、内容、获取和设置、删除
  8. 【连载】如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(4)
  9. Mysql配置参数常见问题
  10. RabbitMQ 与 Erlang 安装与配置
  11. scrapy基础知识之防止爬虫被反的几个策略::
  12. XCode帮助文档离线下载解决办法
  13. Windows自带的端口转发工具netsh使用方法
  14. android appium 原理,天天使用Appium,但是你真的理解Appium的工作原理吗
  15. 泰坦尼克号生存率预测
  16. SpringBoot MultipartResolver的坑
  17. java数组逆序_Java 数组的排序、逆序
  18. 讯时网关部分话机无法注册问题
  19. PTA 7-10 字符转换 (15分)
  20. 手机屏幕材质详解(TFT,TPS,OLED,AMOLED等)

热门文章

  1. 基于微信小程序的物业维修报修系统设计与实现毕业设计毕设开题报告参考
  2. 行为树BT设计与实现
  3. 随机产生大写字母c语言,C语言程序设计 (英文打字练习)
  4. 安卓手机上有什么好用的日程安排管理软件?
  5. SOIC 和 SOP区别
  6. android 后台运行管理,Android 后台运行白名单实现保活
  7. 阿铭linux苹果客户端,2018年5月 – 阿铭Linux
  8. 使用深度学习技术进行水印去除
  9. STAP旁瓣干扰抑制与干扰对抗仿真
  10. 官方解决方案:WPS for Mac 云字体删除的问题,Mac版WPS已下载云字体无法删除的问题