《计算复杂性:现代方法》——第一部分 基本复杂性类 第1章 计算模型——为什么模型选择无关紧要 1.1 计算的建模:你真正需要了解的内容

第一部分

基本复杂性类

第1章

计算模型——为什么模型选择无关紧要

初看起来,为计算建立数学模型可谓难上加难。这是由于,历史上人类在解决各种计算任务的过程中用尽了各种各样的方法——从直觉和灵感到算盘或计算尺,再到现代的计算机。此外,自然界中其他生物或系统也时刻需要处理各种计算任务,而它们的解决之道也是纷乱繁杂。怎样才能找出一个能抓住这些计算方法共性的简洁的数学模型呢?如果再考虑到本书要关注的计算效率问题,则建模问题就更加无从下手了。考虑计算效率问题似乎必须小心地选择计算模型,因为即便是孩童也知道一款新的视频游戏是否能“高效运行”将依赖于他的计算机硬件。

令人惊讶的是,一个简洁的计算模型——图灵机足以研究关于计算及其效率的所有问题。将讨论范围仅限于这种计算模型的理由是充分的,因为它能够模拟所有能被物理实现的计算方法而仅在计算效率上略有损失。因此,图灵机“能高效解决”的计算任务至少与其他计算方法能高效解决的计算任务一样多(一个可能的例外是第10章讨论的量子计算机模型,但目前还不清楚它能否被物理实现)。

本章将给出图灵机的形式定义,并研究它的一些基本性质。1.1节概述了图灵机模型及其基本性质。该小节还为普通读者概述了1.2节至1.5节的结论,以帮助这些读者跳过图灵机模型杂乱的细节而直接从1.6节开始进入复杂性理论。

由于复杂性理论 “complexity”一词译做“复杂性”或“复杂度”。当比较抽象地论及“complexity”时译作“复杂性”,当用具体函数论及“complexity”的高低时,译作“复杂度”。关注的是计算效率,因此1.6节给出了本书最重要的几个定义之一,亦即复杂性类P的定义,它从数学上刻画了由所有能被高效求解的判定问题构成的集合。1.6节还就下面的问题展开了一些讨论:类P是否真的刻画了“高效计算”这一非正式概念的本质。该小节还表明了图灵机的定义是如何贯穿全书的;同时还指出,类P是定义很多其他模型的出发点,这些模型包括非确定型图灵机、概率型图灵机、量子图灵机、布尔线路、并行计算机、判定树和通信游戏,其中有些模型用于研究物理计算的有争议的实现模式,而另一些则主要用于深入理解图灵机计算的本质。

1.1 计算的建模:你真正需要了解的内容

形式地讨论图灵机将不可避免地遇到一些单调乏味的概念。我们先概述这些直觉概念,以便普通读者可以跳过正式的讨论而直接进入从1.6节开始的复杂性理论。当他们在阅读后续章节的过程中偶尔遇到确实需要图灵机模型的细节时,可以随时回头阅读跳过的小节。

千百年来,“计算”这个词曾一直被理解为将机械的规则作用于操作数上,其中完成操作的人或机器允许使用演草纸来记录中间结果。图灵机是这种直觉概念的具体实现。1.2.1节表明,图灵机等价于任何一种现代程序设计语言——除了对内存大小没有限制之外。

下面,我们按照本章开头所引用的图灵的话非正式地描述图灵机模型。令f是一个以位串(即{0,1}中的成员)为输入而以0或1为输出的函数。计算f的一个算法是一组机械的规则,根据这组规则我们可以为任意输入x∈{0,1}计算函数值f(x)。所采用的计算规则是固定不变的(即同一组规则必须适用于所有输入),尽管其中每条规则被使用的次数是任意的。每条规则将用到如下定义的一个或多个“基本”操作:

1.从输入中读取一个位;

2.从算法使用的演草纸或工作空间中读取一个位(也可能是某个更大的字母表中的一个符号,例如集合{0,…,9}中的一个十进制位)。

根据读取的值,

1.在草稿纸上写出一个位或符号;

2.要么停机并输出0或1,要么重新选择下一步要执行的计算规则。

最后,图灵机的运行时间指的是上述基本操作被执行的次数。我们采用渐进术语描述运行时间。因此,如果图灵机在长度为n的输入上至多执行T(n)个基本操作,则称该图灵机的运行时间为T(n)。

下面列举图灵机模型的一些简单事实。

4.简单地利用前面两个事实可以证明,存在不能被任何图灵机计算的函数,见1.5节。不可计算性与著名的哥德尔不完全定理关系密切,见1.5.2节。

时间: 2024-09-13 22:11:07

《计算复杂性:现代方法》——第一部分 基本复杂性类 第1章 计算模型——为什么模型选择无关紧要 1.1 计算的建模:你真正需要了解的内容的相关文章

《Adobe After Effects CS6完全剖析》——第一部分 工作基础 第1章 After Effects 中的合成 合成基础

第一部分 工作基础 第1章 After Effects 中的合成 本书是介绍有关使用Adobe After Effects创建视觉特效的内容的,Adobe After Effects是世界上应用最广泛的合成应用程序.它可以帮助你使用来自异种源的元素创建令人信服的.梦幻般的运动影像,并且可以让你尽可能地省事.本书的第一部分提供了一种快速学习的方法(针对初学者),或者让你复习一下After Effects工作流程方面的知识(针对已经是After Effects艺术家的人). 有效的视觉特效合成将使用

《Python语言程序设计》——第一部分 程序设计基础 第1章计算机、程序和Python概述1.1 引言

第一部分 程序设计基础 第1章 计算机.程序和Python概述学习目标 演示对计算机硬件.程序和操作系统的基本理解(第1.2-1.4节). 描述Python的历史(第1.5节). 解释Python程序的基本语法(第1.6节). 编写和运行一个简单的Python程序(第1.6节). 解释恰当的程序设计风格和文档的重要性,并提供相应的实例(第1.7节). 解释语法错误.运行时错误和逻辑错误之间的区别(第1.8节). 使用Turtle创建一个基本的图形程序(第1.9节). 1.1 引言 关键点:本书的

【MyBatis框架】Mybatis开发dao方法第一部分

下面来讨论mybatis开发Dao的方法 先来说一下基本架构流程中使用到的几个类 1.SqlSession使用范围 1.1SqlSessionFactoryBuilder  通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory 将SqlSessionFactoryBuilder当成一个工具类使用即可,不需要使用单例管理SqlSessionFactoryBuilder. 在需要创建SqlSessionFactory时候,只需要new一次SqlSessi

《Python参考手册(第4版•修订版)》——第一部分 Python语言 第1章 Python简介 1.1 运行Python

第一部分 Python语言 本部分内容 第1章 Python简介 第2章 词汇和语法约定 第3章 类型与对象 第4章 运算符与表达式 第5章 程序结构与控制流 第6章 函数与函数编程 第7章 类与面向对象编程 第8章 模块.包与分发 第9章 输入与输出 第10章 执行环境 第11章 测试.调试.探查与调优 第1章 Python简介 本章将快速介绍Python这门语言,目标是在阐明Python的大部分基本特性的同时,又不会太过纠缠于特殊的规则或细节.为此,本章简要讲述一些基本概念,如变量.表达式.

《数字短片创作(修订版)》——第一部分 剧本创作 第1章 数字短片创意技法 剧本创作的构思

第一部分 剧本创作 第1章 数字短片创意技法 第2章 创造独特的角色.主题和视觉隐喻 第3章 设置情节点 第4章 设计场景.冲突及短片的脚本写作 第1章 数字短片创意技法 你即将踏上剧本创作的旅程.本书前4章主要是帮助你创作出感情丰富的视觉故事. 剧本创作的构思 剧本创作就像修建一栋高楼,它并非突发性创作灵感的魔幻堆积.剧本是制作电影的蓝图,好的剧本是有深刻意义的,并且逐层建立的.在本书的前4章里会一一介绍剧本创作的技法. 省时法则 短片就意味着简短.在美国,短片长度不超过30分钟.然而在欧洲,

《我的视频我做主:Premiere Pro CS5实战精粹》——第一部分 基础篇 第1章 非线性剪辑基础 1.1 认识非线性剪辑

第一部分 基础篇 主要讲解了Premiere Pro CS5视频剪辑过程中所使用的基本方法和主要操作流程,使即便没有软件操作基础的读者也能够对软件有全面.概括性地了解. 第1章 非线性剪辑基础 第2章 海景风光片的制作 第3章 为海景风光片添加声音 第4章 海景风光片的视频输出 第1章 非线性剪辑基础 本章是非线性剪辑的基础章节,详细介绍了非线性剪辑技术以及视频编辑基础知识,如高清.标清.帧率.像素宽高比等概念.同时本章还是Premiere的入门章节,对Adobe Premiere Pro CS

《数据库技术原理与应用教程(第2版)》——第一篇 基础篇 第1章 数据、数据管理与数据处理 1.1 概述

第一篇 基础篇 数据库技术是计算机学科中的一门重要分支,它已有五十余年历史并已成为一门完整的学科,其主要内容包括基础理论.基本操作及开发应用等. 数据库技术的基础理论部分是构成该学科的基石,它给出了该学科的抽象的.全局的研究结果并对整个学科起指导性作用. 在本书中,基础部分由两方面内容组成,它们是数据库技术的一般性理论和关系数据库技术的理论. 1.数据库技术的一般性理论 第1~3章介绍数据库技术的一般性理论.其中第1章介绍有关数据.数据管理与数据处理的一般性概念:第2章介绍数据库技术中的基础知识

《Python极客项目编程 》——第一部分 热身运动 第1章 解析iTunes播放列表 1.1 iTunes播放列表文件剖析

第一部分 热身运动 "在初学者的头脑中有很多可能性, 在专家的头脑中,可能性很少." --铃木俊隆 第1章 解析iTunes播放列表 我们的Python探险始于一个简单的项目,该项目在iTunes播放列表文件中查找重复的乐曲音轨,并绘制各种统计数据,如音轨长度和评分.你可以从查看iTunes播放列表格式开始,然后学习如何用Python提取这些文件的信息.为了绘制这些数据,要用到matplotlib库. 在这个项目中,我们将学习以下主题: XML和属性列表(p-list)文件: Pyth

《Python数据挖掘:概念、方法与实践》一 第1章 扩展你的数据挖掘工具箱

 本节书摘来自华章出版社<Python数据挖掘:概念.方法与实践>一书中的第1章,第1.1节,作者[美] 梅甘·斯夸尔(Megan Squire),更多章节内容可以访问"华章计算机"公众号查看. 第1章 扩展你的数据挖掘工具箱 面对感官信息时,人类自然想要寻找模式,对其进行区别.分类和预测.这种寻找周围模式的过程是人类的基本活动,人类的大脑对此很擅长.利用这种技能,我们的祖先更好地掌握了狩猎.聚会.烹饪和组织知识.因此,人类最早计算机化的任务是模式识别和模式预测也就不足为奇