1. 什么是SCIP?
SCIP 是目前混合整数规划 (mixed integer programming,MIP) 和混合整数非线性规划 (mixed integer nonlinear programming,MINLP) 最快的非商业求解器之一,它允许用户进行约束整数规划求解和利用分支切割定价算法求解,具有丰富的功能和较高的灵活性,用户能完全控制求解过程并访问求解器内部的详细信息,因此也常常被称为求解框架。SCIP 是 SCIP Optimization Suite 优化套件之一(下载地址)。截至2024年2月,SCIP已更新至9.0.0版本1。
SCIP 有许多接口,支持许多语言(C/C++/Python/Julia/Java…)和 LP 求解器(CPLEX/Gurobi/XPress/Mosek…)。为了简便不同接口的扩展和协作,SCIP 的大部分接口的开发和维护是在 Github 上独立于 SCIP Optimization Suite 进行的。
SCIP 是用 C 语言编写的,尽管它的设计具有较高的可扩展性,但是处理 C 语言不利于新想法的开发和测试,因此出现了PySCIPOpt
,这是 SCIP 求解器的 Python 接口,支持完全用 Python 编写 SCIP 代码,能在合理的时间内实现想法,同时还能保留底层