当前位置:

首页 > 业界资讯 > 重温图灵原理,感受反证法的力量

重温图灵原理,感受反证法的力量

算法已经无处不在,似乎对于每一个可以用精确的数学术语表达的问题,都有相应的算法。然而,事实并非如此,实际上有些看似简单的问题永远无法通过算法解决计算机科学家中的先驱艾伦・图灵,曾在近一个世纪前的一篇论文中证明了这种「不可计算」问题的存在,他提出了启动现代计算机科学的计算数学模型。图灵用一种违反直觉的策略证明了这一突破性的结果:他定义了一个问题,一个拒绝一切试图解决它的方法的问题。「比如我问你在做什么,不管你回答什么我都会说,'我要做的事情和你说的不一样'。」麻省理工学院研究理论计算机科学的研究生Rahul

算法已经无处不在,似乎对于每一个可以用精确的数学术语表达的问题,都有相应的算法。然而,事实并非如此,实际上有些看似简单的问题永远无法通过算法解决

计算机科学家中的先驱艾伦・图灵,曾在近一个世纪前的一篇论文中证明了这种「不可计算」问题的存在,他提出了启动现代计算机科学的计算数学模型。

图灵用一种违反直觉的策略证明了这一突破性的结果:他定义了一个问题,一个拒绝一切试图解决它的方法的问题。「比如我问你在做什么,不管你回答什么我都会说,'我要做的事情和你说的不一样'。」麻省理工学院研究理论计算机科学的研究生 Rahul Ilango 说。 重写后的内容: 图灵以一种违反直觉的策略证明了这一突破性的结果:他定义了一个问题,这个问题拒绝一切试图解决它的方法。「比如我问你在做什么,不管你回答什么我都会说,'我要做的事情和你说的不一样'。」麻省理工学院研究理论计算机科学的研究生Rahul Ilango表示

图灵的策略是基于一种具有悠久历史的数学方法,被称为「对角线证明」。下面是对他证明背后逻辑的简化说明

字符串

对角线证明源于解决一个关于字符串问题的巧妙技巧,字符串中每个比特位的值可以是 0 或 1。该问题的描述是:给定一个字符串列表,列表中所有字符串都一样长,如何能生成一个不在列表中的新字符串呢?

重写后的内容:一种最直接的策略是按顺序考虑每个可能的字符串。假设有五个字符串,每个字符串都有五位。首先遍历检查列表中是否存在00000。如果不存在,问题就解决了;如果存在,则转到00001并重复这个过程。这种方法很简单,但对于长字符串所产生的长列表来说速度很慢

对角线证明是一种可行的替代方法,可以逐步构建不存在的字符串。从列表中第一个字符串的第一位开始,将其反转,这将成为新字符串的第一位。然后反转第二个字符串的第二位,并将其作为新字符串的第二位,重复此操作,直到到达列表的末尾。通过反转位的操作,可以确保新字符串与原始列表中的每个字符串至少有一个不同的位置。(它们还在字符串列表中形成一条对角线,因此被称为对角线证明。)

重温图灵原理,感受反证法的力量

对角线证明只需要依次检查列表中每个字符串中的一位,所以通常比其他方法快得多,但它真正的威力在于它能很好地驾驭无限长的字符串问题。

麻省理工学院的理论计算机科学家 Ryan Williams 表示:“虽然字符串和列表可以是无限的,但对角化方法仍然是有效的。”

乔治·康托尔是第一个利用这种力量的人,他是集合论数学领域的创始人。1873年,他利用对角线证明了一些无穷大的值比其他的更大。60年后,图灵将这一版本的对角线证明应用于计算理论

算法的限制性

为了证明存在一类数学问题是无法通过任何算法解决的,图灵提出了一个理论。这类问题具有明确定义的输入和输出,但没有确定的过程可以将输入转化为输出。图灵主要关注决策问题,并为了更好地具象化这个模糊的任务。在决策问题中,输入可以是由0和1组成的任意字符串,而输出则可以是0或1

确定一个数字是否是素数(只能被 1 和它本身整除)是决策问题的一个例子 —— 给定一个代表数字的输入字符串,如果该数字是素数,则正确的输出为 1,如果不是素数,则为 0。另一个例子是检查计算机程序的语法错误。输入字符串代表不同程序的代码 —— 所有程序都可以用这种方式表示,因为这就是它们在计算机上存储和执行的方式 —— 规则是如果代码包含语法错误,则输出 1,如果不包含,则输出 0。

只有当算法为每一个可能的输入都产生正确的输出时,它才能说是可以解决该问题 —— 哪怕失败一次,它就不是解决该问题的通用算法。通常,人们会先指定一个想解决的问题,然后试图找到一个解决它的算法。图灵在寻找无法解决的问题时,颠覆了这一逻辑 —— 他想象了一个包含所有可能算法的无限列表,并使用对角化来构造一个难题,这个难题与列表上的每一个算法都对立。

请设想一个由20个问题组成的新问题,回答者不是从一个具体的概念出发,而是依次对每个问题都想出一个不满足的例子。当游戏结束时,回答者已经描述了一个完全由问题对立面所组成的命题

图灵的对角线证明过程,就是要在无限长的算法列表中,对每一个算法都进行思考:「这个算法能解决我们想要证明是不可计算的问题吗?」,就好像是一种游戏比赛。Williams 表示:「这种方式将原来的问题转化为一种『无限的问题』。」

为了赢得游戏,图灵需要设计一个问题,对于每个算法给出的答案都是否定的。这意味着需要找出使第一个算法输出错误答案的特定输入,另一个使第二个算法失败的输入,以此类推。他发现,这些特殊输入使用了类似于库尔特・哥德尔 (Kurt Gödel) 在不久前在证明像「这个命题是不可证明的」这样的自我引用断言会给数学基础带来麻烦时,所使用的技巧。

此处的关键在于,每个算法(或程序)都可以表示为 0 和 1 的字符串。这意味着,就像在错误检查程序的例子中一样,算法可以将另一个算法的编码作为输入。原则上,算法甚至可以将自己的编码作为输入。

这样一来,我们可以定义一个不可计算的问题,就像在图灵证明中所提到的问题一样:“给定一个表示算法代码的输入字符串,当算法自身的代码作为输入时,如果该算法输出0,则让其输出1,否则输出0。”每个试图解决这个问题的算法都会在至少一个输入上产生错误的输出,即与自己的代码对应的输入。这意味着这个反常的问题无法用任何算法来解决

证明不了什么的是反证法

计算机科学家对于对角线证明的使用并没有到此结束。1965 年,Juris Hartmanis 和 Richard Stearns 改编了图灵的论点,以证明并非所有可计算问题是平等的 —— 有些问题本质上比其他问题更难。这一结果启动了计算复杂性理论领域,研究计算问题的难度。

复杂性理论的发展揭示了图灵对角线证明的局限性。在1975年,贝克、吉尔和索洛维证明了复杂性理论中许多未解决的问题无法仅通过对角化来解决。其中最重要的是著名的P/NP问题,该问题简单来说是关于能否在多项式时间内验证解的正确性以及是否能在多项式时间内求解的问题

对角线证明的局限性是使其如此强大的高抽象水平的直接结果。图灵的证明并没有涉及任何在实践中可能出现的不可计算的问题 —— 相反,问题往往是抽象的。其他对角线证明同样远离现实世界,因此它们无法解决现实世界中的问题。

Williams 说:「对角线证明并不是直接触碰问题本身,就好像用手套箱做实验一样。」

对角线证明的颓败之势,表明解决 P/NP 问题将是一个漫长的旅程。尽管存在局限性,对角线证明仍然是复杂性理论家武器库中的关键工具之一。2011 年,威廉姆斯将其与一系列其他技术结合起来,证明了某个受限制的计算模型无法解决一些异常困难的问题 —— 这一结果让困扰了研究人员 25 年的问题得到解决。虽然这与解决 P/NP 问题相去甚远,但仍然代表着重大进展。

如果你想证明某些事情是不可能的,不要低估否定的力量

原文链接:

需要重写的内容是:https://www.quantamagazine.org/alan-turing-and-the-power-of-negative-thinking-20230905/

本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
业界资讯
相关文章 更多
android软件 入门:从基础认知到上手使用
android软件 入门:从基础认知到上手使用

Android作为用户最多的移动操作系统,其开放性支持厂商定制与多元应用生态。用户可通过官方商店或第三方渠道获取APK格式应用,安装时需注意来源安全并手动授权。使用中应管理应用权限,定期清理软件,建议从官方下载并设置密码,以保护隐私与设备安全。

java负载均衡 入门:从基础认知到上手使用
java负载均衡 入门:从基础认知到上手使用

负载均衡是提升系统可用性与性能的关键技术。本文介绍其核心概念,包括分发算法与健康检查机制。通过对比Nginx、SpringCloud等常见方案,阐述其适用场景。最后,以Nginx配置为例,演示如何快速搭建一个基础的负载均衡环境,帮助开发者理解并实践这一重要架构模式。

ubuntu输入法 入门:从基础认知到上手使用
ubuntu输入法 入门:从基础认知到上手使用

Ubuntu默认仅支持英文输入,需用户自行安装中文输入法。主流框架有IBus(集成度高)和Fcitx(功能丰富),安装后需在系统设置中切换并重启。常见问题如快捷键冲突或应用内无法调出输入法,可通过调整设置或安装对应模块解决。掌握输入法配置是融入Ubuntu生态、实现个性化使用的关键一步。

winphone 入门:从基础认知到上手使用
winphone 入门:从基础认知到上手使用

WindowsPhone以其独特的动态磁贴界面和与微软服务的深度整合而著称。本文旨在为新手提供一个清晰的入门指南,涵盖系统核心特性、基础操作设置以及应用生态的获取与使用。通过了解主屏幕定制、系统导航和账户关联,用户可以快速上手并高效利用这款移动操作系统,探索其简洁高效的设计哲学。

Unity新手入门学习殿堂级知识详细讲解(图文)
Unity新手入门学习殿堂级知识详细讲解(图文)

Unity是一款跨平台游戏引擎,支持2D/3D、VR/AR及数字孪生开发。核心优势是可视化编辑器与脚本扩展,覆盖20多个平台。项目需保留Assets、Packages、ProjectSettings文件夹。场景中的GameObject依靠组件实现功能,Transform组件必备。图片建议使用PNG格式,注意碰撞层与显示层设置。

Siri等明年!苹果WWDC25给AI交底:画小饼,继续熬
Siri等明年!苹果WWDC25给AI交底:画小饼,继续熬

不求速胜,熬吧。

比特现金未来:可扩展性与支付潜力
比特现金未来:可扩展性与支付潜力

比特现金(BCH)的未来发展前景看好。凭借其可扩展性、支付采用、价值存储、智能合约和坚实的社区支持,比特现金有望在多个领域取得显著发展,成为一种多功能且广泛使用的加密货币。

ACH总量10亿,价值与用途详解
ACH总量10亿,价值与用途详解

ACH 总共发行了 10 亿枚,用于支付网关费用、治理投票和质押奖励。ACH 基于 BEP-20 标准,采用 PoS 机制,可通过私募、公募和生态系统分配获取,其价值受服务需求、实用性和市场趋势影响,可在币安、火币等交易所购买。

Coinbase Pro设置指南:下载、登录与自定义
Coinbase Pro设置指南:下载、登录与自定义

Coinbase Pro 设置步骤:下载并安装软件后,打开并登录,点击右上角齿轮图标进入“首选项”。在首选项中,你可以调整界面、安全、通知、交易和API设置,完成后点击“保存”按钮确认更改。

IoTeX等基础设施如何赋能IoT生态
IoTeX等基础设施如何赋能IoT生态

IoTeX、DePHY和peaq是构建物联网生态系统的关键基础设施。IoTeX提供去中心化网络,确保物联网交易和数据的安全性。DePHY利用区块链技术实现频谱共享和自治管理。peaq促进设备间的数据标准化和共享。通过这些基础设施的协同作用,物联网生态系统实现了去中心化、安全、互操作性和自治,充分释放了物联网的潜力。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师
macOS

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

WINDOWS 更多
Windows 10
Windows 10
Windows

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘
Windows/macOS/iOS/Android

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。