背包问题的近似算法不存在

时间:2019-05-28 11:59:50

标签: algorithm knapsack-problem approximation

我正在做以下练习:证明如果$ P \ neq NP $,则不存在用于背包问题(KP)的近似算法$ A $,使得$ \存在\ mathhbb {N} ,\ forall I \ in S:OPT(I)-P_A(I)\ leq k $其中$ OPT(I)$是实例$ I $的最优利润,$ P_A(I)$是由$计算得出的利润A $。

我知道KP有FPTAS $ A'$,它可以保证在任何实例$ I上获利$ P_ {A'}(I)\ geq(1-\ varepsilon)OPT(I)$ $和$ \ varepsilon> 0 $。

我的方法是制造矛盾。为此,我考虑$ A = A'$,目的是证明$ P_A(I)\ geq(1-\ varepsilon)OPT(I)\ geq ... \ geq OPT(I)-c $其中$ c \ (0,1)$中的一个常量。这样,对于$ \ varepsilon $的适当选择,我将证明我们在多项式时间内获得了最优解。但是,我很难选择$ \ varepsilon $。

我需要一些有关如何进行的建议。提前非常感谢!

1 个答案:

答案 0 :(得分:0)

矛盾更加微妙。

通过将I' I倍的项的所有值增加来考虑从I派生的实例n。最优利润Opt(I')n的最优利润的{倍,Opt(I)乘以A的最优利润,这两个问题的解决方案都由相同的一组项目构成(证明!)。

因此,如果Opt(I') - k找到了Opt(I) - k/n解决方案,它也会找到一个n。对于任何给定的A ,使I足够大,得出结论Opt(I) * (1 - eps)会比eps 更好地解决任何实例n > k

>

对于整数值,取任何A'就足够了。对于真实值,您需要做更多的工作,即证明eps不是通用的,但必须依赖Property