计算理论导引6可计算理论的高级专题
《计算机导论-计算思维和应用技术》第2版课件-第6章 系统结构和操作系统
![《计算机导论-计算思维和应用技术》第2版课件-第6章 系统结构和操作系统](https://img.taocdn.com/s3/m/689ae8b22af90242a995e531.png)
• 程序的功能也不强大; • 如,主要用于数值计算。
• 没有操作系统的出现; • 如,1956年才出现第一个操作系统:GM-NAA I/O。
• 早期控制器是整个计算机的控制核心。
第8页 共245页
6.1.1 冯.诺依曼结构
【例】集群软件系统。
6.1.2 计算机集群结构
第17页 共245页
6.1.2 计算机集群结构
第18页 共245页
(3)互连通信系统 • 采用光电混合的高性能路由网络。 • 如“天河2”集群系统采用TH Express-2内部网络互联,有13个交换机,每个交换机
有576个端口。网络带宽达到了50Gbit/s,信号延迟小于85μs。
第7页 共245页
(3)程序控制计算机
• 早期计算机每执行一个程序,都要对控制器进行设置。 • 如,在ENIAC中运行小程序时,需要在40多块电路板上,插上几千个导线插头。 • 存储程序的设计思想导致了由程序控制计算机的设计方案。
6.1.1 冯.诺依曼结构 3、冯·诺伊曼计算机结构的进化
(1)早期计算机的局限性
第23页 共245页
6.1.2 计算机集群结构
【例】京东商城网站高可用集群系统结构。
第24页 共245页
6.1.2 计算机集群结构
【例】Web网站高可用集群系统结构。
第25页 共245页
6.1.2 计算机集群结构
【例】数据中心高可用集群及容灾方案。
第26页 共245页
6.1.2 计算机集群结构
6.4 计算机操作系统
6.1.1 冯.诺依曼结构
1、冯·诺伊曼计算机设计原则和结构模型
计算理论导引习题答案
![计算理论导引习题答案](https://img.taocdn.com/s3/m/5d864d42f02d2af90242a8956bec0975f465a494.png)
什么是时间复杂度?请举例说 明。
时间复杂度是评价算法执行时 间快慢的一个指标,通常用大O 表示法来表示。例如,对于一 个简单的顺序查找算法,其时 间复杂度为O(n),表示随着问 题规模n的增加,算法的执行时 间线性增长。
计算模型习题答案详解
习题1
解释图灵机的基本原理和工作过程。
答案
图灵机是一种理论上的计算模型,由一条无限长的纸带和一个读写头组成。读写头可以读取、写入和移动纸带上 的符号,根据当前状态和读取的符号来决定下一步的动作和状态转移。图灵机的工作过程可以模拟任何计算机程 序的执行过程。
RAM模型的扩展与优化
包括引入并行计算、分布式计算等概念,以 提高RAM模型的计算能力和效率。
其他计算模型
量子计算模型
利用量子力学原理进行计算的模型,具有在某些特定 问题上比传统计算机更高的计算效率。
生物计算模型
模拟生物体内信息处理过程的计算模型,如神经网络、 基因算法等。
光计算模型
利用光学原理进行计算的模型,具有高速并行处理和 低能耗等优点。
形式语言与自动机习题答案详解
习题1
解释什么是形式语言,并给出其定义和性质 。
答案
形式语言是பைடு நூலகம்于描述计算机程序的语法和语 义的一种数学工具。它由一组符号和一组规 则组成,可以表示各种不同类型的数据结构 和算法。形式语言具有确定性、封闭性和可 计算性等性质,这些性质使得我们可以对计
算机程序进行精确的描述和分析。
Python语言基础 掌握Python语言的基本语法、数 据类型、控制结构、函数等,以 及常用的Python库和框架。
其他编程语言 了解其他常见的编程语言,如C#、 JavaScript、Go等,以及它们的 特点和应用场景。
计算理论基础课件III
![计算理论基础课件III](https://img.taocdn.com/s3/m/6fed30c9d5d8d15abe23482fb4daa58da1111c68.png)
计算理论在其他领域的应用
人工智能与机器学习
计算理论在人工智能和机器学习领域中发挥着重要作用,例如算 法设计、模型优化、数据挖掘等方面。
密码学与网络安全
计算理论在密码学和网络安全领域中用于研究加密算法和破解方法, 保障信息安全。
物理科学计算
计算理论在物理科学计算中用于模拟和预测自然现象,例如气候变 化、材料科学等领域。
04 计算理论中的基本问题
可计算性问题与不可计算性问题
可计算性问题
指那些可以通过有限步骤和算法得到 精确解的问题,如整数分解、旅行商 问题等。
不可计算性问题
指那些无法通过有限步骤和算法得到 精确解的问题,如连续统假设、停机 问题等。
P与NP问题
P问题
指那些可以在多项式时间内求解的问 题,如排序、图着色等。
详细描述
自动机是一个抽象的计算模型,用于模拟计算过程。它具有有限数量的状态,通过一组 转移规则从一个状态转移到另一个状态。根据接受输入的方式,自动机可以分为有限自 动机和无限自动机。有限自动机只能接受有限长度的输入,而无限自动机可以接受无限
长度的输入。
形式语言的定义与分类
总结词
形式语言是由字母表中的字符构成的字符串集合,它 可以描述自然语言中的词汇、句子等结构。根据语法 规则的不同,形式语言可以分为上下文无关语言、上 下文有关语言和图灵可识别语言等。
THANKS FOR WATCHING
感谢您的观看
05 计算理论的前沿研究
量子计算理论
量子计算理论概述
量子计算理论是研究量子力学和 计算科学交叉领域的理论框架, 旨在利用量子力学的特性实现更
高效的计算。
量子算法
量子算法是利用量子力学原理设计 的算法,具有在某些特定问题上超 越经典计算机的能力,例如Shor 算法用于大数因数分解。
计算理论导引ppt课件
![计算理论导引ppt课件](https://img.taocdn.com/s3/m/f2215999c281e53a5802fff0.png)
end
s1sensor1 s2sensor2
d=1ands1=0ands2=0 N
Y d0
Y
d=0and(s2=1ors1=1ands2=1ors1=0ands2=0)
N
Y
d=1and(s1=1ors2=1ors1=1ands2=1)
N
Y
d=0ands1=1
N
d1
7
CHAPTER 2 COMPUTATIONAL MODELS(1)
front pad
rear pad
BOTH REAR NEITHER
CLOSED
FORNT NEITHER
FORNT BOTH REAR
OPEN
10
CHAPTER 2 COMPUTATIONAL MODELS(1)
front pad
rear pad
NEITHER CLOSED
FORNT REAR BOTH
Hoarwdwtoairmesp:letwmoenstenthsiosrsy; stem? one computer(only 1 bit memory), etc.
How about the software?
6
CHAPTER 2 COMPUTATIONAL MODELS(1)
satrt
tTRUE;d 0
16
}
CHAPTER 2
COMPUTATIONAL MODELS(1)
THEOREM 2.1 The class of regular languages is closed under the union operation. PROOF IDEA. A1=L(M1);A2=L(M2) A1A2=L(M3)?
(精选)计算思维导论考试重点
![(精选)计算思维导论考试重点](https://img.taocdn.com/s3/m/d58f2652ff4733687e21af45b307e87101f6f8ff.png)
(精选)计算思维导论考试重点计算思维导论考试重点高等教育出版社第一章计算思维基础知识一计算科学与计算学科1计算科学又称科学计算,它是一种与数学模型构建、定量分析方法以及利用计算机来分析和解决科学问题的研究领域。
2利用计算科学对其他学科中的问题进行计算模拟以及其他形式的计算而形成的诸如计算物理,计算化学、计算生物等学科统称为计算学科。
计算学科是对描述和变换信息的算法过程进行系统的研究,它包括算法过程的理论、分析、设计、效率分析、;实现和应用等。
二科学思维科学思维通常是指理性认识及其过程,经过感性阶段获得大量材料,通过整理和改造,形成概念、判断和推理,以及反映事物的本质和规律。
三科学思维的分类1理论思维又称逻辑思维,是指通过抽象概括,建立描述事物本质的的概念,应用科学的方法探寻概念概念之间联系的一种思维方法。
2实验思维又称实证思维,是通过观察和实验获取自然规律法则的一种思维方法。
3计算思维又称构造思维,是指从具体的的算法设计规范入手,通过算法过程的构造与实施来解决给定问题的一种思维方法。
四计算思维的定义计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类行为的涵盖了计算机科学之广度的一系列思维活动。
五计算思维的特征1概念化不是程序化2根本的,不是刻板的技能3是人的,不是计算机的思维方式。
4数学和工程思维的互补与融合5是思想,不是人造物6面向所有人,所有地方六计算思维的本质抽象和自动化第二章计算理论与计算模型一计算理论是关于计算和计算机械的数学理论,它研究计算的过程与功效。
计算理论主要包括算法与算法学、计算复杂性理论、可计算性理论、自动机理论和形式语言理论等。
二可计算性理论是研究计算的一般性质的数学理论。
可计算理论的中心课题就是将算法这一直观概念精确化,建立计算的数学模型,研究哪些是可计算的,哪些是不可计算的,以此揭示计算的实质。
三停机问题p29理解四冯诺依曼机1冯诺依曼机的模型p372冯诺依曼机的工作原理冯诺依曼机的主要思想是存储程序和程序控制,其工作原理是:程序由指令组成,并和数据一起存放在存储器中,计算机一经启动,就能按照程序指定的逻辑顺序把指令从存储器中读取并逐条执行,自动完成指令规定的操作。
计算理论导引总结分章节版
![计算理论导引总结分章节版](https://img.taocdn.com/s3/m/10dcd2c5700abb68a882fb1d.png)
定义概念题目:第三章:1. 图灵机:是一种精确的通用计算机模型,能模拟实际计算机的所有计算行为,它的核心是转移函数δ,它说明了机器如何从一个格局走到下一个格局。
对于图灵机,δ的形式如下:Q×Γ→Q×Γ{L,R},图灵机是一个7元组(Q,∑,Γ,δ,q 0,q accept,q reject).其中Q,∑,Γ都是有穷集合,并且1)Q是状态集;2)∑是输入字母表,不包括特殊空白符号凵,3)Γ是带字母表,其中凵∈Г,∑∈Г4)δ2. 格局:图灵机的计算过程中,当前状态,当前内容和读写头当前位置组合在一起。
例如:1011q701111:当前状态q7,当前读写头位置在第二个0上。
定义3.2 如果一个语言能被某一个图灵机识别,则称该语言是图灵可识别的(递归可枚举语言)定义3.2 如果一个语言能被某一个图灵机判定,则称该语言是图灵可判定的简称可判定的(递归语言)3.图灵机的变形:多带图灵机、非确定型图灵机、枚举器。
每个4.枚举器:他是图灵机的一种变形,是带有打印机的图灵机,图灵机把打印机当作输出设备,从而可以打印串,每当图灵机想在打印序列中增加一个串时,就把此串送到打印机。
一个语言是图灵可识别的,当且仅当有枚举器枚举它。
5.图灵机的术语:形式化描述,实现描述,高水平描述。
第四章:1.可判定的语言有:(A DFA、A NFA、A REX、E DFA、EQ DFA 是正则语言)、(A CFG、E CFG 是上下无关语言)❶每个上下文无关语言都是可判定的。
2.不可判定的语言有::EQ CFG、A TM 、停机问题、HALT TM 、E TM、REGULAR TM 、EQ TM 、 E LBA 、ALL CFG 、PCPA TM ={<M,ω>|M是TM,ω是串,M接受ω}是不可判定的。
证明:假设证A TM 是可判定的,下面将由之导出矛盾。
设H是A TM 的判定器。
令M是一个TM,ω是一个串。
计算引论教学大纲
![计算引论教学大纲](https://img.taocdn.com/s3/m/e3c283381611cc7931b765ce0508763230127444.png)
计算引论教学大纲计算引论教学大纲引言计算引论是计算机科学中的一门基础课程,旨在向学生介绍计算机科学的基本概念和原理。
本文将讨论计算引论教学的内容和结构,以及如何设计一个全面而有效的教学大纲。
一、课程目标计算引论的主要目标是培养学生对计算机科学的兴趣和理解,为他们进一步学习计算机科学的高级课程打下坚实的基础。
通过这门课程,学生将学习到计算机科学的核心概念、基本原理和常用工具,同时培养他们的问题解决能力和创新思维。
二、教学内容1. 计算机科学导论- 计算机科学的定义和历史- 计算机科学的研究领域和应用领域- 计算机科学的重要性和发展趋势2. 算法和数据结构- 算法的基本概念和特性- 常见的算法设计和分析方法- 常用的数据结构及其应用3. 计算机体系结构- 计算机硬件的组成和工作原理- 中央处理器和存储器的结构和功能- 输入输出设备的原理和应用4. 编程语言和软件工程- 常见的编程语言和开发环境- 程序设计的基本原则和方法- 软件工程的基本概念和实践5. 计算机网络和通信- 计算机网络的基本组成和拓扑结构- 网络协议和通信原理- 网络安全和隐私保护6. 数据库和信息管理- 数据库的基本概念和模型- 数据库管理系统的设计和应用- 信息检索和数据挖掘的基本原理7. 计算理论和人工智能- 计算理论的基本概念和模型- 人工智能的基本原理和应用- 机器学习和自然语言处理的基础知识三、教学方法为了提高学生的学习效果和兴趣,教学方法应该多样化和灵活。
以下是一些常用的教学方法:1. 讲座和演示:教师通过讲解和演示向学生传授知识和技能。
2. 实践和实验:学生通过实践和实验来巩固所学的知识和技能。
3. 课堂讨论和小组活动:学生通过与同学和教师的讨论和合作来解决问题和分享经验。
4. 项目和作业:学生通过完成项目和作业来应用所学的知识和技能。
四、评估方法评估方法应该能够全面评价学生的学习成果和能力。
以下是一些常用的评估方法:1. 期中和期末考试:通过考试来评估学生对知识的掌握和理解。
计算科学知识点总结
![计算科学知识点总结](https://img.taocdn.com/s3/m/94e5836ca4e9856a561252d380eb6294dc882277.png)
计算科学知识点总结计算科学是一个跨学科领域,涉及计算和数学、物理、统计学、工程等多个学科的知识。
它是对问题建模、算法设计和计算机实现的交叉研究。
计算科学的发展旨在解决现实世界中的复杂问题,包括计算机科学、数学建模、仿真、数据分析、人工智能等方面。
本文将对计算科学中的一些重要知识点做一个总结。
1. 计算模型与理论计算模型是计算科学的基础,它是对计算机行为的数学抽象。
常用的计算模型包括图灵机、有限状态自动机、递归函数等。
理论计算机科学研究的内容包括计算理论、自动机理论、算法理论等,它们探讨计算机能力和限制、计算问题的可解性和难解性。
2. 算法分析与设计算法是解决问题的一组有序操作,算法分析与设计研究如何设计高效和正确的算法。
常见的算法设计技巧包括贪心算法、分治算法、动态规划算法、回溯算法等。
算法的性能评估包括时间复杂度和空间复杂度分析、算法正确性和稳定性分析、算法优化等。
3. 数据结构数据结构是组织和存储数据的方式,常用的数据结构包括数组、链表、栈、队列、树、图等。
数据结构的选择和设计影响算法的性能和实现。
在计算科学中,数据结构的研究和应用涉及到存储、检索、排序、搜索、遍历等操作。
4. 计算机体系结构与操作系统计算机体系结构研究计算机硬件和软件的交互关系,包括处理器、存储器、输入输出设备等组件的设计和实现。
操作系统是计算机系统的核心软件,负责管理计算资源、提供用户接口和服务。
计算机体系结构与操作系统的研究包括计算机组成原理、操作系统原理、嵌入式系统等。
5. 编程语言与编程范式编程语言是计算机与人沟通的桥梁,常用的编程语言包括C、C++、Java、Python、JavaScript等。
编程语言的设计哲学和编程范式影响程序设计的风格和实现方法。
常见的编程范式包括过程化编程、面向对象编程、函数式编程、逻辑编程等。
6. 数值计算与科学计算数值计算是使用数值方法求解数学问题的研究领域,它包括线性代数、微分方程、积分方程、最优化等。
计算理论导引 0_绪论
![计算理论导引 0_绪论](https://img.taocdn.com/s3/m/8c165df36529647d27285292.png)
主要内容
0.0 课程性质 0.1 自动机、可计算性与复杂性 0.2 数学概念和术语 0.3 定义、定理和证明 0.4 证明的类型 0.5 作业
8
0.1 自动机、可计算性与复杂性
什么是计算? 计算机的基本能力和局限性是什么? 计算复杂性理论
把问题分成容易计算和难以计算的
可计算理论
布尔逻辑
合取、析取、非、异或
12
主要内容
0.0 课程性质 0.1 自动机、可计算性与复杂性 0.2 数学概念和术语 0.3 定义、定理和证明 0.4 证明的类型 0.5 作业
13
0.3 定义、定理和证明
定义:描述了我们使用的对象和概念。 证明:是一种逻辑论证。 定理:是被证明为真的数学命题。 引理:有助于证明另一个更有意义的命题的命题。
5
课程说明
教材处理
讲要点,前后次序有少数调整 略讲或自学的部分,要求了解主要思想 快讲的部分,需要一般了解的章节,要求了解主要方法和演绎框架 要求深入掌握的部分——能作题目或作难题,通过考试
6
课时安排
第0章 绪论——2学时 第1章 正则语言——5学时 第2章 上下文无关文法——3学时 第3章 丘奇-图灵论题——2学时 第4章 可判定性——2学时 第5章 可归约性——2学时 第6章 可计算理论高级专题——2学时 第7章 时间复杂性——4学时 第8章 空间复杂性——3学时 第9章 难解性——3学时 第10章 复杂性理论高级专题——4学时
京: 清华大学出版社. (美) John E.Hopcroft等著. 孙家骕等译.自动机理论、语言和计算导
论(原书第3版). 北京: 机械工业出版社.
4
课程说明
作业
计算理论导引_6_可计算理论的高级专题
![计算理论导引_6_可计算理论的高级专题](https://img.taocdn.com/s3/m/0a07c0d76f1aff00bed51e24.png)
公式
辖域:紧跟在量词化变元后的一对括号中的部分。 前束范式:所有量词都出现在公式的前面。 自由变元:没有被量词的辖域所约束的变元。 句子或命题:没有自由变元的公式。 (1) x (F(x,y)→G(x, z) ) (2) x (F(x)→G(y)) → y (H(x)∧L(x, y, z))
计算理论
康熠华
1
Hale Waihona Puke 主要内容6.1 递归定理
6.1.1 自引用
6.1.2 递归定理的术语 6.1.3 应用
6.2 逻辑理论的可判定性
6.2.1 一个可判定的理论 6.2.2 一个不可判定的理论
6.3 图灵可归约性 6.4 信息的定义
6.4.1 极小长度的描述 6.4.2 定义的优化 6.4.3 不可压缩的串和随机性
13
一个可判定性的理论
定理 6.10
Th(N, +)是可判定的。
思路:对于输入为(N, +)的语言中的句子∮检查其在模型中是否为真。
∮=Q1x1Q2x2 …Qlxl [ψ] 对于 0~l 的每一个i,令公式∮i 为
∮i=Qi+1xi+1Qi+2xi+2 …Qlxl [ψ]
这样,∮0=∮且 ∮l =ψ。 对于从 0 到 l 的每个 i,算法构造了一个有穷自动机 Ai,它识别如下串的 集合:这些串表示∮i 为真的数的 i 元组。算法先直接构造 Ai,然后,对 从 l 向下到 1 的每个 i,它用 Ai 构造 Ai-1。最后,一旦得到 A0,算法就 检查 A0是否接受空串。如果接受,则∮为真,算法也就接受。
20
一个不可判定性的理论
定理 6.15 本定理的证明中描述的句子是unprovable 不可证的。
6不确定图灵机
![6不确定图灵机](https://img.taocdn.com/s3/m/fc4d2cfe0242a8956bece462.png)
可计算理论
2012-7-26
9/82
Simulating Nondeterministic TMs with Deterministic Ones
定理3.10 确定方式模拟模拟NTM 上页已有, 可略复习
We want to search every path down the tree for accepting configurations.
1/82
Outline for today
• Section 3.2 ---3.3 : • 3.2.2 Nondeterministic TMs 复习补充 • Robustness of the Turing model • Church-Turing thesis C—T论题 • 3.3 Hilbert’s 10th Problem • Chapter 4: 可判定性 •4.1 Decidable languages 今天
Example: location of the rejecting configuration is (3,1).
C1 C3
t=1 C4 t=2
“reject‖ t=3
“accept‖
With the lexicographical listing , (1), (2),…, (b), (1,1), (1,2),…,(1,b), (2,1),… et cetera, we cover all nodes.
C1
t=1
If there is (at least) one accepting leave, then the TM accepts.
只要一条被接受,就算被接 受了,允许多次失败换取一 次成功,如彩票
C2
计算理论导引23
![计算理论导引23](https://img.taocdn.com/s3/m/e1b1edb5ddccda38366baf6d.png)
BPP是多项式时间的概率图灵机以错误概率1/3识别的语言 类。
引理10.5
引理11.5:设ε是一个固定常数,且0<ε<1/2。又设M1是一台
错误概率为ε的多项式时间概率图灵机,则对于任意的多项式
poly(n),存在与M1等价的错误概率为
cm
t/2步内从 c1到cm
∨ ∧…
t/2步内从c1到c2
∧
t/2步内从 cm到c2
起始格局 2df(n)
接受格局
S的每个分支使用的最大时间:O(f(n)) 递归深度:log2df(n) = O(f(n)) 因此,算法在交错时间O(f2(n))内运行
引理10.21 对于对于f(n)≥log n,有 ASPACE(f(n)) TIME(2O(f(n)))
如果一个数p能6 通,a 过 所2有关2 于(6 小1)于它25 且 与3它,2 互3 素2m 的数5 的o 费2 d 马测
试,则称这个数为伪素数,其中可能包含卡米切尔数和素数
。
ap1 1(mopd)
测试伪素数的多项式概率算法
PSEUDOPERI“ M对于输p: 入 在p中随机地选 a1, 取,ak 对于每一i,个计算 ai(p1) modp 如果所有计算出都 来等 的于 值 1,则接受;否则拒绝
把O(f(n))时间的交错式图灵机M转换成O(f(n))空间的确定型图灵机S
S如下模拟M:对于输入w,S对M的计算树做深度优先搜索,确定哪些顶 点接受。如果树根接受,则S接受。
引理10.20 对于f(n)≥n,有 SPACE(f(n)) ATIME(f2(n))
从O(f(n))空间的确定性图灵机M出发,构造一台O(f2(n))时间的交错式图 灵机S
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下列 TM Q 计算 q(w):
Q = “对于输入串 w:
1) 构造下列图灵机 Pw: Pw = “对于任意输入:
a) 抹去输入。
b) 在带上写下 w。
c) 停机。”
2) 输出< Pw >。”
5
图灵机 SELF
图灵机 SELF 忽略输入,且打印出它自己的描述。 图灵机 SELF 有两个部分,分别叫做 A 和 B,将 A 和 B 想象成两个分离的
过程,它们一起组成 SELF。 我们希望 SELF 打印出 <SELF> = <AB>。 A 部分首先运行,在根据完成情况将控制传给 B。A 的任务是打印出 B 的
描述。 使用机器 P<B> 来定义 A,其中 P<B>用函数 q 在 <B> 处的值q(<B>)描述,这
样,A 部分是一个打印出 <B> 的图灵机。A 的描述依赖于是否已经有了 B 的描述,所以在构造出 B 之前,无法完成 A 的描述。 定义 B,使之能打印 A:B 从 A 产生的输出来计算 A。 如果 B 能得到 <B>,它就能用 q 来得到 <A>。当 A 结束时,它被留在带上。 所以 B 只要看着带子就能得到 <B>。在计算 q(<B>) = <A>之后,B 将 之加到带的前面。 然后将 A 和 B 组合成一个机器并在带上写下它的描述。
A BT (=P<BT>)
R 的控制器
…
10
递归定理
A BT (=P<BT>)
R 的控制器
…
A 是由 q(<BT>)描述的图灵机 P<BT>。为了保持输入w,重新 设计 q,使得 P<BT> 印出任何预先在带上存在的串的输出。在 A 运行之后,带上包含 w<BT>。
B 是如下的过程:检查带子,并将 q 应用于带内容。结果是 <A>。然后 B 将 A、B 和 T 组成一个图灵机,并得到它的描 述 <ABT> = <R>。
数;或模拟 <M>。 用递归定理来描述机器 SELF:
SELF = “对于任意输入: 1) 利用递归定理得到它自己的描述 <SELF>; 2) 打印 <SELF>。”
12
递归定理的术语
递归定理展示了怎样实现“获得自己的描述”的构造。 为了产生机器 SELF,首先写下以下机器 T:
计算理论
朴秀峰 xfpiao@
1
主要内容
6.1 递归定理
6.1.1 自引用 6.1.2 递归定理的术语 6.1.3 应用
6.2 逻辑理论的可判定性
6.2.1 一个可判定的理论 6.2.2 一个不可判定的理论
6.3 图灵可归约性 6.4 信息的定义
6.4.1 极小长度的描述 6.4.2 定义的优化 6.4.3 不可压缩的串和随机性
制造能生产自己的机器是可能的。
3
递归的意义
自己调用自己 从前有个庙,庙里有个老和尚,老和尚给小和尚讲故事, 讲的故事是:“从前有个庙,庙里有个老和尚,老和尚给 小和尚讲故事,讲的故事是……”
自我繁殖
#include <stdio.h>
main()
{ char *c="#include <stdio.h> main(){char *c=%c%s%c;printf(c,34,c,34);}";
8
图灵机 SELF
容易用任何程序设计语言实现这个构造,即得到一个程序, 输出就是它自己。
也可用自然语言实现: 打印这个句子
考虑下面的变换 打印下面语句的两个副本,在第二个副本上加引号;
“打印下面语句的两个副本,在第二个副本上加引号;” 本例中,B 部分的构造是如下的句子:
打印下面语句的两个副本,在第二个副本上加引号; A 部分与之相同,只是用引号将之括起来。 A 提供了 B 的一个副本给 B。
6
图灵机 SELF
SELF 的示意图,一个打印它自己的描述的 TM
AB (=P<B>)
SELF 的控制器
…
A = P(B),且 B = “ 对于输入 <M>,其中 M 是一个 TM 的一部分:
1) 计算 q(<M>)。 2) 将其结果与 <M> 结合来组成一个完整的 TM 描述。 3) 打印这个描述,然后停机。”
最后,描述的编码和 w 结合,在带上形成结果串 <R, w>,并 将控制传给 T。
11
递归定理的术语
在设计图灵机算法时,可用如下方式使用递归定理。 如果你正在设计一个图灵机 M,则可以在 M 的算法的非
形式描述中包含如下的短语: “得到自己的描述<M>”。一旦得到自己的描述,M 就能
像使用其他已计算出来的值一样使用这个描述。 例如,M 可以简单打印出 <M>;或者计算 <M> 中的状态
9
பைடு நூலகம்归定理
定理 6.2
设 T 是计算函数 t : *×** 的一个图灵机。 则存在计算函数 r : * * 的一个图灵机 R,使得 对每一个 w,有:
r (w) = t (<R>, w )
只需要制造一个 TM T,使之以自己的描述作为输入的一部分。 然后递归定理就产生一个新的机器 R,它和 T 一样运行,只是 R 的描述被自动地装在 T 中。
2
递归定理
递归定理是一个数学结论,在可计算性理论的高级研究中 起着重要的作用。
考察与生命科学有关的一个悖论: 1) 生物都是机器。 2) 生物都能自再生。 3) 机器不能自再生。
设有构造机器 B 的机器 A:A 肯定比 B 复杂,但一个机器 不会比它自己更复杂。因此没有机器能够制造它自己,故 自再生是不可能的。??
7
图灵机 SELF
如果现在运行 SELF ,能观察到如下动作:
AB (=P<B>)
SELF 的控制器
…
1) 首先 A 运行,它在带上打印 <B>; 2) B 开始运行,它查看带子,找到它的输入 <B>; 3) B 计算 q(<B>)=<A>,然后将之与 <B> 合并,构成 TM
SELF 的描述 <SELF>。 4) B 打印这个描述,且停机。
printf(c,34,c,34);
}
4
自引用
引理 存在可计算函数 q: * * ,对任意串 w, q(w) 是 6.1 图灵机 Pw 的描述,Pw 打印出 w,然后停机。
可以任取一个字符串 w,然后从它构造一个图灵机,使得此图灵机将 w 内装在一个表中,这样,当此图灵机开始运行后,它只要简单输出 w 即 可。