3行Python代码跑通HiGHS:这个免费开源线性优化求解器到底能省多少事
3行Python代码跑通HiGHS这个免费开源线性优化求解器到底能省多少事【免费下载链接】HiGHSLinear optimization software项目地址: https://gitcode.com/GitHub_Trending/hi/HiGHS上个月帮一个做供应链排产的同事看模型一个产品线的排产就叠出了几十万行约束、上万列变量他在 Excel 和自写脚本之间来回折腾了一周。后来我们把模型导给 HiGHS——一个用 C 写的免费开源线性优化求解器LP、MIP、凸 QP 都能接——跑通了才十几秒。pip一行装好HiGHS# pip install highspy import highspy h highspy.Highs() h.addVars(2, obj[1, 2]) h.addConstrs(h.var_[0] h.var_[1] 1) h.minimize() h.run()HiGHS Python接口highspy装完即用不需要额外配库。模型可以直接用addVars/addConstrs一行行搭也可以readModel(xx.mps)直接读 MPS/LP 文件。从源码用CMake编译想拿到可执行文件highs或自己链接库时cmake -S . -B build cmake --build build ctest构建完成后产物在bin/highs和lib/下详细配置看 cmake/README.md。你的模型长什么样HiGHS就按哪类解全是连续变量时成本最小化、产能分配、网络流量都是这种最基础的 LP。HiGHS 里默认走单纯形法也可以切内点法import highspy h highspy.Highs() x h.addVars(2, lb-h.inf, obj[1, 2]) h.addConstrs(x[1] - x[0] 2, x[0] x[1] 0) h.minimize() h.run()部分变量必须是整数时选哪个厂、开不开机、买不买这类 0/1 决策就是混合整数规划求解MIP的活import highspy h highspy.Highs() h.setOptionValue(presolve, on) x h.addBinaries(5) h.addConstr((x * [4, 3, 1, 5, 4]).sum() 11) h.maximize((x * [8, 5, 3, 11, 7]).sum()) h.run()分支定界加割平面h.vals(x)直接取出各变量的取值。目标函数带二次项时投资组合里收益 - 风险这种带二次项的目标传一个 Hessian 矩阵就变成 QPH highspy.HighsHessian() H.num_col_ 2 H.value_ [2, 0, 1] h.passHessian(H) h.minimize(x[0] x[1]) h.run()Q 半正定即可HiGHS 用主动集法求解。实操调优三个最有体感的开关模型一上来就慢先别怪求解器调这三个地方通常立竿见影。求解老超时怎么办你遇到了 MIP 一跑两小时没结果 →h.setOptionValue(time_limit, 300)设个 5 分钟上限到时它会带着当前最优可行解停下先有答案再慢慢收敛。大规模LP求解慢你遇到了百万变量级 LP 迟迟不收敛 → 确认 presolve 是开的默认就是它会在求解前把冗余行、固定变量、蕴含界全部消掉几十万变量的模型经常先缩到十万级再进单纯形。MIP模型求解慢怎么办你遇到了多核机器在空转 →h.setOptionValue(thread_num, 8)把线程数拉满HiGHS 的 MIP 求解器会并行探索分支核越多越划算。谁在用它、怎么落地制造一家做汽车零部件的厂把周排产从 Excel 手工调表迁到 HiGHS模型约 30 万行、5 万列单次求解几分钟原来排一版计划要两个计划员半天现在早会前就能出全周排产物料齐套率明显上来。物流区域配送中心用 MIP 做次日达派单每天几千张订单、几百台车车辆数比经验调度少了一成多高峰期的临时改派也从拍脑袋变成重跑一次 HiGHS几分钟给出新方案。金融投顾团队用凸 QP 做组合再平衡把波动率当二次项、收益当线性项月度再平衡从人工试错变成一次求解风险指标稳定在预算线内。踩坑速查症状CMake 报版本或语法错误。解法HiGHS 要求 CMake ≥ 3.15cmake --version看一眼低了就先升级。症状求解超时一直跑不完。解法设time_limitMIP 还可以调松mip_abs_gap用次优解换时间。症状内存溢出。解法先确认 presolve 开启它能把模型缩一截实在缩不动就加内存或把模型分块别硬扛。症状import highspy报 API 对不上。解法多半是 highspy 和旧版混装pip install --upgrade highspy重装一遍。延伸资源官方文档目录 docs/src/建模、求解、取结果的完整流程都在里面。示例代码 examples/LP、MIP、多目标、网络流的最小可跑例子照着改就行。测试用例 check/几十个真实模型和断言读它比读 API 手册更快搞懂 HiGHS 的行为边界。装好之后挑一个你手头的小模型丢给它跑通了再谈调优。卡住的时候去仓库 issue 区翻一翻你的问题大概率有人踩过 【免费下载链接】HiGHSLinear optimization software项目地址: https://gitcode.com/GitHub_Trending/hi/HiGHS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考