\quad某些计算问题在理论上可解,但是需要耗费大量时间和空间,这样的问题称为难解的,比如NPC问题。

一、层次定理

\quad直观感觉:给图灵机更多的时间或空间就能扩大它所能求解的问题类。例如图灵机在O(n3)O(n^3)O(n3)时间内能比其在O(n2)O(n^2)O(n2)时间内判定更多的语言。层次定理可以证明其正确性:时空界限较大的类比较小的类包含更多的语言。

空间层次定理

\quad对于任何空间可构造函数fff,存在语言A,在空间O(f(n))O(f(n))O(f(n))内可判定,但不能在o(f(n))o(f(n))o(f(n))内判定。
推论1:对于任意两个函数f1,f2f_1,f_2f1​,f2​,其中f1(n)=o(f2(n))f_1(n)=o(f_2(n))f1​(n)=o(f2​(n)),f2f_2f2​是空间可构造的,则SPACE(f1(n))⊊SPACE(f2(n))SPACE(f_1(n))\subsetneq SPACE(f_2(n))SPACE(f1​(n))⊊SPACE(f2​(n))。
推论2:对于任意两个实数0≤ϵ1<ϵ20\le \epsilon_1 < \epsilon_20≤ϵ1​<ϵ2​,有SPACE(nϵ1)⊊SPACE(nϵ2)SPACE(n^{\epsilon_1})\subsetneq SPACE(n^{\epsilon_2})SPACE(nϵ1​)⊊SPACE(nϵ2​)。
推论3:NL⊊PSPACENL \subsetneq PSPACENL⊊PSPACE。
推论4:PSAPCE⊊EXPSPACEPSAPCE \subsetneq EXPSPACEPSAPCE⊊EXPSPACE

时间层次定理

\quad对于任何时间可构造函数ttt,存在语言A,在时间O(t(n))O(t(n))O(t(n))内可判定,但在时间o(t(n)/logt(n))o(t(n)/logt(n))o(t(n)/logt(n))内不可判定。
推论1:对于任意两个函数t1,t2t_1,t_2t1​,t2​,其中t1(n)=o(t2(n)/logt2(n))t_1(n)=o(t_2(n)/logt_2(n))t1​(n)=o(t2​(n)/logt2​(n)),t2t_2t2​是时间可构造的,则TIME(t1(n))⊊(t2(n))TIME(t_1(n))\subsetneq (t_2(n))TIME(t1​(n))⊊(t2​(n))。
推论2:对于任意两个实数0≤ϵ1<ϵ20\le \epsilon_1 < \epsilon_20≤ϵ1​<ϵ2​,有TIME(nϵ1)⊊TIME(nϵ2)TIME(n^{\epsilon_1})\subsetneq TIME(n^{\epsilon_2})TIME(nϵ1​)⊊TIME(nϵ2​)。
推论3:P⊊EXTIMEP \subsetneq EXTIMEP⊊EXTIME

NOTE:广义正则表达式(EQPEX↑EQ_{PEX\uparrow}EQPEX↑​)不能在指数空间内判定,这类语言称为EXPSPACEEXPSPACEEXPSPACE完全的。

二、相对化

\quadEQPEX↑EQ_{PEX\uparrow}EQPEX↑​的难解性证明依赖于对角化法。接下来的内容介绍相对化法,它给出证据排除了用对角化法解决P与NP问题的可能性。
\quad谕示图灵机(oracle TM)MAM^AMA:在图灵机上增加一个功能,能在一步之内判断一个字符串是否属于语言A。PAP^APA是采用多项式时间确定型oracle TM可判定的语言类,NPANP^ANPA是采用多项式时间非确定型oracle TM可判定的语言类。
\quadNP⊆PSAT,CoNP⊆PSATNP \subseteq P^{SAT},CoNP\subseteq P^{SAT}NP⊆PSAT,CoNP⊆PSAT。因此可见PSATP^{SAT}PSAT包含不属于P的语言,NPSATNP^{SAT}NPSAT显然也包含不属于NP的语言。
\quad对角化方法的局限:该定理证明存在谕示A和B,使得可以证明:

  • 1.存在谕示A使得PA≠NPAP^A\neq NP^APA​=NPA
  • 2.存在谕示B使得PB=NPBP^B = NP^BPB=NPB
    如果能证明上述条件同时成立,则说明对角化方法不足以分开这两个类,不太可能用对角化方法解决P与NP问题。

\quad相对化方法表明:为了解决P与NP问题,必须分析计算,而不仅仅是模拟它们。

三、电路复杂性

\quad可以用数字电路的理论模型(布尔电路)来模拟图灵机这样的理论模型。建立图灵机与布尔电路之间的联系目的如下:

  • 1.研究者相信电路提供了方便的计算模型,用以处理P与NP问题
  • 2.电路证明了SAT属于NPC问题

\quad定义:一个布尔电路是由导线和连接的门和输入的集合,其中不允许出现循环。有三种门:与或非门。电路的规模是它所包含的门的数目,电路的深度是由输入变量到输出门的最长路径的长度。当两个电路有相同的输入变量,并且对于任何输入输出都相同时称这两个电路等价。对于等价的电路,其中规模最小的称为规模极小电路,深度最小的称为深度极小电路。
\quad定义:一个电路簇C是电路的一个无穷列表(C0,C1,⋯)(C_0,C_1,\cdots)(C0​,C1​,⋯),其中CnC_nCn​有n个输入变量。如果对于每个字符串w,(w∈A)w,(w\in A)w,(w∈A)都有Cn(w)=1C_n(w)=1Cn​(w)=1,称C在{0,1}\{0,1\}{0,1}序列上判定A。
\quad语言的电路复杂度是指该语言的极小电路簇的规模复杂度,语言的电路深度复杂度是指该语言的极小电路簇的深度复杂度。
\quad定理:语言的电路复杂度与它的时间复杂度有关,任何时间复杂度小的语言其电路复杂度也小。若A∈TIME(t(n)),t(n)≥nA\in TIME(t(n)),t(n)\geq nA∈TIME(t(n)),t(n)≥n,则A的电路复杂度为O(t2(n))O(t^2(n))O(t2(n))。该定理提供了一条证明P≠NPP\neq NPP​=NP的途径,以此来证明NP中某个语言的电路复杂度超过多项式。
\quad如果输入某一赋值使电路输出为1,称布尔电路是可满足的。电路可满足性问题就是判定一个电路是否可满足的。令CIRCUIT−SAT={<C>∣C是可满足的布尔电路}CIRCUIT-SAT=\{<C>|C是可满足的布尔电路\}CIRCUIT−SAT={<C>∣C是可满足的布尔电路}.
\quad定理:CIRCUIT−SAT和3SATCIRCUIT-SAT和3SATCIRCUIT−SAT和3SAT都是NPC的。

计算复杂性第九章——难解性相关推荐

  1. Tensorflow 2.x(keras)源码详解之第九章:模型训练和预测的三种方法(fittf.GradientTapetrain_steptf.data)

      大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...

  2. 总结:TCP/IP 详解(卷1: 协议)--第九章 广播和本地组播(IGMP 和 MLD)

    第九章  广播和本地组播(IGMP 和 MLD) 一般来说,广播是指向网络上的所有节点发送流量.在 TCP/IP 的背景下,广播是指向网络或子网中的所有主机发送一个数据分组,通常是本地连接的网络.组播 ...

  3. 第九章 思科竞争谋略

    第九章 思科竞争谋略 有 的人经常把自己的成功归结于运气,这种人是很聪明的,正如培根所分析的,这样可以减少别人对自己的嫉妒.在这一点上,培根理解得过于肤浅,对于中等水平的 人来说,可能是这种情况,可是 ...

  4. 《Linux 高级路由与流量控制手册(2012)》第九章

    更多奇技淫巧欢迎订阅博客:https://fuckcloudnative.io 译者序 本文内容来自 Linux Advanced Routing & Traffic Control HOWT ...

  5. 相对论通俗演义(1-10) 第九章

    第九章 黎曼曲率杂谈 (1) 爱因斯坦方程横空出世了,求解这个方程变的很重要.爱因斯坦的方程是偏微分方程,它是几何和分析之间的桥梁,这个方程里面,最实质的内容就是黎曼曲率.需要求解的是度量函数,但求解 ...

  6. Android群英传笔记——第九章:Android系统信息和安全机制

    Android群英传笔记--第九章:Android系统信息和安全机制 本书也正式的进入尾声了,在android的世界了,不同的软件,硬件信息就像一个国家的经济水平,军事水平,不同的配置参数,代表着一个 ...

  7. 中国式危机公关9加1策略(第九章 供应链优先策略)

    第九章 供应链优先策略 第一节 供应链优先策略的应用背景 供应链,本来是作为物流领域的一个专有术语,现在被广泛用在了企业管理上.而此处所用供应链,意在强调危机管理实际上是个环环相扣的过程,如何织造这个 ...

  8. 《Go语言圣经》学习笔记 第九章 基于共享变量的并发

    <Go语言圣经>学习笔记 第九章 基于共享变量的并发 目录 竞争条件 sync.Mutex互斥锁 syn.RWMutex读写锁 内存同步 syn.Once初始化 竞争条件检测 示例:并发的 ...

  9. 第九章 魔法方法、特性和迭代器

    第九章 魔法方法.特性和迭代器 构造函数 构造函数(constructor),它其实就是初始化方法,只是命名为__init__. 构造函数不同于普通方法的地方在于,将在对象创建后自动调用它们. 在Py ...

最新文章

  1. Android开发者指南(15) —— Managing Virtual Devices
  2. linux脚本多分支if语句,shell脚本基础应用(二)if单分支,双分支,多分支语句...
  3. Android首次启动时间长优化之预编译提取Odex
  4. 阿里巴巴拿下奥运顶级赞助商
  5. iqueryable怎么进行操作_钢结构施工要点有哪些?怎么进行操作?
  6. 如何快速掌握一门新技术/语言/框架…
  7. scala怎么做幂运算_Scala幂(幂)函数示例
  8. 3dvary灯光材质为什么不亮_详解CG灯光渲染师的职业技能
  9. 【Elasticsearch】Elasticsearch之别名
  10. linux vi编辑撤销,vi撤销命令(u和U),撤销上一次的操作
  11. MATLAB语言初步学习(四)
  12. 洛谷 P1573 栈的操作
  13. Firefox浏览器如何安装Alexa工具条
  14. 微信表情包 php,教你用PS给你的室友做一套动态微信豪华表情包
  15. python中如何将矩阵合并并多一个维度
  16. 计算机控制/SLAM/ROS2云班课等详细说明2019-2020-2学期
  17. 绿色节能环保 开启低碳生活
  18. 人工智能课程实训方案
  19. Chino with Rewrite
  20. 利用声网进行屏幕共享及关闭共享网络状态检测

热门文章

  1. 020 怎样才可以把py文件前面的小箭头去掉
  2. 移动宽带套餐介绍_移动宽带一年多少钱 2018移动宽带套餐介绍
  3. 考研日语线上笔记(八):完型易混易考知识点梳理篇
  4. 【eCPRI】(1)基本概念
  5. NX二次开发-UFUN获取工程图所有视图tag UF_DRAW_ask_views
  6. Camera硬件结构组成(三)
  7. 十年电影票房数据爬取与分析 | 免费数据教程
  8. XP系统outlook选什么服务器,xp系统安装outlook的修复教程
  9. ply补全为立方体_PLY文件格式及其解析 | 学步园
  10. 金链盟成员纷纷“自立山头”,中国联盟式区块链开源平台路在何方