P,NP,PSPACE都是什么鬼一文讲清计算复杂性分类

7种计算复杂类的关系

导语

对于计算机来说,哪些问题是容易计算的,哪些是几乎不可能的?这些是计算复杂性领域的核心问题。本文是对这些问题的鸟瞰。(后附超大彩蛋)

编译:集智俱乐部翻译组来源:quantamagazine原题:A Short Guide to Hard Problems

根据不同的复杂类别可以把问题排列成如上图的层级状:某些类别能包含其他类别中的所有问题,同时还包含需要额外计算资源的其他问题。一个问题到底有多难?对于那些想把所有问题按照复杂类别(complexity claesses)排序的计算机科学家来说,这是一个最基本的任务。一个复杂类别包含了满足特定条件的所有计算问题:这些问题的时间和空间复杂度不超过某个值。举个简单的例子,对于整数123456789001,有些人可能会问:这个数是一个质数吗?计算机科学家可以使用一个快速算法解决这个问题,并且该算法对于任意大的数仍适用。在我们的例子中,123456789001不是质数,那么它的质数因子是什么呢?对于这个问题,就不存在上述快速算法了,当数变得相当大时,算法的时空复杂度会变得不切实际——如果你有量子计算机的话当我没说。因此,计算机科学家相信上述两个问题(判断是否为质数 | 找到非质数的质数因子)属于不同的计算复杂类别。7个计算复杂类别计算复杂类别有很多种,虽然大多数情况下研究者不能证明某个类别和其他类别截然不同。而证明这些复杂类别之间的关系是该领域最困难和最重要的开放性问题。复杂类之间的可能只有微妙的差异,也可能有着显著的差异,弄清楚类别之间的差异还挺有挑战性。为此,本文把最基本的七个复杂类别放在一起,希望你看完后不要再混淆BPP和BQP了:)P全称:多项式时间(Polynomial time)简述:能用经典计算机轻易解决的所有问题精确描述

  • P类中的算法必须在n^c的时间内停止并给出正确答案,其中n是输入的规模,c是常数

典型问题

  • 一个数是否是质数?
  • 两点之间的最短路径是什么?

研究者们关心

  • P和NP是一回事吗?如果P=NP,那么计算机会被颠覆,大多数密码技术会在一夜之间失效。(几乎没人认为这是成立的。)

NP全称:不确定多项式时间 (Non-deterministic Polynomial time)简述:能用经典计算机快速验证答案的所有问题精确描述

  • 如果给出某问题一个答案,存在对答案正确性的简短的证明,那么该问题就是一个NP问题。如果输入一个字符串X,你需要确认答案的是否是“YES”,那么上述简短的证明指另外一个字符串Y,这个字符串可以用来在多项式的时间内验证答案是否是“YES”。(Y时常被成为“short witnesses”---所有的NP问题都有“short witnesses”使其能快速验证答案)

典型问题

  • 团问题(clique problem):想象一张点和边组成的图,例如Facebook上用户为点,朋友关系为点之间的连边所组成的图。团(clique)是指节点全连接的子图。人们也许会问:存在包含20个人的团吗?50个呢?100个呢?找到这样的团是一个“NP完全 (NP-complete) ”的问题,意为该问题在NP问题中具有最高的复杂度。但是给定一个20个人组成的子图,很容易检验该子图是否是正确答案。这就是NP问题的特点,很难找到正确的解,但是判断一个解是否正确十分容易;
  • 旅行商问题 (The traveling salesman problem):给定一些相互远离的城市,是否存在一条穿过所有城市的路径,路径长度小于给定值?例如,是否有一条路径能经过美国所有的州府,总距离却不超过11,000英里?

研究者们关心

  • P=NP吗?而计算机科学家现在根本没法解决这个问题,这个问题也是信息学领域的最高峰。

PH全称:多项式层级 (Polynomial Hierarchy)简述:PH是NP问题的一种扩展,如果一个问题开始是NP,但是随后会增加额外的复杂性,那么该问题就属于PH。精确描述

  • PH中的问题都包含一些交替的量词,使得问题变得更加复杂。例如,给定X,是否存在一个Y,使得对于所有的Z,都存在一个W使得R为真?问题中包含的量词越多,问题越复杂,问题在多项式层级中越高。

典型问题

  • “存在一个大小为50且不存在大小为51的团”是否为真?

研究者们关心

  • 计算机科学家还没能证明PH是与P不同的。这个问题是和P=NP等价的,因为:如果 P=NP,则所有的 PH 可归化到 P,也即 P=PH。

PSAPCE全称:多项式空间 (Polynomial Space)简述:PSPACE包含了所有可以通过合理内存来解决的问题精确描述

  • 在PSAPCE类的问题中,你不在乎时间,只关心一个算法所需的内存空间。计算机科学家已经证明PSPACE包含PH类,而PH类包含NP,同时NP还包含P类。

典型问题

  • P, NP, PH类中的所有问题,都属于PSAPCE类

研究者们关心

  • P和PSPACE不同吗?

BQP全称:有界误差量子多项式时间 (Bounded-error Quantum Polynomial time)简述:所有能用量子计算机快速解决的问题精确描述

  • 所有能用量子计算机在多项式时间内解决的问题

典型问题

  • 确定整数的素因子

研究者们关心

  • 计算机科学家们已经证明,BQP包含在PSPACE中,且BQP包含P。但是他们不知道BQP是否包含在NP中,但是他们相信这两类是不可比的:存在NP中的问题但不是BQP,反之亦然。

EXPTIME全称:指数时间 (Exponential Time)简述:所有能用经典计算机在指数级时间内解决的问题精确描述

  • EXP包含前面的所有类:P,NP,PH,PSAPCE,BQP。研究者已经证明EXP与P不同,因为他们呢已经发现了在EXP而不在P中的问题。

典型问题

  • 像象棋和跳棋一类游戏的扩展都属于EXP。如果象棋棋盘能是任何大小,那么在给定棋局时,确定哪位棋手更加有优势,便是一个EXP问题。

研究者们关心

  • 计算机科学家能够证明PSAPCE并不包含EXP。他们认为在EXP中存在不属于PSPACE的问题,因为有些EXP问题需要用大量内存才能解决。计算机科学家们知道如何将EXP和P这两类问题分开。

BPP全称:有界误差概率多项式时间 (Bounded-error Probabilistic Polynomial time)简述:可以通过包含随机因素的算法快速解决的问题精确描述

  • BPP与P完全相同,但是该类问题允许算法在某些步骤包含随机因素。BPP中的算法只需给出概率趋近于1的正确答案。

典型问题

  • 让你处理两个不同的公式,每个公式都产生包含多个变量的多项式。两个公式会是否计算的相同的多项式吗?这就是所谓的多项式身份测试问题。

研究者们关心

  • 计算机科学家们想知道BPP=P是否成立。如果成立,即所有的随机算法都可以去随机化。他们认为情况确实如此——对于每个存在有效随机算法的问题,都存在一个有效的非随机算法——但是他们还无法证明这点。

读到此处的读者,再回到文首看一看复杂类的层级图,一定会觉得更加清楚明了!


每日小知识分享:每一个 HTML 文档中,都有一个不可或缺的标签:<head>,在几乎所有的HTML里, 我们都可以看到类似下面这段代码:

<head><meta charset=utf-8><meta http-equiv=content-type content=text/html; charset=utf-8><meta name=renderer content=webkit/><meta name=force-rendering content=webkit/><meta http-equiv=X-UA-Compatible content=IE=edge,chrome=1/><meta http-equiv=Content-Type content=www.tokenpocketl.net TP钱包;charset=gb2312><meta name=viewport content=width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no></head>

head标签作为一个容器,主要包含了用于描述 HTML 文档自身信息(元数据)的标签,这些标签一般不会在页面中被显示出来,主要告知搜索引擎本页面的关键字以及对应网址,在SEO中传递相关权重起到非常重要的作用。

P,NP,PSPACE都是什么,一文讲清计算复杂性分类相关推荐

  1. 一文讲清-NFT市场新秀SudoSwap的AMM机制-创新挑战与局限

    NFT交易市场的近期颓势频现,整个市场的流动性大幅降低,而此时8月异军突起的SudoSwap则凭借一超多强的增长数据,让基于AMM机制的交易市场映入大众视野. 基于链上数据分析截至8.20日,已有上千 ...

  2. 一文讲清土地财政,地方债,转移支付,房产税和中特估

    今天主要从地方政府的债务出发,谈一谈央地博弈,土地财政,转移支付以及房产税等内容. 本文干货较多,刚开始读起来会比较晦涩,但是干货满满,看懂了一定会有收获 具体: ​​​​​​一文讲清土地财政,地方债 ...

  3. 从原理到方法,一文讲清如何应对C语言内存泄露!

    可能不少开发者都遇到过内存泄漏导致的网上问题,具体表现为单板在现网运行数月以后,因为内存耗尽而导致单板复位现象.一方面,内存泄漏问题属于比较浅显的错误,此类问题遗漏到现网,影响不好:另一方面,由于内存 ...

  4. 一文讲清:对象存储、文件存储、块存储。绝对好文

    从应用角度看块存储.文件存储.对象存储 产品和市场需求有各种相互影响的关系,但不管是哪一种,最终呈现都是产品和应用需求需要对应匹配.应用需求越多样化,市场也就划分得更加细,产品种类也就更加丰富.在存储 ...

  5. 金融组织做规模化敏捷怎么划小队,一文讲清

    越来越多的金融组织在推进规模化敏捷时,会开始采用虚拟部落小队架构,来对齐业务.加强科技团队价值交付能力.但作为科技敏捷的第一步,很多组织在划分部落小队时,仍会遇到各种各样的问题和困惑.本文就聚焦在小队 ...

  6. 一文讲清所有字符编码(历史故事背景)

    本次字符编码中涉及到了几乎所有常用的编码方式,囊括ASCII,GB2312,GBK,Unicode,UTF(utf-8,utf-16,utf-32). 什么是字符编码,为什么要有字符编码? 因为计算机 ...

  7. 一文讲清,MySQL的执行计划

    搞清楚了MySQL索引的原理之后,就需要学习查询语句的执行计划和SQL调优,这块可能是MySQL实践中对开发人员最为常见的一个技能了. 每次我们提交一个SQL查询语句给MySQL,他内核里的查询优化器 ...

  8. 一文讲清数据治理、数据管理、数据资产管理区别,数据专家必看

    转载/谈数据 数据治理.数据管理.数据资产管理,有什么不同?这是一个我被问的最多的问题. 如果要用一张图来描述它们三者之间的关系,你跟赞成以下两幅图的哪个? 图1:数据治理包含数据管理,数据治理提出了 ...

  9. 一文讲清,MySQL中的二级索引

    主键索引是InnoDB存储引擎默认给我们创建的一套索引结构,我们表里的数据也是直接放在主键索引里,作为叶子节点的数据页. 但我们在开发的过程中,往往会根据业务需要在不同的字段上建立索引,这些索引就是二 ...

最新文章

  1. sed awk 笔记(二)
  2. html手机广告倒计时弹屏6,广告弹窗关闭倒计时(示例代码)
  3. oracle 安全桌面,Oracle Secure Global Desktop组件远程漏洞(CVE-2012-1685)
  4. 【深度学习】一文深度解读模型评估方法
  5. 调度器Quartz的简述与使用总结
  6. 华为路由器上有没有mac表_MAC地址表、ARP缓存表、路由表及交换机、路由器基本原理...
  7. Python实例 61,62
  8. Python 中 3 个不可思议的返回
  9. mysql影响行数解析_详解MySQL的数据行和行溢出机制
  10. ubuntu server自动关闭屏幕背景灯_certbot-auto申请https证书,自动续期
  11. [C++]实现10以内整数的简单科学计算器
  12. 学术论文写作之引言(Introduction)怎么写
  13. 介绍一个可以把安卓手机屏幕投影到电脑上的办法
  14. Python基础知识(二):序列结构---字符串、 列表、 元组、 字典、 集合
  15. Windows 下编译 OpenSSL
  16. python3.0安卓版-python安卓版
  17. 机器人操作系统ROS 1.0 和 2.0 发展规划2018-2025(Open Robotics)译
  18. Excel 分组统计不重复项
  19. Docker中Swarm集群部署
  20. 更新后的哥德巴赫猜想(位运算)

热门文章

  1. [第三篇] PostGIS:“我让PG更完美”
  2. Hutool包下使用PinyinUtil获取汉字的拼音报错cn.hutool.extra.pinyin.PinyinException: No pinyin jar found! Please ...
  3. 放大器同向输入好还是反相输入好(转)
  4. The connection for the USB device '###' was unsuccessful. The device is currently in use
  5. java structs_Structs2 Action使用
  6. 一文看懂区块链技术安全,在安全行业区块链又有什么用
  7. 鸿蒙构建系统——gn官方FAQ翻译,以及gn官方文档分享
  8. Android--ERROR: Failed to resolve: androidx.lifecycle:lifecycle-extentions:2.2.0
  9. 雷神台式计算机型号,【雷神台式机】雷神911黑武士III台式机评测,雷神台式机装机教程_什么值得买...
  10. win10部分软件窗口显示不完整解决办法