我们知道,可以使用椭圆形方法或像Karmarkar算法那样的内点方法,在多项式时间内精确地求解线性程序(LP)。某些具有超多项式(指数)变量/约束的LP也可以在多项式时间内求解,前提是我们可以为其设计一个多项式时间分离法。
半定程序(SDP)呢?几类SDP可以在多项式时间内准确求解?当无法完全解决SDP时,我们是否总可以设计一个FPTAS / PTAS来解决它?在什么条件下可以做到这一点?如果我们可以为其设计多项式时间分隔预言,是否可以求解具有多项式时间变量/约束的指数形式的SDP?
我们能否有效解决组合优化问题(MAX-CUT,图形着色)中出现的SDP?如果我们只能在因子内求解,那么它对常数因子近似算法(例如Goemans-Williamson MAX-CUT算法的0.878)不会产生影响吗?
任何对此的良好参考将不胜感激。
3
实际上,该方法通常适用于凸编程
—
Suresh Venkat
至少有两个原因导致您无法在多项式时间内求解一般的SDP。(1)存在解决方案为指数大小的SDP。(2)SDP可以编码平方根问题的总和,尚无法解决多项式时间可解问题。
—
罗宾·科塔里
@RobinKothari对于服务点,通常是“在多项式时间内可解”是由“内被替换 OPT的(添加剂)在时间多项式1 / ε ” IIRC。ps SDP如何编码平方根和?
—
Suresh Venkat 2012年
@SureshVenkat:假设我们有一个2x2的矩阵,其条目为[ab; 光盘]。强制说这是正半定数,并且d =1。这意味着b = c和a> = b ^ 2。因此b由a的平方根上界。现在我们可以最大化几个这样的b之和。最佳值将是各个a的平方根之和。
—
罗宾·科塔里
它不是乘法,而是加法。另外,en.wikipedia.org
—
wiki / Semidefinite_programming#