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

Pyomo优化结果保存方法咨询:pyomo_save_results无清晰示例说明

轻松保存Pyomo优化结果的方法

我完全懂这种感受——Pyomo官方文档里找pyomo_save_results的清晰示例真的挺费劲的,尤其是当你只是想简单保存优化结果的时候。下面我来一步步教你怎么用这个函数,再补充几个实用的结果保存方法。

使用pyomo_save_results函数

首先你需要从pyomo.opt模块导入这个函数,它是Pyomo优化工具集的一部分。下面是一个完整的可运行示例:从创建简单模型、求解到保存结果的全流程:

from pyomo.environ import ConcreteModel, Var, Objective, Constraint, SolverFactory, NonNegativeReals
from pyomo.opt import pyomo_save_results

# 创建一个简单线性规划模型
model = ConcreteModel()
model.x = Var(within=NonNegativeReals)
model.y = Var(within=NonNegativeReals)

# 定义目标函数(最小化3x+2y)
model.obj = Objective(expr=3*model.x + 2*model.y, sense=minimize)
# 定义约束条件
model.con1 = Constraint(expr=2*model.x + model.y >= 10)
model.con2 = Constraint(expr=model.x + 3*model.y >= 15)

# 调用求解器(这里用GLPK,你也可以用其他比如Cplex、Gurobi)
solver = SolverFactory('glpk')
results = solver.solve(model)

# 将结果保存到JSON文件(还支持.xml或.yml格式,根据后缀自动识别)
pyomo_save_results(results, 'optimization_results.json')

这个函数的核心参数很简单:

  • 第一个参数是solver.solve()返回的results对象,包含了完整的求解信息(比如求解器状态、目标函数值、变量解、约束对偶值等)
  • 第二个参数是输出文件的路径和名称,Pyomo会根据文件后缀自动选择对应的格式(JSON/XML/YAML)

其他实用的结果保存方式

有时候你可能只需要提取特定的结果(比如变量的最优值),而不是保存完整的求解输出,下面是两种常用的方法:

1. 将变量值保存到CSV文件

用Pandas可以快速实现:

import pandas as pd

# 提取所有活跃变量的名称和对应值,存入字典
var_values = {var.name: var.value for var in model.component_objects(Var, active=True)}

# 转换为DataFrame并保存到CSV
df = pd.DataFrame.from_dict(var_values, orient='index', columns=['最优值'])
df.to_csv('变量最优结果.csv')

2. 自定义JSON格式保存结果

如果你想更灵活地控制输出结构,可以用Python内置的json模块自己构建结果数据:

import json

# 整理需要保存的结果数据
results_data = {
    '目标函数值': model.obj(),
    '变量最优解': {var.name: var.value for var in model.component_objects(Var, active=True)},
    '求解器状态': str(results.solver.status),
    '终止条件': str(results.solver.termination_condition)
}

# 写入JSON文件,带缩进更易读
with open('自定义优化结果.json', 'w', encoding='utf-8') as f:
    json.dump(results_data, f, ensure_ascii=False, indent=4)

如果需要完整的求解器输出(比如求解耗时、约束松弛量等),pyomo_save_results会是最佳选择;如果只需要关键结果,自定义的方法会更轻便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:08:07