我对连续优化文献和TCS文献感到困惑,因为它们无法有效解决哪些类型的(连续)数学程序(MP)。连续优化社区似乎声称可以有效解决所有凸程序,但我认为它们的“有效”定义与TCS定义不一致。
在过去的几年中,这个问题一直困扰着我,我似乎找不到一个明确的答案。我希望您能帮助我一劳永逸地解决这一问题:哪些类的MP可以在多项式时间内准确地求解,以及采用哪种方式;关于逼近我们在多项式时间内无法精确求解的MP的最优解的已知信息?
在下面,我对这个问题给出了不完整的答案,在某些地方也可能是不正确的,因此希望您能在我错的地方验证并纠正我。它还说明了一些我无法回答的问题。
我们都知道,通过运行椭球法或内点法,然后运行一些舍入过程,可以在多项式时间内精确地求解线性规划。线性规划甚至可以在面对具有任何超大量线性约束的LP系列时,通过变量数量的时间多项式求解,只要可以为其提供“分离预言”即可:给出一个点的算法,要么确定该点是否可行,要么输出一个将该点与可行点的多面体分开的超平面。类似地,如果面对具有任何超大量变量的LP系列,则对约束数量的时间多项式进行线性编程(如果为这些LP的对偶提供分离算法)。
如果目标函数中的矩阵是正(半)定的,则椭球法还能够在多项式时间内求解二次程序。我怀疑通过使用分离oracle技巧,如果我们要处理数量惊人的约束,在某些情况下我们也可以这样做。真的吗?
最近,半定型编程(SDP)在TCS社区中广受欢迎。可以使用内点法或椭球法将它们求解到任意精度。我认为,由于不能精确计算平方根的问题,所以不能完全解决SDP。(?)如果我说SDP有FPTAS,那会是正确的吗?我在任何地方都没有看到该说明,因此可能不正确。但为什么?
我们可以精确地解决LP和SDP的问题,达到任意精度。其他圆锥程序类别呢?我们可以使用椭球法求解任意精度的二阶锥程序吗?我不知道。
我们可以在哪些MP类上使用椭球法?这样的MP需要满足什么性质才能给出任意精度的答案?为了获得多项式时间的精确解,我们还需要什么其他性质?内点法也有同样的问题。
哦,最后,是什么导致连续优化器说凸程序可以有效地求解?是否可以在多项式时间内找到对凸程序的任意精度答案?我相信不会,那么它们对“效率”的定义在哪些方面与我们的定义不同?
任何贡献表示赞赏!提前致谢。