You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python版CPLEX API读取MIP求解结果文件?

Python版CPLEX API保存/读取MIP解的正确方案

问题根源

之前的错误操作在于:model.read()仅用于读取模型文件(如.lp、模型格式的.sav文件),而你通过m.solution.write()生成的.sav是解文件,并非模型文件,因此用model.read()读取会触发格式错误。

正确操作步骤

1. 保存求解结果

使用CPLEX的solution.write()方法可将解保存为.sol或解格式的.sav文件:

# m为已完成求解的CPLEX模型实例
m.solution.write("saved_solution.sol")  # 保存为标准.sol解文件
# 或保存为.sav格式的解文件
m.solution.write("saved_solution.sav")

2. 读取解到模型

不能用model.read(),需调用solution.read()方法读取解文件:

# model为与解对应的CPLEX模型实例(结构需完全匹配)
model.solution.read("saved_solution.sol")  # 读取.sol格式解
# 或读取.sav格式解文件
model.solution.read("saved_solution.sav")

3. 验证解的加载

读取后可通过以下代码确认解是否正确加载:

# 遍历变量输出取值
for var_name in model.variables.get_names():
    print(f"{var_name}: {model.solution.get_values(var_name)}")

# 输出目标函数值
print(f"目标函数值: {model.solution.get_objective_value()}")

额外提示

若需要同时保存模型结构与解,可直接保存完整模型:

# 保存带解的完整模型
m.write("model_with_solution.sav")
# 后续读取时直接加载整个模型,解会自动附带
model.read("model_with_solution.sav")

此时模型加载完成后,可直接访问solution相关属性获取解。

内容的提问来源于stack exchange,提问作者deadlock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 23:15:34