算法概念:P-NP-NPC

本文介绍了计算机科学中问题复杂度的基本概念,包括P类问题、NP问题、NP完全问题及NPH问题,并解释了这些类别之间的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

P类问题

这类问题是最简单的一类问题,即所有这类问题都可以用一个确定性算法在多项式时间内求出解。此类问题的复杂度是此类问题的一个实例的规模n的多项式函数。比如排序问题,求最短路径问题等。
简单来说,P就是能在多项式时间内解决的问题

NP(Non-deterministic Polynomial,即多项式复杂程度的非确定性问题)问题

有些问题很难找到多项式时间的解法(也许根本就不存在),但是如果给出了该问题的一个解,我们可以在多项式时间内判断这个解是否正确,比如对于哈密尔顿回路问题,如果给出一个任意的回路,我们可以很容易的判断出该回路是否是哈密尔顿回路(看是不是所有顶点都在回路中)。
P类问题是NP问题的子集,原因是P类问题既然能在多项式时间内求解,也必然能在多项式时间在验证它的解,满足NP类问题的定义。
简单来说,NP就是能在多项式时间验证答案正确与否的问题

NP完全问题(NPC)

如果所有NP问题都能在多项式时间内转化为A,则称A为NPC问题。NPC问题被认为是NP问题中最不可能是P问题的。NPC的定义的是:

一个决定性问题C若是为NPC,则代表它对NP是完备的,这表示:
它是一个NP问题,且
其他属于NP的问题都可变换(reducible)成它。

NPC是NP的子集。

NPH问题

NPH问题不一定是NP问题,之所以称为NP hard问题,是因为它们起码也和NP问题中最难的问题一样难。
NPH的定义和NPC的区别就在于NPH问题不用像NPC那样必须是一个NP问题。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值