Answers:
直到这个问题,我才真正听说过几何编程。这是Stephen Boyd 等人(Vandenberghe也是合著者)的评论文章,它是几何编程的教程。
最初表示的几何程序不是凸的。例如,是一个多项式,并且不是凸的,因此几何程序不是凸编程的严格子集。
将几何程序转换为凸形程序的好处是原始几何程序不一定是凸形的。如果将几何程序求解为非线性程序(NLP),则需要使用非凸优化中的方法来保证全局最优解。这些方法比凸优化方法昂贵,需要更多的算法调整,并且需要初步猜测。
此外,如果使用非凸NLP中的算法,则需要在中将可行集指定为紧凑集。在几何程序中,是有效约束。
尚不清楚这组几何程序是否映射(通过对数-指数变换)到一组特别有效求解的凸程序。除了转换为凸程序外,我看不到几何编程的任何优势。
关于您的最后一个问题,我认为几何程序集与凸程序集同构,因此我怀疑有些凸程序无法表示为几何程序,而在这些程序中,我怀疑是一些几何程序无法很好地近似的。但是,我没有证据或反例。
几何编程可以转换为一类凸程序,它是所有凸程序集的严格子集。但是,任意凸程序不能表示为几何程序。几何编程中的约束被限制为,其中是一个多项式(即具有正系数的多项式)。多项式在加法,乘法和正比例缩放下关闭。现在,如果考虑约束,则本身不是一个多项式。它不能表示为正项式的加法/乘法,也不能表示另一个多项式的正比例。因此,它不能成为几何程序的一部分。但是上面的约束是线性的,因此程序是凸的。确实存在混合线性几何程序设计,其中可以添加任意线性约束,尽管也可以将其转换为凸程序并有效求解。同样,由于上述相同的原因,即使通过混合线性几何编程也无法处理等更复杂的约束。