Algorithm,Mathematic - 关于可计算理论

可计算性理论与图灵机(Turing Machine, TM) 图灵机是一种理论上的计算设备,尽管简单,却可以模拟任何现代计算机的计算过程。带子(Tape)图灵机的带子是无限长的,并分为一个个方格,每个方格可以存储一个符号。带子可以在图灵机的运行过程中向左或向右移动。初始时,带子上通常包含输入数据,带子的其余部分填充为空白符号(通常记为 (#) 或 (\square))。读/写头(Head)读/写头可以在带子上左右移动,并能够读取当前方格中的符号或写入新的符号。状态寄存器(State Register)这部分保存图灵机当前的状态。 阅读详情
今天,如果一个计算机科学的硕士或博士不知道什么是不可判定问题,什么是停机问题,为什么停机问题不可解,什么是NP=?P问题,也有可能会受到讥笑。因为这些问题对于计算机科学而言,太基本、太重要了,它们都属于一门称为可计算理论的学科。是计算机科学研究人员应具备的修养型知识。让我们来看看什么是可计算理论

 

可计算理论是关于计算机械本身的数学理论。20世纪前,计算机械总是”算计”别的对象,很少”算计”自己。20世纪 30年代,为了要解决一个基础问题,即是否有存在不可判定问题,数理逻辑 学家提出了几种不同的(后来证明是彼此等价的)关于算法的定义,从而建立了可计算性理论。
科学家令计算机械 自己”算计”自己,奇迹出现了。图灵用对角线方法,把图灵机自己编码,搅进其自己的计算对象中,证明了停机问题不可解。在一定程度上说明了计算机(程序)的能力有限性。
30年 代前期,K.哥德尔和S.C.克林尼等人创立了递归函数论, 将数论函数的算法可计算性描述为递归性。30年代中期, A.M.图灵和E.L.波斯特彼此独立地提出了理想计算机的 概念,将问题的算法可解性描述为在具有严格定义的理想计算机上的可解性。30年代发展起来的算法理论,对 在40年代后期出现的存储程序型计算机的设计思想是有影响的。图灵提出的理想计算机(称为图灵机)中的一 种通用机就是存储程序型的。

 可计算理论主要内容有:自动机论与形式语言理论;程序理论(包括程序正确性证明、程 序验证等);形式语义学;算法分析和计算复杂性理 论。自动机理论和形式语言理论是50年 代发展起来的。前者的历史还可以上溯到30年代,因为图灵机就是一类自动机(无限自动机)。50年代以来一些 学者开始考虑与现实的计算机更相似的理想计算机,J. 诺伊曼在50年代初提出了有自繁殖功能的计算机的概念。

王浩在50年代中期提出了一种图灵机的变种,这是一种 比原来的图灵机更接近现实机器的机器。他还提出一种 存储带上的内容不能清除的机器,并证明这种机器是与图灵机等价的。

60年代前期,又有人提出具有随机存取 存储器的计算机(简称RAM)以及多带图灵机等。 形式语言理论 导源于数理语言学中的乔姆斯基理 论。在这种理论中,形式语言分为四种:①0型语言;②1 型语言;③2型语言;④3型语言。相应地存在着0型、1型、 2 型、3型四种形式文法。1型语言又名上下文有关语言, 2型语言又名上下文无关语言,3型语言又名正则语言。其中2型语言最受人注意。60年代中期,还发现了这四类 语言与四类自动机之间的对应关系(见表形式语言与自 动机的关系) 在上表中,左边所列的语言恰好是右边与之对应的自动机所能识别的语言(见形式语言理论)。 程序设计理论 包括程序正确性证明和程序验证, 它的一些基本概念和方法是40年代后期诺伊曼和图灵等 人提出的。诺伊曼等在一篇论文中提出借助于证明来验证程序正确性的方法。

J.T.施瓦兹和 M.戴维斯70年代后期提出了一种他们称之为"正确程序 技术"的软件技术。这种方法是先选定成千种基本程序模块,并借助已知的各种验证方法(包括程序正确性证 明)来保证这些基本程序的正确性。然后再提出一组能 保持正确性的程序组合规则。这样,就可以通过不断的 组合,生成各种各样的程序。

有人指出,程序正确性证明技术所发展出来的"循 环不变式",即一个程序中的某一循环的入口或出口点 上所附的谓词,有些文献中称作"归纳断言",可以用来供程序研究用。也就是说,不像过去那样,对一个给 定的程序找出其若干个循环不变式,然后借助这些不变 式来证明这个程序的正确性;而是在编制这个程序之前, 根据对这一程序的要求,找出若干个循环不变式,然后根据这些不变式来生成这个程序。 自动程序设计的概念也是从40年代提出的。

 1969年又有人独立地提出了这一想法。 程序语言的形式语法的研究,从50年代中期起有了较大的发展。而形式语义的研究自60年代以来虽有不少 研究工作者从事这方面的工作,提出几种不同的语义理 论,主要是操作语义学、指称语义学或称数学语义学、 公理语义学和代数语义学,但仍没有一种公认在软件技术中够用的形式语义学,因而需要提出一种更适于用到 实际计算中的新的语义学。 在程序正确性证明和形式语义学中应用的程序逻辑, 是60年代末发展起来的。

这是谓词逻辑的一种扩充。原来的谓词逻辑中是没有时间概念的,所考虑的推理关系 是在同一时间里的关系。程序是一种过程,一个程序的 输入谓词与输出谓词之间的逻辑关系就不是同一时间里 的关系。因此,在有关程序性质的推理中,原来的谓词逻辑不够用,需要有一种新的逻辑。 60年代末,E.恩格勒等人创立了算法逻辑。C.A.R. 霍尔也创立了一种程序逻辑。这种逻辑是在原来的逻辑上增加一个程序算子而得到的。

 算法分析和计算复杂性理论 关于算法的复杂性的 研究。关于这一领域的名称曾有争论。一般认为,各类具体算法的复杂性的研究称作算法分析,而一般算法复 杂性的研究称作计算复杂性理论。计算复杂性理论原是 可计算理论的一支,是以各种可计算函数(即递归函数) 的计算复杂性(在早期称作"计算难度")为其研究对象的。可计算性分为理论可计算性和实际可计算性两种。 作为可计算性理论一支的计算复杂性理论,是以前者的 复杂程度为其研究对象的;而作为计算机科学一个领域 的复杂性理论,则是以后者的复杂程度为其研究对象的。

这一分支的基本问题是要弄清楚实际可计算函数类的结构和一些性质。实际可计算性是一个直观的概念。 如何对这一概念进行精确的描述,是一个并不容易的问 题。60年代中期以来,有关的研究工作者一般是以计算时间多项式有界的函数作为实际可计算的函数。这实际 上是一个论题,而不是一个可以在数学中加以证明或否 证的命题。有人指出,在有关的多项式次数较高时,很难说是实际可计算的。

另一个带根本性的问题是:确定性机器与非确定性机器的解题能力的比较问题。人们早已知道,确定性图 灵机与非确定性图灵机的解题能力是相等的。因为非确 定性机器虽比确定性机器效率高,而如果计算时间没有 限制,则确定性机器总可以用穷举的方法来模拟非确定性机器。因此,二者的解题能力是一样的。但在计算时 间多项式有界时,二者的解题能力是否相等,这就是有 名的P=? NP问题。 关于计算和算法(包括程序)的研究,对串行计算的性质研究较多,而对并行计算性质的研究则还很不够 (特别是对异步的并行计算更是如此)。因此,关于并 行计算的研究很可能将成为计算机理论的研究重点。                

 对于一个判定问题,如果能够编出一个程序,以域 中任意元素作为输入,当相应的个别问题的解答是肯定 的时候, 的执行将终止并输出"是",否则 的执行不 终止,就称该判定问题为半可判定的。可判定的问题总是半可判定的。集合是递归可枚举集的充分必要条件为 对应的判定问题是半可判定的。 图灵在1936年证明,图灵机的停机问题是不可判定 的,即不存在一个图灵机能够判定任意图灵机对于任意输入是否停机。图灵机的停机问题是半可判定的。图灵 机的停机问题是很重要的,由它可以推出计算机科学、 数学、逻辑学中的许多问题是不可判定的。

【计算机系统基础01】冯·诺依曼结构及其主要思想 冯·诺依曼结构的主要思想:1、计算机应由运算器、控制器、存储器、输入输出设备五个基本部件组成存储器不仅存放数据,而且还可以存放指令,形式上两者没有区别(都是01序列),但计算机应能区分数据还是指令控制器应能自动取出指令来执行运算器应能进行加/减/乘/除四种基本运算,并且能进行一些逻辑运算和附加运算操作人员可通过输入输出设备和主机进行通信3、内部以二进制表示指令和数据(ENIAC是十进制表示指令和数据,而IAS计算机采用的是二进制),每条指令由操作码和地址码两部分组成。......... 阅读详情

相关推荐

图灵(1936) - 论可计算数及其在判定问题中的应用(计算部分).pdf

图灵1936年论文解读(1):可计算性

可计算理论简介

在60年代的中国,如果一个大学生不懂工农业常识,例如混淆了韭菜麦子,可能会受到讥笑。本来,闻道有先后,树业有专工。要求一个领域的人理解另一个领域的知识是有些过分。在今天,如果一个计算机科学的硕士或博士不知道什么是不可判定问题,什么是停机问题,为什么停机问题不可解,什么是NP=?P问题,也有可能会受到讥笑。因为这些问题对于计算机科学而言,太基本、太重要了,它们都属于一门称为可计算理论的学科。是计算机

mentat的专栏 4429

可计算理论电子教案(1-3)

唐常杰,双语电子教案,配合教材 计算理论导引( Michael Sipser 著)1-3章。

可计算性与计算复杂性发展史

可计算理论是由递归函数的产生而发展的,其核心问题是:什么是可计算的,以及如何保证计算的自动性,有效性和正确性。数理逻辑学家研究定理证明及其推导的特殊计算,从而产生了可计算理论。 20世纪三十年代,数理学家开始探索可计算的定义。 1931年Herbrand对递归函数进行了研究,并把他的研究成果写发送给了哥德尔,但是由于种种原因,Herbrand的探究暂时被搁置了。同年秋,美国数学家丘奇开创一种新

loveRooney的专栏 5578

从仿真到现实:BeamDojo双足机器人项目实战指南(附完整配置清单)

本文提供了一份基于BeamDojo项目的双足机器人从仿真训练到现实部署的完整实战指南。详细拆解了硬件选型(如宇树G1、Jetson Orin NX、Livox Mid-360)、Isaac Gym仿真环境搭建、强化学习训练技巧(如双评论家架构、课程学习)以及关键的Sim2Real迁移策略,旨在帮助开发者将前沿研究成果转化为可落地的工程实践。

hhh00的博客 875

23数字图像置乱技术(matlab程序)

所谓“置乱”,就是将图像的信息次序打乱,a像素移动到b像素位置上,b像素移动到c像素位置上,……,使其变换成杂乱无章难以辨认的图片。数字图像置乱技术属于加密技术,是指发送发借助数学或者其他领域的技术,对一幅有意义的数字图像做变换,使之变成一幅杂乱无章的图像用于传输。在图像传输过程中,它通过对图像像素矩阵的重排,破坏了图像矩阵的相关性,使非法截获者无法从杂乱无章的图像中获得原图像信息,以此实现信息的加密。接收方经去乱解密可恢复原图像。

m0_57943157的博客 1204

什么叫计算机理论里面的可计算性? 请举例一些常见的不可计算的例子

不可计算问题的核心在于它们涉及无限性全局性或算法的自参考性,这些问题超出了任何有限计算模型的能力范围。通过理解这些不可计算问题,我们可以更清楚地认识计算的边界,并设计合理的算法或近似方法来解决实际问题。

具身机器人和通用AI 2000

数据中心GPU芯片性能参数速查表(Nvidia+国产算力卡)

本文提供了一份数据中心GPU芯片性能参数速查表,涵盖Nvidia与国产算力卡两大阵营。文章详细解读了算力、显存、互连技术及功耗等关键性能指标,并对比了A100、H100、昇腾910B等主流型号,旨在帮助用户根据AI训练、推理等实际场景,做出高效的硬件选型与成本评估决策。

a0b1c2d3的专栏 835

Algorithm,Mathematic - 数学的知识构成

简介数学是研究数量、结构、变化以及空间模型等概念的一门学科。通过抽象化和逻辑推理的使用,由计数、计算、量度和对物体形状及运动的观察中产生。数学家们拓展这些概念,为了公式化新的猜想以及从合适选定的公理及定义中建立起严谨推导出的真理。  数学属性是任何事物的可量度属性,即数学属性是事物最基本的属性。可量度属性的存在与参数无关,但其结果却取决于参数的选择。例如:时间,不管用年、月、日还是用时、分、秒

1702

二阶高通滤波器硬件设计:5种RC到有源方案对比与选型

在传感器前端和音频信号调理中,二阶高通滤波器是抑制直流偏移与低频干扰的关键模块。其设计核心围绕截止频率、品质因数Q、增益与噪声四个指标展开,其中Q值决定滤波器在转折频率附近的响应形状,如Butterworth最大平坦响应需Q=0.707。从纯无源RC电路到引入运放的有源拓扑,演变逻辑在于解决负载效应、提供增益并借助反馈提升Q值。实际工程中,RC级联、VCVS(Sallen-Key)、状态变量及回转器模拟电感等方案各有适用场景:RC电路简单但Q值受限,Sallen-Key单运放即可实现高Q,状态变量适合Q值独

weixin_32770423的博客 99

新手学习Vivado XDMA (1) - 配置详细分析

PCIe 在 Vivado XDMA 中的配置分析。

qq_18553915的博客 9708

fixed point & iterative algorithm

In mathematics, a fixed point of a function is an element of the function’s domain that is mapped to itself by the function. That means if you have a function f, a number x is a fixed point if f(x) = x.To give a simple example, consider the function f(x) =

青衫客36的博客 524

【VoxCPM2】在Windows上从零搭建VoxCPM2 语音生成和语音克隆AI算法

建议你了解清楚VoxCPM2,再来考虑是否需要自己在本地搭建。

AnChenliang_1002的博客 752

智能优化算法-算术优化算法Arithmetic Optimization Algorithm(附Matlab代码)

算术优化算法Arithmetic Optimization Algorithm(AOA)是一种新的元启发式算法,称为算术优化算法(AOA),它利用了数学中主要算术运算符的分布行为。于2021年发表在Computer Methods in Applied Mechanics and Engineering。

weixin_44028734的博客 358

RIP协议

一、 Rip简介 早期在unix系统上使用,1988年才发布第一个rip协议标准“RFC1058”,是一种距离矢量(Distance-vector)协议。 1. 特点: 只关心跳数,下一跳,不关心整网拓扑。 基于传闻的路由协议。 2. 场景: 适用于规模小且可靠性要求低的网络环境,部署简单,因为其跳数限制,不适用于大型网络。 3. 工作原理: - 开启RIP发送RIP请求 - 接受请求发出响应...

ledrsnet的博客 8607

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

智能优化算法-传播搜索算法Propagation Search Algorithm(附Matlab代码)

传播搜索算法Propagation Search Algorithm,PSA,是一种基于物理的优化器,其灵感来自于电压和电流沿长传输线的波传播。该成果发表在SCI期刊Mathematics。使用23个著名的测试函数,通过20个独立优化实验的均值、标准差和p值的统计检验,证实了PSA在寻找最佳结果方面的稳健性,以及PSA结果与比较算法结果之间的显著性差异。

weixin_44028734的博客 351

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

algorithm 题集八 (18.03.25)

本文一共12题,均来自《剑指offer》,不复杂。在平时的练习中收集了部分组合而成。 (1)输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 (2)用两个栈来实现一个队列,完成队列的Push和Pop操...

theArcticOcean 549

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Modulo Ruins the Legend题解&&同余

概念:设 n 是给定的正整数,若整数 a、b 满足 m | (a − b),则称 a 和 b 模 n 同余, 记作 a ≡ b (mod m)。反之,则称 a 与 b 模 n 不同余, 记作 a ̸≡ b (mod m)。性质:• 反身性:a ≡ a (mod m))。• 对称性:a ≡ b (mod m)) ⇐⇒ b ≡ a (mod m))。• 传递性:a ≡ b (mod m)) ∧ b ≡ c (mod m)) ⇒ a ≡ c (mod m))。

2301_79477195的博客 2839

Graph | Eulerian path

In graph theory, a Eulerian trail (or Eulerian path) is a trail in a graph which visits every edge exactly once. Similarly, an Eulerian circuit or Eulerian cycle is an Eulerian trail which starts and ...

weixin_34279061的博客 110

英文单词-计算: calculate、count、compute、reckon

了解一个英语单词,首先要看它在词典中的定义。我们来看一下calculate和compute在剑桥词典中的定义是什么:从上面的定义来看,calculate和compute都是计算某个事物的数量、总量,不过从方法来看,calculate没有限定是用什么方法,但compute往往是用机器得到结果。但是在方法这个层面也不是一定的,所以在大多数情况下,二者都可以互换。比如,下面的几个例子中calculate和compute可以互换:

kfepiza的博客 2万+

计算两数的和与差

本题要求实现一个计算输入的两数的和与差的简单函数。 函数接口定义: void sum_diff( float op1, float op2, float *psum, float *pdiff ); 其中op1和op2是输入的两个实数,psum和pdiff是计算得出的和与差。 裁判测试程序样例: #include <stdio.h> void sum_diff( float op1,...

Noria107的博客 1999

172. Factorial Trailing Zeroes (E)

Factorial Trailing Zeroes (E) Given an integer n, return the number of trailing zeroes in n!. Example 1: Input: 3 Output: 0 Explanation: 3! = 6, no trailing zero. Example 2: Input: 5 Output: 1 Explan...

Mapoos 101

hdu acmsteps 2.1.3 Cake

Cake Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1815 Accepted Submission(s): 862 Problem Description 一次生日Party可能有p人或者q人参加,现准备有一个大蛋糕....

dengtiaolu0407的博客 119

The Mathematics of Machine Learning

This post was first published on my Linkedin page and posted here as a contributed post. In the last few months, I have had several people contact me about their enthusiasm for venturing into the

四纪启悟 · 数据科学 2093
上一篇: GCC中文手册
下一篇: OIERS 必读:计算机科学趋势之我谈
AlphaJay
博客等级 码龄22年 19粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值