Hard Problems简介

news2025/1/21 5:59:50

1. 引言

computational complexity的核心问题在于:

  • 计算机容易实现什么?计算机几乎不可能实现什么?

某hard problem从根本上有多困难?这是计算机科学家的基本任务,他们希望将问题分类为所谓的“complexity classes”。这些“complexity classes”中包含所有计算问题,这些计算问问题需要少于一定数量的计算资源——如时间或内存。
根据“complexity classes”,可将Hard Problems分为如下层级结构:
在这里插入图片描述
其中某类包含了其它所有hard problems,以及某些hard problems需要额外的计算资源。

举个简单例子,对于大数123,456,789,001,提2个问题:

  • 问题1:该数是否为素数?即只能被1和其自身整除:计算机科学家可使用快速算法来解决该问题——算法不会因为数字变得任意大而陷入困境。
  • 问题2:该数的素数因子有哪些?除非使用量子计算机,现在没有快速算法来解决该问题。

即,从计算机科学家的角度来看,这2个问题分属与不同的complexity classes。

现存有多种不同的complexity classes,但大多数情况下,研究人员还不能证明某类class与其他类的绝对不同之处。证明这些类型的分类区别是该领域最困难、最重要的公开问题之一。

complexity classes之间的差异可能是微妙的,也可能是明显的,保持类的straight(正统性)是一项挑战。出于这个原因,本文重点关注七个最基本的complexity classes:

  • 1)P
  • 2)BPP
  • 3)BQP
  • 4)NP
  • 5)PH
  • 6)PSPACE
  • 7)EXPTIME

2. P

P表示:

  • Polynomial time。

所谓P hard problem,是指:

  • 经典(即非量子)计算机易于解决的所有问题。

准确来说,是指:

  • P中的算法必须在最多 n c n^c nc time时限内停止运行并给出正确答案,其中 n n n为输入长度, c c c为某常量值。

经典的P hard problem有:

  • 某数字是素数么?
  • 2点之间的最短路径?

当前研究人员想知道的是:

  • P与NP是否等价?若等价,它将颠覆计算机科学,并使大多数密码学在一夜之间失效。(几乎没有人认为是这样。)

3. NP

NP表示:

  • Nondeterministic Polynomial time

所谓NP hard problem,是指:

  • 一旦给出问题的解决方案,可在经典计算机上快速验证的所有问题。

准确来说,是指:

  • 若某问题为NP Problem,已知该问题答案为“yes”,则存在简短proof来证明该答案是正确的。若输入为string X,需判断其答案为“yes”,相应的简短proof为string Y,可使用Y在polynomial time内验证其答案确实是“yes”。(Y有时称为“short witness”——所有NP Problem都有可快速验证的“short witness”。)

经典的NP hard problem有:

  • 成团问题。想象一个有边和节点的图——如,该图中,节点是Facebook上的个人,若两个节点是“朋友”,则通过一条边连接。团是该图的一个子集,团中所有人都是其他人的朋友。有人可能会问在图中:是否有20人的团?50人?100?找到这样的团是一个“NP-complete”问题,即意味着它是NP中任何问题中复杂度最高的。但如果给出一个潜在的答案——50个节点的子集,可能形成也可能不形成团——则很容易检查。
  • 旅行推销员问题。给定一个城市列表,以及 两两城市间的举例,有没有一种方法可以在不到一定英里数的情况下穿过所有城市?如,一个旅行推销员能在不到11000英里的范围内穿过美国的各州首府吗?

当前研究人员想知道的是:

  • P与NP是否等价?计算机科学家离解决该问题还差得很远。

4. PH

PH代表:Polynomial Hierarchy

所谓PH hard problem,是指:

  • 为NP的泛化。其包含了所有NP问题,并增加了额外的complexity layer。

准确来说,是指:

  • PH中包含一些具有alternating “quantifiers”(交替量词)的问题,这些“quantifiers”使问题更加复杂。alternating “quantifiers”问题举例:给定X,是否存在Y,对于每个Z都存在W,使得R发生?一个问题包含的量词越多,它就越复杂,其多项式层次也越高。

经典的PH问题为:

  • 判断是否存在50人团而不存在51人团。

当前研究人员想知道的是:

  • 计算机科学家还不能证明PH不同于P。该问题与"P是否等于NP"等价,应为,若(不幸地)P=NP,则所有的PH将塌缩为P,即P=PH。

5. PSPACE

PSPACE表示:

  • Polynomial Space。

所谓PSPACE hard problem,是指:

  • 能以合理内存量来解决的所有问题。

准确来说,是指:

  • PSPACE中不关心time,仅关心运行某算法所需的内存量。计算机科学家已证明了PSPACE中包含了PH,进而包含了NP,再进而包含了P。

经典PSPACE问题有:

  • 每个P问题、NP问题和PH问题,均为PSPACE问题。

当前研究人员想知道的是:

  • P与PSPACE是否存在不同之处?

6. BQP

BQP表示:

  • Bounded-error Quantum Polynomial time

所谓BQP难题,是指:

  • 量子计算机易于解决的所有问题。

准确来说,是指:

  • 量子计算机可在polynomial time时限内解决的所有问题。

经典BQP难题有:

  • 识别某正数的素数因子。

当前研究人员想知道的是:

  • 计算机科学家已证明BQP包含在PSAPCE中,且BQP中包含了P。但不确定BQP是否在NP中,但计算机科学家坚信NP与BQP为incomparable:即有些问题是NP而不是BQP,反之亦然。

7. EXPTIME

EXPTIME表示:

  • Exponential Time

所谓EXPTIME难题,是指:

  • 经典计算机可在exponential amount of time时限内解决的所有问题。

准确来说,是指:

  • EXPTIME难题中包含了之前所有种类——P、NP、PH、PSPACE、BQP。研究人员已证明EXPTIME不同于P,因为已找到了属于EXPTIME的问题,其不属于P难题。

经典EXPTIME难题有:

  • 通常的棋类和checker游戏都属于EXPTIME。若棋盘可为任意size,则判断某棋手在特定棋盘位置是否有优势,就是EXPTIME难题。

当前研究人员想知道的是:

  • 计算机科学家希望能够证明PSPACE不包含EXPTIME。他们认为EXPTIME中存在的问题不在PSPACE中,因为有时在EXPTIME中需要大量内存来解决问题。计算机科学家知道如何分离EXPTIME和P。

8. BPP

BPP表示:

  • Bounded-error Probabilistic Polynomial time

所谓BPP难题,是指:

  • 可由,包含随机数的算法,快速解决的问题。

准确来说:

  • BPP与P完全相同,但不同之处在于该算法允许包括决策随机化的步骤。BPP中的算法只需要给出概率接近1的正确答案。

经典BPP难题有:

  • 有2个不同的共识,每个都生成一个具有很多变量的多项式。这2个公式是否计算的是完全相同的多项式?——称为polynomial identity testing problem。

当前研究人员想知道的是:

  • 计算机科学家想知道BPP=P是否成立。若成立,则意味着每个随机化算法都可以去随机化。科学家认为事实就是这样——对于每一个存在有效随机算法的问题,都有一个有效的确定性算法——但他们无法证明这一点。

参考资料

[1] Kevin Hartnett 2018年在Quanta Magazine上的博客 A Short Guide to Hard Problems

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/943252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

美团笔试题之合并 K 个升序链表

文章目录 题目详情分析暴力求解两两合并链表 Java完整实现代码总结 题目详情 23 美团笔试真题 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 分析 暴力求解 将所有数值存入一个数组&#xff…

深入解析G1垃圾回收器

本文已收录至GitHub,推荐阅读 👉 Java随想录 微信公众号:Java随想录 原创不易,注重版权。转载请注明原作者和原文链接 文章目录 基于Region的堆内存布局可预测的停顿时间模型跨Region引用对象对象引用关系改变运作过程CMS VS G1 …

部队物资仓库管理系统|DW-S301是一套成熟系统

根据军队物资装备管理的实际需求,集驰电子设计了部队物资仓库管理系统(智装备:DW-S301)。 随着军事装备物资的使用频率与消耗数量日益增加,部队对于仓库保障工作的要求越来越高,同时也带来仓库管理工作任务…

电子仓库预测水浸事件,他怎么做到的?

仓库环境中水浸事件可能导致严重的损失,不仅对货物造成损害,还可能影响设备的正常运行甚至威胁安全。 因此,为了应对这一挑战,引入一套完善的仓库水浸监控系统成为了不可或缺的措施。 客户案例 广东某电子公司是一家领先的电子设…

kafka调优配置

Kafka生产者核心参数配置 来源于尚硅谷 参数名称描述bootstrap.servers生产者连接集群所需的broker地址清单。例如hadoop102:9092,hadoop103:9092,hadoop104:9092,可以设置1个或者多个,中间用逗号隔开。注意这里并非需要所有的broker地址,因…

bpmnjs Properties-panel拓展(ExtensionElements拓展篇)

接上文bpmnjs Properties-panel拓展&#xff08;属性设置篇&#xff09;&#xff0c;继续记录下第三个拓展需求的实现。 需求简述 在ExclusiveGateway标签的extensionElements标签中增加子标签<activiti:executionListener>子标签&#xff0c;可增加复数子标签。子标签…

vLLM 实战

引言 随着人工智能技术的飞速发展&#xff0c;以及今年以来 ChatGPT 的爆火&#xff0c;大语言模型 (Large Language Model, LLM) 受到越来越多的关注。 为了实现 LLM 部署时的推理优化&#xff0c;全球各地有众多团队做出了各种优化框架。本文以加州大学伯克利分校开发的 vLLM…

R语言之基础绘图

文章和代码已经归档至【Github仓库&#xff1a;https://github.com/timerring/dive-into-AI 】或者公众号【AIShareLab】回复 R语言 也可获取。 文章目录 1. 函数 plot( )2.直方图和密度曲线图3.条形图4. 饼图5. 箱线图和小提琴图6. 克利夫兰点图7. 导出图形小结 R 的基础绘图系…

大模型开发05:PDF 翻译工具开发实战

大模型开发实战05:PDF 翻译工具开发实战 PDF-Translator 机器翻译是最广泛和基础的 NLP 任务 PDF-Translator PDF 翻译器是一个使用 AI 大模型技术将英文 PDF 书籍翻译成中文的工具。这个工具使用了大型语言模型 (LLMs),如 ChatGLM 和 OpenAI 的 GPT-3 以及 GPT-3.5 Turbo 来…

【通用消息通知服务】0x4 - 目前进展 阶段复盘

【通用消息通知服务】0x4 - 阶段复盘 达成 基本的API已经写完✍️了(消息查看发送, 模板crud,终端crud,发送渠道crud,计划crud,计划执行查看)拆分server, executor, planner三个入口, 方便针对性水平扩展整体架构初步形成&#xff0c;通过队列实现了事件驱动模型和消息订阅发…

Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【六】

&#x1f600;前言 本篇博文是关于Spring Boot(Vue3ElementPlusAxiosMyBatisPlusSpring Boot 前后端分离)【六】&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章…

Apache RocketMQ 5.0 消息进阶:如何支撑复杂的业务消息场景?

作者&#xff1a;隆基 一致性 首先来看 RocketMQ 的第一个特性-事务消息&#xff0c;事务消息是 RocketMQ 与一致性相关的特性&#xff0c;也是 RocketMQ 有别于其他消息队列的最具区分度的特性。 以大规模电商系统为例&#xff0c;付款成功后会在交易系统中订单数据库将订单…

三---开关稳压器

通过控制系统反馈&#xff0c;当电压上升时通过反馈降低&#xff0c;当电压下降时通过反馈升高&#xff1b;形成一个控制环路&#xff1b;控制电路&#xff1a;PWM&#xff08;脉宽调制&#xff09;&#xff0c;PFM&#xff08;频率控制方式&#xff09;&#xff0c;移相控制方…

2023开学季有哪些电容笔值得买?平价电容笔推荐

在日常生活中&#xff0c;这支电容笔的使用范围很广&#xff0c;不管是和电脑、IPAD、手机一起使用&#xff0c;都可以说是一种很好的办公工具。首先要弄清楚自己的需求&#xff0c;再根据自己的需求来挑选合适的商品。苹果的Pencil有一种独特的重力压感&#xff0c;让人在上面…

【MTK平台】根据kernel log分析wifi scan的时候流程

一 概要: 本文主要讲解根据kernel log分析下 当前路径下(vendor/mediatek/kernel_modules/connectivity/wlan/core/gen4m/)wifi scan的时候代码流程 二. Log分析: 先看Log: 2.1)在Framework层WifiManager.java 方法中,做了一个标记,可以精准的确认时间 这段log可以…

基于Qt5开发图形界面——WiringPi调用Linux单板电脑IO

Qt5——WiringPi Qt5WiringPi示例教程 Qt5 Qt是一种跨平台的应用程序开发框架。它被广泛应用于图形用户界面&#xff08;GUI&#xff09;开发&#xff0c;可以用于构建桌面应用程序、移动应用程序和嵌入式应用程序。Qt提供了丰富的功能和工具&#xff0c;使开发人员可以快速、高…

企业内部搭建wiki的意义大吗?到底有何价值体现?

内部Wiki也叫做企业Wiki&#xff0c;是员工可以存储、共享和协作创作的地方&#xff0c;将企业内部员工知识共享集中到一个地方&#xff0c;并且相关内容与其他团队成员协作完成&#xff0c;它可以包含企业内部的各种知识&#xff0c;从操作指南到培训手册&#xff0c;再到客户…

ipad有必要用手写笔吗?开学季实惠的电容笔推荐

iPad平板的机型经过了一次又一次的升级&#xff0c;增加了更多的功能&#xff0c;如今已有了与笔记本电脑匹敌的能力。而到了如今&#xff0c;科技的发展&#xff0c;iPad也从一个娱乐工具&#xff0c;变成了一个集学习、画画、办公于一体的强大工具。为了提高生产效率&#xf…

Linux内核学习(十二)—— 页高速缓存和页回写(基于Linux 2.6内核)

目录 一、缓存手段 二、Linux 页高速缓存 三、flusher 线程 Linux 内核实现了一个被叫做页高速缓存&#xff08;page cache&#xff09;的磁盘缓存&#xff0c;它主要用来减少对磁盘的 I/O 操作。它是通过把磁盘中的数据缓存到内存中&#xff0c;把对磁盘的访问变为对物理内…

比较器DATESHEET参数

失调电压的理解 Input Offset Voltage 理想情况下&#xff0c;如果运算放大器的两个输入电压完全相同&#xff0c;则输出应为0V。但运放内部两输入支路无法做到完全平衡&#xff0c;导致输出永远不会是0&#xff0c;具体见图1所示。此时保持放大器负输入端不变&#xff0c;而在…