最近尝试使用Python求解优化问题,发现需要安装求解器,搜索半天后发现以下几个开源免费或通过教育邮箱能够获取的求解器。另外这里也有一个介绍,可以参考,但有点旧了。
- Cbc
全称Coin-or Branch and Cut,是一个开源的混合整数线性规划求解器,COIN-OR是 Operations Research Computational Infrastructure的缩写,这是一个致力于"为公开文献上数学理论之数学软件而建立"的专案。COIN-OR由作业研究与管理科学协会INFORMS主持,并由教育性,非营利的COIN-OR基金会营运。可以在官方GitHubhttps://github.com/coin-or/Cbc页面找到安装方法。
- Google OR-Tools
Google OR-Tools 是一个开源的优化工具套件,支持多种优化问题,包括整数线性规划。只需执行python -m pip install ortools 即可安装,官方网站是https://developers.google.com/optimization。
- HiGHS
发现MATLAB 2024B中使用了这个求解器,这是一个开源免费的求解器,可求解线性规划/混合整数规划/二次规划,有C, C#, FORTRAN, Julia和Python接口。只需执行pip install highspy即可安装,或从GitHubhttps://github.com/ERGO-Code/HiGHS下载源码后自行编译安装。官网是https://highs.dev/。
- CPLEX
全称IBM ILOG CPLEX Optimizer,是用于线性、混合整数和二次规划的高性能优化求解器。CPLEX有社区版,只需用pip install cplex安装,完整版可以通过教育邮箱获取。打开Https://academic.ibm.com,用教育邮箱进入并注册后,进入IBM SkillsBuild,点击Access software download,在Data Science下可以找到CPLEX,即可下载。但是需要先下载IBM的下载器IBM_Install_DD.jnlp,系统上安装Java runtime以后,先安装下载器,再在浏览器里下载CPLEX,下载后安装即可。
- Gurobi
Gurobi是一个商用求解器,是CPLEX的三个创始人离职后开发的一个求解器。Gurobi为中国学校教师、学生提供一年免费使用版本(可延续),可以通过校园网IP或提交申请材料的方式申请使用。具体见官网https://www.gurobi.com/或官方授权中文站http://www.gurobi.cn/。
- COPT(杉数求解器)
国产求解器,针对大规模优化问题的高效数学规划求解器套件,同时具备大规模混合整数规划、线性规划(单纯形法和内点法)、半定规划、(混合整数)二阶锥规划以及(混合整数)凸二次规划和(混合整数)凸二次约束规划问题求解能力的综合性能数学规划求解器。针对学术用户,用有效的学术邮箱可以申请365天的免费试用权限(可延续),申请地址https://www.cardopt.com/copt。审核很快,收到邮件后按邮件提示安装即可。但是仅能在一台电脑上使用。
以上求解器哪个更好用不清楚,只能以后有需要分别尝试了。