《计算复杂性:现代方法》——1.5 不可计算性简介

简介:

本节书摘来自华章计算机《计算复杂性:现代方法》一书中的第1章,第1.5节,作者 [美]桑杰夫·阿罗拉(Sanjeev Arora),博阿兹·巴拉克(Boaz Barak),译 骆吉洲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.5 不可计算性简介

下面的事情看起来似乎很“显然”:只要时间充分,任何函数均是可被计算的。然而,这已被证明是错误的。因为,存在这样的函数,它们在无穷步骤内不能被计算!本节简要介绍这一事实和由此引出的学科分支。21尽管严格地讲不可计算性对复杂性而言不是必需的,但它却构成了复杂性的知识背景。

下面的定理证明了不可计算函数的存在性。(事实上,该定理证明了值域为{0,1}的不可计算函数(即语言)的存在性。值域为{0,1}的不可计算函数也就是众所周知的不可判定语言。)定理的证明用到了对角线方法,这种方法在复杂性理论中也很有用;参见第3章。

screenshot


screenshot


screenshot

1.5.1 停机问题

读者可能不禁要问,为什么我们要研究上面定义的函数UC是不是可计算的呢?什么样的人会关心到底如何计算这种刻意构造的函数呢?

现在我们展示一个更自然的不可计算函数。函数HALT以序对〈α,x〉为输入,它输出1当且仅当α表示的图灵机Mα在输入x上会在有限步骤内停机。这肯定是我们需要计算的函数。因为,给定一个计算机程序和输入之后,我们肯定希望知道该程序在该输入上是否会陷入无限循环。如果计算机能够计算函数HALT,则设计无bug的计算机软件和硬件将变得容易得多。遗憾的是,现在我们可以证明计算机计算不了这个函数,即使运行时间允许任意的长。

screenshot

定理1.11证明过程中的技术称为归约。定理的证明已经表明,如果假设存在计算HALT的算法,则必存在计算UC的算法;这就将对UC的计算归约到了对HALT的计算。在本书中,我们将遇到许多归约。通常,归约技术用于证明问题B至少同问题A一样难,这正是通过证明“如果给定求解问题B的算法,则存在求解问题A的算法”来完成的。

还有许多有趣的不可计算(也称不可判定)函数,参见习题1.12。甚至,还有一些不可计算函数,它们看起来似乎与图灵机或算法毫无关系。例如,下面的问题不能被任何图灵机在有限时间内求解:给定一族整系数的多项式方程,问这些方程是否存在整数解(亦即,是否存在变量的整数赋值满足所有方程)。这就是著名的丢番图问题。1900年,希尔伯特曾将寻找丢番图方程的求解算法这一问题作为最难的23个开放数学问题之一提出。本章的注记提到了更多关于可计算理论的资源。

1.5.2 哥德尔定理

1900年,当年最卓越的数学家戴维·希尔伯特提出了一项雄心勃勃的研究计划。该计划旨在为所有数学建立严格的公理系统,以最终确保所有为真的结论均能被严格地证明。罗素(Russell)、怀特黑德(Whitehead)、策梅洛(Zermelo)、弗兰克尔(Fraenkel)等数学家在接下来的数十年中各自提出了自己的公理系统,但他们谁也不能证明他们的公理系统既是完备的(亦即,能证明所有正确的数学结论)又是可靠的(亦即,不会证明出错误的结论)。1931年,库尔特·哥德尔证明了所有这些努力都注定要失败,这震惊了整个数学界。因为他证明了:对于任意可靠的公理和推理规则的系统,23必存在正确的数论结论不能在中被证明。下面,我们给出这个结果的证明概要。注意,我们给出的讨论并不针对哥德尔的更强结论;亦即,数学上任何一个足够强的公理系统均不能证明其自身的一致性。采用下面的思想,要证明这个更强的结论也不是很难。

screenshot

screenshot

注意,上述构造最早是由图灵给出的。该构造过程还表明,所有正确数学结论构成的集合是不可判定的。这同时还表明,希尔伯特著名的判定问题无解。(希尔伯特曾提出用“机械过程”(现译作“算法过程”)来判定数学结论的真伪。)

相关文章
|
开发工具 git 开发者
Git Pull vs. Git Fetch:深度解析
【2月更文挑战第29天】
2962 0
Git Pull vs. Git Fetch:深度解析
|
1月前
|
人工智能 自然语言处理 算法
数字人|数字人平台推荐与选择指南
数字人企业正引领未来产业变革,像衍科技依托顶尖科研实力,构建全链条技术壁垒,推动虚拟人在多场景落地。从技术突破到商业转化,数字人已迈入价值创造新阶段,重塑行业格局。
|
3月前
|
数据挖掘 调度 开发工具
Github 2.3k star 太牛x,京东(JoyAgent‑JDGenie)这个开源项目来得太及时啦,端到端多智能体神器!!!
JoyAgent-JDGenie是京东开源的端到端产品级多智能体系统,支持自然语言生成报告、PPT、网页等内容,准确率达75.15%。具备开箱即用、多智能体协同、高扩展性及跨任务记忆能力,支持多种文件格式输出,部署灵活,不依赖私有云平台。适合企业自动化报告生成、数据分析与行业定制化应用,是高效、实用的开源AI工具。
671 0
|
存储 缓存 算法
高效编程:我们应该了解哪些编译器优化技术?如何做出成熟的优化行为,掌握C++编程中的编译器优化艺术。
高效编程:我们应该了解哪些编译器优化技术?如何做出成熟的优化行为,掌握C++编程中的编译器优化艺术。
683 5
|
机器学习/深度学习 PyTorch 算法框架/工具
CNN中的注意力机制综合指南:从理论到Pytorch代码实现
注意力机制已成为深度学习模型的关键组件,尤其在卷积神经网络(CNN)中发挥了重要作用。通过使模型关注输入数据中最相关的部分,注意力机制显著提升了CNN在图像分类、目标检测和语义分割等任务中的表现。本文将详细介绍CNN中的注意力机制,包括其基本概念、不同类型(如通道注意力、空间注意力和混合注意力)以及实际实现方法。此外,还将探讨注意力机制在多个计算机视觉任务中的应用效果及其面临的挑战。无论是图像分类还是医学图像分析,注意力机制都能显著提升模型性能,并在不断发展的深度学习领域中扮演重要角色。
673 10
|
存储 监控 测试技术
|
机器学习/深度学习 人工智能 TensorFlow
探索AI在图像识别中的应用
【8月更文挑战第31天】本文将深入探讨人工智能在图像识别领域的应用,包括其原理、技术实现以及实际应用案例。我们将通过Python代码示例,展示如何使用深度学习库TensorFlow进行图像分类任务。无论你是AI初学者还是有一定基础的开发者,都能从中获得启发和学习。
|
Ubuntu 网络协议 开发工具
在 Ubuntu Server 上配置静态 IP 地址
在 Ubuntu Server 上配置静态 IP 地址
1387 0
|
人工智能
就AI 基础设施的演进与挑战问题之大模型推理中显存瓶颈的问题如何解决
就AI 基础设施的演进与挑战问题之大模型推理中显存瓶颈的问题如何解决
339 0