p类、np类、npc类、np-hard类问题

在学习算法分析的过程中,我们首先需要明确的是p类、np类、npc类、np-hard类问题的定义以及它们的异同,其实对于很多人都没有搞清楚它们的定义,甚至混淆它们的用法。
1.P类问题,可以这样记:Polynomial time solve,可以在确定性图灵机计算模型上以多项式时间解决的问题类,叫做P类问题。
2.NP类问题,NonDeterministic Polynomial time verify,在非确定图灵机计算模型上能以多项式时间验证的问题类,叫做NP类问题。

补充:对于P类问题,既然我们能在多项式时间内解决,那么我们就一定能在多项式时间内验证,“easy” to be solved(easy to be verified),这里的easy指的是在多项式时间内,因此我们很容易知道P类问题是NP类问题的子集。

3.NPC问题,“hard” to be solved but easy to be verified,难以在多项式时间内求解但是可以在多项式时间内验证的问题,是NPC问题,即我们无法"容易"的找到一个答案,但是当给我们一个答案时,我们可以“容易”的验证这个答案是否正确。就是因为NPC问题的存在,所以我们不知道P问题是否等于NP问题,NPC问题属于NP中比较难的问题。

注意:对于NPC类问题,我们的输出只能是Yes或No,即NPC问题都是判定类问题,而不是构造性问题,这点需要明确。

举例一:例如在TSP问题中,如果让我们找到一条哈密顿回路让其代价最小,这属于构造类问题,不属于NPC问题,属于NP-hard问题。
NPC问题:在TSP问题中,是否存在一条哈

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值