为啥解决背包问题不被视为线性规划?
Posted
技术标签:
【中文标题】为啥解决背包问题不被视为线性规划?【英文标题】:Why solving Knapsack problem is not considered as linear programming?为什么解决背包问题不被视为线性规划? 【发布时间】:2012-07-22 13:06:17 【问题描述】:为什么背包问题不属于线性规划算法的范畴,尽管背包问题陈述似乎与线性规划中的问题相似?
【问题讨论】:
@yes123 在线性规划中,约束是线性的,而不是时间。 【参考方案1】:背包可以写成一个整数线性规划程序。与正常的线性规划不同,这个问题要求解中的变量是整数。众所周知,线性规划在多项式时间内是可解的,而整数线性规划是 NP 完全的。
读者练习:证明 3SAT 可以简化为整数线性规划。
琐事:有一些近似算法可以解决诸如 MAX-3SAT(3SAT 的一个变体,我们希望最大化满足子句的数量)等问题。首先你把 MAX-3SAT 写成一个整数线性程序。然后,通过删除整数限制,放松它到线性规划。然后,您在多项式时间内求解线性程序。最后,给定实数 xi ∈ [0,1],将它们四舍五入为整数,或生成随机整数解 yi 其中 yi 的概率sub> = 1 是 xi。
【讨论】:
值得注意的是,一般来说,将给定的 NP 问题归结为 ILP 通常相对容易。以上是关于为啥解决背包问题不被视为线性规划?的主要内容,如果未能解决你的问题,请参考以下文章