加载中…
个人资料
杜玉泉
杜玉泉
  • 博客等级:
  • 博客积分:0
  • 博客访问:3,814
  • 关注人气:541
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MOSEK学习总结1:浮光掠影看MOSEK

(2009-12-23 19:58:56)
标签:

academic

mosek

optimization

software

杂谈

分类: 建模优化
问题1:MOSEK能干什么?
简单地说,MOSEK可以求解LP,QCQP,SOCP,以及相应的MIP(MILP,MIQCQP,MISOCP),这与

Cplex是相同的,在求解效果上感觉应该与Cplex差不多吧;但同时,MOSEK又可以求

解Entropy Optimization(非线性项以X_j*ln(X_j)的线性组合形式出现,对应的优化

器是mskenopt),Geometric Programming(非线性项以x_1^a1*x_2^a2*...*x_n^an正单

项式形式出现在目标函数和约束中,MOSEK不能直接求解GP问题,而是用mskgpopt优化

器求解一个转化后的问题,所以如果要取得原问题的解,需要做在程序中一些额外的

变换), Separable Convex Optimization(目标函数和约束中的非线性项是可分的,

即,f(x_1,x_2,...,x_n)=a1*f1(x_1)+a2*f2(x_2)+...+an*fn(x_n) ); 当然如同

Cplex, MOSEK也支持并行计算。所以MOSEK其自身功能比Cplex还多,性能也并不一定

会逊色多少。跟Cplex一样,MOSEK也是商业软件,但是,对我们研究者而言,这几乎

成为替代Cplex的不二选择,因为MOSEK对研究者提供完全功能的免费Licence,只要有

一个edu邮箱就可以申请故我再次重申,Cplex不是必须的,如果你所在的单位没有

条件购买Cplex,就用MOSEK吧!
问题2:MOSEK与Cplex的优缺点?
MOSEK功能上与Cplex一样强悍(或者说比Cplex还强悍),但商业化程度显然比Cplex

差一些,具体表现在:技术文档读起来很学术化(你要具备很扎实的优化理论基础才

能读懂很多细节,不过好好读读确实能使自己的优化理论上一个台阶);使用接口不

够方便和友好,比如,你需要把不同组的Decision Variables x[i],y[i],w[i]等拼

成一个长数组X[i]才能进行优化,约束条件的输入有点类似Matlab优化工具箱,你需

要定位系数矩阵A中每一个非零元素的位置和取值,用起来很不方便,这一点比Cplex

差远了,在Cplex里,你总能轻轻松松地把模型建好。
问题3:MOSEK最易使用的接口是什么?
Matlab,使用起来很方便,求解速度并不比C API慢,因为它的内核都是基于C/C++的,这一点你毫不用怀疑,不要以为matlab是解释执行的就一定比C慢,关键是看内核是什么编译的。相比之下,MOSEK的C接口就有些麻烦了,在程序里你不得不关注很多细节,老衲的肺腑之言,千万不要用C接口了——Only U,玛特拉伯!另外,在优化研究领域,引领研究主流的大部分软件都提供基于Matlab的接口,且Matlab接口是数学家们使用和测试新算法的主流接口。
问题4:我拿MOSEK来干什么?
本人由于有正版Cplex, 只在如下情况下用MOSEK:(i)解SOCP或MISOCP,用以与Cplex

对比;(ii)解Entropy Optimization,Geometric Programming, Separable Convex

Optimization问题。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有