Optimization python中的开源并行混合整数优化求解器

Optimization python中的开源并行混合整数优化求解器,optimization,open-source,cvxpy,glpk,mixed-integer-programming,Optimization,Open Source,Cvxpy,Glpk,Mixed Integer Programming,我们有一个20K变量的混合整数优化问题 运行时性能: 在通用自由/开源软件解决方案(如GLPK)上:15小时 关于商业解决方案(如Mosek):10分钟 商用解算器的性能提高了100倍,这得益于底层标准混合整数B&C算法的并行化 是否有任何FOSS解算器也支持并行化(以提供更好的运行时性能)?我不认为这仅仅是因为并行化。但事实上,商业解决方案可以比开源解决方案快得多。也许CBC会是一个尝试的候选人。没错,但我认为这是主要因素。例如,如果问题是MIQP,那么它的速度取决于MI逻辑的速度+QP子

我们有一个20K变量的混合整数优化问题

运行时性能:

  • 在通用自由/开源软件解决方案(如GLPK)上:15小时

  • 关于商业解决方案(如Mosek):10分钟

  • 商用解算器的性能提高了100倍,这得益于底层标准混合整数B&C算法的并行化


    是否有任何FOSS解算器也支持并行化(以提供更好的运行时性能)?

    我不认为这仅仅是因为并行化。但事实上,商业解决方案可以比开源解决方案快得多。也许CBC会是一个尝试的候选人。没错,但我认为这是主要因素。例如,如果问题是MIQP,那么它的速度取决于MI逻辑的速度+QP子问题逻辑的速度。根据我的经验,QP子问题速度的差异永远不会超过5倍。“我认为这是主要因素”不。使用几个线程不会得到100的加速。只需尝试使用Mosek运行实例,并且只使用1个线程。这将证明大部分的加速来自于算法的改进。除了少数情况外,并行化是性能的巨大提升。线性加速通常是您所能看到的最佳速度。