运筹学学习(P,NP,NP-Comlete,NP-Hard问题)

1.如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题

2.NP问题是指可以在多项式的时间里验证一个解的问题。NP问题的另一个定义是:可以在多项式的时间里猜出一个解的问题。

很显然,所有的P类问题都是NP问题。也就是说,能多项式地解决一个问题,必然能多项式地验证一个问题的解——既然正解都出来了,验证任意给定的解也只需要比较一下就可以了。

3.NPC问题:为了说明NPC问题,我们先说一下约化(归约)。一个问题A可以约化为问题B的含义即是,可以用问题B的解决方法来解决问题A。问题A可以“变成”问题B。B的时间复杂度高于或等于问题A的时间复杂度。

NPC问题的定义:

首先,它得是一个NP问题。然后,所有的NP问题都可以约化到它。

同时满足这两个条件的问题就是NPC问题。

NPC问题的证明:(证明A问题是NPC问题的方法)

(1)证明A是NP问题

(2)选择一个已知的NPC问题A'

(3)构建转换过程f使得A'转换为A

(4)证明f是多项式的

NPC问题:

团问题,顶点覆盖问题,哈密顿回路问题,旅行商问题,子集和问题

4.NP-Hard问题:首先,所有的NPC问题都是属于NP-Hard的。其次,如果一个问题不知道其是否属于NP,但是我们知道有某个NPC问题可以被多项式转化为该问题,则该问题属于NP-Hard。

NP-Hard证明:(证明A是NP-Hard问题)

(1)选择一个已知的NPC问题A'

(2)构建转换过程f使得A'转换为A

(3)证明f是多项式的转换

5.它们之间的关系:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值