NP难问题

多项式时间算法: 以多项式为时间复杂度.
易解的问题: 有多项式时间算法.
难解的问题: 不存在多项式时间算法.
易解的问题. 如排序、最小生成树、单源最短路径等
已证明的难解问题.
一类是不可计算的, 即根本不存在求解算法, 如希尔伯特第十问题丢番图方程是否有整数解.
另一类是有算法, 但至少需要指数时间, 或指数空间, 甚至更多的时间或更大的空间. 如带幂运算的正则表达式的全体性, 即任给字母表 A上的带幂运算的正则表达式 R, 问: R=A*? 这个问题至少需要指数空间.
既没有找到多项式时间算法、又没能证明是难解的问题. 如哈密顿回路问题、货郎问题、背包问题等
定义9.2 所有多项式时间可解的问题组成的问题类称作 P类.
定义9.3 设判定问题  = < D,Y >, 如果存在两个输入变量的多项式时间算法 A和多项式 p, 对每一个实例 ID, IY 当且仅当存在 t, | t | p(|I|), 且 A对输入 I 和 t 输出“Yes”, 则称 是多项式时间可验证的, A是 的多项式时间验证算法, 而当 IY 时, 称 t 是 IY 的证据.
由所有多项式时间可验证的判定问题组成的问题类称作NP类.
多项式时间变换
如何比较两个问题的难度?
定义9.4 设判定问题 1 = <D1,Y1>, 2 = <D2,Y2>. 如果函数 f : D1  D2 满足条件:
(1) f 是多项式时间可计算的,
(2) 对所有的 ID1, IY1 f(I)Y2,
则称 f 是1 到 2 的多项式时间变换.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值