首页 > 其他分享 >P 问题和 NP 问题的简单理解

P 问题和 NP 问题的简单理解

时间:2024-03-05 21:12:13浏览次数:21  
标签:验证 可以 Hard 问题 很快 理解 NP

P/NP问题 | 维基百科

P 问题

P 问题的定义是:所有可以由一个确定型图灵机在多项式表达的时间内解决的问题

P 代表 Polynomial-time (adj. 多项式时间)

简单理解:答案可以很快被计算出来的问题

NP 问题

NP 问题的定义是:所有可以在多项式时间内验证它的解是否正确的决定问题

N 代表 Non-deterministic (非确定性的)

简单理解:问题的答案可以很快验证的问题。或者说,问题的答案不一定可以很快计算出来,但是如果给你一个问题的答案,你可以很快验证这个答案对不对

现在科学家们不确定 P 问题是否和 NP 问题相等,即 P = NP 是否成立,或者 P ≠ NP 是否成立。也就是说,科学家不确定如果一个问题的解能够很快被验证,那么这个问题的解是否也能很快地被求出来。

NP-Complete 问题

NP-Complete 问题(亦称 NPC 问题,NP 完全问题),指的是那些在 NP 问题中最不像在 P 中的问题。也就是说,NPC 问题是那些看起来解最不可能很快求出来的问题。但同时他们的解一定能很快被验证。

NPC

NP-Hard 问题

NP困难 | 维基百科

如果所有 NP 问题都可以多项式时间内归约到某个问题,则称该问题为 NP 困难问题。

关于归约 (Reducibility):

简单的说,一个问题 A 可以约化为问题 B 的含义是,可以用问题 B 的解法解决问题 A(个人感觉也就是说,问题 A 是 B 的一种特殊情况)。标准化的定义是,如果能找到一个变化法则,对任意一个 A 程序的输入,都能按照这个法则变换成 B 程序的输入,使两程序的输出相同,那么我们说,问题 A 可以约化为问题 B。

例如求解一元一次方程这个问题可以约化为求解一元二次方程,即可以令对应项系数不变,二次项的系数为 0,将 A 的问题的输入参数带入到 B 问题的求解程序去求解。

参考 什么是P、NP、NPC、NP-Hard问题 | Ji Hu's Blog

另外,约化还具有传递性,A 可以化约为 B,B 可以约化为 C,那么 A 也可以约化为 C。

NP-Hard

左边是在假设 P = NP 的情况下,描述 P,NP,NP 完全,以及 NP 困难问题之间关系的欧拉图。右边则是假设 P ≠ NP 的情况下三者之间关系的欧拉图。

注意,虽然 NP-Hard 问题的名字里带了 “NP” 俩字,但是 NP-Hard 问题并不一定是 NP 问题(即并不一定能很快验证 NP-Hard 问题的解,也就是说,NP-Hard 问题是那些不一定能很快求出解,也不一定能很快验证解的问题)。

NP-Hard 问题至少和 NPC 问题一样难。

标签:验证,可以,Hard,问题,很快,理解,NP
From: https://www.cnblogs.com/Undefined443/p/18054972

相关文章

  • Java 切入点 JoinPoint的使用,用于拦截方法,与自定义注解
    这里的代码案例是外卖系统中,用于统一修改新增和更新内容中的更新时间与更新人内容,根据具体情况,在使用时进行自定义修改就行了第一部分是annotation的,因为是为了自动填充数据准备,所以创建annotation包后,在其中创建了AutoFill的注解类型/***自定义注解,用于标识某个方法需要用......
  • tp5框架No input file specified
    最近从网上下载了一个项目,本地搭建好环境。访问页面出现Noinputfilespecified。这个问题之前就遇到过,是因为权限的问题,导致nginx无法解析php文件,这次有点不一样所以记录一下。在项目的public目录下发现有这样一个文件,user.ini 打开文件后是这样的内容open_basedir的作......
  • 理解LLMOps: Large Language Model Operations
    理解LLMOps:LargeLanguageModelOperations对于像我一样的小白来说,本文是一篇非常不错的LLMs入门介绍文档。来自:UnderstandingLLMOps:LargeLanguageModelOperations本文首先解释了新术语"LLMOps"及其背景,然后讨论使用LLMs和传统ML模型构建AI产品的不同之处,并基于这些......
  • 揭秘麦肯锡的方法:产品经理解决问题指南
    您是否想知道世界上最成功的产品经理如何始终如一地提供不仅满足而且超出预期的解决方案?秘密可能就在于世界上最负盛名的咨询公司之一麦肯锡公司所磨练的方法论。本文深入探讨了麦肯锡的问题解决流程,该流程专为希望提升水平的产品经理量身定制。01.麦肯锡方法:产品管理风......
  • mybatis面试高频问题---执行流程/延迟加载/缓存
    mybatis一.mybatis执行流程理解了各个组件的关系Sql的执行过程(参数映射、sql解析、执行和结果处理)二.mybatis支持延迟加载1.立即加载查询用户信息的同时也可以查询到相关订单信息UserMapper:OrderMapper:UserTest.java打印输出用户信息执行结果:2.延迟加载f......
  • 跨域问题
    今天出现了跨域问题,打断点找BUG花费了两个小时,发现没有加上拦截器的请求token都是正常携带的。加上了拦截器就会出现问题,为什么会有这个原因。前端和postman分别发送请求,postman能够正常的返回全局异常类的处理,但是前端就不行,而且打断点发现前端会出现两次请求,并没有立即意识到跨......
  • Es实战理解记录
    ES实战理解指定es索引内存储数据结构POSTforum/doc/1{"title":"helloworld",#文章标题"message":"iamasimplemessage",#文章内容"id":"62",#文章id"uid":"1038",#唯一id&q......
  • spring面试高频问题---springboot自动配置
    springboot自动配置1.springboot自动配置原理自动配置主要依赖于@SpringBootApplication注解,其中还包含了三个注解@SpringBootConfiguration:该注解与@Configuration注解作用相同,用来声明当前也是个配置类。@ComponentScan:组件扫描,默认扫描当前引导类所在包及其子包。@Ena......
  • spring面试高频问题---spring框架中常见的注解常见注解
    Spring-框架中常见的注解1.spring常见注解2.springmvc常见注解3.springboot常见注解......
  • IISExpress 跨域cookie的奇怪问题
    测试环境WIN10,IIS10,IISExpress10,Chrome120,MicrosoftEdge114网站A端口7001只有1个Default.aspx,无前端代码。逻辑很简单,SetCookie用来把客户端传过来的值写入到cookie中,GetCookie用来将客户端传过来的cookie值再返回给客户端。1protectedvoidPage_Load(objectsende......