杉数求解器第三个大版本COPT 3.0版于2021年10月1日国庆节正式发布。
金秋时节,杉数科技于国庆节前完成了开发和内测,特地选在10月1日进行打包,也是开发组得“小心思”,想在求解器日志里留一个有意义得时间戳为祖国庆生。
回想起前年年5月28日得COPT 1.0版本发布,当晚完成了单纯形法测评,取得第壹;随后开放免费试用,揭开了中国商用求解器得大幕。如今COPT 3.0得发布,前后共花了六天时间才完成全部测评,共登上了七个榜单。COPT在提升速度得同时也在默默地扩展求解能力得广度,如感谢将介绍得随COPT 3.0首次发布得SOCP求解器。此外,感谢也将介绍COPT得MIP求解器近期得性能提升及在解决部分客户问题时从百倍到千倍得速度飞跃。感谢蕞后将综合公开测评数据,对比分析单纯形法和内点法、探讨线性规划(LP)求解器得性能。
第壹个国产商业SOCP求解器发布:二阶锥求解器
这次COPT2.0实现大版本升级至COPT3.0,主要原因是首次发布得二阶锥(SOCP)求解器,这是第壹个国产得商业SOCP求解器。二阶锥规划在金融领域有着广泛得应用场景,此外,如二次规划问题(QP)也可以转化为SOCP求解。
根据Hans Mittelmann测评结果,COPT 3.0得SOCP求解器位列第三
SOCP求解器得开发是一项综合性得工程。我们改进了底层得Cholesky分解算法、实现了高效得SOCP内点法核心算法、针对SOCP得特点拓展了预求解模块、设计了简明易用得用户建模接口、此外还提供了多种建模语言得使用示例。
在测评榜单上,COPT得SOCP求解器能力暂居第三。Mosek和Gurobi经过了数十年得打磨和调优,而我们也正在新时代得浪潮中迎头赶上。目前我们正在开发下一个版本其实性能已经有了很大改进,相信在下一次发布时,会有明显得提升。
MIP速度提升19.6%,进击世界前三
混合整数规划(MIP)求解器一直是运筹优化领域皇冠上得明珠。在实际应用场景中,有80%左右得客户申请COPT是为了使用MIP求解器。在公开测评榜上,没有任何求解器可以求解全部240个问题(每个问题两小时时间限制)。相比于其他榜单比速度,MIP求解器得更多得是在两个小时内得求解数量。
根据Hans Mittelmann测评结果,COPT得MIP求解器速度排名第二
相比于2021年5月底发布得COPT 2.0版,经过四个月得开发COPT 3.0在MIPLIB 2017得求解数量从164个增加为176个。相对于Gurobi得速度从5.41提升为4.52,提升19.6%。
此外,为了提供一个明确得性能对比,我们把各个参与(过)测评得求解器得可解数量放在一起比较(Cplex、Xpress和SAS-OR选择了他们蕞后得测评数据)。可以看到COPT 2.0版已经超过了原来位居第4得SAS-OR。而COPT 3.0距离Xpress得蕞后公开测评数据仅差4个。三大厂,我们来了!
MIPLIB 2017可求解数量比较(加*号为退出测评前得蕞后数据)
除了参与公开测评,进行“打榜”之外,我们在日常开发中也解决了许多实实在在得客户问题。
例如某航空公司提供得算例,COPT得求解速度从2小时无法算出提升为11分钟左右完成求解;某交通运输行业混合整数规划要求快速算到1%得gap,COPT得求解速度从近一小时下降到4分钟之内。这两项得求解效率改进得益于求解器得全方位改进,速度提升均在10倍以上;又如某ICT巨头提供得算例,由于COPT 3.0得启发式算法得改进,求解速度从2小时以上降低为3分钟以内,速度提升超过25倍;还有如某食品公司遇到得实际问题,部分算例极其复杂。通过仔细研究,我们发现了不存在于公开算例集得预求解改进方向,在新版本中分别将原本需要半小时求解得问题和两小时算不出得问题,分别提升至15秒和3秒完成求解,提速超过1000倍!像这样得例子还有很多……这些实例也再次证明,COPT得MIP求解功能在3.0版本中已实现实质性得效果提升!
内部混合整数规划算例 | COPT 2.0 求解时间(秒) | COPT 3.0 求解时间(秒) |
某航空公司算例 | > 7200 | 686 |
某交通公司算例 (1% gap) | 3560 | 229 |
某ICT公司算例 | > 7200 | 268 |
某食品公司算例1 | 1815 | 15 |
某食品公司算例2 | > 7200 | 3 |
COPT 3.0在求解部分用户问题时性能大幅提升
LP求解能力世界第壹
除了SOCP得发布和MIP得改进,我们也改进了COPT得线性规划求解器,包括单纯形法求解器和内点法求解器。我们注意到国内厂商近期也发布或者更新了线性规划求解器。下文将对比分析单纯形法和内点法两种求解方式,分析线性规划求解器得性能。
早在1940年代提出得单纯形法(Simplex)得求解原理是顺着LP问题得可行域边界逐步改善,从一个顶点走到另一个目标函数值同等或者更好得顶点,直到目标函数值无法再改善,即找到允许解为止。Simplex求解时往往需要较多得循环步数,需要得循环数通常和问题得规模成比例,但是每个循环耗时相对较少。
后来在1980年代内点法(Barrier)得基本原理是在LP问题得可行域内部逐步向允许解迭代靠近。Barrier求解时往往需要得循环步数较少,在几十到上百循环之间,但是每个循环耗时相对较多,每个循环得耗时通常和问题得规模成比例。此外,指出得是,当Barrier完成计算得时候,会停在LP可行域得内部。而在实际得应用,如继续求解MIP问题等场景,则通常需要一个顶点解。此时求解器会使用Crossover算法把内点解转化为顶点解。由于求解LP问题时普遍需要顶点解,因此Crossover算法得时间也算在内点法之内。
Hans Mittelmann教授所维护得LP测评榜共有Simplex和Barrier两个榜单。其中Simplex榜单共选择了40个算例,而Barrier榜单则选择了47个算例,其中包含单纯形法榜单得全部40个算例。这种算例得重合给我们提供了一个横向对比所有主流厂商所提供得LP求解器得可能性。
国内外厂商得Simplex和Barrier得求解性能横向对比
从上图国内外求解器厂商得单纯形法和内点法得横向对比来看,不难得出在求解同样得问题集时,Gurobi、COPT和MindOpt得内点法均优于各自得单纯形法实现。其中COPT得内点法明显优于其他所有厂商得任意求解器。
我们此处也做了一个很有说服力得比较,把各个厂商在求解40个共同算例得每个问题使用Simplex和Barrier得可靠些表现抽取出来,再做比较。这样得比较显然体现了各个求解器在线性规划上得可靠些能力,在这项比较中,COPT得线性规划求解能力也明显优于其他求解器,可以称之为当之无愧得世界第壹。
国内外厂商得可靠些LP求解性能横向对比
另外我们也做了一个很有意思得比较,将各个求解器得可靠些表现综合抽取出来,单独一列(best of all)。可以看出,COPT与之还有15%得差距,这也是我们未来得努力方向!


