P,NP,NPC,NP-HARD的关系

1. 简介

  算法的时间复杂度用来衡量一个算法运行需要的计算量,并且反映了在输入规模非常大的时候算法的运行速度。多项式时间算法亦称为有效算法,是因为其的计算量随着输入规模的变化速度对于计算机而言相对可以接受,而超多项式时间的算法(如指数时间算法)在输入规模较大的时候,算法的计算量会增加的非常恐怖。
  因此,一个问题是否存在多项式时间的算法来解决是一个非常值得探讨的问题。

2. 定义

  P,NP,NPC,NP-HARD都是形容问题的难度。

  • P指的是该问题存在一个多项式时间算法得出正解
  • NP指的是该问题存在一个多项式时间算法验证一个解是否为正解
  • NP-HARD指的是该问题能被所有的NP问题在多项式时间内规约到
  • NPC指的是该问题是一个NP-HARD问题,又是一个NP问题

3. 关系

  P,NP,NPC,NP-HARD对应着问题的难度不断递增。这是因为解决了所有的NP-HARD问题,那么所有的NPC问题都被解决;而解决一个NPC问题,所有的NP问题都被解决;解决所有的NP问题,P问题也一定都被解决。
  它们的关系图如下。P是属于NP的,因为多项式时间都能得出正解了,在拿每个解和这个解比较,一定能在多项式时间验证。而NPC则是一类特殊的NP问题,亦是一类特殊的NP-HARD问题,因此NPC属于NP和NP-Hard。
  最关键的问题是P是否等于NP,亦就是说,如果我能在多项式时间内验证一个解是否为问题的正解,那么我是否就能够在多项式时间内得到问题的正解。
  
这里写图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值