P、NP、NPC、NP-Hard问题

时间复杂度

表明问题规模扩大后,程序需要的时间长度增长得有多快。程序的时间复杂度一般可以分为两种级别:

[1]      - 多项式级的复杂度,如O(1),O(log(n))、O(n^a)等,

[2]      - 非多项式级的,如O(a^n)、O(n!)等。后者的复杂度计算机往往不能承受。

空间复杂度表示一个算法在计算过程当中要占用的内存空间大小

约化(Reducibility)

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

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

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

基本概念

PProblem: 对于任意的输入规模n,问题都可以在n的多项式时间内得到解决;

NP(Non-deterministicPolynomial) Problem: 可以在多项式的时间里验证(猜到)一个解的问题;

NPC(Non-deterministicPolynomial Complete) Problem: 满足两个条件 (1)是一个NP问题 (2)所有的NP问题都可以约化到它;其是NP问题的子集;NPC问题目前没有多项式的有效算法,只能用指数级甚至阶乘级复杂度的搜索。

NP-Hard Problem:满足NPC问题的第二条,但不一定要满足第一条;

(很难求解)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值