Windows系统下HiGHS solver求解LP模型后偶发挂起问题求助
解决HiGHS 1.9.0在Windows 11下求解LP时偶尔挂起的问题
1. 升级至最新版本
HiGHS 1.9.0存在Windows平台下的进程挂起已知稳定性问题,后续发布的2.x及以上版本已修复多数这类场景。直接替换为官方最新版的highs.exe,重新测试触发挂起的模型。
2. 增加命令行参数约束与日志输出
在调用命令中添加时间限制和控制台日志参数,既可以避免进程无限挂起,也能定位挂起时的执行阶段:
highs.exe --time_limit 3600 --log_to_console true problem.lp
若挂起时日志停留在特定求解步骤,可针对性排查模型或求解器环节的问题。
3. 排查触发挂起的LP模型特征
挂起仅在部分场景出现,通常和特定模型结构相关:
- 检查模型是否存在极端数值差异(如系数跨度超过10^6),这类情况可能导致求解器内部数值计算陷入死循环
- 验证模型是否为无界/不可行状态,旧版本求解器处理这类边界场景时易出现进程挂起
- 逐步简化模型(删除冗余约束、变量),定位触发挂起的具体模型片段
4. 调整Windows控制台设置
CMD的部分默认设置可能干扰求解器进程:
- 右键CMD窗口标题栏,选择「属性」,关闭快速编辑模式——该模式可能导致进程因等待输入意外挂起
- 切换至PowerShell执行命令,规避CMD的兼容性问题
5. 捕获挂起进程的调用栈(进阶排查)
若以上方法无效,可通过Windows调试工具定位根因:
- 安装Windows Debugger,进程挂起时附加到
highs.exe,执行k命令查看调用栈,确定求解器卡在的函数环节,将信息提交给HiGHS开发团队反馈bug
内容的提问来源于stack exchange,提问作者Marcos Roberto Silva
相关产品推荐
相关产品推荐

