MatLab凸优化工具箱CVX-Introduction

What is CVX?

    CVX是MatLab的一个工具箱,是用于构建和解决约束凸规划(DCP)的建模系统。CVX支持许多标准问题类型,包括线性和二次规划(LPs / QPs),二阶锥规划(SOCPs)和半定规划(SDPs)。CVX还可以解决更复杂的凸优化问题,其中包括许多涉及不可微函数,如 1-范数问题。可以使用CVX方便地建立并求解约束范数最小化,熵最大化,行列式最大化以及许多其他凸规划问题。 从版本2.0开始,CVX还解决了混合整数约束凸规划(MIDCP),并具有整数求解程序。

    要有效地使用CVX,至少需要了解一些关于凸优化的知识。 有关凸优化的背景知识,请参阅书本Convex Optimization斯坦福大学课程EE364A

What is disciplined convex programming?

    约束凸优化(DCP)是由Michael Grant,Stephen Boyd和Yinyu Ye提出的一种构造凸优化问题的方法。 它的目的是支持用户从一开始打算凸出的优化问题的制定和构建。

    DCP提出了一套规则,我们称之为DCP规则集。遵循规则集的问题可以快速、自动地确认为凸优化问题并转化为可解形式。即使是凸优化问题只要不符合规则集,也不能使用DCP。这并不是说使用DCP不能解决这样的问题,他们只需要按照符合DCP规则集的方式重写。

    The DCP ruleset给出了DCP规则集的详细说明。规则集是从凸优化问题分析的基本原理中得出的,很容易学习。 作为接受规则集施加的限制的回报,我们获得了相当多的好处,例如将问题自动转换为可解形式,以及对不可微函数完全支持。 在实践中,我们发现DCP非常类似于它们的自然数学形式。

Mixed integer problems

    CVX的2.0版本支持混合整数约束凸规划(MIDCPs)。MIDCP除了一个或多个变量被约束为取整数值外,与标准DCP遵循相同的凸规则。 换句话说,如果把整数约束去掉,就是一个标准的DCP。

    与DCP不同的是,混合整数问题不是凸优化。MIDCP寻找全局最优解需要将传统的凸优化算法与穷举搜索结合,如分支定界算法。

What CVX is not

    CVX并不是检查问题是否是凸优化问题的工具。你还需要了解一些凸优化的知识来使用CVX,否则的话效率很低。如果你不确定你的问题在输入CVX之前是凸的,那么你的努力可能会失败。

    CVX不适用于非常大的问题,因此如果问题非常大(例如,大型图像处理或机器学习问题),CVX很可能不能正常工作(或者根本不行)。对于这样的问题,需要开发自己的程序,以获得所需的效率。

    CVX可以解决许多大中型问题,只要它们具有可利用的结构(如稀疏性),并避免在MatLab中出现for循环以及需要逐次逼近的log和exp等函数。 如果您在解决大型问题时遇到困难,可以考虑将模型发布到CVX论坛,CVX社区可能会提出一个更有效处理的公式。

Licensing


    和免费的解析器配合使用时,CVX在学术和商业环境中是免费的,包括随安装包装提供的SeDuMi和SDPT3版本。在2.0版本中,我们增加了将CVX连接到商业解析器的功能。这项新功能是在CVX 专业版产品层下发布的,我们打算向商业用户授权许可,并免费向学术用户提供。

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值