P NP NPC

基本概念

优化问题: 构造一个解来最大化或最小化某个目标方程。
决策问题: 一个具有两个答案的问题。举例:哈密尔顿回路,一个给定的无向图是否存在哈密尔顿回路?

许多问题都同时包含这两个版本:
货郎担问题

优化问题: 给定加权的无向图,找一条具有最小权重和的哈密尔顿回路
决策问题: 给定一个加权无向图和整数K,问是否存在一条哈密尔顿回路的权重和不大于K

背包问题

假设我们有载重为W的背包和n个物品,物品的重量对应为w1,w2,…,wn, 价值对应为v1,v2,…,vn. 注:这些值均非负。

优化问题:将物品装入背包使得背包中物品价值和最大。

决策问题:对于给定K,是否存在装载方案使得总价值不小K。

P问题

P问题表示那些可以再多项式时间内解决的一类决策问题。

NP问题

非正式的说法:NP是那些当给定某个猜测的解时,可以在多项式问题内验证解的正确性的一类决策问题。

严格表述:可以由非确定新算法(Non-deterministic polynomial algorithms)解决的一类决策问题。

非确定性算法:一个给定决策问题I作为输入的两阶段过程

“猜测”阶段:产生一个可以作为问题I解的任意字串S

“验证”阶段:一个确定性算法将I和S作为输入,并在多项式时间内检查S是否是I的一个解。

举例:图着色问题

第一步:产生任意一个颜色串

第二步:检查将每个vi图颜色ci后是否是问题的一个解。

很容易看出P属于NP,但反过来目前还没有确定结论。

NPC问题

NP-completeness是用来描述NP决策问题中的最难的那部分问题。

严格定义NPC前先来看一个归约的定义:

如果存在一个转换函数t,它可以将D1的所有解转换为D2的对应解,并且满足:

1. 所有D1正确(yes)的解在D2中也都是正确的。反之也成立。

2. t的转换过程是多项式复杂度的。

这样我们称决策问题D1可以被多项式归约到决策问题D2。

NPC的严格定义

一个决策问题D是NPC如果:

1. D属于NP

2. 每个NP中的问题可以多项式规约到D。

第一个NPC问题

Cook’s theorem (1971): discover the first NP-complete problem, CNF-satisfiability problem.

如何说明一个问题是NPC

1. 证明这个问题是NP的

2. 证明某个已知的NPC问题可以多项式规约到此问题。

一些已知的NPC问题

1. Hamiltonian cycle

2. Travelling salesman

3. Knapsack

4. Bin packing

5. Graph coloring

6. Satisfiability(e.g. CNF SAT)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值