多项式时间归约

多项式时间归约:如果问题X和问题Y满足以下两条性质,那么问题X可以在多项式时间归约到问题Y。
- 问题X可以通过多项式时间的基本运算步骤转换为问题Y;
- 问题X多项式次调用求解问题Y的算法,且问题Y可以在多项式时间内被求解。
可以记为:X ≤p Y
需要注意的是,问题X转换为问题Y之后,问题Y的运行时间是建立在问题Y的输入上。
对于这个定义,可以简单理解为:求解问题Y算法需要多项式时间,问题X转换为问题Y需要多项式个基本运算加上多项式次调用求解问题Y的算法。因此总共需要的时间是:多项式 + 多项式 * 多项式。

根据以上定义,可以得到三个定理:
- 假设X ≤p Y,如果Y能够在多项式时间内求解,那么X也能在多项式时间内求解。
- 假设X ≤p Y,如果X不能在多项式时间内求解,那么Y也不能在多项式时间内求解。
- 如果X ≤p Y且Y ≤p X,那么X和Y是等价的。

归约的几种技巧:
1. 简单的恒等归约:比如最大独立集和最小点覆盖。
2. 从特殊情况到一般情况:比如点覆盖 ≤p 集合覆盖。
3. 利用gadgets:比如3-SAT ≤p 独立集。

自归约:将求解问题归约成判断问题,如果判断问题能够解决,那么就可以利用判断问题来解决求解问题。
比如最小点覆盖问题,假如我们能判断一个图中是否存在点数为k的最小点覆盖。于是可以遍历图中的每个顶点,如果删去这个顶点以及和这个顶点相连接的边,图中只存在点数为k-1的点覆盖,那么就可以判定该顶点是最小点覆盖中的顶点,不断重复这个操作,就可以找到最小点覆盖。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值