几何编程与凸编程有何不同?


10

(广义)几何规划与一般凸规划有何不同?

几何程序可以转换为凸程序,并且通常通过内点法求解。但是,将问题直接表述为凸程序并通过内点法解决该问题有什么好处呢?

几何程序类别是否仅构成凸程序类别的子集,可以通过内点方法特别有效地求解?还是简单的优势就是可以轻松地以计算机可读形式指定通用几何程序。

另一方面,是否存在不能通过几何程序合理逼近的凸程序?

Answers:


5

直到这个问题,我才真正听说过几何编程。是Stephen Boyd 等人(Vandenberghe也是合著者)的评论文章,它是几何编程的教程。

最初表示的几何程序不是凸的。例如,是一个多项式,并且不是凸的,因此几何程序不是凸编程的严格子集。x1/2

将几何程序转换为凸形程序的好处是原始几何程序不一定是凸形的。如果将几何程序求解为非线性程序(NLP),则需要使用非凸优化中的方法来保证全局最优解。这些方法比凸优化方法昂贵,需要更多的算法调整,并且需要初步猜测。

此外,如果使用非凸NLP中的算法,则需要在中将可行集指定为紧凑集。在几何程序中,是有效约束。Rnx>0

尚不清楚这组几何程序是否映射(通过对数-指数变换)到一组特别有效求解的凸程序。除了转换为凸程序外,我看不到几何编程的任何优势。

关于您的最后一个问题,我认为几何程序集与凸程序集同构,因此我怀疑有些凸程序无法表示为几何程序,而在这些程序中,我怀疑是一些几何程序无法很好地近似的。但是,我没有证据或反例。


看起来您的链接阅读论文的第8章试图解决我的问题。但是,经过粗略的浏览后,我得到的印象是,实际上任何凸程序都可以用几何程序(当然是对数变换的)近似。但是,由于任何线性程序“显然”也是几何程序,因此这也可能是以下陈述的变体,即任何凸程序都可以由线性程序近似,但这并不是我所说的“合理近似”。好”。
Thomas Klimpel

当出现几何编程一词时,解决一般的凸形程序并不容易,并且可以利用特殊的结构。现在,当然,一旦认识到程序是几何的,就将其转换为凸程序,并通过内点法求解。
阿诺德·纳伊迈尔

3

几何编程可以转换为一类凸程序,它是所有凸程序集的严格子集。但是,任意凸程序不能表示为几何程序。几何编程中的约束被限制为,其中是一个多项式(即具有正系数的多项式)。多项式在加法,乘法和正比例缩放下关闭。现在,如果考虑约束,则f(x)1f(x)xy1xy本身不是一个多项式。它不能表示为正项式的加法/乘法,也不能表示另一个多项式的正比例。因此,它不能成为几何程序的一部分。但是上面的约束是线性的,因此程序是凸的。确实存在混合线性几何程序设计,其中可以添加任意线性约束,尽管也可以将其转换为凸程序并有效求解。同样,由于上述相同的原因,即使通过混合线性几何编程也无法处理等更复杂的约束。x2y21


几何编程不是凸编程的严格子集。但是,在对数指数变换下,变换后的几何程序是凸程序。
Geoff Oxberry 2012年

是的,那是我的意思。为清楚起见,编辑了答案。
选项
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.