CVX:用于规范凸编程的 Matlab 软件
CVX是一种基于Matlab的凸优化建模系统。CVX 将 Matlab 转换为建模语言,允许使用标准 Matlab 表达式语法指定约束和目标。例如,请考虑以下凸优化模型:
下面的代码段生成并求解此模型的随机实例:
在其默认模式下,CVX 支持一种特定的凸优化方法,我们称之为规范凸编程。 在这种方法下,凸函数和集合是从凸分析的一小组规则中构建的,从凸函数和集合的基本库开始。使用这些规则表示的约束和目标会自动转换为规范形式并求解。 有关规范凸编程的更多信息,请参阅这些资源;有关凸分析和凸优化的基础知识,请参阅《凸优化》一书。
CVX还通过使用特殊的GP模式支持几何编程(GP). 几何编程不是凸的,但可以通过应用一定的变换来做到这一点。 在此模式下,CVX 允许 GP 以其原生的非凸形式构造,将它们自动转换为可解的凸形式,并将数值结果转换回原始问题。
CVX 的 2.0 版支持混合整数规范凸编程 (MIDCP)。混合整数DCP必须遵守规范凸编程的规则集;但是,一个或多个变量可能被约束为假定整数或二进制值。需要注意的是,MIDCP不是凸的,大多数非凸模型不能表示为MIDC。并非所有求解器都支持 MIDCP,而那些支持 MIDCP 的求解器不能保证所有模型都能在合理的时间内成功求解。尽管如此,我们相信MIDC支持是CVX的强大补充,我们期待看到我们的用户如何利用它。
同样重要的是要注意CVX不是什么。它不是用于非线性优化的通用工具,也不是用于检查模型是否为凸的工具。在开始使用 CVX 之前,请务必确认您的模型可以表示为 MIDCP 或 GP。如果两者都不是,则CVX不是任务的正确工具。
有关 CVX 的更多信息,请参阅 CVX 用户指南,该指南可以在线以可搜索的格式找到,也可以以 PDF 格式下载。
CVX 软件包包括一个不断增长的示例库,可帮助您入门,包括来自 Convex Optimization 一书和各种应用程序的示例。您现在可以通过单击此处浏览此库,而无需下载和安装 CVX。