本文转载自微信公众号“杉数科技”
MOSEK是由丹麦MOSEK ApS公司开发的一款数学优化求解器,也是公认的求解二次规划、二阶锥规划和半正定规划问题最快的求解器之一,广泛应用于金融、保险、能源等领域。杉数科技是MOSEK在中国大陆唯一官方授权销售商,承担中国市场的销售和售后服务工作。本篇主要介绍MOSEK的总体性能,在金融中一些解决问题的技巧和应用,杉数科技将和艾悉资产在近期推出一个介绍性文档,敬请关注!(详情请登陆 https://www.shanshu.ai/product/mosek)
MOSEK是一款怎样的求解器?
运筹学(经常被称为管理科学或决策科学)是近代应用数学的一个分支,利用数学模型、优化算法、概率学和统计学之类的相关工具,去寻找现实中管理决策问题的最优或近似最优的解决方案,从而提高现有系统的效率。常见应用领域有收益管理、资产配置、风险控制、供应链管理、路径优化、选址、排程、能源网络布局等。
在如今大数据时代的浪潮中,运筹学进一步蓬勃发展,如何将大数据转化为最优决策成为其研究的重点课题。运筹学的应用场景是在满足约束条件下能够最大化、最小化单个或多个目标,从而得出最优决策。实现决策最优有两大关键步骤:建模,将问题通过数学形式准确有效地表达;求解,获得最优化目标函数的决策。在最优化目标函数求解过程中,很多实际问题受到大规模数据导致计算能力不足的影响,使得很好的模型不能发挥应有的实际效应。为了更好地解决求解问题,优化求解器(optimization solver)应运而生。目前,市面上知名的求解器有IBM旗下的CPLEX、FICO旗下的Xpress、Gurobi、MOSEK等。其中,丹麦MOSEK ApS公司开发的数学优化求解器MOSEK在求解二次规划、二阶锥和半正定规划等优化问题中,显示出强大的生命力。
MOSEK可以解的数学优化问题非常宽泛(如下表格所示),其中最擅长求解的是二次规划、二阶锥和半正定规划问题,在金融、保险、能源等领域均有应用。最典型的是金融领域的资产配置问题,以优化马科维茨模型投资组合为例,本质上,这是一个权衡收益和风险、构建最优投资组合的优化问题,MOSEK求解此类问题快速且稳定。
MOSEK求解问题类型与求解算法
因专注而卓越的MOSEK
“我们不想做一个非常全面却只是过得去的求解器,而是要做一个专业领域里最好的。”MOSEK创始人兼CEO Erling Anderson曾在接受采访时表示,MOSEK之所以专注于二次规划、二阶锥和半正定规划问题,并非因为这个市场大或者利润更多,而是在当前优化求解器市场,其他问题领域已经有很多更早投入研发的佼佼者。但在二次规划、二阶锥和半正定规划领域,MOSEK能做得比别人好,同时这个市场也给予MOSEK足够的回馈。
亚利桑那州立大学从事第三方横向评测的专家Hans Mittelmann致力于优化求解器评测工作多年,他收集了很多工业界的实际模型作为基准问题库来进行评测,并持续频繁更新结果,得到优化求解器行业一致认可。其测试结果公开地发表在亚利桑那州立大学网站http://plato.asu.edu/bench.html上面。其中,MOSEK在求解大型线性和二次规划问题方面有不俗表现;在求解锥优化的综合性能方面甚至优于绝大部分其他求解器;而作为求解半正定规划问题时最主要的商用求解器,MOSEK表现优异。
Hans Mittelmann对MOSEK优化求解器的评测结果
具体来说,MOSEK之所以能对部分问题高效稳定地求解,是有内在结构上的原因的。凸分析问题方面的权威洛克菲勒教授在他的著作中提及,优化问题难易程度的分水岭不仅在线性和非线性,更在凸与非凸。这是因为凸优化问题有许多非常好的性质,如强对偶成立,局部最优就是全局最优等。这些性质具有很强的理论意义,但是数值上凸问题并不能被快速求解。在上世纪九十年代,学者们发现了一类特殊的凸问题能被快速求解,这就是锥优化问题。MOSEK的算法引擎针对两类锥优化问题进行了特别处理,他们是半正定规划问题和二阶锥优化问题。这两类问题之所以有现在的名字是因为他们分别由半正定锥和二阶锥所定义生成,而这两个锥是自对偶的(这一性质与线性规划一模一样)。MOSEK正是利用了这一特殊结构,能够很容易地找到一个可行解来启动算法。二十多年来,以Anderson兄弟为首的科学家团队,对算法的各个环节如何计算加速,持续在做进一步的深入优化。这是为何MOSEK对比其他通用商业求解器CPLEX、Gurobi和Xpress以及专项金融求解器Barra、ITG、Axioma,在求解锥优化问题方面效果更突出的重要原因之一。
MOSEK在金融行业中应用甚广,因为很多相关问题本质上都可以归结为一个二次规划或者二阶锥规划问题。例如资产分配,通俗讲就是:无论是商业银行还是保险业,亦或美国养老基金会,都筹集了大笔资金,如何再投资呢?可以选择股票、商业债券、期货、对冲基金、指数基金、国债、外汇等等,而每一个小类里又有无数的可选项——举例来说,股票是选择A股、港股、美股还是日韩乃至欧洲?选择了A股,又如何抉择主板、创业板、中小板、新三板呢?假设人们可以通过历史数据估算出每个可选项的收益期望(利润)和方差情况(波动)等信息,这类资产配置问题一般会使用基于马科维茨(Markowitz)模型的多个模型来求解,而这个模型恰恰是MOSEK的长项。现实中,这么庞大的资产问题,变量复杂、数据繁多,求解也很困难。由于求解速度快、求解效果稳定(数值获取中的误差对结果影响小),MOSEK成为了很多金融机构的不二之选。
现如今,没有哪一款优化求解器在分门别类地比较求解器各个维度的指标中均能胜出。MOSEK没有称霸的野心,却用了二十年的坚持成为了子领域的翘楚。这就是因专注而卓越的MOSEK。
一个“跨界”学者开发的软件
每一款优秀的产品或者优良的企业都有一个灵魂人物,MOSEK也不例外。
1996年,MOSEK创始人兼CEO Erling Anderson从丹麦著名学府南丹麦大学毕业,并获得经济学博士学位。Erling Anderson在经济学博士研读期间对线性优化理论和编程实现有了强烈兴趣。为了更好了解内点法,读博期间他申请到美国叶荫宇教授处进行长期访问,接受叶教授的悉心指导,并在此后开始了二十多年的合作。叶荫宇教授是运筹学领域的顶尖学者,也是内点法的专家和奠基人之一。Anderson兄弟于1997年成立MOSEK ApS公司。其后,Erling Anderson留在南丹麦大学欧登塞(Odense)分校任教两年,在荷兰著名的代尔夫特理工大学(TU Delft)访问两年,于2002年开始全职投入MOSEK的开发和维护工作,并开始担任CEO。由既有经济学学识又涉足运筹学领域研究的Erling Anderson所主导研发的MOSEK优化求解器,或许正是为解决金融领域问题而生的。同时,叶荫宇教授一直在MOSEK ApS中担任技术咨询委员会主席,也为MOSEK过硬的技术效果提供了有力的支持。
Erling Anderson曾说过,做一个好的求解器需要持续多年的付出。当他还是一个新手的时候,他就下苦功夫读了很多“远古”代码,其中关于单纯形法的实现就看过多个版本。尤其是当时的计算机性能很差,内存都很小,他特别留意对读取和存储数据的优化,并有自己独到的见解。回想当年,他提及自己刚开始只是出于兴趣,为了科研方便,就写了些东西挂在网上;逐渐地,金融领域有许多困难问题,随着计算机硬件和软件的急速提高,算力有了显著增长,配合求解器的高效算法,开始可以求解,大家就渐渐开始用他的求解器,实践中出色的表现为MOSEK带来了卓越的口碑效应。
如今,Erling Anderson每年都会出现在ISMP、INFORMS、SIAM Conference on Optimization等优化领域顶级会议上作报告。2017年,Erling Anderson参加了在上海财大举行的国际优化研讨班,并以“用MOSEK解决锥优化”为题目发表演讲,充分展示了很多看似无关的问题,最终都可以转化为锥优化问题来求解。在2018年的ISMP会议上,与MOSEK密切相关的报告达到五个之多。
Erling Anderson不仅是MOSEK ApS公司的CEO,更是相关领域的知名学者。根据谷歌学术统计,Erling Anderson的论文已有2398次引用,而他和叶荫宇教授合作发布在国际顶级期刊的三篇关于内点法求解线性方程的论文,更是其学术版图与MOSEK初期发展的核心理论支撑。当今谈算法求解器级别实现的学术论文不多,Anderson的多篇论文已经成为其他学者研究内点法具体实现细节的珍贵资料。叶荫宇教授评价Anderson是当今运筹优化领域他见过的极其少有的既精通算法实现又精通理论推导的学者。
杉数科技与MOSEK
目前的中国,随着企业,特别是金融行业,对精细高速决策的需求迅速增加,市场对MOSEK等求解器的巨大需求也在逐步觉醒,开始有很多企业,特别是基金正以各种形式使用MOSEK(在我们的下篇文章里,会有艾悉资产的专家来讲解MOSEK在金融上的具体使用技巧)。
在中国市场快速扩张的同时,MOSEK也面临着其他求解器共有的烦恼:作为一个专业要求相对比较高的专业计算软件,对客户的服务,需要一个对MOSEK高度熟悉、对内在算法深入理解、行动力强的国内团队配合。
MOSEK是幸运的。2016年中,叶教授带领学生创办了杉数科技,致力于帮助中国企业解决大规模复杂系统的建模、计算、决策与落地能力。杉数的客户主要是优化需求明显、理解优化价值的企业,其中有很多也是MOSEK的潜在客户。在杉数科技阵容豪华的科学家队伍里,不仅拥有LEAVES和Cardinal Solver这两个国内独有的线性与整数规划的开源与商业求解器开发团队,也有着对锥优化理论和应用非常了解的专家,包括了著名的DSDP求解器开发者叶荫宇教授,以及SeDuMi求解器开发者的导师(张树中教授)和多位师弟(江波、何斯迈教授)等。毫无疑问,杉数科技有着国内对求解器的理论、开发和使用理解最为深入的专家群体。
水到渠成,MOSEK与杉数科技达成长期独家合作,杉数科技成为MOSEK在中国市场的唯一官方指定销售代理商。
目前在欧洲和北美,MOSEK的客户涵盖了多家金融企业、研究机构、软件供应商等。未来,MOSEK也希望把重心转向中国,在中国推动更大的普及应用,尤其是在金融、保险、能源等重要领域。杉数科技也会配合MOSEK,为中国的客户提供最佳计算方案和最优决策。
MOSEK的技术指标
为了方便用户快速建模,MOSEK除了提供标准的矩阵和命令框接口外,还独特地提供了Fusion接口(如下表所示)。这种接口允许用户直接操作变量和约束对象描述优化问题,极大地方便问题快速建模且调用开销较小。
MOSEK各接口支持求解的问题类型如下表所示:
总体上讲,MOSEK有以下技术优势:
l 提供优化服务器用于远程优化。
l 充分利用多核处理器硬件特点进行并行计算;
l 可求解的问题规模仅受限制于计算机内存容量;
l 领先世界的内点法实现,用于求解线性、二阶锥和二次规划问题;
l 提供基于矩阵和Fusion的编程接口,包括C、C++、Python、Java、C#、MATLAB和R;
l 支持多种建模环境,包括AMPL、GAMS和CVX等商业工具,CVXPY和JuMP等开源工具;
l 支持多种操作系统,包括Windows、Linux和MacOS;
MOSEK也有不同的商业许可,适用于各种需求的客户。
MOSEK包含以下类型的商业许可